(1)用對抗性的源實例攻擊翻譯模型;
(2)使用對抗性目標輸入來保護翻譯模型,提高其對對抗性源輸入的魯棒性。
生成對抗輸入:基於梯度 (平均損失) -> AdvGen
我們的工作處理由白盒NMT模型聯合生成的擾動樣本 -> 知道受攻擊模型的參數
ADVGEN包括encoding, decoding:
(1)通過生成對訓練損失敏感的對抗性源輸入來攻擊NMT模型;
(2)用對抗性目標輸入對NMT模型進行了防御,目的是降低相應對抗性源輸入的預測誤差。
貢獻:
1. 研究了一種用於生成反例的白盒方法。我們的方法是一種基於梯度的方法,以平移損失為指導。
2. 我們提出了一種新的方法來提高具有雙重對抗輸入的NMT的魯棒性。編碼器中的對抗性輸入旨在攻擊NMT模型,而解碼器中的對抗性輸入能夠防御預測中的錯誤。
3.我們的方法在兩個常見的轉換基准上實現了對以前最先進的Transformer模型的顯著改進。
包括Transformer在內的最先進的模型相比,提高了2.8和1.6的BLEU點。這個結果證實了我們的模型在干凈的基准數據集上提高了泛化性能。進一步的噪聲文本實驗驗證了該方法提高魯棒性的能力。我們還進行消融研究,以進一步了解我們的方法的哪些部分最重要。
背景
解碼器生成的y:
對抗樣本:
方法
ATTACK
我們的目標是學習健壯的NMT模型,可以克服輸入句中的小擾動。即使是一個單詞的變化也可以被感知。NMT是一個序列生成模型,其中每個輸出字都有對之前所有預測的限制。因此,一個問題是如何為NMT設計有意義的操作。
↓
sim 相似度計算函數(向量的余弦距離);gxi 梯度;Vx源語言詞典
Plm 雙向語言模型;Q xi x 句子x中i-th詞的似然函數;Vxi top_n < Vx
Dpos是位置{1,...,|x|}上的一個分布(抽取的對抗詞)。
對於源函數,我們使用簡單的均勻分布U。根據約束R,我們希望輸出句與輸入句之間不要有太大的偏離,從而只根據超參數改變其組成詞的一小部分:
DEFENSE
z是decoder的input
Qtrg是選擇目標詞候選集Vz的可能性。為了計算它,我們將NMT模型預測與語言模型相結合:
Mij 是attention的分數 目的是找最相似的詞 后面那個是指示函數 不相等的時候=1
訓練
對x’ 和 z' 調用ADVGEN兩次。在更新參數時,我們沒有將梯度反向傳播到AdvGen上,只是起到了數據生成器的作用。在我們的實現中,與標准的Transformer模型相比,該函數最多產生20%的時間開銷。
計算了S上的魯棒性損失:
最后的訓練目標中的L:
:源和目標雙向語言模型的參數
&
分別share word embeddings
實驗
我們對漢英和英德翻譯任務進行了實驗。漢英訓練集來自最不發達國家語料庫,包含120萬對句子。我們使用NIST 2006數據集作為模型選擇和超參數調優的驗證集,並使用NIST 2002、2003、2004、2005、2008作為測試集。在英德翻譯任務中,我們使用了由450萬對句子組成的WMT 14語料庫。驗證集是newstest2013,測試集是newstest2014。
在這兩個翻譯任務中,我們合並了源和目標訓練集,並使用字節對編碼(BPE) (Sennrich et al., 2016c)通過子單詞單元編碼單詞。構建了一個包含32K個子單詞的英德共享詞匯庫,創建了包含60K個操作的漢英共享BPE代碼,歸納出包含46K個中文子單詞和30000個英文子單詞的兩個單詞。我們報告了英語-德語的區分大小寫標記的藍色分數和漢語-的區分大小寫標記的藍色分數英語(Papineni et al., 2002)。為了進行公平的比較,我們沒有對多個檢查點進行平均(Vaswani et al., 2017),並且只在單一收斂模型上報告結果。
實驗用的是雙向Transformer模型 + a linaer layer to combine + a softmax layer to make predictions.
通過grid search來調整在驗證集參數
我們將並行語料庫的單個部分作為單語數據,在不引入額外數據的情況下訓練雙向語言模型。我們方法中的模型參數是從零開始訓練的,除了語言模型中的參數是由在並行語料庫的單個部分上預先訓練的模型初始化的。在魯棒性訓練過程中,對語言模型的參數進行了更新。
主要結果
手動添加noisy data:
手動選出clean 樣本的結果:
防御方法:curriculum learning?