摘要:基于神經機器翻譯模型Transformer,提出一種融合數據增強技術和多樣化解碼策略的方法來提高機器翻譯的性能.首先,對訓練語料進行預處理和泛化,提高語料質量并緩解詞匯稀疏的現象;然后,基于數據增強技術使用單語句子構造偽雙語數據,擴充雙語平行語料以增強模型;最后,在解碼階段融合檢查點平均、模型集成、重打分等策略以提高譯文質量.第16屆全國機器翻譯大會(CCMT2020)中英新聞領域翻譯任務的實驗結果顯示,改進后的方法較基線系統的雙語互譯評估(BLEU)值提升了4.89個百分點.
本文源自張一鳴; 劉俊鵬; 宋鼎新; 黃德根, 廈門大學學報(自然科學版) 發表時間:2021-06-21
關鍵詞:神經機器翻譯;數據增強;多樣化解碼
近年來,隨著端到端結構[1]的提出,神經機器翻譯獲得了迅速發展.早期的神經機器翻譯采用循環神經網絡對句子建模,將源語言的句子壓縮成一個向量供譯文生成使用;但傳統的循環神經網絡在訓練時容易發生梯度爆炸和梯度消失的問題[2],無法有效地傳遞長距離的信息,因此翻譯效果較差.為此,長短期記憶網絡[3]和門循環單元[4]的引入能更好地捕捉長距離依賴,顯著改善了神經機器翻譯系統的性能,從而超越了統計機器翻譯方法[5-6].然而,考慮到循環神經網絡訓練的不穩定性以及串行執行的低效率,一些高效并行的網絡結構被相繼提出,其中應用最廣泛的是基于卷積神經網絡的ConvS2S模型[7]和基于自注意力機制的Transformer模型[8].相比之下,Transformer模型的翻譯性能更加優異,目前已成為機器翻譯領域的主流模型.但受限于詞表大小和雙語語料規模,神經機器翻譯往往在實體翻譯和模型泛化性上表現不佳;同時,解碼階段采用“最佳模型”進行預測的方式可能無法獲得全局最優的譯文結果.
面向第16屆全國機器翻譯大會(CCMT2020)中英新聞領域的機器翻譯任務,本文主要從以下3個方面改進上述問題:1)數據泛化.基于規則識別匹配和外部資源對時間表達式、數字、人名等實體進行泛化.
2)數據增強.使用源端單語句子構造偽雙語句對,通過長度比、詞對齊等篩選條件對偽語料進行過濾,然后擴充到雙語平行語料中提升翻譯性能.3)多樣化解碼策略.調整長度懲罰因子、束搜索寬度參數,嘗試用不同的方式結合檢查點平均和模型集成來進行解碼,并以雙語互譯評估(BLEU)值作為評價標準對多個候選譯文進行重打分,得到最優譯文.
1數據泛化
1.1語料預處理
實驗使用的數據集均來自CCMT2020公開的語料,包括CCMT中英新聞領域的雙語平行語料和中文單語語料XMU-CWMT2017.其中,雙語句對數量約為902萬,中文單語句子數量約為500萬.
首先,為了提高數據質量,在訓練前對上述語料進行過濾處理,包括:過濾含有亂碼的句子,將轉義字符替換為對應的符號,將全角符號統一轉換為半角格式,去除重復的句子.其次,為緩解詞匯稀疏的現象,對語料進行泛化處理,詳見1.2節.之后使用NiuTrans[9]中提供的分詞工具對中英文進行分詞,并篩選保留中英文句子長度比在0.4~1.6范圍內的句子.最后,為了精簡詞表,更好地解決集外詞的問題,采用Sennrich等[10]提出的字節對編碼(bytepairencoding,BPE)分別將中英文詞語切分成更小粒度的子詞,翻譯后再進行恢復.
1.2語料泛化處理
新聞領域的語料中常包含著大量的命名實體,如人名、地名和機構名等,這些命名實體出現的次數較多,但重復率不高,尤其是人名.為了緩解詞匯稀疏的現象,本研究對語料進行泛化處理[11].對訓練語料進行人名泛化,在測試階段對中文單語進行人名、地名和機構名的泛化.同時,對時間表達式、數字等特殊表達也進行了泛化.采用基于規則的方法對數字、日期和時間表達式進行識別和匹配,然后用“$number”、“$date”和“$time”標簽對匹配項進行替換.在一個句子中通常存在著多個同類泛化成分,為了加以區分并降低恢復難度,在標簽中添加不同的數字編號進行區分,即“$number_i”、“$date_i”、“$time_i”(i=0,1,…,n).采用實驗室內部開發的中文實體識別工具和StanfordCoreNLP開源工具(http:∥nlp.stanford.edu/software/stanford-english-corenlp-2018-10-05-models.jar)分別對中英文實體進行識別.然后,基于中英文人名詞典對人名進行識別匹配.初步匹配后,根據中文人名常使用漢語拼音作為英文翻譯這一特點,綜合拼音模糊匹配以及中英文人名首字母音譯規律對人名進行再次匹配.用“$name”標簽對匹配項進行替換,同樣加數字編號進行區分,即“$name_i”(i=0,1,…,n).受限于外部資源,僅在測試階段對中文單語增加了地名和機構名的泛化.通過訓練集的詞頻統計,使用中國省份名稱的中英文翻譯作為標簽對兩類實體進行泛化,如“北京-Beijing”和“天津-Tianjin”等.
數據泛化階段,雙語語料的泛化需要保證中英兩側泛化標簽的一致性,若存在單側識別不匹配的情況,則保持原有形式不作處理;單語語料的泛化則需要對所有匹配項進行泛化處理.由于在測試階段對單語進行了泛化處理,所以解碼后的譯文中包含泛化標簽,根據標簽對應關系對泛化部分進行恢復后才能得到最終譯文.對于數字、日期和時間表達式來說,統計常用中英文表達的轉換規律,根據這些規律編寫固定的翻譯規則進行恢復;對于人名、地名和機構名來說,使用外部詞典進行還原.對人名來說,若詞典中無匹配結果,則使用中文人名的拼音作為英文翻譯結果.
2數據增強
為了更好地利用單語語料,Sennrich等[12]提出了一種利用目標端的單語數據生成偽雙語句對的數據增強技術,即反向翻譯技術,可以有效擴充訓練語料,提升翻譯質量.Zhang等[13]提出了利用源端單語句子的數據增強方法,同樣可以有效地增強雙語模型.在此基礎上,采用正向翻譯技術來構造偽雙語句對,以此來增強雙語模型.數據增強的總體流程如圖1所示.
2.1偽雙語語料的構建
為了提高偽雙語句對的質量,需要對中文單語語料進行額外的過濾處理,包括:去除包含特殊符號的句子,去除字符長度小于11且中文字符占比小于0.5的句子,以“;”和“。”作為切分點對長句進行切割.
過濾后得到質量相對較好的中文單語語料.利用事先訓練的一個翻譯性能較好的正向翻譯模型將該中文單語語料翻譯成英文平行語料,進而共同構成初始偽雙語語料.
2.2偽雙語語料過濾
為了保證偽雙語語料的質量,使用長度比和詞對齊兩個約束對生成的偽雙語語料進行過濾:首先,將長度比限定在0.4~1.6的范圍內,剔除句子長度差距過大的句對以減少干擾;其次,使用GIZA++工具對偽雙語句對進行詞對齊,去掉詞對齊比率過低的句子.過濾后,將偽雙語語料擴充到雙語平行語料中形成新的訓練集.融合后訓練集中包含的雙語平行語料和偽雙語語料句子數分別為670萬和680萬,其中關于雙語平行語料和偽雙語語料的統計均為過濾之后實際用于訓練的數量,在此基礎上訓練數據增強后的中英神經翻譯模型.
3解碼策略
實驗融合檢查點平均[14]、模型集成、重打分方法在解碼階段提高譯文質量.下面分別對這3個方面進行介紹.
1)檢查點平均.檢查點平均是指將同一模型在不同時刻保存的參數進行平均.保存的參數通常選擇模型基本收斂時對應的最后N個時刻的參數,防止引入其他噪聲.以同等的權重對N個檢查點的參數進行平均,得到魯棒性更強的模型參數
2)模型集成.模型集成是利用多個機器翻譯系統協同進行解碼的方法,在神經機器翻譯領域有著廣泛的應用[14-15].集成解碼使用的模型可以使用同構或者異構的系統,一般來說結構和初始化均不同的模型通常更具有差異性,能夠帶來更大的提升.
3)重打分.解碼階段,同一個源句子可以通過調整長度懲罰因子和束搜索寬度參數設置的方式生成多個候選譯文.進一步實驗發現,對于不同的源句子而言,最佳候選翻譯往往對應不同的參數設置.因此,使用單一參數設置解碼得到的譯文結果往往無法達到最優.為此,實驗中使用句子級別的BLEU值作為評分標準,通過重打分選取多個候選譯文結果中得分最高的句子作為最終輸出.
實驗采用相同的驗證集,通過調整訓練語料規模以及隨機初始化等方式訓練了k個英文到中文的翻譯模型M1,M2,…,Mk以用于重打分.當輸入一個中文源句子S進行解碼時,首先通過調整參數的方式生成n個候選譯文,形成候選列表C.然后,選取C中的一個候選譯文Ci,使用M1,M2,…,Mk對其進行反向解碼,將其重新翻譯成多個中文句子L1,L2,…,Lk.分別計算L1,L2,…,Lk與S的BLEU值,得到V1,…,Vk.以模型M1,M2,…,Mk在訓練階段驗證集上獲得的最高BLEU值作為各自的權重W1,…,Wk,通過加權求和得到譯文句子Ci的評價分數Si.重復上述操作,循環n次后得到與候選列表C相對應的評價分數列表.最后,對比n個候選譯文的評價分數,從C中選擇得分最高的候選譯文T作為最終輸出.
4實驗結果
4.1實驗參數
本實驗使用開源框架THUMT中提供的Transformer模型作為基線系統,實驗參數如下:編碼器與解碼器的層數均為6層,詞向量與隱層狀態維度均為512,前饋神經網絡中的隱層狀態維度為2048,多頭注意力機制使用8個頭.訓練階段中的每個批次(batch)包含6250個詞,模型訓練20萬步,每2000步保存一次模型參數(檢查點),并在訓練過程中保存最優的10個檢查點.損失函數使用極大似然估計,并使用Adam梯度優化算法,初始學習率為1.0,預熱學習步數為4000.訓練集雙語語料使用BPE算法進行切分,中英文詞表大小均限制為3.2萬,且兩者不共享詞表.解碼階段,使用集束搜索算法和長度懲罰因子對模型進行調優.實驗使用兩個NVIDIATITANXpGPU進行訓練.
模型方面,首先通過隨機初始化參數的方式訓練了4個增強的中英模型,然后選取每個模型中BLEU值得分最高的3個檢查點進行檢查點平均,最后對4個平均模型進行模型集成來完成最后的解碼.在重打分階段引入了4組不同參數設置下生成的譯文結果作為候選項,訓練了3個不同的英中模型用于譯文結果的重打分.
4.2實驗結果與分析
系統在驗證集newstest2019上的結果如表1所示,評測指標采用大小寫不敏感的BLEU值,使用multi-BLEU作為評測工具.
從表1可以看出,在基線系統(系統0)上逐步加入正向翻譯、檢查點平均、模型集成、重打分構成系統1~4,這些方法對系統BLEU值的提高均有幫助,總體可提高4.89個百分點.其中,正向翻譯技術提升的效果較為顯著,相較于基線系統可以提高3.48個百分點,說明單語數據的引入可顯著提升機器翻譯的性能.
同時,在實驗過程中對以下3個方面進行分析:
1)正向翻譯分析
在數據增強實驗階段,使用長度比和詞對齊兩個約束條件對生成的偽雙語句對進行過濾.為了探索語料過濾手段的有效性,分別將過濾前和過濾后的偽雙語語料與雙語平行語料融合生成不同的訓練集,然后各自訓練生成不同的中英翻譯模型.對比分析兩個模型在驗證集上的表現來檢驗語料過濾的有效性,結果如表2所示.可以看出:偽平行語料的加入有助于雙語模型的提升;同時,偽雙語語料的過濾能有效地消除語料中的噪聲,進一步提高語料質量.
2)長度懲罰因子分析
在正向翻譯實驗的基礎上探索了不同的長度懲罰因子α對實驗的影響.首先,將束搜索大小設置為12,然后調整長度懲罰因子的值來進行實驗,結果如表3所示.隨著長度懲罰因子的增加,BLEU值呈現先增后減的趨勢,說明在一定范圍內調整長度懲罰因子有助于BLEU值的提高,而過大的長度懲罰因子可能會導致束搜索無法選擇正確的結果.
3)束搜索大小分析和重打分分析
(a)束搜索大小分析實驗探索了不同的束搜索大小對實驗的影響.將長度懲罰因子α設置為1.6,通過調整不同的束搜索大小來進行對比實驗,結果如表4所示:隨著束搜索大小的增加,BLEU值有所提高.對比束搜索大小設置為12和15時得到的譯文結果,可以發現:束搜索大小設置為15時整體BLEU值雖然有所提高,但是會使部分句子的BLEU值變低,即兩種設置下存在不同的高分句子,使得整體的譯文結果無法達到最優.進一步分析發現,當束搜索大小從12增加到15時,雖然會使驗證集中194個譯文句子的BLEU值上升,但也使得121個譯文句子的BLEU值下降.為此本文采用重打分進一步提高整體的翻譯性能.
(b)重打分分析由于條件限制,實驗過程中只對束搜索大小為12和15的兩種情況進行了重打分分析.將二者各自得分最高的譯文句子綜合在一起進行重打分,BLEU值為29.95%,可見綜合不同參數設置下BLEU值得分最高的句子生成的譯文結果比單一參數設置下譯文結果的BLEU值有所提升,可以緩解部分句子在參數調整階段得分降低的情況,提升整體的翻譯質量.
5結論
面向CCMT2020中英新聞領域機器翻譯任務,本研究提出了一種融合數據增強技術和多樣化解碼策略的方法來提高機器翻譯的性能.使用Transformer作為基線系統,從數據處理、數據增強、多樣化解碼策略3個方面進行了改進.實驗融合了包括正向翻譯、檢查點平均、模型集成、重打分等多種技術來提高翻譯性能.實驗結果顯示,這些方法能夠明顯提高譯文質量,且改進后的系統較基線系統的BLEU值提升了4.89個百分點.
在下一步的工作中,擬擴充語料的規模并結合更深層次的模型配置以提高雙語模型的整體性能,同時擬通過迭代回譯等方式更好地利用單語數據增強雙語模型,并嘗試在重打分階段融入更多的特征來篩選譯文結果.
論文指導 >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >