劉志東,李軍輝,貢正仙
(蘇州大學(xué)計算機科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006)
和統(tǒng)計機器翻譯(statistical machine translation,SMT)[1]相比,神經(jīng)機器翻譯(neural machine translation,NMT)[2-4]僅用一個神經(jīng)網(wǎng)絡(luò)就可以實現(xiàn)源語言到目標(biāo)語言的翻譯, 省去了搭建特征工程的困擾,顯著提高了機器翻譯的質(zhì)量.NMT模型通常由一個編碼器和一個解碼器構(gòu)成,其中編碼器將源端句子中的每個單詞根據(jù)其上下文編碼成含上下文信息的隱藏狀態(tài);基于其隱藏狀態(tài),解碼器按從左到右的順序生成目標(biāo)端單詞.
神經(jīng)網(wǎng)絡(luò)本質(zhì)是一種數(shù)據(jù)驅(qū)動的方法,大量的數(shù)據(jù)有利于神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到更合理的參數(shù).特別是對于數(shù)據(jù)規(guī)模受限的小語種來說,通過增加訓(xùn)練數(shù)據(jù)帶來的性能提升往往效果更加明顯.因此,如何更多、更好地生成大量平行數(shù)據(jù)成為許多研究者日益關(guān)注的問題.
作為一種增加訓(xùn)練數(shù)據(jù)的常用方法,數(shù)據(jù)擴充技術(shù)已經(jīng)被廣泛應(yīng)用于計算機視覺[5]和自然語言處理[6-8]領(lǐng)域.在計算機視覺領(lǐng)域,主要通過對圖片進行翻轉(zhuǎn)和隨機剪裁操作實現(xiàn)圖像數(shù)據(jù)的擴充.在自然語言處理領(lǐng)域,數(shù)據(jù)擴充的思路總體上主要分為兩大類:1) 句子級別數(shù)據(jù)擴充,從句子級別生成更多高質(zhì)量的訓(xùn)練樣本,提高模型的泛化能力.2) 單詞級別數(shù)據(jù)擴充,對句子中的單詞進行隨機交換、丟棄和替換等操作,得到更多帶有噪聲的數(shù)據(jù),提高模型的魯棒性.
作為一種句子級數(shù)據(jù)擴充的方法,反向翻譯被應(yīng)用在很多無監(jiān)督機器翻譯模型上,取得了不錯的效果.Sennrich等[7]提出用反向翻譯技術(shù)構(gòu)造偽平行句對.該方法首先在已有平行語料的基礎(chǔ)上訓(xùn)練一個反向翻譯的模型,然后利用這個反向翻譯模型來翻譯提前收集到的大規(guī)模目標(biāo)端單語語料,獲得偽平行句對,最后將偽平行句對和人工標(biāo)注平行句對合在一起進行模型訓(xùn)練.然而,反向翻譯技術(shù)需要額外訓(xùn)練一個反向的翻譯模型,這無疑會增大運算開銷.此外,收集到的單語語料往往存在噪聲,對帶有噪聲的語句進行反向翻譯會進一步降低偽平行數(shù)據(jù)的質(zhì)量,從而影響翻譯模型的性能.He等[9]發(fā)現(xiàn)任何機器翻譯任務(wù)都有一個對偶任務(wù),能夠使得翻譯系統(tǒng)自動地從無標(biāo)注數(shù)據(jù)中進行學(xué)習(xí).原任務(wù)和對偶任務(wù)能夠形成一個閉環(huán),即使沒有人類標(biāo)注者的參與,也能夠生成含信息量的反饋信號用以訓(xùn)練翻譯模型.
在單詞級別數(shù)據(jù)擴充方面,Iyyer等[6]在求解一句話的平均詞向量前,隨機去除文本中的某些單詞.Artetxe等[8]設(shè)置一個固定長度的窗口,在窗口內(nèi)隨機和相鄰的單詞進行替換.Fadaee等[10]利用在大規(guī)模單語語料上訓(xùn)練得到語言模型,尋找可以被低頻詞匯替換的高頻詞匯,通過這種方法大大提高低頻詞的出現(xiàn)頻率,緩解數(shù)據(jù)相對稀疏的問題.相較于直接替換為某個確定的單詞,Gao等[11]提出一種融合多個單詞信息的方法.該方法首先訓(xùn)練一個語言模型,把語言模型預(yù)測下一個單詞的概率分布作為每個候選單詞嵌入表示的權(quán)重,然后將線性組合詞表中每個單詞的嵌入表示作為要替換的單詞.
為了解決數(shù)據(jù)缺乏導(dǎo)致的NMT泛化能力不足的問題,同時避免反向翻譯技術(shù)中單獨訓(xùn)練反向模型的開銷,受預(yù)訓(xùn)練模型BERT(bidirectional encoder representations from Transformer)[12]啟發(fā),本研究提出了一種簡單有效且可以對原始平行數(shù)據(jù)的目標(biāo)端進行動態(tài)擴充的方法.該方法在每次加載目標(biāo)端句子時按照一定策略對句子中單詞進行隨機噪聲化,從而提高目標(biāo)端語言模型對句子的表達(dá)能力.具體地,在加載一批數(shù)據(jù)時,隨機選擇目標(biāo)端句子中的一些單詞,并將其進行噪聲化,然后約束編碼器預(yù)測出被覆蓋的單詞.如果在整個訓(xùn)練過程中同樣的一批數(shù)據(jù)被加載了n次,就等效于將訓(xùn)練數(shù)據(jù)擴充了n倍.通過約束編碼器還原原始語句,可以使自身學(xué)到更深層的語言表征能力.
NMT中的編碼器首先將源句子集合x={x1,x2,…,xN}映射成詞向量e(x)=[e(x1),e(x2),…,e(xN)],然后把這N個詞向量編碼成隱藏狀態(tài)h.根據(jù)隱藏狀態(tài)h和目標(biāo)端句子T個詞的集合y={y1,y2,…,yT},解碼器從左到右逐個生成目標(biāo)端單詞的概率,得到y(tǒng)的概率:
(1)
其中:θmt={θenc,θdec},為整個模型的參數(shù);θenc和θdec分別為編碼器的解碼器的參數(shù);y
(2)
和自編碼器相比,降噪自編碼器[15]可以學(xué)習(xí)疊加噪聲的原始數(shù)據(jù),而其學(xué)習(xí)到的特征和從未疊加噪聲的數(shù)據(jù)學(xué)習(xí)到的特征幾乎一致,因此降噪自編碼器具有更強的魯棒性;同時降噪自編碼器可以避免自編碼器簡單地保留原始輸入數(shù)據(jù)的信息.
圖1 降噪自編碼器的訓(xùn)練過程Fig.1 The training process of denoising auto-encoder
L(x|x′)=-logPdec(x|fen(x′)).
(3)
其中,fen(x′)表示x′輸入編碼器后的輸出,Pdec(x|fen(x′))表示編碼器輸入為x′時,解碼器輸出x的概率.
對于NMT,擴充訓(xùn)練數(shù)據(jù)的方法除了需要大規(guī)模的單語語料外,往往還需要訓(xùn)練一個輔助的模型.而對于資源缺乏的語言來說,引入質(zhì)量較低的單語語料往往會損害翻譯模型的質(zhì)量.針對上述問題,本研究提出一種在不引入外部語料的情況下實現(xiàn)數(shù)據(jù)動態(tài)擴充的方法.該方法首先對輸入的目標(biāo)端語句按照一定策略隨機進行噪聲化,然后利用編碼器將受損的句子還原,以提高編碼器對目標(biāo)單詞的預(yù)測能力,實現(xiàn)翻譯性能的整體提升.如圖2所示,和基礎(chǔ)的NMT系統(tǒng)相比,本方法僅增加了一個隨機添加噪聲的模塊,對于模型的其余部分并沒有改動,可以方便應(yīng)用于其他序列到序列模型.
圖2 數(shù)據(jù)動態(tài)擴充的NMT模型的整體框架Fig.2 The architecture of NMT model with dynamic data augmentation
假設(shè)目標(biāo)端的輸入序列為: 中國 消費者 信心 支持 中國 經(jīng)濟 增長.在構(gòu)造帶有噪聲的輸入序列時分別選擇第二、第五和最后一個單詞(消費者、中國、增長)進行以上3種策略的替換,示例如表1所示.
表1 噪聲替換策略示例Tab.1 Examples of noise replacement strategy
采用以上3種策略后,得到的最終噪聲輸入為:中國[MASK] 信心 支持 世界 經(jīng)濟 增長.
解碼端重構(gòu)目標(biāo)序列的過程可以認(rèn)為是最大化條件概率P(y|h,y′;θdec),如式(4)所示.
(4)
(5)
本研究對訓(xùn)練數(shù)據(jù)的源語句和目標(biāo)語句分別進行靜態(tài)和動態(tài)擴充,使用multi-bleu.perl(https:∥github.com/moses-smt/mosesdecoder/blob/master/scripts/generic/multi-bleu.perl)腳本評測翻譯性能.
為了驗證本研究提出的動態(tài)數(shù)據(jù)擴充技術(shù),分別在WMT14英德(http:∥www.statmt.org/wmt14/translation-task.html)和NIST中英(https:∥www.nist.gov/srd)雙語平行語料上實驗.
1) WMT14英德翻譯:訓(xùn)練集共包含450萬英語到德語平行語料,由Europarl v7、Common Crawl Corpus和News Commentary數(shù)據(jù)集構(gòu)成.此外,實驗使用newstest2013和newstest2014分別作為開發(fā)集和測試集.
2) NIST中英翻譯:訓(xùn)練語料使用的是語言數(shù)據(jù)聯(lián)盟(Linguistic Data Consortium,LDC)提供的125萬對中英雙語平行語料.實驗使用NIST06作為開發(fā)集,NIST02、NIST03、NIST04、NIST05和NIST08作為測試集.
實驗去除兩個語言對中訓(xùn)練集長度大于90的平行句對,并使用字節(jié)對編碼(byte pair encoding,BPE)[16]將單詞切分成更小的單元.其中,對英德翻譯,在英德語料上聯(lián)合BPE處理并設(shè)置操作次數(shù)為3;對中英翻譯,分別在中文和英文端使用BPE處理并設(shè)置操作數(shù)為3和2.處理后的各數(shù)據(jù)集樣本數(shù)如表2所示.
表2 數(shù)據(jù)集統(tǒng)計Tab.2 Dataset statistics
本實驗使用開源OpenNMT[17]實現(xiàn)的Transformer(https:∥github.com/OpenNMT/OpenNMT-py)和Bahdanau等[3]提出的RNNSearch模型作為基準(zhǔn)模型.在預(yù)處理時,共享英德的源端與目標(biāo)端詞表,詞表大小為33 663;中英語料不進行詞表共享,得到的中英文詞表大小分別為30 587和19 877.
1) Transformer模型設(shè)置.訓(xùn)練時,英德和中英模型設(shè)置相同的參數(shù)主要有:編碼器與解碼器的層數(shù)均為6層,多頭注意力機制均為8個頭,批處理大小為4 096,詞向量、編碼器和解碼器的隱藏層維度均為512,前饋神經(jīng)網(wǎng)絡(luò)的維度為2 048,失活率[18]為0.1.使用Glorot方法初始化模型參數(shù),其他參數(shù)均使用默認(rèn)配置.表3給出了英德和中英實驗不同的參數(shù)設(shè)置.
表3 參數(shù)設(shè)置Tab.3 Parameter setting
實驗?zāi)P头謩e在一塊GTX 1080Ti顯卡上訓(xùn)練.在網(wǎng)絡(luò)訓(xùn)練過程中,采用Adam算法進行參數(shù)更新,其參數(shù)β1為0.9,β2為0.998,為10-9,訓(xùn)練過程中每隔5×103步保存一次模型.在測試過程中,使用束搜索算法生成最終譯文,束搜索的大小設(shè)置為5,長度懲罰因子α為0.6,選擇開發(fā)集性能最高的模型作為實驗最終模型.
2) RNNSearch模型設(shè)置.英德和中英模型采用相同的實驗設(shè)置,具體為:編碼器和解碼器的維度為1 000,批處理大小為80,設(shè)置源端目標(biāo)端最長單詞序列為50,失活率[18]為0.3,訓(xùn)練過程中學(xué)習(xí)率為0.000 5,梯度裁剪的大小為1.實驗?zāi)P头謩e在一塊GTX 1080Ti顯卡上訓(xùn)練6輪.在測試過程中,使用束搜索算法生成最終譯文,設(shè)置束搜索的大小為10,在開發(fā)集上選擇性能最高的模型作為實驗的測試模型.
為了驗證本研究提出的動態(tài)數(shù)據(jù)擴充技術(shù)的有效性,分別在Transformer和RNNSearch基準(zhǔn)模型上進行以下幾組實驗的對比分析:在Transformer模型上對目標(biāo)端序列靜態(tài)擴充(tgt-SA),即對同樣一批數(shù)據(jù)即使加載多次也采取同樣的覆蓋方式;在加載一批數(shù)據(jù)時對源端句子(src-DA)和目標(biāo)端句子進行動態(tài)擴充(tgt-DA),即對同樣一批數(shù)據(jù)每次加載都采用不同的覆蓋方式.由于本研究主要為驗證目標(biāo)端動態(tài)數(shù)據(jù)擴充方法技術(shù)的有效性,所以在RNNSearch模型上僅對比tgt-DA和RNNSearch基準(zhǔn)模型的性能.
3.3.1 Transformer中英翻譯
對所提出的方法,本研究在中英數(shù)據(jù)集上分別進行3組實驗:靜態(tài)擴充的方法僅用于目標(biāo)端(tgt-SA)、動態(tài)擴充的方法分別作用于源端和目標(biāo)端句子(src-DA,tgt-DA).表4給出了中英翻譯的實驗結(jié)果,可以看出:相較于基本的Transformer系統(tǒng),單純對目標(biāo)端輸入序列靜態(tài)擴充會帶來雙語互譯評估(BLEU)值的微弱提升(0.25個百分點),而對目標(biāo)序列動態(tài)擴充的方法可以在NIST02~NIST08數(shù)據(jù)集上取得持續(xù)的提升,BLEU值平均提高0.66個百分點.這驗證了動態(tài)數(shù)據(jù)擴充技術(shù)的有效性.然而將動態(tài)擴充的方法作用于源端語句時,BLEU值反而降低了0.11個百分點.
表4 NIST數(shù)據(jù)集上靜態(tài)擴充和動態(tài)擴充的BLEU值對比Tab.4 Comparison of BLEU values between static and dynamic data augmentation on NIST datasets %
由表中數(shù)據(jù)可以得出以下結(jié)論:
1) 在中英翻譯實驗上:對于目標(biāo)單詞序列,靜態(tài)擴充方法和動態(tài)擴充方法都會提高編碼器預(yù)測單詞的能力;并且動態(tài)擴充技術(shù)增加了目標(biāo)句子的多樣性,比靜態(tài)擴充可以帶來更高質(zhì)量的翻譯譯文.
2) 對源語言動態(tài)擴充時,編碼器得到的隱藏層狀態(tài)會丟失部分語義信息,因此不僅不會提升模型的翻譯性能反而會降低譯文質(zhì)量.
3.3.2 Transformer英德翻譯
表5給出了英德翻譯實驗結(jié)果,可以看出:Transformer基準(zhǔn)系統(tǒng)在測試集上的BLEU值為27.05%,對目標(biāo)端語句進行靜態(tài)擴充時,BLEU值為26.96%,BLEU值不僅沒有提升反而降低了0.09個百分點;然而對于目標(biāo)端語句進行動態(tài)擴充可以獲得顯著的性能提升,BLEU值為27.74%,提高了0.69 個百分點.
表5 WMT14數(shù)據(jù)集上靜態(tài)擴充和動態(tài)擴充的BLEU值Tab.5 BLEU values of static and dynamic dataaugmentation on WMT14 datasets %
根據(jù)表5的實驗結(jié)果,在英德翻譯系統(tǒng)上可以得到如下結(jié)論:
1) 對目標(biāo)端語句進行靜態(tài)數(shù)據(jù)擴充可能會損害模型的翻譯性能.然而在中英翻譯實驗上,靜態(tài)數(shù)據(jù)擴充能夠獲得有限提升.由此可見,靜態(tài)數(shù)據(jù)擴充方法帶來的翻譯性能可能會受到語系的影響.
2) 本研究提出的動態(tài)擴充的方法應(yīng)用于源端語句和目標(biāo)端語句時都會提升模型的翻譯性能,并且應(yīng)用于目標(biāo)端時提升的效果更為明顯.
3.3.3 RNNSearch動態(tài)數(shù)據(jù)擴充
為了進一步論證本研究提出方法的有效性,將目標(biāo)端動態(tài)數(shù)據(jù)擴充技術(shù)應(yīng)用在RNNSearch[3]機器翻譯模型上.表6給出了RNNSearch模型上的中英和英德實驗結(jié)果,可以看出:動態(tài)數(shù)據(jù)擴充方法在英德翻譯任務(wù)上提高了0.51個百分點,在中英翻譯任務(wù)上平均提高了0.41個百分點.由此可以得出無論是在當(dāng)前的主流翻譯模型Transformer上,還是在RNNSearch上,本研究提出的動態(tài)數(shù)據(jù)擴充方法雖然簡單,但是都能夠帶來翻譯性能的提高.
表6 動態(tài)數(shù)據(jù)擴充技術(shù)在RNNSearch上的BLEU值Tab.6 BLEU values of dynamic data augmentation on RNNSearch %
3.3.4 計算開銷對比
本研究提出的目標(biāo)端語句動態(tài)擴充方法不需要改變模型的基本結(jié)構(gòu),因此并沒有引入額外的模型參數(shù),和基線系統(tǒng)相比訓(xùn)練產(chǎn)生的額外開銷僅花費在構(gòu)造目標(biāo)端噪聲輸入上;當(dāng)使用反向翻譯技術(shù)時,在模型參數(shù)和訓(xùn)練數(shù)據(jù)不變的情況下需要額外訓(xùn)練一個反向的模型,因此參數(shù)量和訓(xùn)練時間開銷均為基線系統(tǒng)的2.0倍,如表7所示.
表7 模型參數(shù)及訓(xùn)練速度對比Tab.7 Comparison of model parameters and training speed
3.3.5 添加噪聲分析
由于本研究提出的動態(tài)數(shù)據(jù)擴充方法是對目標(biāo)端序列進行修改,所以可以視為一種添加噪聲的方法.為了探究動態(tài)數(shù)據(jù)擴充方法和對單詞進行噪聲化方法的關(guān)系,本研究使用Transformer翻譯模型在英德和中英數(shù)據(jù)集上做如下對比實驗:對目標(biāo)端句子進行動態(tài)擴充(tgt-DA)和對目標(biāo)端句子中每個單詞的詞嵌入表示添加均值為0、方差為0.01的高斯噪聲(tgt-GN).
表8給出了在Transformer模型上不同添加噪聲方法的實驗結(jié)果,可以看出:對目標(biāo)端單詞的詞嵌入表示添加噪聲時相較于基準(zhǔn)系統(tǒng)可以帶來微弱的性能提升,英德和中英翻譯任務(wù)上BLEU值都提高了0.02 個百分點.雖然本研究提出的動態(tài)數(shù)據(jù)擴充方法也可以看作是一種動態(tài)添加噪聲的方法,但是在英德和中英翻譯任務(wù)上能夠帶來更多提升,BLEU值分別提高了0.69 和0.66個百分點.
表8 tgt-DA和tgt-GN的BLEU值對比Tab.8 Comparison of BLEU values between tgt-DA and tgt-GN %
本研究針對NMT面臨訓(xùn)練語料不足的問題,提出了一種新的數(shù)據(jù)擴充方法.該方法在每次加載一批訓(xùn)練數(shù)據(jù)時,通過不同的覆蓋、替換等操作隨機修改句子中的單詞,得到新的目標(biāo)句子,然后和源端語句構(gòu)成新的平行句對,對翻譯模型進行訓(xùn)練;通過約束解碼器重構(gòu)原始目標(biāo)語句,提高模型對抗噪聲的能力.
在英德和中英翻譯的實驗結(jié)果表明,本研究提出的動態(tài)數(shù)據(jù)擴充技術(shù)可以有效提高NMT模型的魯棒性,相對于基準(zhǔn)系統(tǒng)BLEU值分別提高了0.69和0.66 個百分點.
然而,該方法也存在一個缺點,即隨機將一些單詞替換為其他單詞可能會損壞句子的語義信息,甚至?xí)耆嵉咕渥拥恼Z義信息.因此,在未來的工作中,將考慮加入句子的句法信息,在擴充數(shù)據(jù)的同時盡可能保持句子的本來信息,進一步提升機器翻譯的質(zhì)量.