天天看點

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

無監督神經機器翻譯三

  • Phrase-Based & Neural Unsupervised Machine Translation
    • 技術點
    • 主要思想
    • 整體流程
    • 設計細節
      • 神經機器翻譯
        • 初始化
          • 詞對齊
        • 語言模型
        • 疊代回譯
      • 基于短語的統計機器翻譯(PBSMT)
    • 模型選擇
    • 實驗結果

Phrase-Based & Neural Unsupervised Machine Translation

這是facebook小哥哥的第三篇文章,獲得了EMNLP2018的bestpaper。依然是在前兩篇的基礎上做的工作,粗略閱讀感覺跟以前的工作沒什麼差別,但是作者将前面的工作靈活應用取得了很好的效果。作者所總結的無監督機器翻譯通用方法,不僅在神經機器翻譯上取得了很好的效果,在傳統機器翻譯上效果同樣驚人,bestpaper實至名歸啊。

【前面的一篇部落格】中也是無監督機器翻譯的,但他的工作是基于相似語種的,對于相差很大的語種效果應該不好。而本文所提出的模型對于任何語種都适用,隻是相近語種用到的方法更簡單一些,确實厲害!由于統計機器翻譯不是我研究的重點,是以下面我重點介紹神經機器翻譯的部分。

由于這篇文章是以前兩篇文章為基礎的,是以想看懂這篇文章最好要先看前面的三篇相關部落格,否則很難了解。連結為:

  1. Word Translation without Parallel Data
  2. Unsupervised Machine Translation Using Monolingual Corpora Only
  3. Unsupervised Neural Machine Translation

技術點

本文主要總結了無監督機器翻譯三個原則:

  1. 初始化(Initialization)
  2. 語言模組化(Language Modeling)
  3. 疊代反向翻譯(Iterative Back-translation)

作者說使用無監督的方式翻譯,隻要遵循以上三個原則,就可以實作,而不在于模型。

上面三個原則通俗點解釋就是:

  1. 初始化:文中通過這一步獲得了一個将不同語言的字嵌入空間進行了對齊,這樣就産生了一個可以進行逐字翻譯的模型。
  2. 語言模型:在有了一個逐字翻譯的模型之後,使用單語言側的語言模型,去将翻譯出來的不完整的不流利的翻譯進行改進,使得在目前語言下符合文法和規範。同時,這樣産生的語料可以作為平行語料。這就是第二步單側語言模型的作用。
  3. 反向翻譯:翻譯大約可以看做是A語言->B語言的過程,反向翻譯則是将這一過程反向,即從B->A的過程。由于上一階段已經産生了平行語料,這樣将這個平行語料翻譯回A的過程,就是反向翻譯的過程,且這一成程可以看做是一個有監督的學習(已知正确的語言為A)。

通過這樣的描述,大概就能明白了論文的大體思路:

1)簡單的詞到詞的翻譯模型

2)使用語言模型讓他變得更流程,并獲得平行語料

3)使用平行語料,進行有監督的學習。

主要思想

這篇文章在前人的基礎上,總結出無監督機器翻譯的三個原則,即合理的初始化,語言模型和疊代回譯。通過初始化,為模型提供了先驗知識和期待的解空間;單語資料蘊含了豐富的語言學知識,語言模型的應用讓模型在一定程度上學習了這些知識,使生成的句子更為流暢和合理;在疊代回譯中,源語到目智語的翻譯和目智語到源語的翻譯組成對偶任務,通過将語種A的句子翻譯成語種B,再翻譯回語種A,來訓練目标模型,把無監督問題變為了有監督問題。

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

如上圖所示,子圖A表示兩個語種的單語資料,标記表示句子(詳見圖例);子圖B表示第一個原則:初始化,例如可通過無監督學習到的詞典進行逐詞翻譯,以粗略的對齊兩種分布;子圖C表示第二個原則:語言模型,每個語種獨立地訓練語言模型,為模型提供語言結構等先驗知識,以糾正錯誤的句子等;子圖D表示第三個原則:疊代回譯,從一個觀察到的源語句子(實心紅色圓圈)開始,通過源語到目智語模型進行翻譯(虛線箭頭),産生一個可能錯誤的翻譯(空心藍色圓圈附件的藍色十字),然後進行回譯,再用目智語到源語模型(連續箭頭)重建源語句子,通過重建句子與初始句子之間的差異為訓練目智語到源語模型提供了誤差信号,反之亦然。

整體流程

下圖結合無監督機器翻譯的三原則,概述了無監督機器翻譯的方法。首先學習語言模型,其次初始化提供初始解空間,最後通過疊代回譯使模型收斂。其中S和T分别代表源語和目智語句子的空間,Ps和Pt表示在源語和目智語上訓練的語言模型,Ps→t 表示源語到目智語的翻譯模型,Pt→s

類似。

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

設計細節

神經機器翻譯

初始化

無監督神經機器翻譯中,通常使用對齊的詞嵌入初始化編碼器和解碼器的Embedding或輸出層。不同于之前所采用的方法,兩個語種的單語資料分别訓練嵌入,再通過半監督和無監督的方法對齊嵌入空間(詞對齊)。對于相近的語言,作者提出了一種更加簡單高效的對齊方法,即混合源語和目智語資料,訓練詞嵌入,這樣的做法能更好的對齊分布空間。其次作者還使用了BPE減少了詞彙量和消除了輸出翻譯中的未知單詞。

詞對齊

詞對齊用的是第一篇部落格所介紹的文章中設計的方法,下面回顧下相關内容:

Facebook無監督機器翻譯的方法,首先是讓系統學習雙語詞典,将一個詞與其他語言對應的多種翻譯聯系起來。舉個例子,就好比讓系統學會“Bug”在作為名詞時,既有“蟲子”、“計算機漏洞”,也有“竊聽器”的意思。Facebook使用了他們在之前發表于ICLR 2018的論文《Word Translation Without Parallel Data》中介紹的方法,讓系統首先為每種語言中的每個單詞學習詞嵌入,也即單詞的向量表示。

然後,系統會訓練詞嵌入,根據其上下文(例如,給定單詞前後的各5個單詞)來預測給定單詞周圍的單詞。盡管詞嵌入是一種非常簡單的表示方法,但從中可以獲得很有趣的語義結構。例如,與“kitty”(小貓)這個詞距離最近的是“cat”(貓),并且“kitty”這個詞與“animal”(動物)之間的距離要遠遠小于它與“rocket”(火箭)這個詞的距離。換句話說,“kitty”很少出現在有“rocket”的上下文裡。

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

上圖的gatto和cat都是貓的意思。

可以通過簡單的旋轉并對齊兩種語言(X和Y)的二維詞嵌入,然後通過最近鄰搜尋實作單詞翻譯。

鑒于這些相似之處,Facebook的研究人員提出了一種方法,讓系統通過對抗訓練等方法,學習将一種語言的詞嵌入結構進行旋轉,進而比對另一種語言的詞嵌入結構。有了這些資訊以後,他們就可以推斷出一個相當準确的雙語詞典,無需任何已經翻譯好的語句,并且基本上可以做到逐字翻譯。

語言模型

在神經機器翻譯中,主要通過去噪自編碼器實作了語言模型,類似于機器翻譯任務,不同點在于編碼器和解碼器的輸入均屬于同一語種。其目标函數如下:

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

這裡的語言模型的損失函數如圖,(即随機的删除句子中的一些詞和交換句子中詞的位置,對句子進行還原)。其中C是噪聲模型,對Encoder輸入的詞進行丢棄或交換,實驗表明該方法有利于語言模型的學習;Ps→s 表示編碼器、解碼器輸入都是源語的編碼-解碼模型,Pt→t 類似。

通過旋轉并對齊不同語言的詞嵌入結構,得到詞到詞的翻譯。當逐詞翻譯實作以後,接下來就是詞組乃至句子的翻譯了。當然,逐詞翻譯的結果是無法直接用在句子翻譯上的。于是,Facebook的研究人員又使用了一種方法,他們訓練了一個單語種語言模型,對逐詞翻譯系統給出的結果打分,進而盡可能排除不符合文法規則或有語病的句子。

這個單語模型比較好獲得,隻要有小語種(比如烏爾都語)的大量單語資料集就可以。英語的單語模型則更好建構了。通過使用單語模型對逐詞翻譯模型進行優化,就得到了一個比較原始的機器翻譯系統。雖然翻譯結果不是很理想,但這個系統已經比逐字翻譯的結果更好了,并且它可以将大量句子從源語言(比如烏爾都語)翻譯成目智語言(比如英語)。

完成上面步驟後就用無監督反向翻譯技術,訓練句到句的機器翻譯系統。

疊代回譯

回譯是半監督學習中利用單語資料的有效方法。在無監督機器翻譯中,該過程的目标函數表示如下:

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

其中,u∗(y) 表示由目智語到源語模型翻譯得到的源語句子,v∗(y) 表示由源語到目智語模型翻譯得到的目智語句子。(u∗(y),y) 和(x, v∗(y) )組成僞平行資料,基于最大似然估計,分别用于源語到目智語模型和目智語到源語模型的訓練。

接下來,Facebook研究人員再将這些機器翻譯所得到的句子(從烏爾都語到英語的翻譯)作為ground truth,用于訓練從英語到烏爾都語的機器翻譯。這種技術最先由R. Sennrich等人在ACL 2015時提出,叫做“反向翻譯”,當時使用的是半監督學習方法(有大量的語言對)。這還是反向翻譯技術首次應用于完全無監督的系統。

我們舉例來詳細說明(source:英語 target: 烏爾都語):

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

這裡把英語看做輸入x,那麼輸出的烏爾都語v∗(x)的表達式為:

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

即:在輸入x的情況下,當翻譯模型給出v的機率最大時,即是x在烏爾都語下的翻譯v,再通過由單語種語料訓練的語言模型将翻譯變得更符合文法和規範,這樣就可以生成平行語料Pt→t(v∗(x)) 。

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

這樣,再将Pt→t(v∗(x))的語料翻譯x的過程,即為反向翻譯,即為上圖中多出來的部分。

而進行這一任務時,我們已知的是x是一定正确的,即是有标簽的,可以認為是一個有監督的任務,即翻譯由一個無監督任務轉變成了一個有監督任務。

我們又可以将翻譯的過程看做是:

A->B的過程,但是同樣的也存在着一個由B->A的反過程。

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

是以必要存在一個反過程。是以将這兩個過程結合在一起時,就可以使得系統形成一個閉合的回路。可以進行循環疊代提升效果。

不可否認,由于第一個系統(從烏爾都語到英語的原始機器翻譯系統)的翻譯錯誤,作為訓練資料輸入的英語句子品質并不高,是以第二個反向翻譯系統輸出的烏爾都語翻譯效果可想而知。

不過,有了剛才訓練好的那個烏爾都語單語模型,就可以用它來對第二個反向翻譯系統輸出的烏爾都語譯文進行校正,進而不斷優化、疊代,逐漸完善第二個反向翻譯系統。

基于短語的統計機器翻譯(PBSMT)

用的是文章《Statistical phrase-based translation》中的方法。和Unsupervised Statistical Machine Translation中用的方法是一樣的。

PBSMT使用Moses的預設平滑ngram語言模型,并在第一次生成禁用了短語重新排序。 使用算法2以疊代方式訓練PBSMT。在每次疊代中,我們翻譯從源語言的單語資料集中随機抽取的500萬個句子。 除初始化外,我們使用短語表,其短語長度不超過4。

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

模型選擇

Moses實作的PBSMT有15個超參數,比如每個評分函數的相對權重、單詞懲罰等。在本文中,我們考慮兩種設定超參數的方法。我們可以将它們設定為工具箱中的預設值,也可以使用小型驗證語句集來設定它們。結果表明,如果驗證集中隻有100個帶标簽的句子,PBSMT就會過度适合驗證集。例如,在en→f r上,調優100個平行句的PBSMT在newstest 2014上獲得了26.42的BLEU評分,而預設超參數下為27.09,在newstest 2013上調優3000個平行句的PBSMT獲得了28.02的BLEU評分。是以,除非另有規定,本文所考慮的所有PBSMT模型都使用預設的超參數值,并且不使用任何并行資源。

對于NMT,我們還考慮了兩種模型選擇程式:基于“往返”翻譯的BLEU分數的無監督标準(源→目标→源和目标→源→目标),如Lample等人所述。 (2018),以及使用帶有100個平行句子的小型驗證集進行交叉驗證。在我們的實驗中,我們發現使用Transformer模型時,無監督标準與測試名額高度相關,但對于LSTM并非始終如此。是以,除非另有說明,否則我們将使用100個并行語句的小型驗證集來選擇最佳LSTM模型,并使用無監督條件選擇最佳Transformer模型。

實驗結果

face - Phrase-Based & Neural Unsupervised Machine TranslationPhrase-Based & Neural Unsupervised Machine Translation

繼續閱讀