文麗穎
(1.武漢郵電科學研究院,湖北武漢 430000;2.南京烽火天地通信科技有限公司,江蘇南京 210000)
近年來,機器翻譯技術取得了令人矚目的成就,尤其是神經機器翻譯(Neural Machine Translation,NMT)極大程度地提升了機器翻譯的譯文質量,這種變革式的發展使得神經機器翻譯成為機器翻譯的新范式[1]。然而,神經機器翻譯(NMT)系統依賴大規模的適用于訓練此類系統的平行語料庫數據,如果沒有或缺乏平行語料庫,則會經常出現訓練質量不佳的情況,甚至不能進行正確的翻譯[2]。文獻[3-4]提出了不需要任何類型平行語料庫的NMT 系統,通過使用單語語料庫在源語言和目標語言之間進行跨語言嵌入和迭代反向翻譯;從架構的角度來看,這些方法結合了一個編碼器和一個或兩個解碼器。文獻[5]提出在有監督的NMT 系統中聯合訓練多種語言,該系統成功地提高了神經機器翻譯性能。受文獻[3-5]的啟發,文中提出一種多語言無監督神經機器翻譯方法,該方法通過訓練多語言無監督NMT 模型,可實現一個源到多個目標和多個目標到一個源的翻譯。實驗結果表明,該模型可以改善雙語無監督NMT 模型,并且該模型無需對網絡進行多對多翻譯訓練,網絡就可以在參與訓練的所有語言之間進行翻譯。
文中基于編碼器-解碼器框架構建多語言無監督NMT 模型[6],該模型使用一個共享編碼器和多個解碼器聯合訓練多種語言,即通過對每種語言的降噪自動編碼以及英語和多種非英語語言之間的反向翻譯,產生了一個可以將參與訓練的任何語言編碼成一種語言間表示的通用編碼器,以及多個特定語言的解碼器。
循環神經網絡(Recurrent Neural Network,RNN)的誕生為了更好地處理具有序列特性的數據,但該網絡當前時刻的隱藏狀態由該時刻的輸入和上一時刻隱藏層的值共同決定,這就會帶來梯度爆炸和梯度消失的問題。長短期記憶(Long Short Term Memory,LSTM)網絡可以解決RNN 帶來的問題,還可以從語料中學習到長期依賴關系。LSTM神經網絡模型通過引入門函數來去除或增強信息到達單元狀態的能力,門函數包括遺忘門、輸入門和輸出門。
門控循環單元(Gated Recurrent Units,GRU)神經網絡模型與LSTM 非常相似,但相比于LSTM,GRU網絡模型只有更新門和重置門兩個門函數。GRU網絡模型更新門的作用與LSTM 網絡模型的遺忘門和輸入門作用大致相同,更新門的作用在于通過設置參數值的大小決定當前狀態有多少狀態信息來自于前一時刻;重置門的作用也是通過設置參數值的大小決定前一時刻有多少狀態信息可以遺忘或忽略。與LSTM 網絡模型相比,由于GRU 網絡模型只有兩個門函數,少了一個門函數,因此GRU 網絡模型參數更少,訓練速度更快。圖1 所示為GRU 內部結構圖[7]。

圖1 GRU內部結構圖
在t時刻輸入為xt,GRU的隱藏層輸出為ht,其計算過程為:


其中,W為連接兩層的權重矩陣,σ和tanh 為激活函數,z、γ分別為更新門和重置門。
文中的共享編碼器和解碼器使用雙向GRU 神經網絡模型。如圖2 所示,網絡包含左右兩個序列上下文的兩個子網絡,分別是前向和后向傳遞。

圖2 雙向GRU神經網絡模型
雙向GRU 神經網絡的輸出計算過程為:

文中使用基于元素的和來組合正向和反向的輸出。
雙語無監督NMT 模型架構有一個共享編碼器和兩個語言特定的解碼器,并通過以下兩個步驟以無監督方式訓練NMT 系統。
1)降噪自動編碼。降噪自動編碼就是把某種語言的句子加一些噪聲(隨機交換一些詞的順序等),然后用共享編碼器編碼加噪聲后的句子,最后用該語言的句子解碼恢復它。通過最大化重構出的概率來訓練共享編碼器和該語言的解碼器。加噪聲的目的是讓解碼器學會分析語言的結構、提取語義特征,學到一個好的語言模型[8]。
2)反向翻譯。反向翻譯是把偽平行語料當作訓練數據來訓練模型的過程。語言L1的句子s1先用編碼器編碼,然后用L2解碼器貪心解碼出s2,這樣就造出了偽平行句對(s1,s2),這時只作推斷,不更新模型參數;然后再用共享編碼器編碼s2,用L1解碼器解碼出s1,這里通過最大化來訓練模型(也就是共享編碼器和L1解碼器的參數)[9]。
文中提出的多語言無監督NMT 模型首先通過跨語言嵌入映射將多種語言映射到一個共享潛在空間;然后使用共享表示,通過去噪和反向翻譯,在共享編碼器和特定語言解碼器的幫助下,僅使用單語語料庫來訓練NMT 模型。
根據文獻[10]創建跨語言嵌入,這是一種完全無監督的對齊單語單詞嵌入的方法。首先,學習兩個單語嵌入空間X和Y;然后,使用對抗性訓練[11],學習矩陣W將X映射到Y。訓練一個鑒別器以區分WX和Y,而W被訓練成使鑒別器難以判別出是WX還是Y。通過使用W,可以學習小型常用詞匯雙語詞典。求解正交普魯克問題(Orthogonal Procrustes Problem,OPP),得到了一個在X和Y空間之間轉換的新的矩陣W:

以上步驟可以重復多次使用新的W來提取新的翻譯對實現,兩種語言之間的新翻譯對是通過使用跨域相似度局部縮放(Cross-domain Similarity Local Scaling,CSLS)產生的。CSLS 距離定義如下:

對于n種語言,選擇一種語言L1作為錨點,將其他n-1 種語言映射到嵌入空間中。為此,首先為每種語言訓練單語詞嵌入;然后,逐個將n-1 種語言的嵌入映射到L1的嵌入空間中。文中實驗考慮了4 種語言,即英語、法語、西班牙語和德語,通過保持英語嵌入固定,為法語、西班牙語和德語創建了3種跨語言嵌入。
圖3 所示為多語言無監督NMT 模型結構,共享編碼器和每種語言的解碼器是兩層雙向GRU[12];在訓練的每次迭代中,對n種語言L1,L2,…,Ln進行降噪自編碼;如虛線箭頭所示,將每個Li反向翻譯為L1;如實線箭頭所示,從L1反向翻譯到每個Li,其中i∈{2,3,…,n}。實驗設置了4 種語言,L1是英語。在降噪自動編碼步驟中,一種語言中的句子被一些隨機的單詞隨機打亂,并訓練解碼器以預測原始句子。在反向翻譯步驟中,要針對源到目標的方向訓練系統,首先使用推理模式系統(使用共享編碼器和源語言解碼器)將目標句子翻譯成源句子,以生成偽源-目標平行語句,然后使用該偽平行語句按照源到目標的方向訓練網絡。對于從目標到源的訓練過程類似于以上方法。

圖3 多語言無監督NMT模型結構
文中使用來自WMT 2014的單語英語、法語和德語新聞語料庫和WMT 2013的西班牙語語料庫進行訓練[13];其中英語、德語、法語和西班牙語的tokens個數分別為4.955 億、6.226 億、2.243 億和1.229 億。對于測試集,英語-{法語、德語}使用newstest2013 和newstest2014,英語-西班牙語使用newstest2013[14]。文中不使用任何平行語料來訓練,也不使用任何開發集來優化模型,使用Moses 對語料數據進行Tokenize 和Truecase[15]。
使用向量維度為300的skip-gram 模型調用fastText(https://github.com/facebookresearch/fastText)訓練單語嵌入;對于其他超參數,設置為fastText的默認值[16]。在獲得每種語言的單語嵌入后,使用跨語言嵌入映射代碼 MUSE(https://github.com/facebookresearch/MUSE)將每種非英語的嵌入映射到英語的嵌入空間中[17],對于映射不使用雙語數據?;陔p語無監督NMT 模型,使用PyTorch 框架實現了所提出的多語言無監督NMT 模型架構;編碼器和解碼器是兩層雙向GRU,將句子的最大長度設置為50 個tokens。對于模型訓練,設置嵌入維數為300,隱藏維數為600,詞匯量大小為50 000,Adam 優化器學習率設置為0.000 2[18]。由于文中不使用任何開發集,所以對雙語無監督NMT 模型和多語言無監督NMT 模型都進行20 萬次迭代,保持批處理大小為50個句子,并對最終結果用BLUE 值進行評估[19]。
作為對比試驗,按照文獻[3]提出的方法,把為英語?{法語、德語和西班牙語}訓練的雙語無監督NMT 模型作為基線模型。如表1 和表2 所示,給出了雙語和多語言無監督NMT 模型每個翻譯方向的BLEU 值,所提出的多語言無監督NMT 模型在兩個測試集的所有翻譯方向上均優于雙語無監督NMT模型,其中西班牙語到英語BLEU 值最大改進為1.48%。由于參數僅在編碼器端共享,并且每個目標語言使用一個單獨的解碼器,因此,多語言訓練在不失去其自身語言特征的情況下提高了所有語言對的性能。

表1 newstest2013測試集BLUE值對比

表2 newstest2014測試集BLUE值對比
在訓練期間,只在英語和非英語(西班牙語、法語、德語)語言之間進行反向翻譯,但網絡也學會了在非英語語言對之間進行翻譯。例如,為了將西班牙語翻譯成法語,文中對西班牙語句子進行編碼,編碼器的編碼輸出由法語解編碼器解碼。為了進行評估,文中將newstest2013 測試集用于西班牙語-法語、西班牙語-德語和法語-德語語言對。表3給出了在訓練中不可見語言對之間的翻譯結果,可以看出,法語和西班牙語之間的翻譯BLUE 值分別高達13.87%和13.92%;涉及德語的語言對BLUE 值最高為7.40%。

表3 newstest2013非英語語言翻譯BLUE值
文中提出了一個多語言無監督NMT 模型,使用共享編碼器和特定語言解碼器聯合訓練多種語言。提出的方法基于所有語言的降噪自動編碼以及英語和非英語語言之間的反向翻譯。根據實驗結果顯示,多語言無監督NMT 模型在所有翻譯方向上較雙語無監督NMT 基線模型都有了明顯的改進,最大改進BLEU 值為1.48%。由于提出的網絡中共享編碼器能夠生成與語言無關的表示,所以網絡也學會了在不可見的語言對之間進行翻譯。