朱俊國,楊福岸,余正濤,鄒 翔,張澤鋒
(1. 昆明理工大學 信息工程與自動化學院,云南 昆明 650500;2. 昆明理工大學 云南省人工智能重點實驗室,云南 昆明 650500)
低頻詞翻譯在神經(jīng)機器翻譯中是一個具有挑戰(zhàn)性的問題。由于低頻詞在訓練數(shù)據(jù)中出現(xiàn)次數(shù)較少,神經(jīng)機器翻譯模型一般不能充分地學習到準確的低頻詞的表示,從而影響神經(jīng)機器翻譯模型的性能。在低資源神經(jīng)機器翻譯中,低頻詞翻譯問題則表現(xiàn)得更為突出,這是由于在低資源語言對上雙語數(shù)據(jù)極度匱乏,導致低頻詞在模型中訓練次數(shù)更少,使得低頻詞不能更好的學習到其表示形式。因此在低資源神經(jīng)機器翻譯中,低頻詞表示不準確的問題亟待解決。
目前,關(guān)于詞表示增強的方法大致分為兩類。一類是基于外部知識融入的方法。該方法通過融入先驗知識,從而使單詞具有更豐富的含義以達到增強詞表示的目的,如融入詞典和外部結(jié)構(gòu)信息等。盡管基于外部知識融入的方法,隨著外部知識的融入,可以達到增強詞表示的效果,但是對于其難點,低頻詞的表示問題并沒有解決,從而使得低頻詞的表示在現(xiàn)有的神經(jīng)機器翻譯模型中不能得到更好的訓練。另一類是基于內(nèi)部知識增強的方法,該方法通過單語數(shù)據(jù)重新學習詞的表示形式,使詞的表示形式包含更豐富的翻譯信息,從而使得詞的表示更加準確。這種基于單語數(shù)據(jù)詞表示增強的方法兼顧到了詞語的準確度和流利度,隨機對詞表中所有的詞語進行表示增強。雖然該方法能在一定程度上緩解低頻詞表示不準確的問題,但是并沒有覆蓋所有的低頻詞。因此,該方法仍沒有針對性地解決低頻詞翻譯不佳的問題。
詞表示增強方法的核心是如何更準確地學習到更準確的詞表示形式,其難點是如何表示低頻詞。原始的低頻詞通過one-hot方法[1]表示,其表示形式存在維度過大和語義鴻溝問題。針對低頻詞翻譯的問題,本文提出了一種利用單語數(shù)據(jù)重新學習低頻詞表示的方法。該方法采用了基于上下文軟替換的思想[2],這種思想利用語言模型通過單語數(shù)據(jù)學習到更豐富的上下文信息。文獻[2]采用隨機軟替換方法,并且沒有針對低頻詞進行學習。而本文方法利用低頻詞在訓練集單語數(shù)據(jù)的語言模型中的概率分布重新計算低頻詞的表示,以替代神經(jīng)機器翻譯中的one-hot表示。這種新的低頻詞表示能夠充分獲取單語數(shù)據(jù)信息,從而緩解低頻詞翻譯不佳的問題。本文在漢-越、越-漢兩個方向的低資源神經(jīng)機器翻譯任務中,基于低頻詞表示增強的翻譯模型相對于基線模型在BLEU4[3]得分上分別提升了8.58%和6.06%。
在神經(jīng)機器翻譯領域,詞表示增強的核心問題是如何對低頻詞表示進行增強,即如何學習更準確的低頻詞表示。但是在資源稀缺型語言的神經(jīng)機器翻譯中,開展低頻詞表示問題的研究還相對較少。
針對詞表示增強常用的方法可以分為以下兩類。一類是基于外部知識融入的方法。Haitao等人[4]從短語統(tǒng)計機器翻譯系統(tǒng)中獲取詞到詞和短語到短語翻譯知識,然后使用這些翻譯知識限制神經(jīng)機器翻譯解碼句子時的解碼。這種方法在可以不加大訓練復雜度的情況下,通過融入句子級詞匯增強捕捉翻譯歧義。Wang Xing等人[5]提出一種基于短語融入的方法,將統(tǒng)計機器翻譯系統(tǒng)中的短語記憶存儲的目標短語集成到翻譯模型的編解碼體系結(jié)構(gòu)中。該方法通過引入短語級詞匯改變了原有短語逐詞翻譯的模式,緩解了短語錯配、翻譯不當?shù)葐栴}。Huadong Chen等人[6]提出了一種基于句法樹融入的方法,通過雙向樹編碼器和樹覆蓋模型顯式地結(jié)合源端句法樹來改進神經(jīng)機器翻譯模型。Meishan Zhang等人[7]提出了一種基于語法感知詞的方法,語法感知詞由端到端依存句法分析器的中間隱藏形式表示,然后簡單地將語法感知詞與普通的詞嵌入連接起來。該方法結(jié)合句法信息,在原有詞語表示的基礎上增加了句法信息。第二類是利用數(shù)據(jù)內(nèi)部知識增強的方法,該方法沒有加入外部知識,使用已有的數(shù)據(jù)進行翻譯知識的獲取,一般利用語言模型訓練得到。Zhu等人[2]提出用概率分布(由語言模型提供)來隨機代替詞的one-hot表示。使用語言模型得到詞典中每個詞的概率分布,這個概率分布表示該詞與詞典中其他詞的相關(guān)性,使用詞典中所有詞的詞嵌入加權(quán)求和更新該詞,加權(quán)求和的系數(shù)來源于語言模型中的概率分布,最后將所得表示輸入到Transformer[8]翻譯模型中。與第一類方法相比,該類方法更加準確地增強詞的表示形式,讓增強后詞語的意思更加貼合句子的含義。這兩類方法都能達到詞表示增強的效果,但并沒有針對低頻詞表示增強做研究。
神經(jīng)機器翻譯在翻譯低頻詞時經(jīng)常存在錯譯問題,由于低頻詞在訓練數(shù)據(jù)中出現(xiàn)次數(shù)少,使得低頻詞在訓練模型中不能夠?qū)W習到很好的表示形式,導致低頻詞翻譯效果不佳。在低資源神經(jīng)機器翻譯中,由于語料匱乏,低頻詞分布更加稀疏,使得低頻詞翻譯性能在低資源神經(jīng)機器翻譯中表現(xiàn)更差。
本文通過在Transformer模型中引入語言模型與低頻詞詞典來緩解低頻詞在神經(jīng)機器翻譯中表示不佳的問題,總體模型結(jié)構(gòu)如圖1所示。對于一個給定的源端與目標端句子對(X,Y),有X=(x1,x2,…,xT),Y=(y1,y2,…,yT′),通過語言模型得到每個詞的概率分布[P(xi)],使用低頻詞詞典DK確定源端X中的低頻詞詞匯,例如x1,x3為低頻詞,用語言模型中對應詞的概率分布更新原有的源端序列X,得到新的源端序列X′。 在翻譯模型和語言模型中,每個詞語都被分配一個唯一one-hot向量的ID,例如,詞匯表大小為|V|,第i個詞語將會用一個|V|維向量表示dk,其中第i維為1,其他維為0。通過更新后的源端序列X′與詞典所有詞的詞嵌入相乘,最終得到Transformer翻譯模型的輸入。
圖1 總體模型結(jié)構(gòu)圖
以漢越數(shù)據(jù)集為例,低頻詞在漢越低資源神經(jīng)機器翻譯中表現(xiàn)不佳,為了區(qū)分低頻詞和其他詞語,針對低頻詞使用本文方法進行低頻詞表示增強,構(gòu)建低頻詞詞典。低頻詞并沒有嚴格定義,本文根據(jù)詞頻分布規(guī)律來定義低頻詞。由低到高統(tǒng)計詞頻,并根據(jù)詞頻對詞典進行分類。通過統(tǒng)計的方式分別構(gòu)建漢語和越南語低頻詞詞典,以漢語和越南語訓練集為目標選取低頻詞,詞頻等于k的低頻詞詞典詞定義為k類低頻詞子詞典dk,詞頻k小于或等于K的低頻詞詞典定義為K類低頻詞詞典DK且存在,如式(1)所示。
以2007年為基準年,以2007年通州區(qū)的公路里程2 250 km為基準里程,將2007年到2016年的公路里程進行擬合從而得以確定公式中的參數(shù),得到式(1):
根據(jù)詞頻k(k取1到10)分別構(gòu)建漢語和越南語低頻詞子詞典dk和低頻詞詞典DK,且分別統(tǒng)計出其詞典覆蓋率,詞典覆蓋率為該詞典大小與總詞典大小的比值,總詞典由訓練集統(tǒng)計得出。
漢語詞表大小為47 356,訓練集詞語總數(shù)為 2 275 526。k類低頻詞子詞典中分別有18 496,6 656,3 787, 2 508,1 812,1 397, 1 067, 832,719,593個詞語。如圖2所示,k類低頻詞子詞典覆蓋率隨著詞頻k的增加而降低,有39.06%的詞語詞頻為1,0.25%的詞語詞頻為10。
圖2 漢語k類低頻詞子詞典與K類低頻詞詞典覆蓋率
越南語詞表大小為22 732,訓練集詞語總數(shù)為3 189 350。k類低頻詞子詞典中分別有9 428,3 188,1 667,1 006,718,514,393,340,188,223個詞語,如圖3所示,與漢語k類低頻詞子詞典類似,越南語詞典覆蓋率隨著詞頻k的增加而降低,有41.47%的詞語詞頻為1,0.98%的詞語詞頻為10。
圖3 越南語k類低頻詞子詞典與K類低頻詞詞典覆蓋率
實驗證明,在漢越語翻譯任務上,在5類低頻詞詞典上效果最佳,由圖2可知,該類方法可以解決覆蓋詞典70.25%低頻詞表示問題;在越南語漢語翻譯任務上,在6類低頻詞詞典上效果最佳,由圖3可知,該類方法可以解決覆蓋詞典70.66%低頻詞表示問題。
據(jù)統(tǒng)計,低頻詞雖然在數(shù)據(jù)集中詞頻較小,在10類低頻詞詞典中,漢語和越南語在數(shù)據(jù)集中占比分別為4.33%和1.66%,但是在詞典中的覆蓋率非常大,達79.98%。說明在每個句子中大概率會出現(xiàn)低頻詞,由于低頻詞翻譯效果不佳,從而在整體上拉低了機器翻譯的效果。低頻詞中不乏一些常用詞,如表1所示,“回升”“人命”和“結(jié)盟”等詞語。所以對低頻詞表示增強的研究是有必要的。
表1 漢語-越南語k類低頻詞子詞典示例
低頻詞w的概率分布P(w)可以用多種方法計算,本文利用預先訓練的6層Transformer decoder作為語言模型來計算P(w)和w前面所有詞的條件概率,對于一個句子中第t個詞xt,如式(2)所示。
在翻譯模型中,每個單詞都被分配一個唯一one-hot向量的ID,如圖1所示,利用構(gòu)建的低頻詞詞典DK判斷輸入的句子中哪些詞屬于低頻詞,若xt∈DK為Y,反之則為N,“Y”表示用語言模型所訓練出的P(xt)來更新與之對應的詞,“N”則表示原詞保持不變,從而得到新的源端序列向量表示X′,通過與詞典V的詞嵌入矩陣E相乘得到翻譯模型Transformer的輸入,如式(3)所示。
最終經(jīng)過翻譯模型Transformer得到翻譯結(jié)果,如式(4)所示。
本文使用了漢越和漢蒙兩個低資源數(shù)據(jù)集,其統(tǒng)計信息如表2所示。
表2 數(shù)據(jù)集統(tǒng)計信息
漢越數(shù)據(jù)集通過將公開IWLST英語-越南語雙語平行語料,經(jīng)過語言學專家將英語譯文為漢語,得到漢語-越南語平行語料。在融入本文方法之前對語料進行了清洗和分詞處理,最終獲得127 481漢越雙語平行數(shù)據(jù)。對于漢語數(shù)據(jù),使用結(jié)巴分詞工具對中文語句進行分詞,處理越南語使用tokenizer[9]切開標點,分別從漢越雙語平行數(shù)據(jù)中隨機抽取規(guī)模大小均為2 000對的漢越雙語平行數(shù)據(jù)作為測試集和驗證集。
漢蒙數(shù)據(jù)集語料采用CCMT 2020機器翻譯漢蒙評測數(shù)據(jù),約26萬,經(jīng)清洗處理后訓練集規(guī)模為20萬對漢蒙平行語料,分別從漢蒙雙語平行數(shù)據(jù)中隨機抽取規(guī)模大小均為2 000對的漢蒙雙語平行數(shù)據(jù)作為測試集和驗證集。
采用當前主流的Transformer體系結(jié)構(gòu)用于翻譯模型,對于漢越、越漢兩個翻譯任務采用相同的實驗配置,實驗中統(tǒng)計訓練集詞表。為了解決低頻詞的問題,不能去掉低頻詞,所以采用所有的詞作為詞典,漢語字典詞表大小為47 356,越南語字典詞表大小為22 732。每個batch最大Maxtoken為2 048,句子最大長度為128,最大epoch為100輪,dropout[10]設置為0.1,詞嵌入維數(shù)為512維,隱藏層維度為512維。所有的模型通過Adam[11]優(yōu)化器來訓練,且初始學習率為1×10-4。
在漢越翻譯任務中,采用獨立的語言Transformer Decoder作為漢語語言模型[12]。漢語語言模型的訓練集和驗證集來源于翻譯模型中的漢語語料,規(guī)模分別為127 481和2 000條漢語單語數(shù)據(jù);在越漢翻譯任務中,語言模型結(jié)構(gòu)與漢越翻譯任務中模型結(jié)構(gòu)相同,越南語語言模型的訓練集和驗證集來源于翻譯模型中的越南語單語語料,規(guī)模大小與漢語語言模型一致。
在語言模型訓練完成之后,保存模型最優(yōu)的訓練參數(shù),并在訓練翻譯模型時,語言模型的參數(shù)固定使用其最優(yōu)訓練參數(shù)。本文使用漢語-越南語平行語料分別在漢越和越漢兩個任務上對本文提出的方法進行驗證。本文采用自助重采樣的方法[13](重采樣1 000詞)在顯著性水平p<0.05下,在測試集上使用BLEU4值作為評測指標。
在漢蒙與蒙漢翻譯任務中實驗設置與漢越實驗設置保持一致。
為驗證本文所提出的低頻詞表示增強模型性能,采用了以下兩種模型作為基線模型。一是經(jīng)典Transformer模型(Transformer)[8]: 使用Transformer_base模型在漢越和越漢兩個翻譯任務進行實驗。二是在Transformer基礎上,加入語言模型(Transformer+LM)[2],使用語言模型訓練結(jié)果隨機替換翻譯模型的輸入,替換概率為γ,γ=0.15(γ值為文獻[2]中所使用的最優(yōu)設置)。在漢越和漢蒙兩個語言對4個翻譯任務上進行實驗。實驗結(jié)果為每個翻譯模型BLEU4得分,如表3所示。
表3 實驗結(jié)果
從表3可以看出,在漢越與越漢兩個方向的翻譯任務上,Transformer+LM模型較經(jīng)典的Transformer模型分別提升了0.87和0.59個BLEU4值;本文方法相較于Transformer+LM模型分別提升了0.84和0.68個BLEU4值。根據(jù)上述結(jié)果,本文方法在漢越和越漢翻譯任務上對比于Transformer模型和Transformer+LM模型,都有比較好的提升,證明本文中所提出的基于低頻詞表示增強的方法在漢越和越漢翻譯任務上是有效的。在漢蒙神經(jīng)機器翻譯任務上本文方法較于經(jīng)典的Transformer模型提升了1.46個BLEU4值,較于經(jīng)典的Transformer+LM模型提升了0.38個BLEU4值。在蒙漢神經(jīng)機器翻譯任務上本文方法較于經(jīng)典的Transformer模型提升了1.68個BLEU4值,較于經(jīng)典的Transformer+LM模型提升了0.44個BLEU4值。本文方法不僅在漢越神經(jīng)機器翻譯上表現(xiàn)出優(yōu)勢,在蒙漢數(shù)據(jù)集上同樣提高了神經(jīng)機器翻譯的準確率,對于資源稀缺型語言的神經(jīng)機器翻譯低頻詞表征不佳問題的處理具有可行性。
從實驗結(jié)果中分析,Transformer+LM模型優(yōu)于經(jīng)典的Transformer模型,由于Transformer+LM模型通過語言模型隨機引入了詞上下文信息,使隨機引入詞獲取到更豐富的信息,證明Transformer+LM模型中引入詞上下文信息的有效性。本文方法相較于Transformer+LM模型在翻譯性能上也有較大的提升,在本文方法中考慮到低頻詞的信息,只針對低頻詞進行上下文的概率估計,提高翻譯性能,而不區(qū)分低頻詞和非低頻詞導致性能下降。從實驗結(jié)果可以看出,本文方法能夠緩解低頻詞翻譯不佳這一問題,在漢越和越漢兩個翻譯任務上有明顯的優(yōu)勢。
為了驗證本文方法對于不同數(shù)據(jù)的有效性,本文對漢越和越漢兩個方向測試集的源語言端按照句子長度區(qū)間對句子進行了分類,如表4所示。在漢越翻譯任務上測試集大小分別為1 322、563和115對平行句對;在越漢翻譯任務上測試集大小分別為415、708和877對平行句對。
表4 驗證集規(guī)模
實驗結(jié)果如表5所示,在句子長度為[1,20]的區(qū)間上,本文模型較經(jīng)典的Transformer模型幾乎沒有提升,而在句子長度為(20,60]的區(qū)間上提升較大。說明本文方法對短句效果不明顯,在長句子中效果比較顯著。
表5 實驗結(jié)果
為了分析低頻詞出現(xiàn)頻率對本文方法的影響,本文方法在漢越和越漢兩個翻譯任務上,按照出現(xiàn)頻率小于或等于K(K=1,2,…,10)的詞分別進行模型性能測試,結(jié)果如表4、表5所示。
從圖4和圖5中可以看出,在漢越和越漢翻譯任務上,隨著K值的增大,整體趨勢先上升后下降,在K值分別取5和6時,即低頻詞設定為在訓練集中出現(xiàn)頻率小于或等于5和6時(分別占詞表大小的70.25%和70.66%),BLEU4值取得最高值;K值為0時為經(jīng)典Transformer模型結(jié)果,當K值取1,2,…,10時,模型性能皆優(yōu)于經(jīng)典Transformer模型;在上升過程,當K值等于3時,本文方法模型性能超過Transformer+LM模型;在下降過程中,K值分別取9和10時,Transformer+LM模型性能略優(yōu)于本文方法。如圖4所示,當K值取0時(經(jīng)典Transformer模型),Transformer+LM模型優(yōu)于經(jīng)典Transformer模型,由于Transformer+LM模型中引入了隨機詞的上下文信息;當K值小于或等于5時,模型效果穩(wěn)步上升,K類低頻詞詞典中詞語出現(xiàn)次數(shù)較少,低頻詞在翻譯模型中不能得到更好的表示,用低頻詞的上下文信息替代低頻詞表示,從而豐富了低頻詞的表示信息,使低頻詞擁有更加豐富的上下文語義信息,使得模型穩(wěn)步上升。當K值大于5時,即低頻詞詞典中加入出現(xiàn)頻率大于5的詞語,由于新加入的詞本身可以得到比較好的訓練, 且訓練出的詞表示優(yōu)于語言模型所提供增強后的表示形式。因此,低頻詞字典新加入的詞語,并不能達到優(yōu)化翻譯性能的效果,所以在K值大于5時,翻譯效果會不斷下降。
圖4 K類低頻詞詞典對漢越模型的影響
圖5 K類低頻詞詞典對越漢模型的影響
表6 漢越翻譯實例分析
表7 越漢翻譯實例分析
本文研究旨在緩解低頻詞在神經(jīng)機器翻譯中表示不準確這一問題,提出了一種低頻詞表示增強的低資源神經(jīng)機器翻譯方法,該方法利用單語信息增強低頻詞的表示,改善低頻詞的翻譯效果,使翻譯性能得到了提升。實驗結(jié)果表明本文方法可以在經(jīng)典Transformer模型和不區(qū)分詞頻的Transformer+LM模型上進一步提升機器翻譯模型的性能。