本文基於ACL 2020論文《Learning to Recover from Multi-Modality Errors for Non-Autoregressive Neural Machine Translation》撰寫,論文做者爲騰訊微信AI團隊。git
導語
非自迴歸神經機器翻譯(non-autoregressive neural machine translation,簡稱非自迴歸翻譯)是近年來興起的一種新的機器翻譯方法。爲了提高翻譯速度,其拋棄了目標語言詞間的依賴關係,並行生成全部目標詞,顯著提高了翻譯速度。但因爲同一段原文常常有多種可行的潛在譯文,使得非自迴歸翻譯模型在解碼時會出現不一樣位置的目標語言詞是從不一樣的潛在譯文中選取的問題,被稱爲多峯問題(multi-modality problem)。該問題一般表現爲重複翻譯和漏譯現象,對非自迴歸翻譯模型的翻譯質量具備不利影響。爲了緩解該問題,本文提出了一種新的模型RecoverSAT。該模型該譯文拆成多個片斷並逐段生成,在每一個片斷內部採用自迴歸生成方式,而段間則採用非自迴歸方式。進一步的,經過引入動態中止機制和段刪除機制,該方法能夠有效緩解重複翻譯和漏譯的問題。實驗結果顯示,該方法在得到與傳統神經機器翻譯模型可比效果的同時,能夠得到約4倍的加速。論文的預印版和代碼均已開放。github
背景
自迴歸神經機器翻譯(autoregressive neural machine translation,AT,簡稱自迴歸翻譯)因其領先的翻譯質量而得到普遍關注與應用。但此類模型在生成每一個目標語言詞時(即解碼)都依賴於在其以前已經生成的詞,所以譯文生成過程是串行的,使解碼速度成爲這類模型的一個重要瓶頸。非自迴歸神經機器翻譯(non-autoregressive neural machine translation,簡稱非自迴歸翻譯)拋棄了目標語言詞間的依賴關係,將逐詞生成變爲全部詞並行生成,顯著提高了翻譯速度,但也相伴產生了多峯問題(multi-modlity problem),一般表現爲重複翻譯和漏譯現象。圖1展現了多峯問題的一個示例:微信
源語言句子學習 |
今天有不少農民在作這件事this |
可行譯文1編碼 |
There are lots of farmers doing this todayspa |
可行譯文2翻譯 |
There are a lot of farmers doing this today3d |
生成譯文1code |
There are lots of of farmers doing this today |
生成譯文2 |
There are a lot farmers doing this today |
圖1:多峯問題示例
對於源語言片斷「不少農民」,有多種可行的翻譯方式,如「lots of farmers」和「a lot of farmers」,因爲非自迴歸翻譯模型拋棄了目標語言詞間的依賴關係,致使其生成的譯文中,不一樣位置的詞可能源於不一樣的可行譯文。如對於生成譯文1,「lots of」源於可行譯文1而「of farmers」源於可行譯文2。一樣的現象在生成譯文2中也能夠觀察到。顯然多峯問題對於翻譯質量具備不可忽視的負面影響。
在已有的非自迴歸翻譯工做中,一類工做採用多輪解碼(iterative decoding)的方法緩解該問題,即每次解碼時都將源語言句子和上一輪生成的譯文同時做爲新一輪解碼的輸入,具備可以修復生成錯誤的優勢。但該類方法一般須要迭代屢次以得到較好的翻譯質量,對翻譯速度有顯著影響。另外一類方法則經過在模型中額外引入以自迴歸方式工做的部件的方式注入目標語言端的依賴關係。但這類方法沒法對已經發生的生成錯誤進行修正。
爲了緩解多峯問題,本文提出了一種新的半自迴歸(semi-autoregressive)翻譯模型RecoverSAT。該模型具備三個方面的優勢:(1) 爲了提高翻譯速度,該方法將譯文拆分紅多個片斷,並使片斷能夠並行生成;(2)爲了更好的捕捉目標語言端依賴關係,在生成每一個詞時,其不只依賴於所在片斷內已經被生成的詞,還依賴於其餘片斷內已經被生成的詞。一方面,咱們觀察到重複翻譯多發如今短片斷內,所以在每一個片斷內部採用自迴歸方式生成每一個詞有助於減小重複翻譯現象。另外一方面,將其餘片斷已被生成的詞歸入考慮,有助於模型判斷其餘片斷是基於何種可行譯文選詞並相應對本段內將要生成的詞進行調整,從而有助於緩解漏譯現象。綜合以上兩方面,咱們的模型考慮了更多目標語言端信息,從而可以更好得緩解多峯問題。(3)爲了使模型具有從已發生的重複翻譯錯誤中進行恢復的能力,咱們提出了一種段刪除機制,使得模型在發現某段翻譯的內容已在其餘段中被翻譯時,能夠動態將該段刪除,從而能夠從錯誤中恢復。
模型結構
圖2:模型結構圖
圖2展現了RecoverSAT的模型結構。對於編碼器(encoder),RecoverSAT沿用了經常使用的Transformer結構,這裏再也不贅述。RecoverSAT的主要創新點集中於解碼器(decoder)。如圖所示,在生成譯文時,RecoverSAT將譯文拆分紅多個片斷,每一個片斷內自左向右逐詞生成,而片斷間則並行生成。其中「EOS」表示對應的片斷已生成完畢,而「DEL」表示相應的片斷須要被總體刪除。總體過程的機率公式表示以下:
其中x表示源語言句子,y表示譯文,表示第i個片斷的第t個詞,表示第i個片斷的歷史信息,L表示片斷長度,K表示片斷數目。
爲了更好的緩解多峯問題,咱們提出了「動態中止」和「段刪除」兩個機制,其工做原理以下:
動態中止機制:如上所述,與多數已有的非自迴歸翻譯模型不一樣,咱們並不預先指定譯文的長度,而是經過讓模型動態爲每段生成特殊符號「EOS」的方式來讓模型自行決定譯文的長度。咱們稱之爲動態中止機制。該機制能夠從兩個方面緩解多峯問題:
- 對於每一個片斷,其開頭幾個詞的選擇能夠更加靈活。以圖2爲例,對於第2個片斷(Segment 2),若是模型將其第一個詞選爲「of」而不是「lots」,那麼模型只需在第1個片斷(Segment 1)的結尾處多生成出詞「lots」便可避免漏譯錯誤。同理,若是第2個片斷的第1個詞被選擇爲「are」,那麼第1個片斷只需不生成「are」便可避免重複翻譯錯誤。
- 如的定義所示,生成每一個詞時,全部片斷中已經生成的詞均被做爲歷史使用,從而使模型能夠考慮更多歷史信息,從而更易發現多峯問題相關錯誤並從中恢復。
這裏須要指出的是,如何訓練模型使其具有上述能力但又保持較好的解碼速度是一個很大的挑戰。一方面,RecoverSAT的翻譯速度與各個片斷的最長長度成正比,相應的,咱們須要在構造訓練數據時儘可能將參考譯文拆分紅長度相等的片斷,以鼓勵模型生成長度大體相等的片斷;另外一方面,咱們又須要在訓練過程當中給模型提供充足的具備多峯問題相關錯誤的訓練數據,以使模型能夠學習到從相關錯誤中恢復的能力。爲了平衡這兩方面的要求,在訓練過程當中,咱們隨機決定每條譯文是隨機拆分紅長度不等的片斷仍是長度至關的片斷,而且隨着訓練的進行,逐漸增長拆分紅長度至關的片斷的譯文比例。
段刪除機制:顯然動態中止機制並不能消除全部多峯問題相關錯誤,所以咱們引入段刪除機制來在已經發生重複翻譯錯誤時從錯誤中恢復。具體的,當模型發現某一個片斷的譯文對應的內容已在其餘片斷中被刪除時,模型將生成一個特殊符號「DEL」表示該片斷須要被刪除。在解碼過程完成後,咱們將在後處理階段將對應的片斷從譯文中刪除,以得到最終譯文。須要特別指出的是,咱們觀察到重複翻譯現象一般在每段的前幾個詞處發生,由於此時模型可供參考的歷史信息很是有限。所以咱們採用預測整段是否刪除而非每一個詞是否該被刪除的建模方式以提高模型的簡潔性。在訓練過程當中,咱們經過人爲插入一些重複片斷的方式爲模型提供相應的訓練數據。
實驗效果
爲驗證模型的有效性,咱們在WMT14 En-De、WMT16 En-Ro、IWSLT16 En-De三個數據集、五個翻譯方向上進行了實驗,相應的實驗結果見圖3。從實驗結果中咱們能夠看到:(1)RecoverSAT得到了與自迴歸翻譯模型(Transformer)可比的翻譯質量(BLEU值)。特別的,在分段數爲2時,翻譯質量差距很小但解碼速度快2倍以上。而在分段數爲10時,BLEU值降低不足5%,而解碼速度爲自迴歸翻譯模型的4倍。(2)RecoverSAT在翻譯質量上超過了除CMLM之外的全部非自迴歸翻譯模型。而RecoverSAT與CMLM的翻譯質量差異很小但RecoverSAT解碼速度顯著快於CMLM。(3)隨着分段數的增長,RecoverSAT翻譯質量有較小的降低而解碼速度有顯著提高,顯示其具備較好的泛化性。
圖3:實驗效果(BLEU值)。其中RecoverSAT括號中的K表示分段數
圖4展現了一個實際例子上的翻譯結果。在這個例子上,咱們經過要求模型在特定位置生成特定詞的方式(綠色標記),探測模型從多峯相關問題恢復的能力。能夠看到:(1)已有的非自迴歸翻譯模型(NAT)生成的譯文中有多處重複翻譯和漏譯,而RecoverSAT生成的譯文中相應現象不多。(2)RecoverSAT具有動態決定片斷長度以緩解重複翻譯錯誤的能力(譯文B),也具有從漏譯錯誤中恢復的能力(譯文C和D)。(3)RecoverSAT具有發現和刪除重複片斷的能力(譯文D)。
圖4:實際翻譯質量示例。「Forced Translation」表示咱們強制要求模型生成某個特定的詞(綠色標記)以觀察相應現象。黃色:重複翻譯;紅色:漏譯;灰色:模型預測須要被刪除的片斷
結語
爲了緩解非自迴歸翻譯中的多峯問題,本文提出一種新的半自迴歸翻譯模型RecoverSAT。該模型經過將譯文拆分紅多個片斷、片斷內用自迴歸方式生成而片斷間用非自歸方式生成的方法在得到解碼速度提高的同時保持了較好的翻譯質量。進一步的,該方法經過引入動態中止機制和段刪除機制,能夠進一步緩解多峯問題並具有必定的從多峯問題相關錯誤中恢復的能力。將本文中的方法與其餘用於解決多峯問題的方法進行有機結合以得到更好的翻譯質量和解碼速度將是很是值得關注的研究方向。