本文主要介紹NMT模型魯棒性的相關改進工作,介紹一下對抗訓練的三部曲,一作皆是ChengYong,分別中了2018,2019和2020的ACL。
第一項工作為 Towards Robust Neural Machine Translation (ACL 2018)
本文的問題引入為一個小實驗,即將機器翻譯的源句進行微小擾動(同義詞替換),69.74%的翻譯句子也隨之改變,并且原始輸入和擾動輸入對應的翻譯句間BLEU僅為79.01,因此,作者希望通過對抗訓練來加強Encoder和Decoder的抗干擾能力。
具體做法如上圖,首先是噪聲的引入,作者提出兩種方式:
1)詞匯級別,計算余弦相似度進行同義詞替換;
2)特征級別,在詞向量上加入高斯噪聲。
然后是噪聲數據的使用,對應上圖中三個損失函數:
1)Ltrue(x, y)是正常訓練NMT的損失函數;
2)Lnoisy(x', y)是加強Decoder的去噪能力,即對應有噪聲的Hx',Decoder也能得到正確的輸出;
3)Linv(x, x'),旨在加強Encoder的去噪能力,即針對噪聲數據x',Encoder得到的Hx'也應與原表征Hx相近,訓練過程采用了min-max two-player策略,引入Discriminator進行交互對抗訓練,Encoder得到Hx和Hx'應該盡可能相似騙過Discriminator,而Discriminator則要分開有、無噪聲的數據,兩者迭代訓練以加強Encoder對噪聲數據x'的建模能力。
文章優勢在于不改變模型結構,可拓展到任意噪聲干擾或是針對特定任務進行設計,如作者對輸入數據進行刪除、替換等token級噪聲時,發現使用詞匯級別噪聲的引入訓練的模型更魯棒。
第二項工作為 Robust Neural Machine Translation with Doubly Adversarial Inputs (ACL 2019)
這項工作不同于上文的模型無關,而是將NMT看成“白盒”,從而基于梯度生成對抗輸入,文章的核心思想就是下面這條式子,其中x',x分別代表有無噪聲的數據,R(·)為相似性度量,后面的是負對數Loss,通俗來講就是找到噪聲不是太大的x'(保證x'與x語義相近),使得模型的Loss最大,這樣才能最有效地加強模型魯棒性。
具體做法分為兩部分,分別是Encoder攻擊和Decoder防御。在Encoder端,x為Encoder的輸入,模型會算出某個詞表征xi的梯度gxi,然后在詞表中找出使Loss最大的x替換原有的詞xi,做法是在詞典中計算表征“e(x)-e(xi)”與gxi的相似度,使相似度最大的xi'為所得。同時,噪聲xi'不應與原始xi差太遠,作者使用了Masked LM提取候選詞,在原句中,會將需要替換的詞先mask,然后選擇預測的topk作為候選項,至于哪些詞會被mask或替換則為隨機均勻采樣。
在Decoder端,z為Decoder的輸入,與Encoder中的噪聲xi'類似,以同樣的方法得到zi',但針對zi的采樣與xi有關,即xi隨機采樣,zi需要大概率在xi替換的同樣位置進行替換。因此,回望整個訓練方式,Encoder的作用是找到使梯度最大的xi'擾亂模型,Decoder的作用是即使輸入為zi',仍能輸入正確的結果,具有一定魯棒性。
我覺得本文有兩點值得思考,首先是基于梯度最大來找噪聲詞,能夠更有力的對模型魯棒能力發起攻擊,其實這個可以更進一步,Encoder輸入中需要被替換的詞并非隨機采樣,而是找使Loss最大的詞,相關文章改進CE Loss為Focal Loss也就是這個思想,我們可以直覺判斷,模型建模較好的是高頻詞,建模不好的是低頻詞,低頻詞的Loss比較大,我們在大Loss的基礎上再找大梯度,這樣攻擊效果更強力,同時可以提高模型對低頻詞的魯棒性。第二點是作者對xi的替換處理,還要回詞典中尋找進行詞替換,這樣未免更加麻煩了,為什么不在一定范圍內,直接找梯度最大的向量進行替換了呢?如果怕語義信息不相似,縮小相似度量范圍就好了,這樣更方便。
第三項工作為 AdvAug: Robust Adversarial Augmentation for Neural Machine Translation (ACL 2020)
這項工作是在第二項的基礎上進行了數據增強的改進,采用的方法為線性插值,首先針對原始數據(x, y),作者用第二項工作的方法造出一堆噪聲數據,然后對噪聲數據進行線性插值生成更多的偽數據,令人比較奇怪的是,作者對不同的parallel data pair同樣進行了線性插值,可能兩句話雖不同含義,但是插值后在向量空間,源句和目標句也能表達類似語義?
審核編輯:劉清
-
ACL
+關注
關注
0文章
61瀏覽量
12000
原文標題:NMT對抗訓練的三部曲
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論