本文基於ACL 2020論文《Learning to Recover from Multi-Modality Errors for Non-Autoregressive Neural Machine Translation》撰寫,論文作者為騰訊微信AI團隊。
一、導語
非自迴歸神經機器翻譯(non-autoregressive neural machine translation,簡稱非自迴歸翻譯)是近年來興起的一種新的機器翻譯方法。為了提升翻譯速度,其拋棄了目標語言詞間的依賴關係,並行生成所有目標詞,顯著提升了翻譯速度。
但由於同一段原文經常有多種可行的潛在譯文,使得非自迴歸翻譯模型在解碼時會出現不同位置的目標語言詞是從不同的潛在譯文中選取的問題,被稱為多峯問題(multi-modality problem)。
該問題通常表現為重複翻譯和漏譯現象,對非自迴歸翻譯模型的翻譯質量具有不利影響。
為了緩解該問題,本文提出了一種新的模型RecoverSAT。該模型該譯文拆成多個片段並逐段生成,在每個片段內部採用自迴歸生成方式,而段間則採用非自迴歸方式。
進一步的,通過引入動態停止機制和段刪除機制,該方法可以有效緩解重複翻譯和漏譯的問題。實驗結果顯示,該方法在獲得與傳統神經機器翻譯模型可比效果的同時,可以獲得約4倍的加速。論文的預印版和代碼均已開放。
二、背景
自迴歸神經機器翻譯(autoregressive neural machine translation,AT,簡稱自迴歸翻譯)因其領先的翻譯質量而獲得廣泛關注與應用。
但此類模型在生成每個目標語言詞時(即解碼)都依賴於在其之前已經生成的詞,因此譯文生成過程是串行的,使解碼速度成為這類模型的一個重要瓶頸。
非自迴歸神經機器翻譯(non-autoregressive neural machine translation,簡稱非自迴歸翻譯)拋棄了目標語言詞間的依賴關係,將逐詞生成變為所有詞並行生成,顯著提升了翻譯速度,但也相伴產生了多峯問題(multi-modlity problem),通常表現為重複翻譯和漏譯現象。
圖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。
該模型通過將譯文拆分成多個片段、片段內用自迴歸方式生成而片段間用非自歸方式生成的方法在獲得解碼速度提升的同時保持了較好的翻譯質量。
進一步的,該方法通過引入動態停止機制和段刪除機制,可以進一步緩解多峯問題並具備一定的從多峯問題相關錯誤中恢復的能力。
將本文中的方法與其他用於解決多峯問題的方法進行有機結合以獲得更好的翻譯質量和解碼速度將是非常值得關注的研究方向。
【來源:開源中國】
聲明:轉載此文是出於傳遞更多信息之目的。若有來源標註錯誤或侵犯了您的合法權益,請作者持權屬證明與本網聯繫,我們將及時更正、刪除,謝謝。 郵箱地址:[email protected]