题目:Deep Text Classification Can be Fooled
作者:Bin Liang, Hongcheng Li, Miaoqiang Su, Pan Bian, Xirong Li and Wenchang Shi
期刊会议:IJCAI-18(CCF A)
注:这篇文章我只提取了对我有用的部分,没有全文进行记录,如果想要学习这篇文章请直接阅读原文
我们提出了一种有效的方法来构建文本对抗样本,揭示了一个重要但被低估的事实,即基于DNN的文本分类器也容易受到对抗样本攻击。具体而言,面对不同的对抗场景,通过计算输入的成本梯度(白盒攻击)或生成一系列被遮挡的测试样本(黑盒攻击)来识别对分类很重要的文本项。基于这些项目,我们设计了三种扰动策略,即插入、修改和移除,以生成对抗性样本。
实验结果表明,我们的方法生成的对抗样本可以成功地欺骗最先进的基于字符级和单词级DNN的文本分类器。对抗性样本可以被干扰到任何期望的类,而不会影响它们的实用性。同时,引入的扰动很难被感知。
在本文中,我们提出了一种针对基于DNN的文本分类器构建对抗性样本的有效方法。我们设计了三种干扰策略(即插入、修改和删除),并引入了自然语言水印技术来精心修饰给定文本,以生成对抗性样本,而不是简单地将干扰和原始输入重叠。理论上,制作有效的对抗样本在很大程度上取决于目标分类模型的知识量。
我们对不同的对手场景进行白盒或黑盒攻击,以获得所需的可利用知识。对于对手可以自由、完整地分析其实现的模型,计算输入的成本梯度,以有效地确定插入、修改或删除的内容、位置和方式。否则,如果无法直接分析目标模型,我们将生成一些被遮挡的测试样本来探测它,并获得上述可利用的知识。
在不失一般性的情况下,我们选择了两个具有代表性的文本分类DNN,即字符级模型[Zhang等人,2015]和单词级模型[Kim,2014]作为攻击目标。攻击实验表明,尽管简洁,我们的方法可以对DNN和我们的三种策略生成的对抗样本进行有效的源/目标误分类攻击,满足所有要求,即欺骗目标DNN、不可察觉的干扰和效用保持。我们的工作有效地揭示了基于DNN的文本分类器绝对容易受到对抗性样本攻击。
选择两个具有代表性的DNN模型和一些相应的数据集作为实验目标,以评估该方法的有效性。一个是字符级模型[Zhang等人,2015],另一个是单词级模型[Kim,2014]。字符级DNN是在DBpedia本体数据集上训练的,该数据集包含56万个训练样本和7万个测试样本,这些样本来自14个高级类,如Company、Building、Film等。在将输入文本输入网络之前,使用一个热表示将文本的每个字符量化为向量。例如,字符“c”被编码为向量(0,0,1,0,…,0),其中只有第三维度被设置为1。通过六个卷积层和三个完全连接的层,输入最终被投影到表示14个类的分类置信度的向量中。
字级模型由一个卷积层、一个最大池层和一个带漏极的完全连接层组成,最后是一个softmax输出层。在输入到模型之前,输入文本中的所有单词都将嵌入到300维预训练向量中[Mikolov等人,2013]。该模型在多个数据集上进行了测试,包括MR、CR和MPQA。MR数据集是电影评论库(包含10662条评论),而CR包含3775条关于产品的评论,例如音乐播放器。两个数据集的评论可分为正面或负面。MPQA包含10606个意见,每个意见都被标记为客观或主观。
有时,只操作具有大梯度的输入像素也可以做到这一点,因为具有较大梯度的像素往往对当前的预测贡献更大,正如[Liang et al, 2017]中所说明的那样。
具体来说,在白盒方案中,我们首先根据成本梯度确定对分类很重要的文本项目,然后利用这些项目,加上自然语言水印技术,决定插入、修改或删除什么,在哪里插入以及如何修改。
我们的白盒攻击的基础在于利用成本梯度来识别对分类有重大贡献的文本项目。以字符级的DNN为例。首先,我们采用反向传播算法来计算每个训练样本x的成本梯度 ∇ x J ( F , x , c ) ∇_xJ(F, x, c) ∇xJ(F,x,c),从而得到这些样本的所有字符向量中每个维度的成本梯度。然后,我们将具有最大幅值维度的字符命名为热字符。(Then we term characters containing the dimensions with maximum highest magnitude hot characters.)。每个样本我们根据经验选择前50个热词。随后,通过简单的扫描,可以识别出包含超过或等于三个热词的热词,如果它们都是热词,任何相邻的词都将被组合成一个热词组。没有被组合的热词也将被视为热词组。最后,对于所有的训练样本,之前获得的热词组将根据样本的标签被收集在一起。我们从中确定最频繁的短语,称为热门训练短语(HTPs)。以建筑类为例,其前十名HTPs如表1所示。词级DNN的HTPs可以用类似的方式获得,只是这次的热门短语是通过寻找拥有最大最高梯度的词向量直接确定的。
HTP阐明了插入内容,但插入、删除和修改的位置仍不清楚。幸运的是,获取此类信息与识别HTP类似。给定文本样本,我们仍然使用反向传播算法来定位对当前分类有重大贡献的热门短语,这些短语被识别为热门样本短语(HSP)。HSP意味着在哪里进行操作,以制作有效的对抗样本。
HTP被用作构建攻击有效载荷的关键元素。如图2所示,在HSP(“principal stock exchange of Uganda. It was founded”)之前插入一个HTP(“historic”)可以成功地让描述公司的文本被错误地归类为建筑类,置信度为88.6%。
在黑匣子场景中,目标模型的内部知识(例如,成本梯度)不再可用。在这种情况下,我们借用模糊技术的思想[Sutton等人,2007]来实现盲测试,以定位HTP和HSP。通过复杂地生成大量格式错误的输入,模糊化可以触发意外的系统行为(例如,系统崩溃),以发现潜在的安全漏洞,即使不知道目标系统的详细信息。
类似地,在我们提出的方法中,有目的地生成一些测试样本来探测目标模型。因为在黑匣子场景中,我们不知道关于模型的技术细节,包括输入预处理,所以无论模型是字符级还是单词级,测试样本生成策略都应该保持不变。在实践中,我们采用了一种简单的生成策略,以避免生成过多的测试样本,并在某些情况下被阻塞。如图9所示,为了为给定的种子样本生成测试样本,我们使用一系列空格逐个遮挡其单词,其长度与遮挡的单词完全相同。选择空格进行遮挡是因为在许多自然语言中,例如英语,多余的空格通常对文本的语义几乎没有贡献,而“相同长度”限制是为了尽可能保持整个文本的结构完整性。在一些基于DNN的文本分类器中,例如[Zhang等人,2015],文本的分类对其结构很敏感。
因此,仅使用一个空白进行遮挡或直接删除单词可能会导致不必要的问题。我们将所有测试样本馈送到目标模型,并记录它们的分类结果。通过将测试样本的分类结果与种子进行比较,我们可以了解一个被遮挡的单词会造成多大的偏差。偏差越大,对应单词对正确分类的重视程度就越高。可以带来最大偏差的单词被识别为种子样本的HSP。
以图6中的70个单词的文本为种子,使用所提出的方案可以生成70个测试样本,如表3所示。将它们输入目标模型[Zhang等人,2015]后,我们发现遮挡“电视”和“英国”会导致最大的信心下降(分别下降42.2%和26.9%),这两个词可以被识别为文本的HSP。通过使用它们,我们开发了与图6所示相同的扰动,即删除“英国”。
HTP可以以类似的方式识别。在我们的实验中,我们将遮挡方案应用于训练集,并且只从每个样本中选择一个热词(被遮挡的词可能导致最大的偏差)。所有的热词都是根据样本的标签收集的,最频繁的被识别为HTP。实验结果表明,黑盒测试在识别HTP方面可以达到与白盒方法相似的性能。表4给出了两类CR数据集的前十个HTP,分别通过白盒和黑盒方法找到。我们可以看到,前十名HTP中有七名是相同的(以灰色背景显示),其中七名是阳性,八名是阴性。
事实上,所有用于制作图2∼8的对抗性样本的HTP和HSP都可以通过黑盒测试来识别。同样的扰动策略(即插入、修改和删除)可以被用来产生所提出的对抗性样本。我们相信,黑盒攻击与白盒攻击一样有效。