尤叢叢,高盛祥,余正濤,毛存禮,潘潤海
(1.昆明理工大學信息工程與自動化學院,云南 昆明 650500;2.昆明理工大學云南省人工智能重點實驗室,云南 昆明 650500)
由于缺乏大型平行語料庫訓練神經(jīng)機器翻譯系統(tǒng),導致低資源語言的機器翻譯非常困難[1,2]。在計算機視覺領(lǐng)域,數(shù)據(jù)增強被廣泛應(yīng)用于增強模型的魯棒性[3,4]。盡管數(shù)據(jù)增強已成為圖像處理訓練深層網(wǎng)絡(luò)的標準技術(shù),但它在機器翻譯領(lǐng)域并不常見[5,6]。目前在機器翻譯領(lǐng)域,主要的數(shù)據(jù)增強方法有2類,一類是詞匯替換,一類是回譯[7]。
詞匯替換方法主要利用一定規(guī)模的雙語平行語料,通過源語言和目標語言中的詞進行替換獲得擴展平行語料,是當前較為流行的增強方法。Fadaee等人[8]利用語言模型在目標語言端的句子中找到可以被低頻詞替換的高頻詞的位置并進行詞匯替換,然后利用雙語詞典完成源語言端對應(yīng)的詞匯替換。通過這種簡單的詞匯替換,提高了訓練語料中低頻詞的出現(xiàn)頻次,從而增強神經(jīng)機器翻譯模型對低頻詞的翻譯能力。作者在英法數(shù)據(jù)集上獲得的實驗結(jié)果的BLEU值比基準線高2.9,比回譯高3.2。蔡子龍等人[9]提出了一個簡單有效的增強方法。該方法首先利用源語言端句子中最相似的2個詞進行相互替換形成新的句子,然后通過詞對齊信息找到目標端對應(yīng)的詞匯并進行相互替換,進而形成新的平行句對。作者在藏漢語種上進行了實驗,獲得的BLEU值比基準線高4。
回譯方法利用翻譯引擎翻譯句子并進行篩選獲得新的平行語料,其廣泛應(yīng)用于提升神經(jīng)機器翻譯的性能。Yang等人[10]提出門增強型神經(jīng)機器翻譯模型。該模型通過將回譯合成的平行語料數(shù)據(jù)和真正的平行語料數(shù)據(jù)分發(fā)到不同的通道,使模型能夠根據(jù)輸入序列的類型執(zhí)行不同的轉(zhuǎn)換。實驗結(jié)果表明,該模型在漢英和英法數(shù)據(jù)集上的BLEU值比基準線分別提高了1.47和2.5。Zhang等人[11]提出基于自動編碼器和回譯的對抗學習方法。該方法通過對目標端詞嵌入與原始的跨語言詞映射進行回譯,以學習最終的跨語言詞映射。作者在3種語言對上的實驗結(jié)果驗證了該方法的有效性。
由于漢語-越南語屬于低資源語言對,雙語詞典難以獲得,但跨語言詞替換方法需要一定規(guī)模的詞典資源,因此難以實現(xiàn),而漢語和越南語有大量的單語語料,通過單語語言訓練獲得單語環(huán)境下的詞向量及相關(guān)詞匯非常容易。因此,本文提出一種基于低頻詞的同義詞替換的雙語平行語料數(shù)據(jù)增強方法。該方法通過探索單語環(huán)境構(gòu)建詞向量,進而尋找低頻詞的同義詞,再通過同義詞替換獲得擴展的平行語料。
本文方法利用小規(guī)模的平行語料,通過單語詞向量尋找一端語言低頻詞的同義詞;然后對低頻詞進行同義詞替換,再利用語言模型對替換后的句子進行篩選[12];最后將篩選后的句子與另一端語言中的句子進行匹配,從而獲得擴展的平行語料。本文方法的實現(xiàn)主要分為以下幾個方面:
(1)構(gòu)建低頻詞詞表VR(R表示低頻詞匯)。本文在訓練語料源語言端范圍內(nèi)構(gòu)建詞匯表V,再將V中出現(xiàn)頻率為N(1≤N<5)的詞匯作為低頻詞加入到低頻詞列表中,從而構(gòu)建低頻詞詞表VR。單詞vi為低頻詞的確定方法,如式(1)所示:
(1)
其中,1表示vi為低頻詞,0表示vi不是低頻詞,N表示vi(vi∈V)的詞頻,vi∈V為V中第i個詞匯,0≤i≤30000。
(2)尋找同義詞。由于在單語語義空間內(nèi),可以通過計算詞匯間的距離來判斷2個詞匯的相似度。因此,本文利用Wikipedia 中文文本訓練BERT(Birdirectional Encoder Representations for Transformers)模型[13]獲得漢語端詞向量,然后通過計算表征詞匯的向量之間的余弦值判斷2個詞匯之間的相似度,進而尋找漢語端的低頻詞的同義詞,以構(gòu)建低頻詞的同義詞列表。假設(shè)詞匯A與詞匯B的向量分別表征為a={wa1,wa2…,wan}與b={wb1,wb2…,wbn},詞匯間語義相似度計算如式(2)所示:
(2)
Figure 1 Example of synonym replacement 圖1 同義詞替換示例
P(A1A2…An)=P(A1)P(A2|A1)…
P(An|A1A2…An-1)
(3)
其中,P(A1A2…An-1)>0,P(A1)表示第1個詞A1出現(xiàn)的概率,P(A2|A1)是已知第1個詞Ai的前提下,第2個詞A2出現(xiàn)的概率,以此類推,詞An出現(xiàn)的概率取決于它前面所有的詞。
(5)目標句選擇。對于平行句對(S,T),由于本文對源語言端S進行的是同義詞替換操作,所以源句S與增強句S′為同義句。很大概率上,(S′,T)也是平行句對。因此,本文對目標語言端不進行變動。將(S′,T)句對直接加入到訓練集中參與模型訓練。如圖2所示為目標句匹配示意圖。
Figure 2 Target sentence matching diagram
圖2 目標句匹配示意圖
(6)采樣。本文對增強后的語料庫進行多次循環(huán),以確保每個低頻詞的詞頻最多被增強至5。
本文收集20萬個漢越平行句對作為數(shù)據(jù)增強前的訓練數(shù)據(jù)。驗證集與測試集分別由2 000個漢越平行句對組成。實驗數(shù)據(jù)如表1所示。
本文設(shè)置機器翻譯實驗來比較同義詞數(shù)據(jù)增強前后的結(jié)果,以檢驗數(shù)據(jù)增強的效果。本文使用
Table 1 Experimental data表1 實驗數(shù)據(jù)
transformer[15]作為神經(jīng)機器翻譯模型。模型的隱藏層大小為512維,批次大小為64,訓練輪次為20。在所有實驗中,神經(jīng)機器翻譯模型詞匯量被限制在漢越2種語言中最常見的30 000個單詞中。注意,數(shù)據(jù)增強不會將新詞匯引入詞匯表。本文使用5 GB大小的來自Wikipedia的中文文本訓練kenLM語言模型。KenLM語言模型屬于n-gram語言模型,本文將n設(shè)置為3。
為了驗證所提方法的有效性,本文設(shè)計了3組實驗,通過BLEU值進行評價。
實驗1為使得本文增強方法效果達到最佳,以對源語言端進行同義詞替換,匹配目標語言端為例進行實驗參數(shù)選擇的對比,以評估采用不同方法構(gòu)建低頻詞的同義詞列表,以及低頻詞的同義詞個數(shù)K對神經(jīng)機器翻譯模型的影響。采用方法分別為:(1)使用Synonyms工具包[16]構(gòu)建源語言端低頻詞的同義詞列表。(2)使用中文BERT模型生成源語言端詞匯的詞向量,通過計算和比較詞表V與低頻詞詞表VR中詞匯間的余弦相似度,由高到低構(gòu)建源語言端低頻詞的同義詞列表[17]。實驗將低頻詞的同義詞個數(shù)K設(shè)置為1~5,將每個低頻詞詞頻通過本文方法增加至5。注意,低頻詞的同義詞個數(shù)的不同并不會對語料庫的大小產(chǎn)生不同的影響,增強后的漢越平行句對均為310 000。實驗結(jié)果如圖3所示。
Figure 3 Comparison of Chinese-Vietnamese translation performance with different parameters圖3 不同參數(shù)漢語-越南語的翻譯性能比較
圖3中,實線為采用Synonyms構(gòu)建源語言端低頻詞的同義詞列表;虛線為采用BERT構(gòu)建源語言端低頻詞的同義詞列表;橫坐標為源語言端低頻詞的同義詞個數(shù);縱坐標為翻譯模型對應(yīng)的BLEU值。
圖3顯示,采用BERT構(gòu)建源語言端低頻詞的同義詞列表的模型比采用Synonyms構(gòu)建獲得了較高的BLEU值。這是因為Synonyms采用的基本技術(shù)是word2vect[18]。BERT相比于word2vect考慮了上下文信息。所以,采用BERT構(gòu)建源語言端低頻詞的同義詞列表,在進行低頻詞替換后更容易產(chǎn)生平行度較高的漢越句對。因此,本文方法采用BERT構(gòu)建源語言端低頻詞的同義詞列表。
圖3中虛線顯示,當源語言端低頻詞的同義詞個數(shù)K=1時,翻譯模型性能達到最高值,取得的BLEU值為11.4。隨著低頻詞的同義詞個數(shù)的增加,翻譯模型的BLEU值隨之下降,當?shù)皖l詞的同義詞個數(shù)K=5時,取得了最低BLEU值8.6。這是因為本文方法在構(gòu)建源語言端低頻詞的同義詞列表時是按照詞匯間的余弦相似度由高到低進行構(gòu)建,所以位置越偏后的同義詞與其低頻詞的相似度越低,在進行同義詞替換后生成的增強句S′與源句S的句子相似度越低,經(jīng)過語言模型篩選,目標句匹配后生成句對(S′,T)的平行度越低。由于翻譯模型訓練語料噪聲增加,BLEU值隨之降低。因此,本文方法取低頻詞的同義詞個數(shù)K=1。
實驗2為使本文模型效果達到最佳,本文在漢語到越南語以及越南語到漢語的不同翻譯方向上,分別對源語言端進行詞替換,對目標語言端進行詞替換,以及對2個語言端一起進行詞替換進行相關(guān)實驗,結(jié)果如表2所示。在進行越南語端詞匯替換時,使用Grave等人[19]在Common Crawl和Wikipedia上訓練的fasttext 模型獲得越南語端的詞向量,以進行低頻詞的同義詞列表構(gòu)建,取低頻詞的同義詞個數(shù)K=1,將越南語低頻詞詞頻在原語料基礎(chǔ)上增加至5,詞匯替換細節(jié)請參照第2節(jié)。
Table 2 Effect of word substitution in different languages on translation performance表2 不同語言端進行詞替換對翻譯性能的影響
表2中,Model(c→v)表示漢語為源語言端,越南語為目標語言端;Model(v→c)表示越南語為源語言端,漢語為目標語言端;TDA(c)表示對漢語端進行詞匯替換;TDA(v)表示對越南語端進行詞匯替換;TDA(c-v)表示同時使用TDA(c)和TDA(v)2種方法。
表2數(shù)據(jù)顯示,在將低頻詞詞頻增加至5的前提下,TDA(c)和TDA(v)在原語料基礎(chǔ)上分別增加了110 000和50 000。這是因為在原語料庫中漢語端詞表規(guī)模是越南語端詞表規(guī)模的2倍。因此TDA(c-v)在原語料基礎(chǔ)上增加了160 000。分析表2數(shù)據(jù)可得:Model(c→v)下的TDA(c)比Model(v→c)下的TDA(c)的BLEU值高0.8;Model(c→v)下的TDA(v)比Model(v→c)下的TDA(v)BLEU值低0.9。這是因為翻譯的質(zhì)量取決于譯出語言的水平而不是源語言的水平。目標語言必須是真句子,才能使翻譯結(jié)果更加流暢和準確。因此,Model(c→v)下的TDA(c-v)中通過TDA(v)所得到的50 000語料在一定程度上可以理解為噪聲語料,所以盡管Model(c→v)下的TDA(c-v)語料規(guī)模大于Model(c→v)下的TDA(c)的,前者卻比后者的BLEU值低0.5。因此,本文方法采用Model(c→v)下的TDA(c)作為增強方法。
實驗3為證明本文方法的最優(yōu)性,將本文方法與基準線和回譯進行比較,基準線模型采用的數(shù)據(jù)為表1的實驗數(shù)據(jù)。回譯方法和本文方法均在表1數(shù)據(jù)的基礎(chǔ)上將數(shù)據(jù)增加到310 000,然后使用這3組數(shù)據(jù)對同一transformer模型進行訓練,并比較翻譯的性能(BLEU值)。眾所周知,訓練語料的大小直接影響翻譯模型的質(zhì)量,為了在同一水平線上將本文方法與回譯方法進行比較,本文將回譯增強后的語料大小設(shè)置為310 000。由于漢語-越南語屬于低資源語言對,若使用個人訓練的翻譯模型進行回譯,顯然會降低增強后語料的質(zhì)量?;诖嗽?,本文借助谷歌翻譯進行回譯。為了不在數(shù)據(jù)增強后引入新的詞匯,本文基于訓練語料進行回譯。首先借助谷歌翻譯將訓練語料從目標端譯為源語言端,構(gòu)建漢越平行語料庫,然后從中隨機抽取110 000的漢越平行句對加入訓練語料參與模型訓練。實驗結(jié)果如表3所示。
Table 3 Comparison of Chinese-Vietnamese translation performance with different methods表3 不同方法漢語-越南語的翻譯性能比較
表3數(shù)據(jù)顯示,本文提出的方法和回譯方法有效地改善了翻譯質(zhì)量,相比基準線的BLEU值分別提高了1.8和0.7。本文方法獲得最佳BLEU值的原因在于:TDA(c)方法可以幫助漢越神經(jīng)機器翻譯模型對源語言端低頻詞進行更好的識別,從而提高翻譯質(zhì)量。
上述3組對比實驗表明,本文方法采用BERT構(gòu)建源語言端低頻詞的同義詞列表,取低頻詞的同義詞個數(shù)K=1時,本文方法效果達到最優(yōu),說明該方法在提高漢越神經(jīng)機器翻譯性能上是可行的。
本文提出了一種有效的用于改善漢越神經(jīng)機器翻譯性能的數(shù)據(jù)增強方法。該方法利用單語詞向量尋找低頻詞的同義詞,然后通過同義詞替換獲得擴展的漢越平行語料。漢越神經(jīng)機器翻譯的對比實驗驗證了本文方法的有效性。進一步研究將著眼于對詞匯替換后的語料進行質(zhì)量評估。