对nlp以及RNN方面不是很了解,翻译有很多省去的地方请见谅
论文标题
贡献
近年来,随着高速计算设备的发展,深度神经网络(DNNs)在许多人工智能(AI)应用中得到了广泛的应用。然而,以前的研究表明,DNN很容易受到战略性修改的样本的攻击,这些样本被命名为对抗性样本。这些样本是在一些不可察觉的扰动下生成的,但可以欺骗DNN给出错误的预测。受为图像DNN生成敌意示例的流行的启发,近年来出现了针对文本应用的攻击DNN的研究工作。然而,现有的图像扰动方法不能直接应用于文本,因为文本数据本质上是离散的。在这篇文章中,我们回顾了解决这种差异并在DNN上生成文本对抗性示例的研究工作。我们对这些作品进行了全面的收集、选择、总结、讨论和分析,并涵盖了所有的相关信息,使文章内容完备。最后,在文献综述的基础上,我们对这一主题提出了进一步的讨论和建议。
Jia和Leung[55]是第一个考虑在基于文本的任务的深层神经网络(即文本深层神经网络)上生成对抗性示例(或对抗性攻击,以下我们将互换使用这两个表达式)的人。他们的工作很快在自然语言处理(NLP)社区获得了研究关注。然而,由于图像和文本数据之间的内在差异,对图像的对抗性攻击方法不能直接应用于后者。
首先,图像数据(例如,像素值)是连续的,但是文本数据是离散的。传统上,我们先对文本进行矢量化,然后再将其输入到深度神经网络中。传统的矢量化方法包括利用词频和逆文档频率,以及one hot表示(详细信息见3.3节)。当对这些表示应用从图像采用的基于梯度的对抗性攻击时,生成的对抗性示例是无效字符或单词序列[156]。一种解决方案是使用单词嵌入作为深度神经网络的输入。然而,这也将生成不能与单词嵌入空间[39]中的任何单词匹配的单词。
其次,图像的扰动是人眼难以感知的像素值的微小变化,因此人类可以对图像进行正确的分类,显示出深层神经模型鲁棒性较差。但是对于文本的对抗性攻击,很容易察觉到微小的扰动。例如,替换字符或单词会生成无效的单词或句法错误的句子。此外,它还会极大地改变句子的语义。因此,扰动很容易被察觉-在这种情况下,即使是人类也不能提供正确的预测。
1. 图像连续,文本离散
词频生成的是无效字符
词嵌入会生成不能匹配的单词
2. 人类易感知察觉,扰动改变句子语义
第二节介绍了深度学习模型的对抗性攻击的基本情况,包括对抗性攻击的分类和NLP中使用的深度学习模型。在第三节中,我们讨论了攻击图像数据和文本数据的区别,并简要回顾了攻击图像DNN的典范作品,这些作品启发了他们在NLP中的后续工作。第四节首先介绍了我们对文学的分类,然后详细介绍了目前的研究现状。第五节讨论了防御策略,第六节指出了尚待解决的问题。最后,第七节对文章进行了总结。
在我们深入研究这项调查的细节之前,我们首先介绍深度学习模型上的对抗性攻击的一般分类。我们还介绍了深度学习技术及其在自然语言处理中的应用
在本节中,我们将提供对抗性攻击的定义,并介绍攻击的不同方面,然后以适用于任何数据形式的一般方式测量扰动和评估攻击的有效性。
Deep Neural Network (DNN)
Perturbations.
Adversarial Examples.
三个最基本概念
我们采用[154]中的威胁模型定义来攻击DNN。在本节中,我们将讨论威胁模型的几个方面。
模型知识。根据被攻击DNN的知识,可以使用黑盒或白盒策略来生成对抗性示例。当DNN的结构、参数、损失函数、激活函数和训练数据不可访问时,执行黑盒攻击。通过直接访问测试数据集或通过查询DNN并检查输出变化来生成对抗性示例。相反,白盒攻击是基于对DNN的上述某些信息的了解。
目标。目标攻击非目标攻击
粒度Granularity。攻击粒度指的是生成对抗性示例所依据的数据级别。例如,它通常是用于图像数据的图像像素。对于文本数据,可以是字符级嵌入、词级嵌入和句子级嵌入。第3.3节将进一步介绍文本DNN的攻击粒度。
动机。生成对抗性例子的动机有两个:攻击和防御。攻击的目的是检查目标DNN的健壮性,而防御则进一步利用生成的对抗性实例来增强目标DNN的健壮性。第5节将提供更多细节。
在对抗性攻击中需要两组测量:一是控制扰动,二是评估攻击的有效性。
摄动约束。如上所述,扰动η不应该改变输入的真实类别标签,也就是说,理想的η分类器,如果我们以分类为例,将对敌意示例提供与原始示例相同的预测,DNN也不能太小,以避免最终对目标DNN没有影响。理想情况下,有效扰动是约束范围内的最大值。
攻击评估。敌意攻击旨在降低DNN的性能。因此,评估攻击的有效性是基于不同任务的性能度量。例如,分类任务具有准确性、F1分数和AUC分数等度量。在本文中,我们将不同NLP的指标保留为超出范围的内容,并建议读者参考特定任务以获取信息。
近年来,神经网络在自然语言处理领域得到了越来越广泛的应用,各种DNN模型被应用于不同的自然语言处理任务中。除了前馈神经网络和卷积神经网络(CNN)之外,递归/递归神经网络(RNN)及其变体由于其天然的处理序列的能力,是NLP中最常用的神经网络。近年来,深度学习领域的两个重要突破被引入自然语言处理领域。它们是顺序学习[131]和注意力建模[8]。强化学习和产生式模型也很受欢迎[152]。在本节中,我们将简要概述与此调查密切相关的NLP中应用的DNN架构和技术。我们建议读者参考[101,152]中对NLP中神经网络的详细评论。
**前馈网络。**前馈网络,特别是多层感知器(MLP)是最简单的神经网络。它有几个前向层,一层中的每个节点连接到下一层中的每个节点,使网络完全连接。MLP利用非线性激活函数来区分不可线性分离的数据。MLP使用固定大小的输入,不记录元素的顺序。因此,它主要用于可以形成有监督学习问题的任务中。在NLP中,它可以在任何应用程序中使用。NLP中的前馈网络的主要缺点是它不能很好地处理词序很重要的文本序列。
由于前馈网络易于实现,因此实现方式多种多样,没有标准的基准架构值得研究。为了评估前馈网络在NLP中的健壮性,在实际应用中,经常会针对特定的体系结构生成对抗性示例。例如,[3,45,46]的作者研究了指定的恶意软件检测模型。
卷积神经网络(CNN)。卷积神经网络由卷积层、合并(下采样)层和最终全连通层组成。激活函数用于将下采样层连接到下一卷积层或完全连接层。CNN允许任意大小的输入。卷积层使用卷积运算来提取有意义的输入局部模式。池层减少了网络中的参数和计算量,使网络变得更深、更少的过拟合。总体而言,CNN识别本地预测值,并将它们组合在一起,为输入生成一个固定大小的向量,该向量包含应用程序任务的最重要的信息方面。此外,它是顺序敏感的。因此,它在计算机视觉任务中表现出色,后来在自然语言处理应用中被广泛采用。
Yoon Kim[60]采用CNN进行句子分类。他使用word2vec将单词表示为输入。然后卷积运算被限制在单词序列的方向,而不是单词嵌入。汇聚层中的多个过滤器处理可变长度的句子。该模型在几个基准数据集上与多个最先进的作品相比表现出了优异的性能。这项工作成为将CNN应用于自然语言处理应用的标杆工作。张某等人。[155]提出了用于字符级文本分类的CNN。他们对每个字符都使用了字母表中的一个热键表示法。为了控制所提出的CNN的泛化错误,他们还通过将单词和短语替换为它们的同义词来进行数据扩充。在许多应用中,这两个具有代表性的文本CNN通过对抗性例子进行评估[13,30,31,35,78]。
递归神经网络/递归神经网络。递归神经网络是从前馈神经网络改编而来的神经模型,用于学习顺序输入和输出之间的映射[116]。RNN允许任意长度的数据,并且在它们的计算图中引入循环来有效地对时间的影响进行建模[40]。该模型不受数据稀疏性引起的统计估计问题的困扰,因此在处理序列数据时具有令人印象深刻的性能[37]。递归神经网络[38]将递归神经网络从序列扩展到树,这尊重语言的层次结构。在某些情况下,存在向后依赖关系,这是反向分析所需要的。因此,提出了双向RNN,利用两个并行的RNN网络,并结合它们的输出,在正向和反向两个方向上查看句子。Bengio等人。[14]是最早将RNN应用于自然语言处理的公司之一。具体地说,他们在语言模型中使用了RNN,其中单词序列的概率是以递归方式计算的。RNN的输入是所有前面单词的特征向量,输出是输出词汇上的条件概率分布。由于RNN是对各种时序数据建模的自然选择,它已经被应用于许多NLP任务。因此,RNN引起了人们对对抗性攻击的极大兴趣[104]。
RNN有许多变体,其中最受欢迎的是长短期记忆(LSTM)网络[51]。LSTM是一个特定的RNN,旨在捕获长期依赖项。在LSTM中,隐藏状态的计算是通过输入门、遗忘门和输出门三个门的组合来计算的,这三个门的控制信息流依赖于Logistic函数。LSTM网络随后被证明比传统的RNN更有效[44]。GRUS是LSTM的简化版本,它只包含两个门,因此在训练和预测方面效率更高。一些流行的LSTM变体被提出来解决各种NLP任务[23,23,51,112,133,141,146]。这些代表作最近以对抗性的例子受到了评价的兴趣[35,54,55,92,104,112,118,130,156]。
序列到序列学习(Seq2Seq)模型。序列到序列学习(Seq2Seq)[131]是深度学习领域的重要突破之一,目前已广泛应用于自然语言处理领域。Seq2Seq模型具有利用编码器-解码器体系结构为给定序列信息生成另一序列信息的优越能力[77]。通常,Seq2Seq模型由两个递归神经网络组成:一个编码器处理输入并将其压缩成向量表示,一个解码器预测输出。潜在变量分层递归编解码器(VHRED)模型[122]是一种最近流行的Seq2Seq模型,它利用子序列之间的复杂依赖关系生成序列。[25]是最早采用Seq2Seq模型的神经机器翻译(NMT)模型之一。最近提出的Seq2Seq网络机器翻译模型OpenNMT[64]成为网络机器翻译的基准之一。随着它们被广泛采用和应用,攻击作品也应运而生[24,31,99,127]。
注意模型。注意机制[9]是深度学习的又一突破。最初开发它是为了克服Seq2Seq模型[77]中所需的长序列编码的困难。注意允许解码器回顾源序列的隐藏状态。然后,隐藏状态提供加权平均作为解码器的附加输入。该机制关注序列的信息部分。不是查看普通注意力模型中的输入序列,而是使用NLP中的自我注意[136]来查看序列中的周围单词,以获得更多上下文敏感的单词表示[152]。BiDAF[121]是一种机器理解的双向注意流机制,提出后取得了优异的性能。[55,127]通过对抗性例子评估了该模型的健壮性,成为首批使用对抗性例子攻击文本DNN的工作。其他基于注意力的DNN[26,108]最近也受到了敌意攻击[30,92]。
**强化学习模型。**强化学习通过在Agent执行离散动作后给予奖励来训练Agent。在NLP中,强化学习框架通常由Agent(DNN)、策略(引导动作)和奖励组成。代理根据策略选择动作(例如,预测序列中的下一个单词),然后相应地更新其内部状态,直到到达计算奖励的序列的末尾。强化学习需要正确处理动作和状态,这可能会限制模型的表达能力和学习能力[152]。但它对面向任务的对话系统[75]很感兴趣,因为它们在决策过程中共享基本原则。到目前为止,攻击NLP[99]中的强化学习模型的工作有限。
深层生成模型。近年来,生成对抗性网络(GANS)[41]和变分自动编码器(VAEs)[63]这两种强大的深度生成模型得到了广泛的研究。生成模型能够生成与潜在空间中的地面真实数据非常相似的真实数据。在NLP字段中,它们用于生成文本数据。Gans[41]由两个对抗性网络组成:生成器和鉴别器。鉴别器是区分真实的样本和生成的样本,而生成器是生成真实的样本,目的是愚弄鉴别器。GAN使用最小-最大损失函数同时训练两个神经网络。VAE由编码器和发电机网络组成。编码器将输入编码到潜在空间,并且生成器从该潜在空间生成样本。深度生成模型不容易训练和评价。因此,这些缺陷阻碍了它们在许多实际应用中的广泛使用[152]。虽然它们已经被用来生成文本,但到目前为止还没有工作使用对抗性的例子来检验它们的稳健性。
对抗性攻击起源于计算机视觉社区。在这一部分中,我们介绍了有代表性的作品,讨论了攻击图像数据和文本数据的区别,并介绍了对文本DNN进行对抗性攻击时的初步知识。
常见的略
Substitute Attack。上述代表性工作都是白盒方法,需要充分了解神经模型的参数和结构。然而,在实践中,由于对模型的访问有限,攻击者并不总是可能以白盒方式精心构建对手。Papernot等人解决了这一限制。[105]并引入了一种黑盒攻击策略:训练一个替代模型,用查询目标模型得到的标签逼近目标模型的决策边界。然后对该替补进行白盒攻击,并生成关于该替补的对抗性实例。具体地说,他们采用FSGM和JSMA为替代DNN生成对抗性示例。
GAN式进攻。黑盒攻击的另一个分支是利用生成性对抗神经(GAN)模型。赵等人。[156]首先在训练数据集X上训练生成模型WGAN,WGAN可以生成与X分布相同的数据点,然后分别训练一个逆变器,将数据样本x映射到潜在的稠密空间中通过最小化重建误差。他们没有扰乱x,而是在潜在空间中z的邻居z∗中搜索对手z。然后,他们将z∗映射回x∗,并检查x∗是否会改变预测。他们介绍了两种搜索算法:迭代随机搜索和混合收缩搜索。前者采用逐步扩大搜索空间的扩展策略,后者采用从大范围开始递归收紧搜索范围上界的收缩策略。
要攻击文本DNN模型,我们不能直接应用来自图像DNN攻击者的方法,因为它们之间存在三个主要差异:
由于这些差异,当前最先进的文本DNN攻击者要么通过施加附加约束来仔细调整图像DNN攻击者的方法,要么使用不同的技术提出新的方法。
character / word / seq
向量化文本输入。DNN模型需要矢量作为输入,对于图像任务,通常的方法是使用像素值形成矢量/矩阵作为DNN输入。但是对于文本模型,需要特殊的操作将文本转换为向量。方法主要有三种:基于字数的编码、一次热编码和密集编码(或特征嵌入),后两种方法主要用于文本应用的DNN模型。
word-count based encoding, one-hot encoding and dense encoding (or feature embedding)
word-count based encoding。词袋(BOW)方法在文本矢量化方面有着最悠久的历史。在BOW模型中,初始化一个长度为词汇表大小的零编码向量。然后将向量中的维度替换为给定句子中对应单词的出现次数。另一种基于单词计数的编码是利用单词(术语)的术语频率-逆文档频率(TF-IDF),并且向量中的维度是单词的TF-IDF值。
One-hot Encoding.对于字符级热编码,其表示形式可表示为
x = [ ( x 11 , … x 1 n ) ; … ( x m 1 , … x m n ) ] \mathbf{x}=\left[\left(x_{11}, \ldots x_{1 n}\right) ; \ldots\left(x_{m 1}, \ldots x_{m n}\right)\right] x=[(x11,…x1n);…(xm1,…xmn)]
因此每个单词具有相同固定的向量表示长度m,并且长度由单词的最大字符数n决定。
对于字级热编码,在上面的符号之后,文本x可以表示为: 一次热编码产生的向量只有0和1的值,其中1表示对应的字符/单词出现在句子/段落中,而0表示不出现。因此,一次性编码通常生成稀疏向量/矩阵。DNN在稀疏表示中的学习值已经被证明是非常成功的,因为它们可以在训练过程中从单热点向量中学习更密集的分布式表示。
x = [ ( x 1 , … , x m , x m + 1 … x k ) ] \mathbf{x}=\left[\left(x_{1}, \ldots, x_{m}, x_{m+1} \ldots x_{k}\right)\right] x=[(x1,…,xm,xm+1…xk)]
k是文本允许的最大字数,因此如果m+1
Dense Encoding。与单热编码相比,密集编码为文本数据生成低维的分布式表示。word2vec
citenips/MikolovSCCD13使用连续词袋(CBOW)和skip-gram模型来生成密集的单词表示,即单词嵌入。它基于分布假设,即出现在相似上下文中的词具有相似的含义。单词嵌入在一定程度上缓解了向量化文本数据的离散性和数据稀疏性问题[37]。单词嵌入的扩展,如doc2vec和paragraph2vec[70]将句子/段落编码为密集向量。
扰懂测量。如第2.1.3节所述,需要一种方法来测量扰动的大小,以便对其进行控制,以确保在保持不可察觉的情况下欺骗受害者DNN的能力。然而,文本扰动中的度量与图像中的扰动有很大的不同。通常,扰动的大小由干净数据x和其敌对实例x‘之间的距离来测量。但在文本中,距离度量还需要考虑语法正确性、句法正确性和语义保持性。我们在这里列出了本次调查回顾中使用的测量方法。
Norm-based measurement。直接采用 L p , p ∈ 0 , 1 , 2 , ∞ L_{p}, p \in 0,1,2, \infty Lp,p∈0,1,2,∞等规范,要求输入数据是连续的。一种解决方案是使用连续且密集的呈现(例如,嵌入)来表示文本。但这通常会导致无效和不可理解的文本,这需要涉及其他约束。
Grammar and syntax related measurement语法和句法相关的度量。确保语法或句法的正确性会使对抗性例子不易被察觉。
Semantic-preserving measurement. 语义保持度量。语义相似性/距离的度量通常是通过采用向量的相似性/距离度量来对词向量进行的。给定两维字向量 p = ( p 1 , p 2 , … , p n ) \mathbf{p}=\left(p_{1}, p_{2}, \ldots, p_{n}\right) p=(p1,p2,…,pn) 和 q = ( q 1 , q 2 , … , q n ) \mathbf{q}=\left(q_{1}, q_{2}, \ldots, q_{n}\right) q=(q1,q2,…,qn)
欧氏距离是欧氏空间中两个向量的距离:
d ( p , q ) = ( p 1 − q 1 ) 2 + p 2 − q 2 ) 2 + . . ( p n − q n ) 2 d(\mathbf{p}, \mathbf{q})=\sqrt{\left.\left(p_{1}-q_{1}\right)^{2}+p_{2}-q_{2}\right)^{2}+. .\left(p_{n}-q_{n}\right)^{2}} d(p,q)=(p1−q1)2+p2−q2)2+..(pn−qn)2
余弦相似度计算两个矢量之间角度的余弦值:
cos ( p , q ) = ∑ i = 1 n p i × q i ∑ i = 1 n ( p i ) 2 × ∑ i = 1 n ( q i ) 2 \cos (\mathrm{p}, \mathrm{q})=\frac{\sum_{i=1}^{n} p_{i} \times q_{i}}{\sqrt{\sum_{i=1}^{n}\left(p_{i}\right)^{2}} \times \sqrt{\sum_{i=1}^{n}\left(q_{i}\right)^{2}}} cos(p,q)=∑i=1n(pi)2×∑i=1n(qi)2∑i=1npi×qi
Edit-based measurement基于编辑的测量。编辑距离是一种量化从一个字符串到另一个字符串的最小变化的方法。编辑距离的不同定义使用不同的字符串操作集合[74]。
Levenshtein距离使用插入、删除和替换操作。
Word Mover’s Distance单词移动器距离(WMD)[69]是对单词嵌入操作的编辑距离。它测量一个文档的嵌入字词到达另一个文档的嵌入字词所需行进的最小距离[39]。最小化公式为:
min ∑ i , j = 1 n T i j ∥ e i − e j ∥ 2 s.t. , ∑ j = 1 n T i j = d i , ∀ i ∈ { i , … , n } , ∑ i = 1 n T i j = d i ′ , ∀ j ∈ { i , … , n } \begin{array}{c} \min \sum_{i, j=1}^{n} \mathbf{T}_{i j}\left\|\mathbf{e}_{\mathbf{i}}-\mathbf{e}_{\mathbf{j}}\right\|_{2} \\ \text {s.t.}, \sum_{j=1}^{n} \mathbf{T}_{i j}=d_{i}, \forall i \in\{i, \ldots, n\}, \sum_{i=1}^{n} \mathbf{T}_{i j}=d_{i}^{\prime}, \forall j \in\{i, \ldots, n\} \end{array} min∑i,j=1nTij∥ei−ej∥2s.t.,∑j=1nTij=di,∀i∈{i,…,n},∑i=1nTij=di′,∀j∈{i,…,n}
where e i \mathbf{e}_{\mathbf{i}} ei and e j \mathbf{e}_{\mathbf{j}} ej ared word embedding of word i i i and word j j j respectively. n n n is the number of words. T ∈ R n × n \mathbf{T} \in \mathcal{R}^{n \times n} T∈Rn×n be a flow matrix, where T i j ≤ 0 \mathbf{T}_{i j} \leq 0 Tij≤0 denotes how much of word i i i in d travels to word j j j in d ′ \mathrm{d}^{\prime} d′. d and d ′ \mathrm{d}^{\prime} d′ are normalized bag-of-words vectors of the source document and target document respectively.
其中 e i \mathbf{e}_{\mathbf{i}} ei 和 e j \mathbf{e}_{\mathbf{j}} ej 分别是单词 i i i 和单词 j j j的嵌入向量 。 n n n是单词的数量。 T ∈ R n × n \mathbf{T} \in \mathcal{R}^{n \times n} T∈Rn×n 是流矩阵,其中 T i j ≤ 0 \mathbf{T}_{i j} \leq 0 Tij≤0 表示d中有多少字 i i i 移动到 d ′ \mathrm{d}^{\prime} d′中的字 j j j 。d 和 d ′ \mathrm{d}^{\prime} d′ 分别是源文档和目标文档的归一化词袋向量。
更改次数是衡量编辑的一种简单方法,它在一些评论文献中被采用。
Jaccard相似系数利用有限样本集的交集和并集来度量有限样本集之间的相似性。
J ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ J(A, B)=\frac{|A \cap B|}{|A \cup B|} J(A,B)=∣A∪B∣∣A∩B∣
在语篇中,A、B是两个文档(或句子)。|A∩B|表示两个文档中出现的字数|A∪B|表示总的唯一字数。
在这一部分中,我们首先介绍了文本深度学习模型的攻击方法的分类,然后重点介绍了最新的研究成果,旨在找出近年来最有前途的研究进展。
我们根据不同的标准对现有的对抗性攻击方法进行分类。图1概括了这些类别。
本文采用五种策略对攻击方式进行分类:1)按模型访问组(**model access group **)是指攻击发生时对被攻击模型的了解。在下一节中,我们将重点讨论使用此分类策略的问题。ii)按应用程序组(application group)引用通过不同NLP应用程序的方法 。更详细的讨论将在4.5节中提供。iii)按目标群体(**target group **)是指攻击的目的是强制执行错误的预测或针对特定的结果。iv)按粒度分组(granularity group)考虑模型被攻击的粒度。v)我们已经在2.2节中讨论了被攻击的DNN(attacked DNNs)。在接下来的部分中,我们将持续提供有关这些方法所属的不同类别的信息。
需要注意的一组重要方法是跨模式攻击,其中被攻击模型考虑了处理多模式数据(例如图像和文本数据)的任务。它们不是针对纯文本DNN的攻击,因此我们在4.4节中除了4.2节中的白盒攻击和4.3节中的黑盒攻击之外,还将单独讨论这类方法。
在白盒攻击中,攻击需要访问模型的全部信息,包括体系结构、参数、损失函数、激活函数、输入和输出数据。白盒攻击通常近似于针对特定模型和输入的最坏情况的攻击,其中包含一组扰动。这种对手策略通常非常有效。在本节中,我们将针对文本DNN的白盒攻击分为七类。
FGSM是最早的图像攻击方法之一(3.1节)。在攻击文本DNN方面取得了很多后续工作。TextFool[78]使用FGSM的概念来近似对文本分类任务具有重大贡献的文本项的贡献。这项工作没有使用FGSM中的费用梯度符号,而是考虑了费用梯度的大小。作者提出了三种攻击方式:插入攻击、修改攻击和移除攻击。具体地说,他们使用反向传播计算每个训练样本的成本梯度 Δ x J ( f , x , c ′ ) \Delta_{x} J\left(f, x, c^{\prime}\right) ΔxJ(f,x,c′),其中f是模型函数,x是原始数据样本,c’是目标文本类。然后,他们识别出包含梯度幅度最高的维度的字符,并将其命名为热门字符。选择包含足够热字且出现频率最高的短语作为热门训练短语(HTP)。在插入策略中,通过在对原c类有较大贡献的短语附近插入几个目标类c‘的HTP来制作对抗性例子。作者进一步利用维基百科和伪造事实等外部资源来选择有效和可信的句子。在修改策略中,作者使用类似于HTP的识别方法将热门例句(HSP)识别到当前分类中。然后,他们将HTP中的字符替换为常见的拼写错误或视觉上相似的字符。在去掉策略中,去掉了HSP中不重要的形容词或副词。在CNN文本分类器[155]上评估这三种策略及其组合。然而,正如作者所提到的,这些方法都是手动执行的。
[117]中的工作采用了与TextFool相同的思想,但它提供了一种移除-添加替换策略,该策略首先尝试移除对文本分类任务贡献最大的副词($w_{i} ) ( 使 用 损 失 梯 度 衡 量 ) 。 如 果 该 步 骤 中 的 输 出 句 子 具 有 不 正 确 的 语 法 , 则 该 方 法 将 在 )(使用损失梯度衡量)。如果该步骤中的输出句子具有不正确的语法,则该方法将在 )(使用损失梯度衡量)。如果该步骤中的输出句子具有不正确的语法,则该方法将在w_{i} 之 前 插 入 单 词 之前插入单词 之前插入单词p_{j} . . .p_{j} 选 自 候 选 库 , 其 中 同 义 词 和 打 字 错 误 以 及 体 裁 特 定 的 关 键 字 ( 通 过 词 语 频 率 识 别 ) 是 候 选 词 。 对 于 所 有 选自候选库,其中同义词和打字错误以及体裁特定的关键字(通过词语频率识别)是候选词。对于所有 选自候选库,其中同义词和打字错误以及体裁特定的关键字(通过词语频率识别)是候选词。对于所有p_{j} , 如 果 输 出 不 能 满 足 其 最 高 成 本 梯 度 , 则 该 方 法 用 ,如果输出不能满足其最高成本梯度,则该方法用 ,如果输出不能满足其最高成本梯度,则该方法用p_{j} 代 替 代替 代替w_{i} $。作者们表明,他们的方法比TextFool更有效。由于该方法将单词按贡献排名排序,并按顺序制作敌方样本,因此是一种贪婪的方法,在输出发生变化之前总是得到最少的操作。为了避免被人眼发现,作者对替换/添加的单词进行了限制,使其不影响原单词的语法和词性。
在恶意软件检测中,可移植可执行文件(PE)由二进制向量{x1,.,xm},Xi∈{0,1}表示,使用1和0来指示PE是否存在,其中m是PE的数量。恶意软件检测DNNs以PE的向量为特征,可以对恶意软件进行识别。它不是典型的文本应用程序,但也面向离散数据,这些数据与文本应用程序具有相似的方法。文献[3]的作者研究了生成二进制编码对抗性示例的方法。为了保留对抗性例子的功能性,他们结合了四种界定方法来制造扰动。前两种方法采用FGSM的多步变种 F S G M k \mathrm{FSGM}^{k} FSGMk[68],通过引入确定性舍入( d F G S M k \mathrm{dFGSM}^{k} dFGSMk)和随机化舍入( r F G S M k \mathrm{r} \mathrm{FGSM}^{k} rFGSMk)将扰动限制在二进制域内。这两种定界方法类似于图像[42]上的 L ∞ − L_{\infty}- L∞− ball约束。如果损耗的相应偏导数大于或等于损耗梯度的L2范数除以 √ m √m √m,则第三种方法多步位梯度递增( B C A k BCA^k BCAk)设置第j个特征的位。第四种方法多步位坐标递增(BCAk)通过考虑具有最大对应损耗偏导数的特征来在每一步中更新一位。最后两种方法实际上访问多个可行顶点。本文还提出了一个对抗性学习框架,旨在增强恶意软件检测模型的鲁棒性。
[114]还会攻击恶意软件检测DNN。作者对二进制序列的嵌入表示进行了扰动,并将扰动后的实例重构为其二进制表示。具体地说,他们将均匀随机的字节序列(有效载荷)附加到原始的二进制序列。然后,他们将新的二进制嵌入到其嵌入中,并仅在嵌入有效载荷时执行FGSM。反复执行扰动,直到检测器输出不正确的预测。由于扰动仅在有效负载上执行,而不是在输入上执行,因此此方法将保留恶意软件的功能。最后,通过将敌方嵌入映射到其在有效嵌入空间中最近的邻居,将逆向嵌入重构为有效的二进制文件。
许多工作直接采用FGSM进行对抗性训练,即在训练模型时将其作为正则化。我们将在第五节讨论一些代表。
JSMA是攻击用于图像应用的神经模型的另一个先驱工作(参见3.1节)。工作[104]使用正向导数作为JSMA,以找出对对手方向贡献最大的序列。网络的雅可比是通过利用展开的计算图来计算的[97]。
他们为两种类型的RNN模型精心制作了对抗性的序列,其输出分别为类别( categorical )数据和顺序(sequential)数据。对于类别RNN,通过考虑对应于输出分量之一j的雅可比行列式 J a c b F [ : , j ] J a c b_{F}[:, j] JacbF[:,j]列来生成对抗性示例。具体地说,对于每个单词i,他们通过以下方式识别扰动方向:
sign ( Jacb F ( x ′ ) [ i , g ( x ′ ) ] ) g ( x ′ ) = arg max 0 , 1 ( p j ) \begin{array}{c} \operatorname{sign}\left(\operatorname{Jacb}_{F}\left(x^{\prime}\right)\left[i, g\left(x^{\prime}\right)\right]\right) \\ g\left(x^{\prime}\right)=\arg \max _{0,1}\left(p_{j}\right) \end{array} sign(JacbF(x′)[i,g(x′)])g(x′)=argmax0,1(pj)
其中pj是目标类的输出概率。就像在JSMA中一样,他们转而选择logit来代替这个等式中的概率。他们进一步将扰动的示例投影到嵌入空间中最近的向量上,以获得有效的嵌入。对于顺序的RNN,在计算雅可比矩阵之后,对于输入集合{i}的子集,它们改变了具有高Jacobian值JacbF[i,j]和低Jacobian值JacbF[i,k], 对于k不等于j以实现对输出步骤{j}的子集的修改。
45是第一个攻击神经恶意软件检测器的工作。他们首先进行了特征工程,为软件应用程序获得了超过545K的静态特征。他们使用二值指示符特征向量来表示应用。然后在输入的特征向量上采用JSMA算法制作对抗性实例:计算模型雅可比的梯度来估计扰动方向。然后,该方法在给定的输入样本中选取一个具有最大正梯度的扰动η进入目标类。特别地,通过索引i选择扰动,满足:
i = arg max j ∈ [ 1 , m ] , X j = y ′ f y ′ ( X j ) i=\arg \max _{j \in[1, m], \mathbf{X}_{j}=y^{\prime}} f_{y}^{\prime}\left(\mathbf{X}_{j}\right) i=argj∈[1,m],Xj=y′maxfy′(Xj)
其中y‘是目标类,m是要素的数量。在二进制特征向量上,扰动是(0→1)或(1→0)。此方法保留了应用程序的功能。为了保证扰动对应用程序的修改不会对应用程序造成太大影响,从而保持恶意软件应用程序的完整功能,作者使用L1范数来限定修改的特征总数,并进一步将特征数限定为20个。此外,作者还提供了三种防御攻击的方法,即特征约简、提炼和对抗性训练。他们发现对抗性训练是最有效的防御方法。
文献[130]中的工作采用C&W方法(参考3.1节)来攻击病历预测模型。目的是检测每个患者病历中的易感事件和测量,为临床使用提供指导。作者使用标准的LSTM作为预测模型。给定由矩阵 X i ∈ R d × t i X^{i} \in \mathbf{R}^{d \times t_{i}} Xi∈Rd×ti(d是医疗特征的数量,tii是医疗检查的时间指数)呈现的患者电子病历数据,对抗性实例的生成被表示为:
min X ^ max { − ϵ , [ log i t ( x ′ ) ] y − [ log i t ( x ) ] y ′ } + λ ∥ x ′ − x ∥ 1 \min _{\hat{X}} \max \left\{-\epsilon,\left[\log i t\left(\mathbf{x}^{\prime}\right)\right]_{y}-[\log i t(\mathbf{x})]_{y^{\prime}}\right\}+\lambda\left\|\mathbf{x}^{\prime}-\mathbf{x}\right\|_{1} X^minmax{−ϵ,[logit(x′)]y−[logit(x)]y′}+λ∥x′−x∥1
其中,Logit(·)表示Logit层输出,λ是控制L1范数正则化的正则化参数,y‘是目标标签,而y是原始标签。在生成对抗性示例后,作者根据他们提出的评估方案选择最佳示例,该评估方案同时考虑了攻击的扰动大小和结构。最后,他们使用对抗性的例子来计算EHR的易感性分数,以及不同测量的累积易感性分数。
Seq2Sick[24]对seq2seq模型进行了两种有针对性的攻击:非重叠攻击和关键字攻击。对于非重叠攻击,作者的目标是生成与原始输出完全不同的对抗性序列。他们提出了一种在神经网络的logit层上进行优化的铰链状的损失函数:
∑ i = 1 ∣ K ∣ min t ∈ [ M ] { m t ( max { − ϵ , max y ≠ k i { z t ( y ) } − z t ( k i ) } ) } \sum_{i=1}^{|K|} \min _{t \in[M]}\left\{m_{t}\left(\max \left\{-\epsilon, \max _{y \neq k_{i}}\left\{z_{t}^{(y)}\right\}-z_{t}^{\left(k_{i}\right)}\right\}\right)\right\} i=1∑∣K∣t∈[M]min{mt(max{−ϵ,y=kimax{zt(y)}−zt(ki)})}
其中,{st}是原始输出序列,{zt}表示对抗性示例的logit层输出。对于关键字攻击,目标关键字预计会出现在输出序列中。作者还将优化放在logit层上,力求目标关键词的logit在所有关键词中最大。此外,他们还定义了掩码函数m来解决关键字冲突问题。然后,损失函数变为:
L k e y w o r d s = ∑ i = 1 ∣ K ∣ min t ∈ [ M ] { m t ( max { − ϵ , max y ≠ k i { z t ( y ) } − z t ( k i ) } ) } L_{k e y w o r d s}=\sum_{i=1}^{|K|} \min _{t \in[M]}\left\{m_{t}\left(\max \left\{-\epsilon, \max _{y \neq k_{i}}\left\{z_{t}^{(y)}\right\}-z_{t}^{\left(k_{i}\right)}\right\}\right)\right\} Lkeywords=i=1∑∣K∣t∈[M]min{mt(max{−ϵ,y=kimax{zt(y)}−zt(ki)})}
其中k_i表示输出词汇表中的第i个单词。为了保证生成的词嵌入的有效性,本文还考虑了两种正则化方法:群套索正则化来增强群的稀疏性,群梯度正则化来使对手处于嵌入空间的允许区域内。
HotFlip[31]执行原子翻转操作以生成对抗性示例。HotFlip使用方向导数,而不是利用损失梯度。具体地说,HotFlip将字符级操作(即交换、插入和删除)表示为输入空间中的向量,并通过相对于这些向量的方向导数估计损失的变化。具体地说,给定输入的one hot表示,第i个单词(a→b)的第j个字符中的字符翻转可以由向量表示:
v ⃗ i j b = ( 0 , . . ; ( 0 , . . ( 0 , . . − 1 , 0 , . . , 1 , 0 ) j , . . 0 ) i ; 0 , . . ) \vec{v}_{i j b}=\left(0, . . ;\left(0, . .(0, . .-1,0, . ., 1,0)_{j}, . .0\right)_{i} ; 0, . .\right) vijb=(0,..;(0,..(0,..−1,0,..,1,0)j,..0)i;0,..)
其中-1和1分别位于字母表的第a个和第b个字符的对应位置。则可以通过沿操作向量的方向导数最大化损失变化的一阶近似来找到最佳字符交换:
max ∇ x J ( x , y ) T ⋅ v ⃗ i j b = max i j v ∂ J ( b ) ∂ x i j − ∂ J ( a ) ∂ x i j \max \nabla_{x} J(x, y)^{T} \cdot \vec{v}_{i j b}=\max _{i j v} \frac{\partial J^{(b)}}{\partial x_{i j}}-\frac{\partial J^{(a)}}{\partial x_{i j}} max∇xJ(x,y)T⋅vijb=ijvmax∂xij∂J(b)−∂xij∂J(a)
Attention-based。
[16]为了比较CNN和RNN的健壮性,提出了两种白盒攻击。他们利用模型的内部注意力分布来找到模型赋予较大权重的关键句子,以得出正确的答案。然后,他们将最受关注的单词与已知词汇中随机选择的单词进行交换。他们还进行了另一次白盒攻击,删除了获得最高关注度的整个句子。虽然他们关注的是基于注意力的模型,但他们的攻击并不检查注意力机制本身,而只是利用注意力成分的输出(即注意力得分)。
Reprogramming。[98]对攻击序列神经分类器采用对抗性重编程(AP)。AP[32]是最近提出的对抗性攻击,其中对抗性重编程功能дθ被训练来重新利用被攻击的dNN来执行替换任务(例如,从问题分类到名称分类),而不修改dNN的参数。AP采用迁移学习的思想,但参数保持不变。作者在[98]中提出了白盒攻击和黑盒攻击。在白盒中,将冈贝尔-软极大法应用于训练能够处理离散数据的gθ。我们稍后讨论黑盒方法。他们在各种文本分类任务上评估了他们的方法,并确认了他们的方法的有效性。
混合。这项工作的作者[39]针对CNN模型对单词嵌入的输入文本进行了干扰。这是一种适用于为计算机视觉DNN开发的大多数攻击方法的通用方法。作者特别应用了FGSM和DeepFool。直接应用计算机视觉的方法会产生毫无意义的对抗性例子。为了解决这个问题,作者通过以下方式将对抗性例子四舍五入到最接近的有意义的词向量通过使用Word Mover的距离(WMD)作为距离测量。在情感分析和文本分类数据集上的评估表明,WMD是控制扰动的合格度量。
白盒攻击概述。我们在表1中总结了白盒攻击的研究成果,重点介绍了四个方面的内容,包括粒度-攻击在哪个级别上执行;目标是目标还是非目标;被攻击模型、扰动控制-控制扰动大小的方法以及应用。值得注意的是,在二进制分类中,目标方法和非目标方法表现出相同的效果,所以我们在表中指出它们的目标是“二元\”。
黑盒攻击不需要了解神经网络的细节,但可以访问输入和输出。这种类型的攻击通常依赖于启发式算法来生成敌意示例,而且更实用,因为在许多现实应用中,DNN的细节对攻击者来说是一个黑匣子。在本文中,我们将针对文本DNN的黑盒攻击分为五类
**Concatenation Adversaries(串联)**是第一部攻击阅读理解系统的工作。作者提出了拼接对手,即在段落末尾加上分散注意力但无意义的句子。这些分散注意力的句子不会改变段落和问题答案的语义,但会愚弄神经模型。分散注意力的句子要么是精心生成的信息性句子,要么是使用20个随机的常用词。这两个扰动都是通过迭代查询神经网络直到输出改变而获得的。图2展示了[55]中的一个示例,在添加了分散注意力的句子(蓝色)之后,答案从正确的句子(绿色)变为不正确的句子(红色)。[142]的作者通过改变分散注意力的句子的放置位置,扩大产生分散注意力的句子的假答案集合,提供新的对抗性例子来帮助训练更健壮的神经模型,从而改进了这项工作。此外,工作[16]利用分散注意力的句子来评估他们的阅读理解模型的稳健性。具体地说,他们使用10个随机的常用词与所有问题词和所有错误答案候选者的词一起生成分散注意力的句子。在这项工作中,还执行了一个简单的词级黑盒攻击,通过同义词替换最频繁的单词。如前所述,作者还提供了两种白盒策略。
图3说明了串联攻击的一般工作流程。正确的输出(即MRC任务中的答案)通常被用来生成失真的输出,这些失真的输出稍后将用于构建分散注意力的内容。将分散注意力的内容附加到原始段落,作为攻击DNN的对抗性输入。分散注意力的内容不会分散人类和理想的DNN的注意力,但会使粗俗的DNN产生错误的输出。
Edit Adversaries文献[13]中的工作以两种方式干扰了神经机器翻译应用程序的输入数据:合成,它执行字符顺序的改变,如交换、中间随机(即,随机改变除第一个和最后一个字符之外的字符的顺序)、完全随机(即,随机改变所有字符的顺序)和键盘类型。他们还收集打字错误和拼写错误作为对手。自然,利用数据集中的打字错误。此外,[99]攻击了对话生成的神经模型。他们在对话上下文中应用了各种扰动,即随机交换(随机调换相邻标记)和停词删除(随机移除停止词)、释义(用它们的释义替换单词)、语法错误(例如,将动词更改为错误的时态)用于不应该更改攻击,以及添加用于应该更改攻击的否定策略(否定源输入的根动词)和反义词策略(将动词、形容词或副词更改为它们的反义词)。DeepWordBug[35]是一种简单的方法,它使用字符转换来生成对抗性示例。作者首先通过测量DNN分类器的输出而开发的评分函数来识别重要的“表征”,即对模型预测影响最大的单词或字符。然后,他们使用四种策略对识别的令牌进行修改:替换、删除、添加和交换。作者在文本分类、情感分析和垃圾邮件检测等各种自然语言处理任务上对其方法进行了评估。[74]遵循[35],细化评分函数。此外,本文还提供了采用JSMA的白盒攻击。本文的贡献之一在于通过文本编辑距离、Jaccard相似系数、词向量上的欧几里德距离和词嵌入上的余弦相似度四个文本相似性度量来限制扰动。他们的方法只在情绪分析任务中进行了评估。
Edit Adversaries的一般原则。通过替换、删除、添加和交换等编辑策略对句子、单词或字符进行扰动。
在[92]中,作者提出了一种在自然语言推理(NLI)中自动生成违反给定一阶逻辑约束的对抗性实例的方法。他们提出了不一致性损失来衡量一组句子导致模型违反规则的程度。对抗性实例生成是寻找规则中的变量与语句之间的映射以最大化不一致性损失的过程,并且由困惑程度较低的语句(由语言模型定义)组成。为了生成低困惑的对抗性句子示例,他们使用了三种编辑扰动:i)改变输入句子之一中的一个单词;i)从输入句子之一中移除一个解析子树;iii)将语料库中的一个句子中的一个解析子树插入另一个句子的句法分析树中。
文献[5]中的工作使用遗传算法(GA)来最小化原始文本中的单词替换数量,但同时可能会改变攻击模型的结果。他们在遗传算法中采用交叉和变异操作来产生扰动。作者根据对被攻击DNN的影响来衡量单词替换的有效性。他们的攻击集中在情感分析和文本蕴涵DNN上。
在文献[21]中,作者提出了一种针对微分神经计算机(DNC)的对抗性攻击框架。DNC是一种以DNN为中央控制器的计算机器,在外部存储模块上运行以进行数据处理。他们的方法使用两种新的自动化和可伸缩的策略来生成问答Domian中语法正确的敌意攻击,并利用变形变换。第一种策略,Pick-n-Plug,由Pick操作符Pick和Plug操作符Plug组成,Pick操作符Pick从特定任务(源任务)中提取对抗性句子,Plug操作符Plug将这些句子注入另一个任务(目标任务)的故事中,而不改变其正确答案。另一种策略Pick-Permute-Plug在从源任务中挑选句子(Gick)后,通过一个额外的置换操作符扩展了Pick-n-Plug的对抗能力。特定对抗性句子中的单词可以与其同义词进行排列,以生成更大范围的可能攻击。
**Paraphrase-based Adversaries.**SCPN[54]通过将句子和目标句法形式输入到编码器-解码器体系结构中来产生具有期望句法的给定句子的释义。具体地说,该方法首先对原句进行编码,然后将回译产生的释义和目标句法树输入解码器,解码器的输出是原句的目标释义。一个主要贡献在于解析模板的选择和处理。作者独立于SCPN训练了一个解析生成器,并在PARANMT-50M中选择了20个最频繁的模板。在使用所选择的句法分析模板生成释义之后,他们通过检查n元语法重叠和释义相似度来进一步剪除不敏感的句子。被攻击的分类器可以正确预测原句的标签,但解释错误,被认为是对抗性的例子。SCPN已经被在情感分析和文本蕴涵DNNs上进行了评估,并显示出对攻击模型的显著影响。虽然这种方法使用目标策略来生成对抗性示例,但它没有指定目标输出。因此,我们将其归类为非目标攻击。此外,[127]中的工作使用了释义生成技术的想法,该技术可以创建语义等价的对手(SEA)。他们生成输入句子x的释义,并考虑语义等价于x‘的情况下从f获得预测,直到原始预测改变,即如果x在语义上等价于x’,则为1,否则为0,如公式(22)所示。在此基础上,本文提出了基于语义等价规则的方法,将生成的敌手归纳为语义等价规则,以便理解和修复影响最大的漏洞。
GAN-based Adversaries一些工作建议利用生成性对抗性网络(GAN)[41]来生成对手[156]。采用GAN的目的是使对抗性例子更自然。在[156]中,提出的生成对抗性外部样本的模型由两个关键部分组成:一个是生成假数据样本的GAN,另一个是将输入x映射到其潜在表示z‘的反相器。通过最小化原始输入和对抗性示例之间的重构误差,在原始输入上训练这两个分量。通过识别z‘附近的扰动样本ˆz,在潜在稠密空间中执行扰动。为了确定合适的ˆz,提出了迭代随机搜索和混合收缩搜索两种搜索方法,但需要每次查询被攻击的模型才能找到可能使模型给出错误预测的ˆz。因此,这种方法相当耗时。这项工作既适用于图像数据,也适用于文本数据,因为它本质上消除了文本数据的离散属性带来的问题。作者从文本蕴涵、机器翻译和图像分类三个方面对他们的方法进行了评估。
Substitution[53]中的工作提出了一个攻击RNN恶意软件检测模型的黑盒框架。该框架由两个模型组成:一个是产生式RNN模型,另一个是替代RNN模型。生成性RNN旨在从恶意软件的API序列生成敌意API序列。它基于[131]中提出的seq2seq模型。它特别生成一小段API序列,并将该序列插入到输入序列之后。替代RNN是一种具有注意力机制的双向RNN,其目的是模仿被攻击RNN的行为。因此,生成对抗性实例不会查询原始被攻击的RNN,而是查询其替代的RNN。对替代RNN进行恶意软件和良性序列以及生成性RNN的Gumbel-Softmax输出的训练。这里使用Gumbel-Softmax来实现两个RNN模型的联合训练,因为生成式RNN的原始输出是离散的。具体地说,它使得梯度能够从生成性RNN反向传播到替代RNN。该方法对API进行攻击,API被表示为一个热向量,即给定M个API,第i个API的向量是第i个维度为1,而其他维度为0的M维二进制向量。
Reprogramming如前所述,[98]提供了白盒攻击和黑盒攻击。我们在这里描述黑匣子攻击。在黑盒攻击中,作者将序列生成归结为一个强化学习问题,对抗性重编程函数gθ是策略网络。然后,他们应用基于强化的优化来训练gθ。
黑盒攻击概述。我们在表2中总结了黑盒攻击的研究成果,重点介绍了四个方面的内容,包括粒度-攻击在哪个级别上执行;目标-方法是目标还是非目标;被攻击模型、扰动控制和应用。
表2.回顾的黑盒攻击方法摘要。MRC:机器阅读理解;QA:问答;VQA:视觉问答;DA:对话生成;TC:文本分类;MT:机器翻译;SA:情感分析;NLI:自然语言推理;TE:文本蕴涵;MD:恶意软件检测。EdDist:文本编辑距离,JSC:Jaccard相似系数,EuDistV:词向量的欧几里得距离,cse:词嵌入的余弦相似度。‘-’:不可用。
一些工作攻击处理跨模式数据的DNN。例如,神经模型包含执行图像到文本或语音到文本转换的内部组件。虽然这些攻击不是针对纯文本数据,但为了进行全面回顾,我们简要介绍了具有代表性的攻击。
图像到文本模型是一类根据图像的语义内容为图像生成文本描述的技术。
光学字符识别(OCR)。从图像中识别字符是一个称为光学字符识别(OCR)的问题。OCR是一种将图像作为输入并输出识别文本的多模态学习任务。在[129]中,作者提出了一种针对OCR和后续NLP应用的白盒攻击。他们首先使用原始文本来呈现干净的图像(转换DNN)。然后,他们在文本中找到在WordNet中具有反义词并且满足编辑距离阈值的单词。只有有效且保持语义不一致的反义词才会被保留。稍后,该方法定位包含前述单词的干净图像中的行,这些行可以由它们选择的反义词来替换。然后,该方法将目标词转换为目标序列。在给定输入/目标图像和序列的情况下,作者形成了对抗性实例的生成是一个优化问题:
min ω c ⋅ J C T C f ( x ′ , t ′ ) + ∥ x − x ′ ∥ 2 2 x ′ = ( α ⋅ tanh ( ω ) + β ) / 2 α = ( x max − x min ) / 2 , β = ( x max + x min ) / 2 J C T C ( f ( x , t ) ) = − log p ( t ∣ x ) \begin{array}{c} \min _{\omega} c \cdot J_{C T C} f\left(\mathbf{x}^{\prime}, t^{\prime}\right)+\left\|\mathbf{x}-\mathbf{x}^{\prime}\right\|_{2}^{2} \\ \mathbf{x}^{\prime}=(\alpha \cdot \tanh (\omega)+\beta) / 2 \\ \alpha=\left(\mathbf{x}_{\max }-\mathbf{x}_{\min }\right) / 2, \beta=\left(\mathbf{x}_{\max }+\mathbf{x}_{\min }\right) / 2 \\ J_{C T C}(f(\mathbf{x}, t))=-\log p(t | \mathbf{x}) \end{array} minωc⋅JCTCf(x′,t′)+∥x−x′∥22x′=(α⋅tanh(ω)+β)/2α=(xmax−xmin)/2,β=(xmax+xmin)/2JCTC(f(x,t))=−logp(t∣x)
其中f(X)是神经系统模型,JCTC(·)是连接主义时态分类(CTC)损失函数,x是输入图像,t是基本事实序列,x‘是对抗性实例,t’是目标序列,ω,α,β是控制对抗性实例以满足x‘∈[xmin,xmax]p的盒约束的参数,其中p是确保有效x’的像素数。在生成对抗性示例后,该方法替换文本图像中对应行的图像。作者从三个方面对该方法进行了评估:单词识别、整篇文档识别和基于识别文本的自然语言处理应用(特别是情感分析和文档分类)。他们还指出,所提出的方法受到诸如跨数据和模型的低可传递性以及物理不可信赖性等限制。
场景文本识别(STR)
STR也是一个图像到文本的应用程序。在STR中,整个图像直接映射到单词字符串。相比之下,OCR中的识别是一个流水线过程:首先将单词分割成字符,然后对单个字符进行识别。AdaptiveAttack[153]评估了对场景文本识别执行敌意攻击的可能性。提出了两种攻击方式,即基本攻击和适应性攻击。基本攻击类似于[129]中的工作,它还将敌意示例生成表示为一个优化问题:
min ω J C T C f ( x ′ , t ′ ) + λ D ( x , x ′ ) x ′ = tanh ( ω ) \begin{array}{c} \min _{\omega} J_{C T C} f\left(\mathbf{x}^{\prime}, t^{\prime}\right)+\lambda \mathcal{D}\left(\mathbf{x}, \mathbf{x}^{\prime}\right) \\ \mathbf{x}^{\prime}=\tanh (\omega) \end{array} minωJCTCf(x′,t′)+λD(x,x′)x′=tanh(ω)
图像字幕。
图像字幕是另一个多模态学习任务,它将图像作为输入,并生成描述其视觉内容的文本字幕。Show-and-Fool[22]生成敌意示例来攻击基于CNN-RNN的图像字幕模型。被攻击的CNN-RNN模型使用CNN作为图像特征提取的编码器,使用RNN作为解码器生成字幕。show-and-fool有两种攻击策略:目标字幕(即,生成的字幕与目标字幕匹配)和目标关键字(即,生成的字幕包含目标关键字)。总体而言,他们使用以下公式制定了这两项任务:
min ω c ⋅ J ( x ′ ) + ∥ x ′ − x ∥ 2 2 x ′ = x + η x = tanh ( y ) , x ′ = tanh ( ω + y ) \begin{array}{c} \min _{\omega} c \cdot J\left(\mathbf{x}^{\prime}\right)+\left\|\mathbf{x}^{\prime}-\mathbf{x}\right\|_{2}^{2} \\ \mathbf{x}^{\prime}=\mathbf{x}+\eta \\ x=\tanh (y), \mathbf{x}^{\prime}=\tanh (\omega+y) \end{array} minωc⋅J(x′)+∥x′−x∥22x′=x+ηx=tanh(y),x′=tanh(ω+y)
视觉问答(VQA)
给出一个图像和一个关于图像的自然语言问题,VQA是用自然语言提供准确的答案。文献[148]中的工作提出了一种迭代优化方法来攻击两个VQA模型。所提出的目标函数最大化目标答案的概率,并在距离原始图像的距离低于某一阈值时不考虑距离较小的对抗性示例的偏好。具体地说,该目标包含三个组成部分。第一个类似于公式。(26),它用||x−x‘||2/√N作为x’和x之间的距离来代替损失函数,并使用||x Softmax x‘||2/Softmax ,N作为x’和x之间的距离。当第二个分量与目标答案不同时,使Softmax输出和预测之间的差值最大化。第三个分量确保x‘和x之间的距离在下限之内。通过检查是否比以前的攻击获得了更好的成功率和模型的置信度分数来预测目标答案来评估攻击。基于这些评价,作者得出结论,注意力、边界框定位和成分内部结构容易受到敌意攻击。这项工作还攻击了一个图像字幕神经模型。我们参考原文以了解更多信息。
视觉语义嵌入(VSE)
VSE的目标是架起自然语言和底层视觉世界之间的桥梁。在VSE中,图像和描述性文本(字幕)的嵌入空间被联合优化和对齐。[125]通过在测试集中生成对抗性示例攻击了最新的VSE模型,并评估了VSE模型的健壮性。他们通过引入三种方法对文本部分进行攻击:i)利用WordNet中的上下义关系替换图像字幕中的名词;ii)将数字转换为不同的数字,并在必要时将相应的名词单一化或复数化;iii)检测关系并对不可互换的名词短语或介词进行替换。这种方法可以看作是黑盒编辑的对手。
语音到文本也称为语音识别。任务是自动识别口语并将其翻译成文本。[19]攻击了最先进的Speech-ToTexT转录神经网络(基于LSTM),名为DeepSpeech。给定一个自然波形,作者构建了一个几乎听不见但可以通过添加到原始波形中识别的音频扰动。该扰动采用C&W方法(参考3.1节)的思想,以最大变化像素数来度量图像失真。采用这一思想,他们通过计算音频的相对响度来测量音频失真,并提出使用连接主义时间分类损失进行优化任务。然后他们用ADAM优化器解决了这个问题[62]。
近年来,神经网络在不同的自然语言处理领域取得了成功,广泛应用于文本分类、阅读理解、机器翻译、文本摘要、问答、对话生成等领域。在这一部分中,我们从NLP应用的角度回顾了当前在神经网络上生成对抗性示例的工作。表4根据应用领域总结了我们在本文中回顾的工作。我们在表中进一步列出了这些工作中使用的基准数据集作为辅助信息-因此,我们请读者参考我们收集的链接/参考资料,以获取数据集的详细描述。注意,不包括帮助生成对抗性示例的辅助数据集。取而代之的是,我们只给出了用于评估被攻击神经网络的数据集。
文本分类
大多数被调查的工作都攻击了用于文本分类的深度神经网络,因为这些任务可以被框架为一个分类问题。情感分析的目的是将情感分为几组(例如,在三组方案中:神经性的、积极的和消极的)。性别识别、语法错误检测和恶意软件检测可以归结为二进制分类问题。关系抽取可以表示为单分类或多分类问题。…
机器翻译。机器翻译处理并行数据集,其中一个使用源语言,另一个使用目标语言。[13]使用为IWSLT 2016[89]准备的TED Talks平行语料库对NMT系统进行测试。他们还收集了法语、德语和捷克语语料库,用于生成自然噪音,以建立一个查找表,其中包含可能的词汇替换,稍后将用于生成对抗性示例。[30]我也使用了相同的TED演讲语料库,使用德语对英语,捷克语对英语,法语对英语。
机器理解。机器理解数据集通常向机器提供上下文文档或段落。基于对上下文的理解,机器理解模型可以回答问题。贾和梁是最早考虑文本对手的人之一,他们的目标是神经机器理解模型[55]。他们使用斯坦福大学的问答数据集(LOAD)来评估他们的攻击对神经机器理解模型的影响。ALUDE是一个广泛认可的机器理解基准数据集。[142]遵循了前面的工作,也参与了班组数据集的工作。虽然工作[16]的重点是开发一个健壮的机器理解模型,而不是攻击MC模型,但他们使用对抗性的例子来评估他们提出的系统。他们使用MovieQA多项选择问答数据集[134]进行评估。[21]针对可微神经计算机(DNC)的定向攻击,DNC是一种新型的具有DNN的计算机器。他们评估了使用BABI任务17对逻辑问题回答的攻击。
文本摘要。文本摘要的目标是用简洁的表达来总结给定文档或段落的核心含义。目前还没有专门针对语篇摘要应用的调查论文。[24]评估了他们对包括文本摘要在内的多个应用程序的攻击,并使用DUC200318、DUC200419和Gigaword20评估对抗性示例的有效性。
文本蕴涵。语篇蕴涵的根本任务是判断前提语篇是否蕴含假设,即一个语篇片段的真值跟随另一个语篇。[57]经评估在两个蕴涵数据集上的各种模型:标准自然语言推理(SNLI)[17]和SciTail[59]。[92]还使用了SNLI数据集。此外,他们使用了MultiNLI[144]数据集。
词性(POS)标记。词性标注的目的是解决句子中每个词(如名词、动词等)的词性问题,为其他自然语言处理任务(如句法分析)提供便利是基本的自然语言处理任务之一。神经网络也被用来完成这项NLP任务。[151]采用了[94]中的方法,通过引入对抗性训练来构建更健壮的神经网络,但他们在词性标注中应用了该策略(稍作修改)。通过对干净示例和对抗性示例的混合训练发现,对抗性示例不仅有助于提高标注准确率,而且有助于后续的依存分析任务,在不同的序列标注任务中一般都是有效的。他们评估中使用的数据集包括:宾夕法尼亚州立大学树库(PTB)[87]的“华尔街日报”(WSJ)部分和来自Universal Dependency(UD)v1.2[100]的树库。
对话生成。对话生成是Siri21和Alexa22等现实世界虚拟助手的基本组件。它是文本生成任务,它自动生成用户给出的帖子的响应。[99]是最早攻击生成性对话模式的人之一。他们使用Ubuntu对话语料库[84]和动态知识图网络以及协作通信代理(COCO)数据集[49]来评估他们的两种攻击策略。
跨模型应用程序。[129]使用希拉里·克林顿的电子邮件23,以图像的形式,用对抗性例子评价了光学字符识别系统。他们还使用烂番茄和IMDB审查数据集对NLP应用程序进行了攻击。[153]中的工作攻击了为场景文本识别而设计的神经网络。他们在三个用于裁剪单词图像识别的标准基准上进行了实验,即街景文本数据集(SVT)[139]、ICDAR 2013数据集(IC13)[58]和IIIT 5K字数据集(IIIT5K)[93]。[22]攻击了图像字幕神经模型。他们使用的数据集是Microsoft Coco(MSCOCO)数据集[79]。[148]研究了用于图像捕获和视觉答疑的攻击神经模型问题。对于第一个任务,他们使用了视觉基因组数据集[65]。对于第二项任务,他们使用了在[6]中收集和处理的VQA数据集。[125]开发视觉语义嵌入应用程序,其中使用MSCOCO数据集。[19]针对语音识别问题。他们使用的数据集是Mozilla通用语音数据集24。
多应用 一些工作将他们的攻击方法适应于不同的应用,即评估他们的攻击方法在应用之间的可传递性。[24]攻击了序列对序列模型。具体地说,他们评估了他们对两个应用程序的攻击:文本摘要和机器翻译。如前所述,对于文本摘要,他们使用了三个数据集DUC2003、DUC2004和Gigaword。对于机器翻译,他们从WMT‘16多模态翻译数据集25中抽样了一个子集。[54]提出了句法对抗性释义,并对该攻击在情感分析和文本蕴涵方面的应用进行了评估。他们使用SST进行情感分析,使用SENSE[88]进行文本蕴涵。[156]是在神经模型上生成对抗性示例的通用方法。所研究的应用包括图像分类(MINIST数字图像数据集)、文本蕴涵(SNLI)和机器翻译。[94]评估了他们在五个数据集上的攻击,包括情感分析(IMDB电影评论、Elec产品评论、烂番茄电影评论)和文本分类(DBpedia
Ontology、RCV1新闻文章)。[127]针对两个应用程序。
为神经网络生成对抗性示例的一个重要目的是利用这些对抗性示例来增强模型的健壮性[42]。在文本DNN中有两种常用的方法来实现这一目标:对抗性训练和知识提炼。对抗性训练将对抗性例子纳入模型训练过程。知识提炼对神经网络模型进行操作,训练出新的模型。在这一部分中,我们介绍了属于这两个方向的一些有代表性的研究。有关机器学习和深度学习模型及应用的更全面的防御策略,请参考[2,15]。
Szegdy等人。[132]发明了对抗性训练,这是一种包括训练神经网络以正确地对正常示例和对抗性示例进行分类的策略。古德费罗等人。[42]采用了带有对抗性例子的明确培训。在这一部分中,我们描述了利用数据扩充、模型正则化和鲁棒优化来防御文本对抗性攻击的工作。
数据增强。数据扩充使用生成的对抗性示例扩展原始训练集,并试图让模型在训练过程中看到更多数据。数据扩充通常用于对抗黑盒攻击,在被攻击的DNN上增加训练周期,并给出对抗性例子。
在工作[55]中,作者试图通过在包含对抗性例子的扩充数据集上的训练来增强阅读理解模型,他们表明这种数据扩充对于使用相同对抗性例子的攻击是有效的和健壮的。然而,他们的工作也表明,这种增强策略仍然容易受到其他类型的对抗性例子的攻击。[142]分享了扩大训练数据集的类似想法,但选择了第4.3.1节中讨论的更多信息丰富的对抗性例子。
[57]中的工作训练了用对抗性例子扩充的文本蕴涵系统。为了使系统更加健壮,他们提出了三种方法来生成更多具有不同特征的数据:(1)基于知识的方法,用几个给定知识库中提供的上下位词代替单词;(2)手工制作的方法,在现有的蕴涵基础上增加否定;(3)基于神经的方法,通过实施损失函数来度量原始假设和预测假设之间的交叉熵,从而利用SEQ2SEQ模型生成蕴涵示例。在训练过程中,采用产生式对抗性网络的思想来训练鉴别器和生成器,并将对抗性实例融入到鉴别器的优化步骤中。
[13]探索了数据增强的另一种方式。它将平均字符嵌入作为单词表示,并将其合并到输入中。该方法对SWAP、MID、RAND等字符置乱不敏感,可以抵抗工作中提出的这些置乱攻击带来的噪声。然而,这种防御对于其他不受角色命令干扰的攻击是无效的。
模型正则化。模型正则化强制生成的对抗性示例作为正则化,并遵循以下形式:
min ( J ( f ( x ) , y ) + λ J ( f ( x ′ ) , y ) ) \min \left(J(f(x), y)+\lambda J\left(f\left(x^{\prime}\right), y\right)\right) min(J(f(x),y)+λJ(f(x′),y))
鲁棒优化。Madry等人。[86]将DNN模型学习转化为具有最小-最大(鞍点)形式的鲁棒优化问题,它是内非凹极大化问题(攻击)和外非凸极小化问题(防御)的组合。根据丹斯金定理,最小极大值问题在内部极大值处的梯度对应于下降方向,因此仍可采用反向传播进行优化。该方法通过普遍的训练和学习,成功地证明了DNN对敌意图像的鲁棒性。[3]采用这种思想,将其应用于处理离散数据的恶意软件检测DNN。
值得注意的是,所提出的鲁棒优化方法是一个通用的框架,其他对抗性训练策略在此框架下有自然的解释。我们单独描述它,同时注意它在文学作品中的流行程度。
Papernot et al.。[107]提议将蒸馏作为对抗对手例子的另一种可能的防御措施。其原理是使用原始DNN的Softmax输出(例如,分类DNN中的类别概率)来训练与原始DNN具有相同结构的第二DNN。还通过引入温度参数T来修改原始DNN的Softmax:
q i = exp ( z i / T ) ∑ k exp ( z k / T ) q_{i}=\frac{\exp \left(z_{i} / T\right)}{\sum_{k} \exp \left(z_{k} / T\right)} qi=∑kexp(zk/T)exp(zi/T)
其中zi是Softmax
layer.T的输入,控制知识提炼的级别。Whent=1,等式。(35)返回到正常的Softmax功能。如果IFT较大,QI接近均匀分布,当其较小时,函数会输出更多的极值。[46]对离散数据上的DNNs采用蒸馏防御,并施加高温T,因为高温Softmax被证明降低了模型对小扰动的敏感性[107]。他们通过扩充原始数据集和原始DNN的Softmax输出来训练第二个DNN。从评估中,他们发现对抗性训练比蒸馏更有效。(我喜欢有没有解释为什么对抗性训练比蒸馏更有效的答案)
与在DNNs上生成图像对抗性实例相比,生成文本对抗性实例的历史相对较短,因为在保持有效句法、语法和语义的同时,对离散数据进行扰动更具挑战性。我们将讨论本节中的一些问题,并对未来的发展方向提出建议。
图像像素的扰动通常很难察觉,因此不会影响人的判断,只能欺骗深层神经网络。然而,无论是翻转字符还是换词,对文本的扰动都是明显的。无效单词和句法错误很容易被人识别,语法检查软件也很容易检测到,因此这种扰动很难攻击真实的NLP系统。然而,许多研究工作都产生了这样的对抗性例子。只有当目的是利用敌意例子来使被攻击的DNN模型具有鲁棒性时,才是可以接受的。从保持语义的角度看,改变一个句子中的一个词有时会使它的语义发生很大的变化,很容易被人类发现。对于阅读理解、情感分析等自然语言处理应用,需要精心设计对抗性例子,以避免改变应得的输出。否则,正确的输出和扰动的输出都会改变,违背了生成对抗性例子的目的。这是具有挑战性的,考虑到这一限制,审查的作品有限。因此,对于实际的攻击,我们需要提出一些方法,使扰动不仅不可察觉,而且要保持正确的语法和语义
可转移性是对抗性例子的共同属性。它体现了攻击方法的泛化。可转移性是指在一个数据集上为一个深层神经网络生成的对抗性示例也可以有效地攻击另一个深层神经网络(即跨模型泛化)或数据集(即跨数据泛化)。由于深层神经网络的细节对攻击方法的影响不大,这一特性在黑盒攻击中更容易被利用。研究还表明,无针对性的对抗性例子比有针对性的例子更具可转移性[83]。在深度神经网络中,可移植性可以组织为三个层次:(1)具有不同数据的相同体系结构;(2)具有相同应用的不同体系结构;(3)具有不同数据的不同体系结构[154]。虽然目前对文本攻击的研究涵盖了这三个层次,但与原有的体系结构和数据相比,转移攻击的性能仍然有很大的下降,即泛化能力较差。预计会有更多的努力来提供更好的泛化能力。
一些评论的作品能够自动生成对抗性的例子,而另一些则不能。在白盒攻击中,利用DNN的损失函数可以自动指向识别受影响最大的文本中的点(例如,字符、单词)。然后通过自动修改相应的文本对这些点进行攻击。在黑盒攻击中,一些攻击,例如替换,训练替换DNN,并在替换上应用白盒攻击策略。这可以自动实现。然而,大多数其他作品都是以手工方式制作对抗性例子。例如,[55]串联人工选择的无意义的段落来愚弄阅读理解系统,以便发现受害者DNN的脆弱性。许多研究工作紧随其后,不是针对实际攻击,而是更多地研究目标网络的健壮性。这些手工作业既费时又费力。我们相信,今后在这条线上会有更多的努力跨过这一关口。
虽然大多数常见的文本DNN已经从敌意攻击的角度得到了关注(第2.2节),但到目前为止,许多DNN还没有受到攻击。例如,生成神经模型:生成对抗性网络(GANS)和变分自动编码器(VAE)。在NLP中,它们用于生成文本。深入的生成性模型对模型训练提出了更高的要求。这将解释到目前为止,这些技术主要被对手攻击所忽视。未来的工作可能会考虑为这些生成性DNN生成对抗性示例。另一个例子是可微神经计算机(DNC)。到目前为止,只有一部作品攻击了DNC[21]。注意机制不知何故成为大多数序列模型的标准组成部分。但目前还没有研究该机制本身的工作。取而代之的是,工作要么攻击包含注意力的整个系统,要么利用注意力得分来识别干扰的单词[16]。
迭代攻击根据被攻击DNN模型输出的梯度迭代搜索和更新扰动。因此,它显示出高质量和高效率,也就是说,扰动可以足够小,并且很难防御。然而,这些方法通常需要很长的时间才能找到合适的扰动,这给实时攻击带来了障碍。因此,提出了一次性攻击来解决这一问题。FGSM[42]是一次性攻击的一个例子。从本质上讲,一次性攻击比迭代攻击快得多,但效果较差,更容易防御[153]。在设计针对实际应用程序的攻击方法时,攻击者需要仔细考虑攻击的效率和效果之间的权衡
本文首次对基于深度神经网络的文本对抗性实例生成进行了全面的综述。我们回顾了最近的研究工作,并开发了分类方案来组织现有的文献。此外,我们还从不同方面对其进行了总结和分析。我们试图为研究者提供一个很好的参考,以深入了解这一研究课题中的挑战、方法和问题,并为未来的研究方向指明方向。我们希望基于对抗性攻击的知识,提出更健壮的深层神经模型
[55] Robin Jia and Percy Liang. 2017. Adversarial Examples for Evaluating Reading Comprehension Systems. In Proc. of the 2017 Conference on Empirical Methods in Natural Language Processing (EMNLP 2017). Copenhagen, Denmark, 2021–2031.
一文读懂文本处理中的对抗训练 https://blog.csdn.net/c9yv2cf9i06k2a9e/article/details/90986041
关于文本对抗攻击和防御的必读论文 https://github.com/thunlp/TAADpapers
https://zhuanlan.zhihu.com/p/68622128
关于图神经网络(GNN)的必读论文 https://github.com/thunlp/GNNPapers
自然语言处理中的对抗攻击