1. 程式人生 > >無監督神經機器翻譯:僅需使用單語語料庫

無監督神經機器翻譯:僅需使用單語語料庫

神經機器翻譯近期取得很大成功,但缺乏雙語資料的語言對很難基於現有方式訓練出好的機翻系統。近日,有研究者提出一種無監督新方法,無需使用平行語料庫,使用去噪和回譯的步驟構建 NMT 系統。該系統在 WMT 2014 法語-英語和德語-英語翻譯中分別取得了 15.56 和 10.21 的 BLEU 得分。

論文:Unsupervised Neural Machine Translation

1855220171110162801.png

論文連結:https://arxiv.org/abs/1710.11041

摘要:近期神經機器翻譯(NMT)在標準基準上取得了很大成功,但是缺乏大型平行語料庫對很多語言對是非常大的問題。有幾個建議可以緩解該問題,比如三角剖分(triangulation)和半監督學習技術,但它們仍然需要強大的跨語言訊號(cross-lingual signal)。本論文中,我們完全未使用平行資料,提出了用完全無監督的方式訓練 NMT 系統的新方法,該方法只需使用單語語料庫。我們的模型在近期關於無監督嵌入對映的研究基礎上構建,包含經過少許修改的注意力編碼器-解碼器模型(attentional encoder-decoder model),該模型使用去噪和回譯(backtranslation)結合的方式在單語語料庫上進行訓練。儘管該方法很簡單,但我們的系統在 WMT 2014 法語-英語和德語-英語翻譯中分別取得了 15.56 和 10.21 的 BLEU 得分。該模型還可以使用小型平行語料庫,使用 10 萬平行句對時,該模型分別取得了 21.81 和 15.24 的 BLEU 得分。我們的方法在無監督 NMT 方面是一個突破,為未來的研究帶來了新的機會。

94813%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202017-11-01%20%E4%B8%8B%E5%8D%882.26.56.png

圖 1:系統架構。

對語言 L1 中的每個句子,該系統都通過兩個步驟進行訓練:去噪——利用共享編碼器優化對句子帶噪聲版本進行編碼和使用 L1 解碼器重構句子的概率;回譯——在推斷模式(inference mode)下翻譯該句子(使用共享編碼器編碼該句子,使用 L2 解碼器進行解碼),然後利用共享編碼器優化對譯文句子進行編碼和使用 L1 解碼器恢復源句子的概率。交替執行這兩個步驟對 L1 和 L2 進行訓練,對 L2 的訓練步驟和 L1 類似。

3.1 系統架構

如圖 1 所示,我們提出的系統使用比較標準的帶有注意力機制的編碼器-解碼器架構(Bahdanau et al., 2014)。具體來說,我們在編碼器中使用一個雙層雙向 RNN,在解碼器中使用另一個雙層 RNN。所有 RNN 使用帶有 600 個隱藏單元的 GRU 單元(Cho et al., 2014),嵌入的維度設定為 300。關於注意力機制,我們使用 Luong et al. (2015b) 提出的全域性注意力方法,該方法具備常規對齊功能。但是,我們的系統與標準 NMT 在三個方面存在差異,而正是這些差異使得我們的系統能夠用無監督的方式進行訓練:

1. 二元結構(Dual structure)。NMT 系統通常為特定的翻譯方向搭建(如法語到英語或英語到法語),而我們利用機器翻譯的二元本質(He et al., 2016; Firat et al., 2016a),同時進行雙向翻譯(如法語 ↔ 英語)。

2. 共享編碼器。我們的系統僅使用一個編碼器,該編碼器由兩種語言共享。例如,法語和英語使用同一個編碼器。這一通用編碼器旨在產生輸入文字的語言獨立表徵,然後每個解碼器將其轉換成對應的語言。

3. 編碼器中的固定嵌入。大多數 NMT 系統對嵌入進行隨機初始化,然後在訓練過程中對其進行更新,而我們在編碼器中使用預訓練的跨語言嵌入,這些嵌入在訓練過程中保持不變。通過這種方式,編碼器獲得語言獨立的詞級表徵(word-level representation),編碼器只需學習如何合成詞級表徵來構建較大的片語表徵。如 Section 2.1 中所述,存在多種無監督方法利用平行語料庫來訓練跨語言嵌入,這在我們的場景中也是可行的。注意:即使嵌入是跨語言的,我們仍然需要使用每種語言各自的詞彙。這樣,同時存在於英語和法語中的單詞 chair(法語意思是「肌肉」)在每種語言中都會獲得一個不同的向量,儘管兩個向量存在於共同的空間中。

3.2 無監督訓練

NMT 系統通常用平行語料庫進行訓練,由於我們只有單語語料庫,因此此類監督式訓練方法在我們的場景中行不通。但是,有了上文提到的架構,我們能夠使用以下兩種策略用無監督的方式訓練整個系統:

1. 去噪

我們使用共享編碼器,利用機器翻譯的二元結構,因此本文提出的系統可以直接訓練來重構輸入。具體來說,整個系統可以進行優化,以使用共享編碼器對給定語言的輸入句子進行編碼,然後使用該語言的解碼器重構源句子。鑑於我們在共享編碼器中使用了預訓練的跨語言嵌入,該編碼器學習將兩種語言的嵌入合稱為語言獨立的表徵,每個解碼器應該學習將這類表徵分解成對應的語言。在推斷階段,我們僅用目標語言的解碼器替代源語言的解碼器,這樣系統就可以利用編碼器生成的語言獨立表徵生成輸入文字的譯文。

但是,相應的訓練過程本質上是一個瑣碎的複製任務,這使得上述完美行為大打折扣。該任務的最佳解決方案不需要捕捉語言的內部結構,儘管會有很多退化解只會盲目地複製輸入序列的所有元素。如果確實如此的話,該系統的最好情況也不過是在推斷階段進行逐詞替換。

為了避免出現此類退化解,使編碼器真正學會將輸入詞語合成為語言獨立的表徵,我們提出在輸入句子中引入隨機噪聲。這個想法旨在利用去噪自編碼器(denoising autoencoder)同樣的基本原則(Vincent et al., 2010),即系統被訓練用於重構帶噪聲輸入句子的原始版本(Hill et al., 2017)。為此,我們通過隨機互換相鄰詞語來改變輸入句子的詞序。具體而言,對於包含 N 個元素的序列,我們進行 N/2 次此類隨機互換操作。這樣,該系統需要學習該語言的內部結構以恢復正確的詞序。同時,我們不鼓勵系統過度依賴輸入句子的詞序,這樣我們可以更好地證明跨語言的實際詞序離散。

2. 回譯

儘管存在去噪策略,上述訓練步驟仍然是一個複製任務,其中包含一些合成的改動,最重要的是,每次改動都只涉及一種語言,而非同時考慮翻譯的兩種語言。為了在真正的翻譯環境中訓練新系統,而不違反僅使用單語語料庫的限制,研究人員提出引入 Sennrich 等人 2016 年提出的回譯方法。具體說來,這種方法是針對給定語言的一個輸入句,系統使用貪心解碼在推斷模式下將其翻譯成另一種語言(即利用共享編碼器和另一種語言的解碼器)。利用這種方法,研究人員得到了一個偽平行語料庫,然後訓練該系統根據譯文來預測原文。

31884%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202017-11-01%20%E4%B8%8B%E5%8D%882.44.50.png

表 1:幾種系統在 newstest2014 上的 BLEU 得分。無監督系統利用 News Crawl 單語語料庫進行訓練,半監督系統利用 News Crawl 單語語料庫和來自 News Commentary 平行語料庫的 10 萬句對進行訓練,監督學習系統(作為對比)使用來自 WMT 2014 的平行語料庫進行訓練。其中,Wu et al. 2016 年提出的 GNMT 取得了單模型的最佳 BLEU 得分。

60766%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202017-11-01%20%E4%B8%8B%E5%8D%882.45.41.png

表 2:本文提出的系統使用 BPE 對 newstest2014 中的部分句子進行法語到英語的翻譯。

6 結論

在本論文中,研究人員提出用無監督方法訓練神經機器翻譯系統的新方法。它建立在無監督跨語言嵌入的現有工作上(Artetxe 等人,2017;Zhang 等人,2017),並將它們納入修改後的注意力編碼器-解碼器模型中。通過使用帶有固定跨語言嵌入的共享編碼器,結合去噪和回譯,我們實現了僅利用單語語料庫訓練 NMT 系統。

實驗顯示了新方法的有效性,在標準 WMT 2014 法語-英語和德語-英語基準測試中,新方法的 BLEU 得分顯著超過執行逐詞替換的基線系統。我們也手動分析並確定了新系統的表現,結果表明它可以建模複雜的跨語言關係並生成高質量的譯文。此外,實驗還表明新方法結合一個小型平行語料庫可以進一步提升系統性能,這對於訓練資料不足的情況非常有用。

新的工作也為未來研究帶來了新的機會,儘管該研究在無監督 NMT 方面是一個突破,但仍有很大改進空間。其中,在研究中用於比較的監督 NMT 系統不是業內最佳,這意味著新方法帶來的修正同樣也限制了其效能。因此,研究人員接下來將檢查這一線性的原因並嘗試緩解。直接解決它們不太可行,我們希望探索兩個步驟,時序 i 安按照當前方式訓練系統,然後恢復主要的架構變更,再進行精確調整。另外,研究人員還將探索將字元級資訊納入模型,這可能會有助於解決訓練過程中出現的一些充分性問題。同時,如果解決了罕見詞,特別是命名實體的問題,該系統的表現將進一步提升。