楊 云 王 全
(陜西科技大學電子信息與人工智能學院 陜西 西安 710021)
隨著機器學習技術的發展,自然語言處理的多個領域取得了重大突破。機器翻譯作為該領域的核心應用,主要研究如何利用計算機實現不同語言之間的相互轉換[1-2]。海量數據與深度學習技術的結合催生了神經機器翻譯,其在語料豐富的語種上可以取得非常好的結果[3]。然而,性能比較好的機器翻譯系統,包括統計機器翻譯系統和神經機器翻譯系統,都嚴重依賴于大量的平行語料[4]。
為了緩解數據稀缺的難題,文獻[5]提出了一種基于共享語義表示的多任務學習方法來擴展源語言。文獻[6]借助中間語言的思想,提出了一種多對一的翻譯機制。這些方法緩解了數據稀疏問題,但同時使得模型過于復雜,訓練代價過高。文獻[7-8]提出了一種通過在輸入端引入標簽的方法來訓練翻譯模型,雖然提高了訓練效率和翻譯性能,但仍然面臨數據稀缺的難題。文獻[9]從有限的平行語料出發,通過優化語料的方法,額外地生成中間語,以改進機器翻譯的性能,但這種方法需要具備特定的領域知識,困難較大。文獻[10]提出了一種增量式自學習策略的多語言翻譯模型,通過自動生成偽雙語數據來緩解數據稀缺難題,但偽雙語數據可能存在噪聲問題,影響翻譯質量。
本文針對機器翻譯研究過程中,雙語平行語料稀缺的難題,提出一種聯合EM算法進行模型訓練的方法。通過聯合EM優化方法聯合學習源語言到目標語言和目標語言到源語言的翻譯模型,在整個訓練過程中,從這兩個單向的弱翻譯模型(指初始性能較差的模型)開始,使用小規模的雙語語料進行初始的預訓練,并且通過逐漸減少訓練數據的翻譯損失來迭代更新這兩個模型。在每個迭代過程中,一個模型用于將單語數據從一種語言翻譯成另一種語言,形成另一個模型的訓練數據,然后根據原始的雙語數據和生成的單語訓練數據重新構建數據集訓練兩個新的模型。通過這種迭代方式,在新的一輪迭代中可以產生更高質量的訓練數據繼續用于模型的訓練。根據EM算法的特點,會隨著算法的收斂得到性能最好的強模型并且生成高質量的新的語料,從而達到語料擴充和模型改進的雙重效果。
由于本文在初始化訓練中,并不需要訓練性能強大的模型,而主流的模型選擇有兩種:統計機器翻譯模型和神經機器翻譯模型。在低資源情況下,神經機器翻譯性能弱于統計機器翻譯模型,原因在于,當數據稀疏時,神經機器翻譯模型很容易出現過擬合[11]。為了驗證本文方法的有效性,選擇神經機器翻譯模型作為預訓練模型,而且神經機器翻譯模型相比統計機器翻譯模型,可以直接從數據中學習特征,免去了繁瑣的特征工程[2]。在神經機器翻譯模型的眾多選擇中,本文選擇Transformer模型[12],其結構設計如圖1所示。

圖1 Transformer模型架構圖
本文初始化預訓練兩個相反方向的Transformer模型,即源語言到目標語言和目標語言到源語言單向任務上的模型。
1.2.1 預訓練
在模型的預訓練過程中,首先對雙語平行語料進行預處理工作,包括源語言和目標語言的預處理。對處理后的語料做詞對齊處理,并且生成雙語詞典,雙語詞典用來完成源語言與目標語言的對齊翻譯,來達到模型訓練的目的。使用處理過的雙語數據作為兩個單向的Transformer模型的訓練預料,來初始化訓練模型。
1.2.2 訓練算法

(1) 使用隨機的權重參數θS→T和θT→S初始化MS→T和MT→S。
(3) 迭代使用EM算法[13]直到收斂,具體描述如下:

② M-Step:對于MS→T,利用經過加權的雙語語料D∪D′來訓練MS→T,其中生成的語料的權值賦值為翻譯概率p(s|tj),真實語料的權重賦值為1。同理,對于MT→S,利用經過加權的雙語語料D∪D″來訓練MT→S,其中生成的語料的權重賦值為翻譯概率p(t|sj),真實語料的權重賦值1。
預訓練過程采用傳統的基于最大似然原理的方法來完成。該方法的一般做法是最大化正確翻譯的對數條件概率,給定源語言句子的模型參數θ,其目標是得到滿足下式的θ*:
(1)
式中:N為訓練語料庫的規模;|ti|是目標語言句子ti的長度。

(2)
式中:第一部分表示針對源語言S產生目標語言T的條件概率;第二部分表示關于T的語言模型,其主要功能在于,最大化句子的可能性。根據EM算法,將源語言對應的翻譯作為目標句子的隱狀態,并對目標語言的語言模型部分進行分解,得到:
(3)
根據Jensen不等式[14],可以得到:
(4)
式中:s表示由目標語言句子ti產生的源語言翻譯的隱變量;q(s)是s的近似概率分布;p(s)表示s的邊緣分布;KL(q(s)‖p(s))是兩個概率分布之間的KL散度[15]。對于式(4),當q(s)滿足以下條件時,可以應用以下等式:

(5)
式中:c是常數,不依賴于t。給定:

(6)
則q(s)的計算公式為:
(7)
式中:p*(s|ti)表示目標語言到源語言的最佳翻譯概率。但是在實驗中,只能通過模型的不斷調優來逼近最優值。因此,使用翻譯概率p(s|ti)作為源語言的近似概率分布,滿足以下條件:
p(s|ti)≈q(s)
(8)
因此,根據式(2)、式(4)、式(7)和式(8),可以得到:
(9)
式(9)表明L(θS→T)作為最佳翻譯L*(θS→T)的一個下界,并且KL(p(s|tj)‖p(s))與模型的參數θS→T無關。所以優化函數L(θS→T)可以進一步得到簡化:
(10)
式(10)的第一部分可以采用統計機器翻譯中的最大似然方法[16]進行訓練,訓練目標可以表示為:
(11)
式中:N代表雙語平行訓練語料庫的規模;|ti|表示目標語言中第i個句子的長度。而式(10)的第二部分可以聯合EM算法對其進行優化。本文通過在E-Step中估計源語言的翻譯概率p(s|tj)的期望值,并在M-Step中最大化第二部分。在E-Step中,使用模型MT→S產生的翻譯作為隱變量,其與目標語言句子配對加入到原始平行語料中以達到語料的擴充。為了提升生成的新的平行語料的質量,通過最大化新語料的對數似然函數來最大化L(θS→T)。為了區別于原始語料,本文對新語料使用翻譯概率p(s|tj)作為其權重分布,不斷修正翻譯結果。
同理,可以得到目標語言到源語言的翻譯模型MT→S的優化目標函數:
(12)
式中:t為源語言句子sj的隱變量。因此,綜合式(10)和式(12),得到總的目標函數為:
L(θ)=L(θS→T)+L(θT→S)
(13)
通過EM算法對目標函數的迭代優化與訓練,生成質量更好的新的平行語料,以此來達到語料擴充的目的。
為了驗證本文的方法在機器翻譯領域語料自動生成的有效性,實驗的硬件環境為Intel(R) Core(TM) i7-8550U CPU @ 1.80 GHz 1.99 GHz,16.0 GB內存,SSD 512 GB,Windows 10專業版操作系統。模型的訓練和測試使用Google公司的開源深度學習框架Tensorflow,實驗數據分析軟件環境和測試環境為Pycharm2017專業版。
本文的訓練語料庫包括三大來源,分別是:2018 AI Challenger英中雙語平行語料庫,包括5 M(M表示百萬句對)的中英雙語平行語料,3 M的中文單語語料和2 M的英文單語語料;2018年的WMT中英機器翻譯訓練雙語平行語料共12 M,中文單語語料6 M,英文單語語料4 M;2018年的CWMT的中英雙語平行語料6 M,中文單語語料和英文單語語料各2 M。這些單語句子沒有任何關系,換言之,中文的一個句子,在英文中找不到對應的翻譯。將這些單語數據對應的譯文作為參考譯文,用來與生成的譯文進行對比;驗證集選擇NIST2006數據集;測試集選擇NIST2005數據集、NIST2008數據集、NIST2012數據集,每個測試集對應3個參考譯文。為了進行中英對照,使用3個參考譯文中的第1個英文句子作為源語言句子,將中文句子作為獨立的參考翻譯。為了限制詞表的規模,使用訓練語料庫中前6萬個高頻詞構建詞表,其余的低頻詞標記為

(14)
(15)

(16)
式中:|·|表示長度。
最后,完整的BLEU的指標計算式如下:
(17)

本文使用了Transformer模型作為翻譯訓練的基線模型,經過多輪的參數組合優化,在實驗中,對Transformer模型的相關重要參數[12]進行設置,使模型性能達到最優,如表1所示。這兩個模型大部分設置相同,略微不同的是與網絡訓練相關的參數設置。基于該設置,對于測試數據集,將本文模型與其他完全采用基于雙語語料訓練的模型以及部分基于單語語料訓練的模型(利用偽數據[18]生成的機器翻譯的思想)進行對比,結果如表2所示。

表1 相反方向上的Transformer模型參數設置

表2 實驗中不同測試數據集上的模型表現結果

續表2
為了更加直觀地進行比較,表3列出這些模型的平均BLEU。

表3 模型在測試數據集上的平均BLEU
為了更加細致地探究本文的新方法對于語料的生成,根據EM算法的迭代模型的收斂情況,圖2和圖3給出了從不同的翻譯任務顯示實驗過程中,模型的性能隨著每次迭代過程的變化曲線。圖2為本文方法在驗證集NIST2006數據集上,中文→英文的翻譯任務中,Transformer模型隨著EM算法的迭代次數,模型性能的變化曲線。圖3為本文方法在驗證集NIST2006數據集上,英文→中文的翻譯任務中,Transformer模型隨著EM算法的迭代次數,模型性能的變化曲線。

圖2 中文→英文模型性能的變化曲線

圖3 英文→中文模型性能的變化曲線
為了觀察Transformer模型隨著EM算法迭代,模型生成語料的優劣情況,圖4和圖5給出了生成語料的困惑度隨EM算法迭代次數的變化關系。

圖4 En→Zh模型生成的語料困惑度隨迭代次數的變化曲線

圖5 Zh→En模型生成的語料困惑度隨迭代次數的變化曲線
由表1可知,盡管本文模型的初始訓練并沒有嚴格要求,但一定的調參工作對于算法的迭代收斂過程有一定的好處,有利于模型的訓練。由表2和表3可知,在兩項任務中,本文方法獲得了最好的結果,驗證了本文方法的有效性,即利用單語語料搭配部分的雙語平行語料也可以提高機器翻譯模型的性能。相比只使用雙語數據而言,本文方法降低了雙語平行數據的需求量,減少了專業學者們的工作量,同時又可以獲得顯著效果;與只使用單語數據相比,本文方法保證了生成語料的質量,從而降低了模型的訓練負擔;與完全采用單語數據的無監督機器翻譯相比,訓練代價更低,性能更優;具有極高的性價比。由圖2和圖3可知,當EM算法迭代5次之后,趨向于收斂,模型的性能很難再得到提高,這也證明了本文方法經過一定的迭代過程,使得模型趨于穩定。由圖4和圖5可知,5次迭代后,生成語料的困惑度不會再有大幅度的下降,這與模型的收斂情況一致,避免了模型陷入局部最優的可能。
本文提出了一種新的機器翻譯模型的訓練方法。在源語言和目標語言雙方向上的單語語料的幫助下,將統一學習過程中的一對翻譯模型相互結合,采用聯合EM訓練算法協同優化兩個翻譯模型,互相提高它們的翻譯性能。在進行中英機器翻譯任務上的實驗結果表明,與目前流行的強基線系統相比,基于本文方法的機器翻譯模型性能更佳。但本文方法仍然不可避免地使用到了雙語平行語料,這與僅使用單語數據的無監督機器翻譯相比,增加了一定的工作量,而且本文方法用于其他語種的翻譯任務仍在研究中。下一步嘗試將雙語數據的需求降到最低,甚至只使用單語數據,將本文的訓練方法應用到無監督機器翻譯領域,并在多個語種上進行模型的訓練,擴大算法的應用范圍。