孫 碩,侯宏旭,烏尼爾,常 鑫,賈曉寧,李浩然
(內(nèi)蒙古大學(xué)計算機學(xué)院,內(nèi)蒙古 呼和浩特 010020)
近年來,基于深度學(xué)習(xí)的神經(jīng)機器翻譯(NMT)[1-2]發(fā)展迅速,主要以交叉熵為訓(xùn)練準(zhǔn)則,即最小化機器譯文和參考譯文的熵值.因此,平行語料的質(zhì)量及規(guī)模決定了模型的最終翻譯水平,也成為評判監(jiān)督學(xué)習(xí)方法好壞的重要指標(biāo).然而,當(dāng)平行資源規(guī)模較小時則會由于數(shù)據(jù)稀疏導(dǎo)致訓(xùn)練過擬合,無法很好地實現(xiàn)雙語映射,交叉熵準(zhǔn)則也不能發(fā)揮最大作用.
為了緩解NMT模型對雙語語料的依賴,研究者們提出縮小建模粒度、反向翻譯、遷移學(xué)習(xí)、多語言訓(xùn)練以及無監(jiān)督學(xué)習(xí)等方法.Sennrich等[3]采用細(xì)粒度單元的建模方法將單詞切分為子詞或字符粒度來緩解語料資源匱乏而產(chǎn)生的集外詞(OOV)現(xiàn)象,然而粒度的尺寸選擇和不同粒度間的對齊關(guān)系學(xué)習(xí)會影響模型的質(zhì)量.Johnson等[4]提出了谷歌多語種NMT系統(tǒng),采用遷移學(xué)習(xí)方法在不改變模型主要結(jié)構(gòu)的情況下,從輸入句子最開始處增加一個額外的標(biāo)記來表示需要翻譯到的目標(biāo)語言,這種方法可以在低資源甚至零資源任務(wù)上明顯提升翻譯性能.Gu等[5]提出元學(xué)習(xí)機器翻譯方法,首先采用許多高資源語言訓(xùn)練一個表現(xiàn)出色的初始參數(shù),然后構(gòu)建一個所有語言的詞匯表,再以初始參數(shù)為基礎(chǔ)訓(xùn)練低資源語言的翻譯模型,在此基礎(chǔ)上進(jìn)一步優(yōu)化初始參數(shù).Lample等[6]提出一種無監(jiān)督方法來訓(xùn)練機器翻譯模型,在一個初始的翻譯模型上利用大規(guī)模單語語料實現(xiàn)偽平行語料的擴充,并從擴充后的語料中學(xué)習(xí)語義的表達(dá)和模型的構(gòu)建.然而偽語料中的數(shù)據(jù)沒有對應(yīng)標(biāo)簽的正確性指導(dǎo),導(dǎo)致偽語料包含大量噪聲,制約著模型的優(yōu)化.為了緩解上述問題,He等[7]提出一種新的學(xué)習(xí)范式,即對偶學(xué)習(xí)(dual-learning,DL).這種方法利用人工智能任務(wù)的對稱屬性使其獲得更有效的反饋或正則化,從而引導(dǎo)和加強在數(shù)據(jù)量較少情況下的模型學(xué)習(xí)過程.機器翻譯中,DL可以有效地利用源語言或目標(biāo)語言的單語數(shù)據(jù)進(jìn)行學(xué)習(xí).通過使用該學(xué)習(xí)機制,單語數(shù)據(jù)可起到與平行雙語數(shù)據(jù)相似的作用,使得在模型訓(xùn)練過程中可以顯著降低對平行雙語數(shù)據(jù)的要求.
本文采用DL方法結(jié)合強化學(xué)習(xí)方法,在蒙古語-漢語(蒙漢)雙語語料資源稀缺的前提下,通過回譯方法擴充語料,并對蒙漢NMT建模,實現(xiàn)源語-目標(biāo)語和目標(biāo)語-源語兩個方向的翻譯模型.為了評測譯文的質(zhì)量,使用大規(guī)模單語語料構(gòu)建語言模型來計算模型的置信度獎勵以及生成譯文的語言模型得分,通過設(shè)定獎勵閾值來控制模型的收斂,生成最終模型.此外,本文提出一種知識精煉方法訓(xùn)練模型,以緩解通過回譯方法得到的大規(guī)模偽雙語語料中大量“有害”噪聲帶來的翻譯性能下降的問題.為了驗證本文方法的有效性,首先通過對蒙古語和漢語的不同預(yù)處理操作進(jìn)行對比實驗,采用最優(yōu)的預(yù)處理方法參與模型的訓(xùn)練,之后采用消融學(xué)習(xí)的方法對本文方法的各個組件進(jìn)行驗證,最后分析了句子長度對翻譯質(zhì)量的影響.
圖1是本文模型的整體框架示意圖.首先采用回譯技術(shù)對語料擴充,生成大規(guī)模偽語料;然后在DL基礎(chǔ)上使用大規(guī)模單語語料得到目標(biāo)端語言模型;最后結(jié)合獎勵機制對譯文的流利度和相似度打分,通過最大化總獎勵來優(yōu)化模型.此外,由于擴充雙語語料存在大量的噪聲,提出一種基于迭代知識精煉的方法來降低“有害”噪聲.下面主要介紹回譯技術(shù)、DL方法以及訓(xùn)練方式等.
r1、r2和rfinal分別為語言模型的流利度獎勵、翻譯模型的對偶置信度獎勵和整體反饋獎勵.圖1 整體模型框架示意圖Fig.1 Illustration of the overall model architecture
由于蒙漢雙語平行語料稀缺,單純利用雙語訓(xùn)練勢必會因語義稀疏導(dǎo)致過擬合.傳統(tǒng)方法是在訓(xùn)練中采用早?;蛘齽t化等方法緩解過擬合問題,但是這兩種方法也無法很好擬合目標(biāo)分布.為此,本文在低資源雙語語料的基礎(chǔ)上引入回譯方法生成大規(guī)模偽雙語語料,將生成的偽語料和已有的雙語語料合成總語料,一起進(jìn)行接下來的模型訓(xùn)練.
在低資源翻譯任務(wù)中,回譯是利用單語數(shù)據(jù)提高機器翻譯質(zhì)量的有效方法.具體來說,首先利用已有的雙語語料訓(xùn)練一個初始的Tramsformer翻譯模型,再用該Transformer模型將大規(guī)模的源端單語翻譯成目標(biāo)端的帶噪單語(x→Ms→t(x)→y*),同時將帶噪目標(biāo)語言翻譯回含有噪聲的源端單語(y*→Mt→s(y)→x*),以此類推.
DL最主要的目的就是根據(jù)語言模型的反饋信息來指導(dǎo)翻譯模型的參數(shù)優(yōu)化,因此本小節(jié)主要介紹所涉及的語言模型獎勵和翻譯模型獎勵如何設(shè)定.具體過程如圖2所示,首先通過語言模型ELMo(embedding from language model)給兩個翻譯方向上的NMT模型提供流利度獎勵反饋,然后通過提出的DL算法在訓(xùn)練中基于反饋回來的獎勵來提升兩個翻譯模型的性能.
1.2.1 語言模型的獎勵
利用語言模型提供流利度獎勵的反饋.具體地,先采用單語語料蒙古語語料DMO和漢語語料DZH訓(xùn)練一個蒙古語和一個漢語語言模型,這兩個語料分別包含蒙古語句子和漢語句子并且不需要相互對齊.然后分別通過已經(jīng)訓(xùn)練好的兩個語言模型計算蒙古語或漢語目標(biāo)端句子的流利度的獎勵r1:
(1)
其中,P為概率,T為目標(biāo)端句子,ti為目標(biāo)端句子的第i個詞.
1.2.2 翻譯模型的獎勵
DL翻譯任務(wù)包含前向翻譯步驟和反向翻譯步驟,即可以將句子從蒙古語翻譯到漢語,反之亦然.由迭代知識精煉方法訓(xùn)練得到兩個初始NMT模型(本文中為基線Transformer或基線RNNSearch),接著采用真實的蒙漢雙語語料進(jìn)行DL.假設(shè)真實雙語語料中蒙古語語料WMO有NA個句子,漢語語料WZH有NB個句子,兩種語料需要對齊.定義P(·|S,θMO-ZH)和P(·|S,θZH-MO)是兩個NMT模型對句子S的翻譯概率,其中,θMO-ZH和θZH-MO是對應(yīng)方向上的模型參數(shù).如圖2所示,DL過程從WMO或WZH中的句子S開始,定義T作為中間翻譯輸出,再通過翻譯模型將中間翻譯T還原回S,將S的對數(shù)似然概率作為對偶置信度的獎勵r2:
(2)
通過簡單的線性組合將由語言模型產(chǎn)生的流利度獎勵r1和由翻譯模型產(chǎn)生的對偶置信度獎勵r2組合作為整體反饋獎勵,公式如下:
rfinal=λr1+(1-λ)r2.
(3)
其中λ是超參數(shù).
BOS和EOS分別表示初始狀態(tài)和終止?fàn)顟B(tài).圖2 DL過程(自下而上,從左至右)Fig.2 DL procedure (bottom to top,left to right)
本文通過將DL作為蒙漢NMT的主要訓(xùn)練方法來改進(jìn)翻譯模型.為獲得初始翻譯模型,利用1.1節(jié)中的回譯技術(shù)生成的偽語料和雙語語料,一起訓(xùn)練雙向機器翻譯基準(zhǔn)模型.但由于偽數(shù)據(jù)的質(zhì)量問題,單純的聯(lián)合訓(xùn)練會帶來大量的噪聲,為精煉模型的訓(xùn)練數(shù)據(jù),本文采用迭代知識精煉方法逐步細(xì)化模型性能.在每一個訓(xùn)練周期結(jié)束時增加一定比例的真實語料并且降低一定比例的偽數(shù)據(jù)來逐步細(xì)化基準(zhǔn)翻譯模型,直到偽雙語語料為0.這樣在擴充語料使模型學(xué)習(xí)到更多語言特征的同時,還減少了由于偽數(shù)據(jù)的質(zhì)量問題帶來的噪聲.
由于整體反饋獎勵可以視為S、T、P(·|S,θMO-ZH)和P(·|S,θZH-MO)的函數(shù).因此,本文通過策略梯度方法來優(yōu)化翻譯模型中的參數(shù),從而達(dá)到獎勵的最大化.在該訓(xùn)練方法中,首先基于P(·|S,θZH-MO)采樣出T,接著計算期望獎勵E[r]關(guān)于參數(shù)θMO-ZH和θZH-MO的梯度.根據(jù)策略梯度定理得到兩個方向上的訓(xùn)練梯度,具體如下:
?θMO-ZHE[r]=
E[rfinal?θMO-ZHlogP(T|S;θMO-ZH)],
?θZH-MOE[r]=
E[(1-λ)?θZH-MOlogP(S|T;θZH-MO)].
(4)
模型更新:
(5)
考慮到隨機采樣將會帶來非常大的方差,并且會導(dǎo)致機器翻譯中出現(xiàn)不合理的結(jié)果,本文針對梯度計算,使用束搜索方法來獲取更加合理的中間翻譯輸出,通過貪婪方法產(chǎn)生前K個高概率的中間翻譯輸出,然后使用束搜索的平均值來近似真實的梯度.
本文實驗數(shù)據(jù)共計約310萬語料(蒙古語和漢語各155萬),其中采用內(nèi)蒙古自治區(qū)蒙古文智能信息處理重點實驗室提供的各130萬蒙漢單語語料來訓(xùn)練兩個語言模型,采用第15屆全國機器翻譯大會(CCMT 2019)提供的近25萬的雙語平行語料用于翻譯模型的訓(xùn)練.CWMT2017dev作為驗證集,CWMT2017test作為測試集.為降低模型困惑度,上述數(shù)據(jù)均刪除了長度大于50的句子.本文中采用傳統(tǒng)的RNNSearch[1]和最新的Transformer[8]模型作為基線系統(tǒng).Transformer設(shè)置與文獻(xiàn)[8]完全相同.失活率(dropout)為0.1,詞嵌入維數(shù)為512,頭數(shù)設(shè)置為8.編碼器和解碼器均具有6層堆棧.使用通過平均最近20個檢查點獲得的單個模型,利用束搜索方法來對目標(biāo)標(biāo)記(token)進(jìn)行采樣,其中束大小為4且長度損失α= 0.6.使用Adam算法優(yōu)化,γ1,t=0.000 2并且γ2,t=0.02,超參數(shù)λ=0.005.本文中RNNSearch的編碼器-解碼器的隱藏層節(jié)點和詞向量維度均設(shè)為512,設(shè)置dropout為0,學(xué)習(xí)率和檢查點的設(shè)置和Transformer保持一致.考慮到實驗的硬環(huán)境和模型復(fù)雜度,用來構(gòu)建和訓(xùn)練語言模型的ELMo[9]含2層512個長短時記憶單元,詞嵌入維度設(shè)置為512.本文以句子級雙語互譯評估(BLEU)指標(biāo)[10]作為評測標(biāo)準(zhǔn).所有模型均在TensorFlow中實現(xiàn),實驗采用單核NVIDIA TITAN X顯卡進(jìn)行訓(xùn)練.當(dāng)模型對開發(fā)集的評估沒有任何改善時將停止訓(xùn)練.
本文首先在基線系統(tǒng)上對蒙古語和漢語分別進(jìn)行不同的預(yù)處理操作實驗,選取最優(yōu)的預(yù)處理方法訓(xùn)練DL NMT模型.在漢語端分別進(jìn)行分字、分詞、字節(jié)對編碼(BPE)[3]處理.在蒙古語端,由于蒙古語本身自帶天然分隔符,因此單純采用BPE處理.不同切分方法對翻譯性能的影響如表1所示.
表1 不同預(yù)處理方法的BLEU值Tab.1 BLEU values for different pre-processing methods
由表1可知,對蒙古語進(jìn)行BPE處理,對漢語進(jìn)行分詞+BPE處理時,翻譯效果最佳.通過分析發(fā)現(xiàn)將漢語分詞會產(chǎn)生數(shù)據(jù)稀疏的問題,影響翻譯模型的性能,而分字的形式會導(dǎo)致語料無法保留漢語詞所能包含的語義信息.在接下來的實驗中,本文均采用基線4的方法對語料進(jìn)行預(yù)處理.
為了驗證本文提出的不同組件的有效性,在基線模型RNNSearch和Transformer上做了一系列實驗,結(jié)果如表2所示.在Transformer上使用回譯技術(shù)擴充雙語語料后在蒙漢翻譯的BLEU值相較于未擴充語料提升了0.4個百分點,達(dá)到33.8%,在漢蒙翻譯的BLEU值提升0.3個百分點,在RNNSearch也顯示了同樣的趨勢,說明在低資源翻譯任務(wù)上使用數(shù)據(jù)增強方法擴充語料可以提升翻譯質(zhì)量.DL在本文方法中扮演重要的角色,相較于在傳統(tǒng)的RNNSearch,DL使蒙漢翻譯的BLEU值提升了1.7個百分點,將DL應(yīng)用于Transformer提升更多,達(dá)2.2個百分點.相較于監(jiān)督學(xué)習(xí)需要大規(guī)模雙語語料的局限性,DL這種半監(jiān)督學(xué)習(xí)范式打破了數(shù)據(jù)稀少的問題;同時相較于無監(jiān)督學(xué)習(xí)完全沒有對應(yīng)標(biāo)簽指導(dǎo)的缺陷,DL利用少量雙語平行語料來訓(xùn)練翻譯模型可以為模型提供正確性指導(dǎo),以此提升翻譯質(zhì)量.此外,兩種模型進(jìn)一步采用迭代知識精煉方法在蒙漢上分別提升1.0和1.2個百分點,在同時采用回譯DL和迭代知識精煉后也分別較基線系統(tǒng)提升2.7和3.4個百分點,分別達(dá)到31.2%和36.8%.實驗結(jié)果表明:如果單純的擴充語料而不考慮偽數(shù)據(jù)的噪聲問題,雖然也可以提升模型性能,但是效果不明顯;采用迭代知識精煉方法精煉模型,減少噪聲對模型的影響可以顯著提升模型性能.本實驗進(jìn)行了幾次典型實驗后選取每輪迭代增加0.1%的真實雙語語料同時降低0.1%的偽語料來訓(xùn)練模型.
表2 不同模型翻譯結(jié)果Tab.2 Translation results of different models
為了驗證本文方法在長句上的表現(xiàn),依照Bahadanau等[1]的做法將蒙漢任務(wù)的開發(fā)集數(shù)據(jù)和測試集數(shù)據(jù)按照句子長度進(jìn)行劃分.圖3展示了不同的句子長度的BLEU值:當(dāng)句子長度在10~20時,在Transformer上的BLEU值最高達(dá)到38.7%;隨著句子長度的進(jìn)一步擴大,模型的質(zhì)量則有一定下降,但總體維持在35%左右;在RNNSearch上也表現(xiàn)了同樣的趨勢.通過上述實驗可以看出,利用DL進(jìn)行訓(xùn)練的Dual-NMT模型無論在翻譯性能上還是在不同長度句子的翻譯質(zhì)量上,相比傳統(tǒng)的NMT模型都有所提高.上述結(jié)果表明,在少資源語料生成的弱翻譯器存在先天翻譯性能低的條件下,通過大規(guī)模單語語料的訓(xùn)練支持能夠進(jìn)一步提升模型的翻譯質(zhì)量.
圖3 不同長度的句子的BLEU值Fig.3 BLEU values over different lengths of sentences
本文針對蒙漢雙語語料稀缺導(dǎo)致模型過擬合問題,采用一種半監(jiān)督DL方法對蒙漢神經(jīng)翻譯建模.通過反饋流利度獎勵和對偶置信度獎勵來不斷地優(yōu)化模型性能.此外,本文還采用回譯方法生成大量偽雙語語料,一起參與到模型訓(xùn)練中,為減少偽語料中大量有害噪聲,提出迭代衰減方法精煉模型.雖然模型能夠在一定程度上提高翻譯質(zhì)量,但是依然存在一些未登錄、錯譯和漏譯等現(xiàn)象.因此未來的任務(wù)可以考慮從模型的重構(gòu)、弱翻譯器的結(jié)構(gòu)、訓(xùn)練參數(shù)的優(yōu)化以及語言模型的結(jié)構(gòu)優(yōu)化幾個方面著手改進(jìn)蒙漢NMT的翻譯性能.充分實現(xiàn)兩端語料語義特征的學(xué)習(xí)和表示,同時在詞向量的處理上進(jìn)一步考慮語言的自身特性和詞性特點,以達(dá)到預(yù)期的翻譯效果.