一、Robust Neural Machine Translation with Doubly Adversarial Inputs
1. Paper Information
时间:2019年
关键词:Adversarial Attack,Neural Machine Translation,Gradient
论文位置:https://arxiv.org/pdf/1906.02443.pdf
引用:Yong Cheng, Lu Jiang, Wolfgang Macherey:Robust Neural Machine Translation with Doubly Adversarial Inputs. ACL (1) 2019: 4324-4333
出处:Google AI
2. Motivation
机器翻译也是容易受到对抗噪声干扰的。我们提出了一种方法生成NMT的对抗样本并提高NMT模型的鲁棒性。
3. Main Arguments
我们提出了一种NMT的对抗攻击方法AdvGen,通过translation loss来生成对抗样本。AdvGen被应用在encoding和decoding阶段。并利用生成的对抗样本提高了NMT模型的鲁棒性。
4. Framework
4.1 Neural Machine Translation
NMT模型首先将输入$ x = x_1,…,x_I$ 映射成词向量$ e(x) = e(x_1),…,e(x_I)$ ,将其作为encoder的输入,得到对应的连续空间的隐藏层representation $ h$ 。之后,decoder的输入是$ z = z_1,…,z_J$ 和$ h$ ,输出是$ y = y_1,…,y_{J-1}$ 。实际上,$ z$ 是$ y$ 偏移后的版本,即$ z =
NMT的loss为:
4.2 Approach
NMT的攻击和防御在这个端到端的训练过程中执行。我们首先使用AdvGen生成对抗样本$ x’$ 来攻击NMT模型。之后使用AdvGen找到对抗目标输入$ z’$ 来提高NMT模型的鲁棒性。
4.2.1 Attack with Adversarial Source Inputs
在NMT中,我们的对抗攻击要解决的目标模型为:
要解决上面的问题是很难的,所以采用了贪心算法来解决。对于原始输入$ x$ ,我们要为单词$ x_i$ 找到一个可能的对抗单词$ x_i’$ ,即:
论文中使用了语言模型的输出来进行候选替代单词的筛选,但论文中描述算法很乱,这里就不讲解。
4.2.2 Defense with Adversarial Target Inputs
我们使用$ x’$ ,利用了上面的算法生成了$ z’$ ,将$ (x’,z’)$ 作为训练样本加入到训练集中,来提高模型的鲁棒性。
5.Result
4.1 Performance
可以看出,经过对抗训练后,NMT模型的性能提升了
使用对抗攻击后,模型的性能变差
6. Argument
7. Further research
二、Generating Fluent Adversarial Examples for Natural Languages
1. Paper Information
时间:2019年
关键词:Adversarial Attack,fluency,
论文位置:https://arxiv.org/pdf/2007.06174.pdf
引用:Huangzhao Zhang, Hao Zhou, Ning Miao, Lei Li: Generating Fluent Adversarial Examples for Natural Languages. ACL (1) 2019: 5564-5569
出处:Peking University, ByteDance AI Lab
2. Motivation
由于文本的离散型,文本对抗样本难以利用梯度的信息,而梯度信息又十分重要。另外,对抗样本的流畅度通常是不够的,而不流畅的文本(对抗文本)会容易被分类器鉴别,而且使用他们进行对抗训练的效果也不是很好。而目前的方法,比如HotFlip翻转字符容易将一个词转换成毫无意义的单词,比如mood -> moop,而GA虽然生成了较为流畅的句子,但是效果也不够,而且没有使用梯度信息,效率较低。为了解决上述问题,有效率的生成流畅性高的对抗样本,我们提出了Metropolis-Hastingsattack(MHA)方法,通过进行 Metropolis-Hastings采样来解决上述的问题。
3. Main Arguments
MH采样属于传统的MCMC采样方法,其是根据梯度信息来进行采样。另外,我们提出了两个MHA的变体,即黑盒MHA(b-MHA)和白盒MHA(w-MHA)
4. Framework
4.1 Metropolis-Hastings Sampling
M-H采样是一种经典的马尔可夫链蒙特卡罗采样方法。给定一个Stationary distribution$ \pi(x)$ 和transition proposal(从一个文本转变到另一个文本的依据)。M-H会根据分布$ \pi(x)$ 来生成样本。在每次迭代中,基于proposal分布$ g(x’|x)$ ,我们会给出将$ x$ 转变成$ x’$ 的proposal。该proposal是否被接受,需要依据下面的概率值:
一旦该propsoal被接受,那么算法将跳到$ x’$ 上继续进行,否则留在$ x$ 上。
4.2 Black-Box Attack
在黑盒攻击中,我们希望我们生成的样本满足三个要求:1、读起来要流畅,2、能欺骗分类器,3、尽可能少的调用分类器。
对于Stationary distribution,我们可以这样设计:
其中,$ LM(x)$ 表示对于预训练语言模型LM在句子$ x$ 上的概率值,$ C(\tilde{y}|x)$ 表示在victim model上句子$ x$ 在目标标签(错误标签)上的概率值。其中,$ LM(x)$ 保证了流畅性,$ C(\tilde{y}|x)$ 保证了攻击目标。
对于Transition proposal,有三种word-level的转变操作,替换、插入和删除。我们使用Traversal indexing来记录要执行哪一个操作。假设第t次proposal中,MHA选择了第i个单词$ w_i$ 。那么,第t+1次proposal,选择的单词$ w^*$会是:(就是选择下一个单词)
对于替换操作$ T_r^B(x’|x)$ ,我们的函数方程如公式3所示,其中$ w_m$ 是选中被替换的单词,$ Q$ 表示预训练的候选词集。插入操作$ T_i^B(x’|x)$ 包含两步,首先在该位置插入一个随机的单词,之后在该位置进行替换操作。对于删除操作$ T_d^B(x’|x)$ ,$ T_d^B(x’|x) =1 if x’ = x_{-m}$ ,其中$ x_{-m}$ 表示删除了第m个单词后的句子。否则,$ T_d^B(x’|x) = 0$ 。
注意,$ x$ 表示操作前的文本,$ x’$ 表示操作后的文本。$ T^B(x’|x)$ 表示进行某项操作将$ x$ 转变成$ x’$ 的proposal值。
而proposal分布$ g(x’|x)$ 是上述操作的权重和:
其中,$ p_r,p_i,p_d$ 是预先定义的各种操作的权重。
注意,该方法中候选词集是通过语言模型LM生成的,即根据分数$ S^B(w|x) = LM(w|x_{[1:m-1]}) · LM_b(w|x_{m+1:n})$ 。
4.3 White-Box Attack
白盒攻击和黑盒攻击的区别在于候选词集的选择。
我们根据分数$ S^W(w|x)$ 进行选择:
其中,$ S$ 是余弦相似度函数,$ \tilde{L} = L(\tilde{y}|x,C)$(扰动)。$ e_m$ 表示第m个词$ w_m$ 的词向量,$ e$ 表示替换词$ w$ 的词向量。其中,梯度$ \frac{\partial \tilde{L}}{\partial e_m}$ 确定了扰动方向,$ e_m - e$ 表示了实际的运动方向。这使得,我们会朝着使损失函数最大的方向进行移动,这使得我们的方法效率会更高。
注意,在w-MHA中不进行插入和删除操作,因为很难求梯度。
5.Result
5.1 Adversarial Attack Performance
其中PPL表示perplexity,即表示文本的流畅度,越小,困惑越低,流畅度越高。
5.2 Adversarial Training Performance
6. Argument
该方法融合了替换、删除和插入操作,单独跟score-based的GA相比有点不太公平。主要是利用了语言模型选择候选词集,来提高对抗样本的可读性、流畅性。
7. Further research
三、Generating Natural Language Adversarial Examples through Probability Weighted Word Saliency
1. Paper Information
时间:2019年
关键词:Adversarial Attack,Text Classfication,PWWS
论文位置:https://www.aclweb.org/anthology/P19-1103.pdf
引用:Shuhuai Ren, Yihe Deng, Kun He, Wanxiang Che: Generating Natural Language Adversarial Examples through Probability Weighted Word Saliency. ACL (1) 2019: 1085-1097
出处:Huazhong University of Science and Technology
2. Motivation
目前,文本对抗领域的难点在于保持词汇正确、语法正确、语义相似的前提下生成对抗样本。
3. Main Arguments
基于同义词替换策略,本文引入了一种新的单词替换顺序,我们利用单词的重要程度和分类概率,提出了一种贪心算法,称之为probability weighted word saliency (PWWS) 。PWWS能够在比较低的替换率下实现攻击。分类概率的变化用来测量替换单词的攻击效果,词的saliency用来测量原始词对分类的影响程度。使用词saliency做权重的词概率变化值,来决定最终的替换词和替换顺序。
一般的攻击策略会采用插入、删除、替换策略,但是采用了插入和删除后,为了保持语义上的相似性并避免人为的发现,它需要人工努力,例如在线搜索相关事实以进行插入。因此,本篇论文主要采用了替换策略,来实现自动生成,而不需要人力。
4. Framework
在PWWS中,我们使用同义词进行替换,使用别的类别中命令实体集替换该样本中的命名实体。这需要解决两个问题:
- 如何选择同义词和命名实体(NE)
- 如何决定替换顺序
4.1 Word Substitution Strategy
对于$ x$ 中的每一个单词$ w_i$ ,我们使用WoedNet来找到该单词的同义词集合$ \mathbb{L}_i \subseteq \mathbb{D} $ ,如果该单词是一个命名实体,那么,我们就将别的类别的命名实体$ NE_{adv}$ 加入到$ \mathbb{L}_i$ 中。之后,我们从$ \mathbb{L}_i$ 选择一个单词$ w’_i$ ,如果它使得分类概率发生了最大的改变,那么我们就替换他,即:
所以,我们就解决了第一个问题。
同时,我们得到了该词对分类的影响程度:
4.2 Replacement Order Strategy
在输入样本中,不同的词对分类的影响程度不同。我们引入了word saliency来决定替换顺序。word saliency是指将该单词设为unkown后,输出概率的变化程度,即:
我们为每一个单词计算他的word saliency,那么我们就得到了$ S(x) $ 。
为了得到替换的优先度,我们需要考虑在替换后的分类概率以及每个词的word saliency。所以,我们为每个单词计算出了一个score,即:
根据这个score,我们就得到了替换顺序,就解决了第二个问题,所以我们通过迭代的替换,就得到了对抗样本。
5.Result
5.1 Setup
- 数据集:采用了IMDB、AG’s News、Yahoo! Answers
- 分类器:Word-based CNN、Bi-directional LSTM、Char-based CNN、LSTM
- 攻击策略:
- Random:随机的选择同义词,然后进行替换直到分类结果发生改变。
- Gradient:使用了FGSM的思想,选择同义词使得分类输出的而变化最大,即$ \Delta F(x) = F(x’) - F(x) \approx (x’_i - x_i) \frac{\partial F(x)}{\partial x_i}$ 。
- Traversing in word order (TiWO):该方法是利用等式4来进行词的替换
- Word Saliency (WS):该方法是基于等式6来排序,然后利用等式4进行替换
5.2 攻击成功率和替换率
5.3 迁移性
在一个模型上生成对抗样本,送入以下三个模型中。
5.4 对抗训练
利用PWWS生成对抗样本加入到数据集中,在原始样本和对抗样本下的成功率。
6. Argument
本篇论文主要解决了两个问题,如何选词?先选哪个词?提出的priority策略是别的论文中的整合成策略。