從理解到改進:非自迴歸翻譯中的詞彙選擇 | 騰訊 AI 論文解讀

圖片

做者 | 騰訊 AI Lab編輯 | 鈺瑩1. 概述架構

機器翻譯旨在利用計算機實現天然語言之間的自動翻譯,一直是天然語言處理與人工智能領域的重要研究方向。隨着深度學習的到來,機器更是取得了突破性進展,已成爲大衆較爲熟知和經常使用的技術。近幾年,從 RNN 到 Transformer 的演進,不只全面提高了翻譯性能,也爲並行加速訓練提供了可能性。可是傳統的 Transformer 架構在解碼時還是逐詞產生譯文,即每一步譯文單詞的生成都依賴以前的翻譯結果(如圖 1 左所示),隨着 Transformer 模型規模的增長,使得解碼的時間開銷很是大。爲了打破解碼速度的瓶頸,非自迴歸神經機器翻譯系統 (NAT) 於 2018 年被提出[1]。其擺脫了自迴歸分解的約束,並行地生成全部目標詞(如圖 1 右所示)。這使得解碼速度獲得了極大提高,從 NAT 快速解碼獲得的收益能夠容許在工業界的特定延遲和預算下部署更大更深的 Transformer 模型。app

圖片圖 1. 自迴歸翻譯 (AT) 和非自迴歸翻譯 (NAT) 對比ide

可是,生成中的多模性 (Multimodality) 對 NAT 提出了根本的挑戰。咱們都知道語言是高度多模態的 (multimodal),例如日語句子彼は日本語が上手です能夠翻譯成兩個等價的英文句子 he is very good at Japanese 和 he speaks Japanese very well 。可是,看起很像的兩個句子:he speaks very good at Japanese 或 he is very good at very well 則沒有任何意義。可是在條件獨立的解碼中很難避免後者的出現,這致使 NAT 的性能顯著弱於 AT 模型。所以,咱們一般引入自迴歸模型(AT)做爲教師,藉助序列級知識蒸餾(Knowledge Distillation, KD)[2] 來下降原始數據的複雜度, 使得 NAT 更容易學習到肯定性的翻譯知識,最終獲得與 AT 可比較的翻譯質量。所以,KD 也成爲 NAT 訓練的經常使用技術。性能

圍繞提高 NAT 的翻譯質量,前人從模型結構、訓練目標等方面進行了普遍探索。而騰訊 AI Lab 近期發表一篇工做則另闢新徑,從數據角度發現了知識蒸餾對 NAT 訓練的反作用:詞彙選擇問題。爲了緩解該問題,其提出將原始數據暴露給 NAT 模型,以恢復蒸餾數據中被遺漏的低頻信息。實驗結果代表,該方法在多種語言對和模型結構上可以有效地、通用地提高翻譯質量。大量分析證明該方法經過減小低頻詞的詞彙選擇錯誤來提升總體性能。使人鼓舞的是,該方法在 WMT14 英德和 WMT16 羅英數據集上將 SOTA NAT 效果分別提升到 27.8 和 33.8 BLEU 值。本論文已被 ICLR 2021 接收[3]。如下爲分析方法和解決方案的詳細解讀。學習

2. 方案詳解ui

首先,本文經過定性和定量的分析,發現了 KD 的反作用:使原始數據的分佈更加不平衡,從而帶來了嚴重的詞彙選擇錯誤(特別是在低頻率的詞彙上)。這種低頻詞的錯誤會經過知識蒸餾傳遞到 NAT 模型中。如表 1 所示,訓練數據中僅出現 3 次的「紐馬基特」,在原始語料中均被翻譯爲「Newmarket」。可是,在蒸餾後分別被錯譯成了人名「Newmargot」(Margot Robbie 是澳洲女演員)、機構名「Newmarquette」(Marquette 是威斯康星的一所大學)甚至錯譯成無心義的「Newmarquite」。人工智能

圖片表 1. 訓練樣本中包含「紐馬基特」的全部樣本,「SRC」表示源端中文句子,「RAW-TGT」和「KD-TGT」分別表示原始目標端和蒸餾後的目標端url

爲了更好地理解 KD 帶來了什麼樣的變化,本文同時考慮了兩種不一樣效果的教師模型 KD (Base) 和 KD (Big),將語料分解爲高中低三種詞頻,而且從兩個角度從新審視了他們:訓練數據(圖 2)和解碼後的譯文(圖 3)。本文首先可視化了訓練數據中的詞頻密度,如圖 2 所示,其發現 KD 數據的詞頻密度分佈的峯度顯著高於原始數據,並且這種現象隨着採用更強的教師 KD (Big) 而更加顯著。KD 的反作用也很明顯,即原始數據中的高 / 低頻詞彙會變得更加高頻 / 低頻。爲了更好的理解 KD 對不一樣詞頻的影響,其在圖 3 中列出了不一樣詞頻的翻譯精度(Accuracy of Lexical Choice, AoLC)。發現採用更好的教師模型,中、高詞頻的翻譯精度會顯著提高,所以總體上提高了翻譯的表現,可是這嚴重破壞低頻詞的翻譯精度。spa

圖片圖 2. 原始數據、兩種教師模型蒸餾後的數據的詞頻密度對比翻譯

圖片圖 3. 不一樣數據集上採用不一樣教師模型進行蒸餾對不一樣詞頻的翻譯精度對比

基於上述有趣的發現,本文提出將原始數據暴露給 NAT 模型,以恢復蒸餾數據中被遺漏的低頻信息。爲此,做者引入了一個額外的 KL 散度項來約束 NAT 模型和原始數據中的詞彙選擇。實驗結果代表,該方法在多種語言對和模型結構上可以有效地、通用地提高翻譯質量。大量分析證明該方法經過減小低頻詞的詞彙選擇錯誤來提升總體性能。

本文的目標是加強 NAT 模型,讓其從原始數據中能夠學到所須要的詞彙選擇(尤爲低頻詞),以此得到更好的性能。如圖 4 左所示,目前的 NAT 訓練 pipeline 爲先使用 AT 模型對原始數據進行蒸餾,而後 NAT 只學習蒸餾後的數據。咱們的方案(圖 4 右)不只利用蒸餾後的數據,同時也考慮從原始數據中學習必要的知識(如低頻詞)。

圖片圖 4. 左爲目前 NAT 訓練方案:通過 AT 模型對數據蒸餾;右爲暴漏原始數據到 NAT 的策略

爲此,做者在目前 NAT 的訓練目標上引入了一個額外的雙語數據相關的先驗約束。這個先驗約束採用 KL 散度來引導 NAT 模型的預測去匹配從原始數據中提取的雙語先驗分佈。隨着訓練的進行,這種先驗約束的影響會對數級衰減,在訓練的後半程模型只學習蒸餾過的數據。具體地講,咱們從原始數據中抽取兩種雙語先驗分佈,一種基於統計詞對齊模型額次對齊分佈,另外一種基於 NAT 模型自蒸餾的分佈。實驗主結果如表 2 所示,本文選擇了多個 NAT 模型來驗證咱們方法效果,多個數據集上的實驗均代表咱們的方法能夠有效提升低頻詞的翻譯準確度,從而帶來 BLEU 的提高。

圖片表 2. 在兩個通用數據集上咱們方法能夠有效的改善譯文質量而且超過以前方法

此外,本文還進行了大量的分析實驗,發現該方法的確可以減小譯文中的錯翻現象,顯著提升低頻詞的翻譯效果而且輸出更多低頻的詞彙(表 3 所示)。同時,發現現隨着 AT 教師模型的加強,所提出的方法都能取得穩定的提高(表 4 所示)。

圖片表 3. 在 Zh-En 數據集上的錯翻問題的主觀評價

圖片表 4. 在 En-De 數據集上不一樣的 AT 老師模型上的效果

3. 總結及展望

非自迴歸翻譯(NAT)是目前最受關注的機器翻譯子領域之一。NAT 模型有快速解碼優點但其性能卻弱於傳統的自迴歸翻譯方法。圍繞提高 NAT 的翻譯質量,前人主要從模型結構、訓練目標等方面進行探索。而本工做另闢新徑,從數據角度發現了知識蒸餾的反作用,並定義了詞彙選擇問題。這將改變傳統的 KD 訓練,並引導後續工做提出更合理的訓練策略。

相關文章
相關標籤/搜索