王 煦,賈 浩,季佰軍,段湘煜
(蘇州大學自然語言處理實驗室,江蘇 蘇州 215006)
機器翻譯[1 - 3]的主要研究目的是通過計算機實現(xiàn)將一種語言自動翻譯成另一種語言。傳統(tǒng)的統(tǒng)計機器翻譯SMT(Statistic Machine Translation)[4]系統(tǒng)性能提升緩慢。但是近年來,隨著神經(jīng)機器翻譯NMT(Neural Machine Translation)[5,6]的發(fā)展,機器翻譯性能得到大幅度提升,機器翻譯再次得到了廣泛關(guān)注。2017年Vaswani等人[7]提出的基于自注意力的Transformer模型在翻譯速度和質(zhì)量上相比于SMT取得了較大的提升。有監(jiān)督的神經(jīng)機器翻譯需要平行語料來指導訓練,往往平行語料的數(shù)量決定著最終翻譯模型的質(zhì)量,但是平行語料的獲取不僅需要耗費大量人工翻譯時間,一些小語種的平行數(shù)據(jù)也很難獲取,這在一定程度上阻礙了機器翻譯的發(fā)展。由于單語語料通常很容易大量獲取,近幾年只使用單語語料的無監(jiān)督神經(jīng)機器翻譯[8]漸漸進入人們視野。
多個訓練無監(jiān)督跨語言詞嵌入訓練方法[9,10]的提出,使得只使用單語語料訓練無監(jiān)督神經(jīng)機器翻譯模型成為了可能。而在結(jié)合使用降噪自編碼器[11]和反向翻譯[8]后,無監(jiān)督神經(jīng)機器翻譯效果也得到了顯著提升。BERT(Bidirectional Encoder Representation from Transformers)[12]模型利用Transformer模型構(gòu)建框架,使用無監(jiān)督方法在單語數(shù)據(jù)上進行預訓練并生成語言表征模型,可以較好地挖掘出詞之間的關(guān)系。隨后XLM(Cross-lingual Language Model)[13]模型在此基礎(chǔ)上進一步擴展訓練生成跨語言的語言模型,讓不同語言中意思相近的詞在詞嵌入中的位置相對一致,最終有效提高了無監(jiān)督機器翻譯模型的訓練效果。
雖然可以利用大量的單語語料訓練模型,無監(jiān)督機器翻譯模型仍與使用平行數(shù)據(jù)訓練的有監(jiān)督模型的效果有較大差距。反向翻譯方法雖然可以建立偽平行語料來訓練模型,但是因為其初始訓練的語言模型是建立在單語數(shù)據(jù)上的,沒有平行數(shù)據(jù)指導訓練過程,并不能完全在2種語言中意思相近的詞之間建立聯(lián)系,往往會導致翻譯的偽數(shù)據(jù)質(zhì)量較差,在之后的訓練中這些翻譯錯誤會不斷累積,導致實際學習到的模型逐漸偏離正確的目標模型。
針對以上問題,本文提出2個方法,以中-英方向模型的訓練為例:(1)用一個中-英的雙語詞典對中文單語數(shù)據(jù)進行替換,利用中文詞的對應(yīng)英文翻譯詞在訓練過程中建立2種語言間的聯(lián)系;同時,在訓練2個方向模型的過程中,利用英-中方向訓練出來的模型,對中-英方向模型的詞嵌入(Word Embedding)進行修正,縮小不同語言間的差異。(2)雙編碼器融合訓練方法,利用英-中方向訓練出來的模型指導中-英方向模型的訓練,充分利用各個方向?qū)W到的語義信息。實驗結(jié)果表明,本文方法的BLEU值在中-英等數(shù)據(jù)上相比基線無監(jiān)督翻譯系統(tǒng)的分別提高2.39和1.29,同時在英-俄和英-阿等單語數(shù)據(jù)上也取得了不錯的效果。
隨著無監(jiān)督神經(jīng)機器翻譯的不斷探索,越來越多的人注意到雖然可以使用大量的單語數(shù)據(jù)訓練模型,但是仍然不能很好地在不同語言之間建立聯(lián)系。針對這個問題,Lample等人[14]使用聯(lián)合BPE(Byte Pair Encoding)[15]的方法將不同語言數(shù)據(jù)合并進行BPE。當源語言和目標語言相關(guān)時,它們會天然地共享部分的BPE詞語,從而拉近2種語言在詞嵌入空間的分布。之后Lample等人[13]進一步擴展此方法,提出了XLM模型,將多種語言放在一起采用新的訓練目標進行預訓練,從而使模型能夠掌握更多的跨語言信息。對于預訓練后的后續(xù)任務(wù)(比如文本分類或者翻譯等任務(wù)),訓練語料較為稀少的語言可以利用在其他語料上學習到的信息協(xié)助當前語言的學習。隨后Wu等人[16]針對反向翻譯中存在的錯誤積累問題,提出使用提取-編輯方法代替原本的回譯方法,取得了不錯的效果。Ren等人[17]則通過生成的跨語言詞嵌入在2種語言的單語數(shù)據(jù)中尋找相似句,并通過對其重寫生成偽平行訓練語料來訓練翻譯模型。
最近Duan等人[18]提出了DIV(Dictionary-based Independent View)方法,用詞典對單語數(shù)據(jù)進行替換,來進行無監(jiān)督機器翻譯模型的訓練。首先使用Muse詞典[9]對源端單語數(shù)據(jù)進行替換,用替換過的源端單語數(shù)據(jù)與未替換的目標端單語數(shù)據(jù)訓練源端到目標端的無監(jiān)督機器翻譯模型。先在預訓練步驟中使用替換數(shù)據(jù)進行訓練,讓模型學習不同語言的信息,之后再使用單向訓練與雙向訓練建立無監(jiān)督機器翻譯模型,最終取得了很好的效果。
本文方法與DIV[18]的步驟類似,但是本文方法將源端與目標端的數(shù)據(jù)都進行了替換,并且將替換的數(shù)據(jù)與原數(shù)據(jù)合并,使用合并的數(shù)據(jù)訓練各個方向的模型。同時本文還提出了2個方法:(1)對使用替換數(shù)據(jù)訓練得到的預訓練模型的詞嵌入進行替換,利用一個方向訓練出來的模型,對另一個方向模型的詞嵌入進行修正,充分利用2個方向的訓練結(jié)果。(2)在訓練階段,本文在傳統(tǒng)的編碼器-解碼器[7]結(jié)構(gòu)基礎(chǔ)上,提出雙編碼器融合訓練方法,在訓練過程中同時使用2個方向的模型進行訓練,通過一個權(quán)重調(diào)整各個方向模型的重要性,充分利用它們在之前訓練中學習到的知識。
無監(jiān)督機器翻譯通常遵循3個步驟:初始化、建立語言模型和反向翻譯。
(1)初始化:針對機器翻譯任務(wù),希望利用模型預訓練初始化建立2種不同語言間最初的聯(lián)系,以方便之后的訓練。通過將2種語言訓練數(shù)據(jù)合并后進行聯(lián)合BPE,使得它們共用同一個詞表,之后使用單語數(shù)據(jù)訓練編碼器,建立潛在的聯(lián)系。
(1)
其中,D為單語數(shù)據(jù)集,C(x)表示對樣本x進行加噪的過程。通過訓練,模型可以掌握各個語言句子的基本構(gòu)建信息。
(3)反向翻譯:通過前2個步驟,不斷拉近2種語言間語義空間的距離,這時利用反向翻譯進行訓練,將目標端句子通過模型映射為源端句子,建立偽平行語料,之后按照有監(jiān)督機器翻譯的方法進行訓練。如式(2)所示:
Lback=Ex~D,y~M(x)[-logP(x|y)]
(2)
其中,D為單語數(shù)據(jù)集,M(x)表示對目標端樣本x進行翻譯的過程,y為翻譯出來的偽源端語句。將(y,x)作為偽平行語料進行有監(jiān)督訓練。
DIV方法在預訓練初始化的過程中使用詞典對源端訓練數(shù)據(jù)進行替換,之后使用替換的源端數(shù)據(jù)和目標端數(shù)據(jù)進行預訓練,利用替換詞在2種語言間建立聯(lián)系,拉近2種語言語義空間的距離。而在本文方法中,源端使用的是詞典替換后的語料加上原始語料,而目標端只有未替換的原始語料,因此在訓練過程中可以進一步拉近替換詞和原詞之間的距離,讓2種語言的語義空間距離更近。
DIV方法中訓練翻譯模型又分為單向訓練和雙向訓練。在單向訓練中使用降噪自編碼器建立語言模型并且通過反向翻譯優(yōu)化模型,同樣在訓練時也會用詞典先對源端訓練數(shù)據(jù)進行替換,之后使用替換的源端數(shù)據(jù)和目標端數(shù)據(jù)進行訓練。本文方法除了和之前預訓練中一樣將替換數(shù)據(jù)加上原數(shù)據(jù)進行單向訓練以外,還提出了詞嵌入融合初始化和雙編碼器融合訓練2種方法,充分利用各個方向在預訓練中學到的知識,可以更好地利用詞典替換數(shù)據(jù),縮小不同語言間的距離。
DIV[18]方法的雙向訓練步驟則是利用單向訓練中訓練的目標端到源端的翻譯模型,將目標端單語數(shù)據(jù)翻譯為源端數(shù)據(jù),之后將翻譯的偽源端數(shù)據(jù)與目標端數(shù)據(jù)作為偽平行語料,訓練源端到目標端的翻譯模型。而本文提出的詞嵌入融合初始化和雙編碼器融合訓練2種方法可以更好地抽取語言間的關(guān)系,實驗表明,本文方法可以取得更好的效果。
神經(jīng)語言模型通過學習詞嵌入來捕獲詞中隱含的語言和概念信息[19],在預訓練中由于使用了詞典替換的數(shù)據(jù),在相應(yīng)方向替換詞的詞嵌入訓練程度較高,因為詞同時在2種語言的句子中出現(xiàn),可以同時學到2種語言的語義信息。但是,在另一個方向的訓練過程中,因為這個詞被詞典替換成了這個方向目標端語言的對應(yīng)詞,所以這個詞在該方向的訓練過程中并沒有被訓練到,無法學習相關(guān)的語義信息。針對這個問題,本文提出了詞嵌入融合初始化方法,對預訓練后的模型進行初始化。以中-英模型訓練為例,使用英-中方向中利用英-中詞典替換訓練的中文替換詞初始化中-英方向中的該中文單詞,讓2個方向互相學習對方在訓練中獲得的信息。
如圖1所示,圖中Emb表示訓練模型中的詞嵌入向量,因為預訓練時的模型使用中英數(shù)據(jù)聯(lián)合BPE建立詞表,所以詞嵌入中包含中文與英文詞。但是,在中-英方向的預訓練過程中,用詞典將訓練數(shù)據(jù)中的中文zh1替換為英文en2,因為源端是詞典替換后的語料加上原始語料,而目標端只使用了未替換的原始語料。所以,源端數(shù)據(jù)中包含zh1和其對應(yīng)的en2,en2可以直接學習到與zh1相關(guān)的中文信息,而zh1只能通過en2間接學習到與其相關(guān)的英文信息,最終zh1的詞嵌入并沒有得到足夠訓練,而英-中模型的zh1的詞嵌入學習到了完全的英文和中文的信息。因此,本文將中-英模型中的zh1的詞嵌入用英-中模型的zh1的詞嵌入進行初始化。同樣,在英-中方向的預訓練過程中,en2的詞嵌入并沒有得到足夠訓練,本文將英-中模型中的en2的詞嵌入用中-英模型中的en2的詞嵌入進行初始化。
Figure 1 Word embedding initialization圖1 詞嵌入融合初始化
最后將每個方向的源端詞典替換數(shù)據(jù)與其原數(shù)據(jù)合并,進行各個方向的單向訓練,這樣訓練的單語數(shù)據(jù)中的源端同時包含了詞典替換數(shù)據(jù)和原數(shù)據(jù)。比如中文數(shù)據(jù)中同時包含“華為 phone”和“華為 手機”,可以通過“華為”作為媒介拉近“phone”與“手機”之間的距離,為了保證目標端為真數(shù)據(jù),故而目標端都是使用原數(shù)據(jù)。實驗表明,此方法可以明顯提高翻譯效果。
Figure 2 Dual-encoder fusion training圖2 雙編碼器融合訓練
詞嵌入融合初始化方法雖然可以利用另一個方向預訓練模型中替換詞的訓練結(jié)果來促進這個方向的訓練,但仍會損失一些替換詞與其他詞訓練中學習到的信息。為了更好地利用2個方向的訓練模型的訓練結(jié)果,本文提出了一個雙編碼器融合訓練方法,如圖2所示。以中英訓練為例,經(jīng)過預訓練后,在訓練中-英方向的模型時,同時加載預訓練中獲得的中-英方向的編碼器模型和英-中方向的編碼器模型,將訓練數(shù)據(jù)同時輸入2個編碼器中分別訓練,對其輸出結(jié)果用式(3)進行處理:
encout=encout-src2tgt+λ*encout-src2src
(3)
其中,encout-src2tgt是源端到目標端編碼器的輸出,encout-tgt2src是目標端到源端編碼器的輸出,使用λ來控制輸出所占比重,之后將最終的結(jié)果encout輸入目標端到源端的解碼器模型中進行訓練。
通過這種方法,在中-英的訓練過程中可以同時利用中-英和英-中的預訓練編碼器模型進行訓練,編碼器可以輸出2種不同視角的編碼結(jié)果,對其按照一定比重進行處理,可以利用英-中編碼器視角對中-英編碼器視角中一些被忽略的地方進行修正,取得更好的效果。由于訓練數(shù)據(jù)的源端也是詞典替換數(shù)據(jù)與其原數(shù)據(jù)合并后進行各個方向的單向訓練,在訓練中2個編碼器可以相互輔助,可利用對方在預訓練中學習到的知識。比如“華為 phone”和“華為 手機”中“手機”在中-英方向的預訓練中沒有得到足夠訓練,而在英-中方向的預訓練中訓練充足,同樣“phone”在英-中方向的預訓練中沒有得到足夠訓練,而在中-英方向的預訓練中訓練充足,在訓練中這2個模型就可以互相利用對方已經(jīng)學習過的“手機”與“phone”的知識,來調(diào)整相關(guān)詞與其他詞的關(guān)系,縮短“華為”與“手機”“phone”的距離,從而提高翻譯質(zhì)量。
本文在中-英、英-俄和英-阿數(shù)據(jù)上進行了實驗。對于跨語言預訓練階段,本文從維基百科數(shù)據(jù)中分別抽取了8 000萬條英文、1 300萬條俄文和550萬條中文的單語訓練數(shù)據(jù)來進行訓練。在單向訓練和雙向訓練階段中,對于中-英方向的訓練,從語言數(shù)據(jù)聯(lián)盟LDC(Linguistic Data Consortium)提供的440萬條平行數(shù)據(jù)中抽取其中220萬條作為中文單語訓練數(shù)據(jù),另外220萬條作為英文訓練數(shù)據(jù)。同時,使用NIST2006和NIST2002分別作為中-英訓練的驗證集和測試集。對于英-俄方向的訓練,使用WMT(Workshop on Machine Translation)2007~2017年的單語新聞數(shù)據(jù)進行訓練,同時使用WMT newstest-2015和newstest-2016作為驗證集和測試集;而對于英-阿方向的訓練,本文在Eisele等人[20]發(fā)布的英語和阿拉伯語平行數(shù)據(jù)中隨機各抽取975萬條,作為單語數(shù)據(jù)訓練模型,同時使用他們發(fā)布的驗證集和測試集作為英-阿訓練的驗證集和測試集。
本文使用MUSE雙語詞典對數(shù)據(jù)進行替換,對于MUSE詞典中一個源端詞有多個目標端翻譯的情況,選取目標端在單語訓練數(shù)據(jù)中出現(xiàn)最多的那個詞作為目標端最終的替換詞,表1展示了詞典中詞對數(shù)目與其在訓練數(shù)據(jù)中所占比例。
Table 1 Word number and coverage of dictionary表1 字典詞對數(shù)與覆蓋率
在預訓練過程中,本文使用了XLM模型中的掩碼語言模型MLM(Masked Language Model)進行訓練,其與BERT類似,在訓練時隨機掩蓋句子中15%的詞語,同樣在這些詞中選擇80%用[MASK]標志掩蓋,10%用字典中隨機詞替換,另外10%保持不變。
本文使用XLM模型進行無監(jiān)督機器翻譯的訓練,它是從BERT模型的基礎(chǔ)上發(fā)展而來的,使用了Transformer[7]作為訓練的主要框架,能更徹底地捕捉語句中的雙向關(guān)系。Transformer模型由編碼器與解碼器組成,而編碼器與解碼器又由多個編碼器層與解碼器層堆疊而成。在實驗中編碼器和解碼器層數(shù)都設(shè)置為6,每個注意力層含有8個頭,詞嵌入維度為1 024。本文對訓練數(shù)據(jù)用聯(lián)合BPE進行處理,中英數(shù)據(jù)共享約4萬條詞匯,英俄數(shù)據(jù)共享約6萬條詞匯,其余低頻詞用〈UNK〉替換。
訓練時,隨機失活率(Dropout)設(shè)置為0.1,使用Adam優(yōu)化器[21],初始學習率設(shè)為0.000 1。解碼時,使用長度懲罰為1.0的貪婪生成方法,雙編碼器融合訓練方法中λ取值為0.8。
本文使用以下模型作為實驗的基準系統(tǒng)[14]:
(1)UNMT(Unsupervised Neural Machine Translation):為Lample等人[14]所用方法,沒有使用預訓練模型,只使用單語訓練數(shù)據(jù)直接訓練的無監(jiān)督機器翻譯模型。
(2)XLM+UNMT:為Lample等人[13]所用方法,在使用XLM模型訓練的跨語言預訓練模型基礎(chǔ)上訓練的無監(jiān)督機器翻譯模型。
(3)ACP(Anchored Cross-lingual Pretraining)+AT(Anchored Training):為Duan等人[18]在跨語言預訓練模型基礎(chǔ)上,對訓練數(shù)據(jù)使用詞典替換后,在XLM模型上使用單向訓練方法訓練的無監(jiān)督機器翻譯模型。
(4)ACP+Bi-view AT:為Duan等人[18]在跨語言預訓練模型基礎(chǔ)上,對訓練數(shù)據(jù)使用詞典替換后,在XLM模型上使用雙向訓練方法訓練的無監(jiān)督機器翻譯模型。
實驗結(jié)果如表2所示,本文使用BLEU(BiLingual Evaluation Understudy)[22]分數(shù)作為最后的評價指標。
Table 2 Experiment results evaluated by BLEU表2 實驗的BLEU評估結(jié)果
相比于DIV方法,詞嵌入融合初始化方法在中-英與英-中的單向訓練中,BLEU分數(shù)分別有1.34和1.35的提升,在雙向訓練中,BLEU分數(shù)分別有2.24和0.69的提升。改進后的雙編碼器融合訓練方法在中-英與英-中的單向訓練中,BLEU分數(shù)分別有1.59和1.47的提升,在雙向訓練中,BLEU分數(shù)分別有2.39和1.29的提升。而2種模型融合方法在英-俄與英-阿實驗中的結(jié)果也有明顯提升。
由表2可知,本文的詞嵌入融合初始化方法和雙編碼器融合訓練方法相比于之前的無監(jiān)督訓練方法的BLEU都有了明顯的提升,除了詞嵌入融合初始化方法在英-俄的2個方向訓練中優(yōu)于雙編碼器融合訓練外,在其他情況下雙編碼器融合訓練方法訓練效果都要好于詞嵌入融合初始化方法。這可能是因為英-俄的訓練數(shù)據(jù)使用字典替換時替換率過高,達到88.77%,使得訓練數(shù)據(jù)中2個方向中大部分都是俄語數(shù)據(jù),因此在雙編碼器融合訓練方法中輔助訓練的俄-英模型學到的英語與英語間的聯(lián)系對英-俄方向的訓練影響不大,甚至在一定程度上反而阻礙了英-俄模型的學習。而詞嵌入融合初始化方法中只是用俄-英模型初始化了英-俄模型,獲得了之前訓練中詞典替換詞的知識,在之后的訓練中并不會持續(xù)影響訓練過程,所以最后詞嵌入融合初始化方法訓練效果較好。
為了得到最佳的實驗結(jié)果,本文測試了雙編碼器融合訓練方法在不同λ取值下中-英模型訓練的最終效果,如表3所示。
Table 3 BLEU values of dual-encoder fusiontraining model with different λ表3 不同λ取值下雙編碼器融合訓練模型BLEU分數(shù)
可以發(fā)現(xiàn),雙編碼器融合訓練方法的分數(shù)只在英-中方向λ=1時比DIV[18]方法的低,其他情況下都有所提高。λ取值從0.2提升到0.8的過程中,翻譯分數(shù)都不斷提高,并且在λ取值為0.8時達到最高,但是當λ設(shè)置為1.0時分數(shù)迅速下降,說明當權(quán)重設(shè)置過高后另一個方向的模型對該方向的訓練影響過大,反而會阻礙模型的學習。
同時本文測試了不同句子長度下中-英方向上使用2種模型融合方法訓練得到的模型的翻譯效果。如圖3所示,在單向訓練過程中,除了雙編碼器融合訓練方法在句子中包含詞的個數(shù)在低于10個的情況下BLEU略低于DIV方法外,其他情況中本文的2種方法都優(yōu)于DIV方法,并且在處理包含10~50個詞的中長句子時本文方法的翻譯質(zhì)量要明顯超過DIV方法的。
Figure 3 Single-directional training scores with different lengths圖3 不同句長下單向訓練分數(shù)
由圖4可知,在雙向訓練過程中,本文的2種方法在處理所有長度的句子時都要優(yōu)于DIV方法,同樣在處理包含10~50個詞的中長句子時也有明顯的進步。同時可以發(fā)現(xiàn)雙編碼器融合訓練方法對包含30個以上詞的句子的翻譯效果的提升更加明顯,說明在2個不同方向模型的相互輔助訓練后,不同方向的模型可以從不同視角分析句子,可以更好地捕捉詞在中長句子中的語義信息,有效提高了句子的翻譯效果。
Figure 4 Bi-directional training scores under different lengths圖4 不同句長下雙向訓練分數(shù)
在無監(jiān)督機器翻譯模型的訓練過程中,雖然有大量單語數(shù)據(jù),但仍很難在2種語言間建立聯(lián)系,針對這個問題,本文提出了采用詞典替換數(shù)據(jù),并且使用詞嵌入融合初始化和雙編碼器融合訓練來加強不同語言詞之間的聯(lián)系的方法。實驗結(jié)果表明,相比于其它無監(jiān)督基準翻譯模型,本文方法在中-英、英-俄和英-阿無監(jiān)督機器翻譯中翻譯效果都有了明顯的提升。未來我們將探索其在更多語言上的效果,同時測試該方法在有監(jiān)督機器翻譯領(lǐng)域是否也會有一定的效果。