EMNLP 2019收錄論文分享《Multi-agent Learning for Neural Machine Translation》。
一、研究動機
在機器翻譯任務中,我們經常會遇到這樣的情況,如表1 中的例子所示,L2R(從左到右解碼的智能體,本文中智能體 指翻譯模型)所產生的譯文,前半段質量較好,而後半段,錯誤逐漸增多。這是因為模型在翻譯的過程中,每個時刻的輸入是上個時刻的輸出,一旦某個時刻發生錯誤,就會不斷往右傳遞,導致翻譯質量下降。反之亦然。
首先,一個比較直接的想法是,能否讓L2R和R2L智能體(從右到左解碼)一起訓練,這樣在翻譯句子後半段的時候L2R能夠得到R2L的指導,同理前半段R2L可以得到L2R的指導。其次,如果增加更多的模型是否可以進一步提升效果?同時,怎麼設計多智能體之間的學習策略?智能體是應該更關注多樣性還是單智能體性能?這些都是需要解決的問題。
在此背景下,百度翻譯團隊近期提出業內首個神經網絡機器翻譯多智能體聯合學習模型(MAL),顯著提升了單智能體的學習能力,在多個機器翻譯測試集合上刷新了當前最好結果(SOTA)。相比於傳統的神經網絡翻譯模型,MAL具有如下創新點:
(1)提出了一種適應多智能體聯合學習的訓練框架,通過將多智能體之間的多對多學習問題轉化為一對多學習問題,能夠高效支持多個智能體聯合學習。
(2)利用知識蒸餾(Knowledge Distillation)和實時譯文評估等策略,確保單個智能體能從其他智能體中學習到高質量的模型知識。
(3)模型在多個公開測試集上取得了最佳或者接近最佳的效果,並在中英大數據上取得顯著提升,直接應用於百度翻譯線上產品。
二、技術方案
為了解決訓練框架中多對多學習的問題,論文考慮將多對多轉化為一對多,即每個智能體向同一個Teacher學習,這個Teacher是由多個智能體聯合產生。區別於傳統的Knowledge Distillation相關工作,MAL中Teacher的參數不是固定的,而是隨著單個智能體的更新而更新。具體的學習流程如下:
(a)使用語料預訓練單個智能體,(b)針對單個智能體的輸出做平均形成Teacher,(c)使用一對多的方式讓每個智能體去擬合Teacher的輸出和參考譯文。不斷地去重複步驟(b)和(c),這樣每個智能體通過學習Teacher的結果不斷增強性能,同時又能組合出更強的Teacher。
論文使用KL散度來度量每個智能體和Teacher的擬合程度,並通過最小化這個Loss達到同Teacher學習的目的,具體公式如下:
公式中S的定義如下:
為了控制Teacher的質量,論文引入變量S,使用翻譯中常用的評價指標BLEU值來選擇智能體到底學Teacher
還是自身的分布。最終智能體訓練的總Loss為:
三、實驗結果
圖2展示了多智能體在中英NIST新聞語料上的實驗結果。論文使用了4種不同結構的智能體(均為Transformer的變種)來驗證方法的有效性,分別為正向解碼模型(L2R)、反向解碼模型(R2L)、Encoder堆至30層的模型(Enc)、關注相對位置的局部注意力模型(Rel)。從圖中最後一行可以看出,論文設計的互相學習的方式是有效的,每個智能體相對於基線都得到了顯著提升(+1BLEU即為顯著)。同時論文也通過對比實驗來驗證多樣性和單智能體性能哪個更重要。從圖中d*3與a+c+d的實驗對比可以看出,模型的多樣性對於性能的提升更為關鍵,並且該框架隨著不同結構智能體數量的變多,效果不斷提升(a+c+d vs a+b+c+d)。
為了驗證這種方法在大數據集上的效果,論文在中英4千萬語料上做了對比實驗,因為部署時只使用了L2R的模型,所以圖3中展示了使用多智能體聯合訓練框架訓出來的L2R模型(L2R+R2L+Enc+Rel)和正常訓練得出的L2R(Baseline)模型,在4個測試集上平均BLEU提升0.86。
最後在公開的IWSLT14德英和WMT14英德測試集上也驗證了模型的有效性,德英測試集超越了SOTA,英德取得了接近SOTA的結果(Rel-4為MAL的結果)。
四、總結
論文提出了一種多對多學習框架,可以高效地支持多個智能體聯合學習。通過知識蒸餾,單一智能體可以從其他智能體中不斷學習,使得每個智能體都有提升。而這一過程中,Teacher模型也是不斷更新迭代的,這區別於傳統知識蒸餾方法。實驗表明,在多個公開數據集以及大規模翻譯任務上,該方法顯著地提升了翻譯質量, 此外,該方法可擴展性強,可以通過增加智能體的數量及多樣性,以獲得進一步提升。
至此,《Multi-agent Learning for Neural Machine Translation》論文的分享到此結束,敬請期待更多百度NLP最新前沿進展分享。