102個模型、40個資料集,這是你需要了解的機器翻譯SOTA論文

機器之心發表於2019-10-28

機器翻譯一直是非常吸引研究者的「大任務」,如果某些方法被證明在該領域非常有效,那麼它很可能可以擴充套件到其它問題上。例如 Transformer,它出生於機器翻譯家族,卻廣泛應用於各種序列建模任務。

其實機器翻譯也走過一條漫漫長路,從早期基於規則與例項的方法,到基於統計的機器翻譯,再到目前基於深度神經網路的翻譯系統,我們探索了非常多的可能性與思路。有的在剛提出來就受到很多關注,有的則受限於計算資源,直到今天才展現出其強大的能力。

1954 年,人類第一次嘗試俄語到英語的自動翻譯,這種基於規則的翻譯第一次證明機器翻譯是可行的。

1954 年的機器翻譯報導。

自此之後,機器翻譯主要歷經了四種模式:

  • 基於規則的方法:它首先會將源語言句子解析為語法樹,再經過一系列操作轉化為目標語言的語法樹,最後只需要根據目標語法樹生成目標語句就行了。

  • 基於例項的方法:它的基本思想即將源語言句子分割為翻譯例項中見過的短語片段,並根據相似性檢索出與待翻句子片段相似的例項,最後對相似例項的翻譯結果執行替代操作,我們就能得到源語短語片段的翻譯結果。

  • 統計機器翻譯:將源語言句子分割為短語片段,利用基於雙語語料庫學習到的短語翻譯知識,將源語言短語轉化為合適的目標短語。最後對目標短語片段進行合理的調序,並生成完整的譯文。

  • 神經機器翻譯:利用深度神經網路將原語言句子編碼為一個低維向量,然後再直接解碼為目標語言句子。

其實早幾年我們可能感覺機器翻譯還需要大量的人工調整,包括表達方式、專業詞彙、句式結構等等。但是隨著 GNMT 等神經機器翻譯模型的崛起,尤其是 Transformer 展現出強大的能力,體驗上,機器翻譯效果已經非常驚人了。很多時候只需要調整少數詞或表達就能得到滿意的結果,甚至在特定領域上能超過人類的專業翻譯水平。

那麼,從 GNMT 到現在已經三年了,Transformer 的誕生也有兩年了。我們可能很想知道,在最近的 NMT 研究中,到底有什麼樣的 SOTA 模型,翻譯效果又有什麼樣的進步?

在這篇文章中,我們將一探機器翻譯 102 個模型、40 個資料集,從中找找 SOTA 模型到底都有什麼。

機器之心 SOTA 專案

以前我們找 SOTA 模型,基本上只能靠背景知識與各種 Benchmark,頂多也是 Follow 一些收集頂尖模型的 GitHub 專案。但隨著任務細分與新資料集的不斷公佈,這些只關注主流資料集的 Benchmark 就有些不太夠用了。機器之心構建的 SOTA 模型專案,就旨在解決這個問題,我們可以直接從機器之心官網中找到 SOTA 平臺,並搜尋想要的頂尖模型。

102個模型、40個資料集,這是你需要了解的機器翻譯SOTA論文

為了探索當前最佳的 NMT 模型,我們選了幾個常見的資料集,並看看在 Transformer 之後,還有哪些激動人心的研究成果。我們發現不同的 NMT 模型都有其側重的資料集,但最常用的還是 WMT 英法資料集或英德資料集。除此之外,我們也特意找了中英資料集,看看適合翻譯中文的模型又是什麼樣的。

如下是基於 WMT 2014 English-French 資料集的模型,展開後可以看到對應論文與程式碼。後面我們也會介紹 Transformer Big + BT 模型的核心思路,看看它如何繼承了 Transformer 衣缽。

102個模型、40個資料集,這是你需要了解的機器翻譯SOTA論文

除此之外,當我們選擇 WMT French-English 資料集後,我們發現當前的 SOTA 模型 MASS 是微軟亞洲研究院劉鐵巖等研究者提出來的,它的基本思想承接於 BERT 預訓練模型,是另一個非常吸引人的方向。

最後在選擇 NIST Chinese-English 資料集時,我們發現早一段時間馮洋等研究者提出的 Oracle Word 能獲得當前 SOTA 結果,該研究也獲得了 ACL 2019 最佳論文。

總體而言,這三個 SOTA 模型都有著獨特的最佳化方向,其中 Transformer Big + BT 探索用更多的單語資料強化模型效果、MASS 探索預訓練語言模型與無監督的翻譯方法、Oracle Word 則探索如何能彌補訓練與推斷間的鴻溝。

Transformer Big + BT:回譯是王道

一般而言,訓練 NMT 模型需要原文與參考譯文這種成對的雙語資料。但是,雙語資料相對於網路上常見的大量單語資料要有限地多。在這一項研究中,研究者展示瞭如何透過僅提供我們想要翻譯的語言的文字來提升模型的翻譯效能,他們表明利用大量的此類資料可以大幅提升模型準確度。

  • 論文:Understanding Back-Translation at Scale

  • 論文地址:https://arxiv.org/pdf/1808.09381v2.pdf

透過單語資料提升 NMT 模型最高效的方法之一是回譯(back-translation)。如果我們的目標是訓練一個英語到德語的翻譯模型,那麼可以首先訓練一個從德語到英語的翻譯模型,並利用該模型翻譯所有的單語德語資料。然後基於原始的英語到德語資料,再加上新生成的資料,我們就能訓練一個英語到德語的最終模型。

該論文表示,讓模型理解資料的正反翻譯過程是非常重要的,透過取樣故意不總是選擇最好的翻譯同樣也能得到效能提升。如下動圖展示了回譯的主要過程,相當於我們用左邊較少的資料集生成了右邊較大的資料集,並在兩種資料集上訓練而獲得效能提升。

102個模型、40個資料集,這是你需要了解的機器翻譯SOTA論文

研究者表示,如果我們把 2.26 億個反向翻譯的句子新增到現有的包含 500 萬個句子的訓練資料中,我們就能大幅提升翻譯質量。下圖(左)顯示了這一系統在標準 WMT』14 英-德基準測試集上的準確率,該系統在 16 個 DGX-1 機器上需要訓練 22.5 小時。圖中還顯示了 DeepL 的準確率,這是一個依賴於高質量人工翻譯的專業翻譯服務,此前該服務在該基準測試上表現最佳。

102個模型、40個資料集,這是你需要了解的機器翻譯SOTA論文

MASS:預訓練必不可少

BERT 或 XLNet 等預訓練語言模型獲得了非常好的效果,它們能學習到一些通用的語言知識,並遷移到下游 NLP 任務中。受到這種正規化的啟發,微軟亞研劉鐵巖等研究者提出了 MAsked Seq2Seq 預訓練模型(MASS),用於基於編碼器-解碼器的語言生成任務,例如機器翻譯。

  • 論文:MASS: Masked Sequence to Sequence Pre-training for Language Generation

  • 論文地址:https://arxiv.org/abs/1905.02450v5

MASS 採用了編碼器-解碼器框架,並嘗試在給定部分句子的情況下修復整個句子。如下所示為 MASS 的框架圖,其輸入句子包含了一些連續的 Token,並且中間會帶有一些連續的 Mask,模型的任務是預測出被 Mask 掉的詞是什麼。相比 BERT 只有編碼器,MASS 聯合訓練編碼器與解碼器,能獲得更適合機器翻譯的表徵能力。

102個模型、40個資料集,這是你需要了解的機器翻譯SOTA論文

MASS 整體框架,其中「_」表示被 Mask 掉的詞。雖然關注自然語言理解的 BERT 只需要編碼器就行,但這種關注語言生成的預訓練模型需要同時保留編碼器與解碼器。

正因為這種聯合訓練編碼器-解碼器的方法,MASS 非常適合擁有較少雙語語料的翻譯任務。此外,它在無監督翻譯中也能得到非常不錯的效果,甚至超過早期基於注意力機制的有監督翻譯模型。

在 MASS 中被 Mask 掉的詞數量是可選的,如果輸入只 Mask 掉一個詞(k=1),那麼它就等價於 BERT,因為解碼器沒有了額外的輸入資訊。如果 Mask 掉所有詞,那麼就等價於 GPT 這種標準的自迴歸語言模型,因為編碼器完全沒有輸入資訊。如果只 Mask 掉部分詞,那麼它就非常適合機器翻譯這種生成任務了。

102個模型、40個資料集,這是你需要了解的機器翻譯SOTA論文

MASS 的兩種極限選擇,它們分別等價於 BERT 與 GPT。

MASS 這種架構可以強迫編碼器理解輸入句子的意義,並鼓勵解碼器從編碼器中抽取有用的資訊。此外,因為解碼器預測的是連續的詞,因此它也能構建更強大的語言建模能力。這種結構非常符合語言生成模型的要求,因此經過預訓練後的模型只需要簡要的微調就能有比較好的效果。

在該論文的實驗結果中,這種預訓練模型在無監督機器翻譯(只有單語資料)和少樣本機器翻譯中效果都非常出眾。此外,即使在通常較為充足的雙語資料中,MASS 的預訓練也能獲得更多的效能提升。

Oracle Word:訓練與預測之間有 Gap

目前 NMT 的訓練正規化有兩大侷限性。首先在訓練過程中,每預測一個譯文詞,它都會以已知的標註詞作為約束,然而在推斷中,模型只能以已知的預測詞作為約束,這種不匹配就造成了模型在測試集的效果沒那麼好。其次在訓練中,我們要求模型預測的譯文必須與標註的譯文一一對應,很明顯這也會限制翻譯的多樣性。

為了解決這兩個問題,這項研究提出了在訓練過程中用 Oracle Word 強化 Ground Truth Word。也就是說,在翻譯模型的訓練中,它不止會將標註資料作為指導,同時也會將預測結果作為指導。這很大程度上降低了訓練和推斷之間的差異,並大大提升了模型的預測效果。

  • 論文:Bridging the Gap between Training and Inference for Neural Machine Translation

  • 論文地址:https://arxiv.org/abs/1906.02448

 其中 Oracle Word 可以簡單理解為模型預測出的候選詞,它的選擇方法有兩種,即 word-level oracle 和 sentence-level oracle。

102個模型、40個資料集,這是你需要了解的機器翻譯SOTA論文

詞語級別的 Oracle Word 選擇方法。

  • word-level oracle 的選擇方法如圖所示,在時間步為 j 時,獲取前一個時間步模型預測出的分數。為了提高模型的魯棒性,論文在預測分數基礎上加上了 Gumbel noise,最終取分數最高的詞語作為此時的 Oracle Word。

  • sentence-level oracle 的選擇方法則是在訓練時的解碼階段中,使用束搜尋的方法,選擇前 k 個備選句子,然後計算每個句子的 BLEU 分數,最終選擇分數最高的句子。這種方式選擇出來的句子就可以作為模型的預測結果,並指導模型繼續學習。

現在有了候選詞,那麼我們就要考慮如何將它們加入標註詞,並共同訓練模型。這篇研究的思路非常精煉,即在訓練過程中,隨機選擇兩者中的一個作為模型所需的資訊。具體而言,如果模型要預測譯文的第 j 個詞,那麼模型會以 p 的機率選擇 Oracle Word、以 1-p 的機率選擇 Ground Truth Word 作為所需的第 j-1 個譯文詞。

現在,在訓練中,只需要令機率 p 遞增,那麼相當於從傳統的訓練過程逐步遷移到推斷過程,這兩者之間的鴻溝也就不存在了。

如下所示為該項研究在 NIST Chinese-English 資料集上的效果,其中 MT03 表示 NIST 2003 作為測試集的效果。我們可以看到,不論是將 Oracle Word 加到 RNN 架構還是加到 Transformer 架構,它都能得到效能上的提升(BLEU 值)。

102個模型、40個資料集,這是你需要了解的機器翻譯SOTA論文

最後,以上 3 個 SOTA 模型只是從不同的角度提升機器翻譯效果,SOTA 專案中還能找到更多優秀的模型,它們都有各自的特點與關注的角度。總的而言,理解機器翻譯最前沿的思想,這些 SOTA 模型都是要了解的,我們需要從各個角度看看神經機器翻譯的潛力到底怎麼樣。

相關文章