【深度学习NLP论文笔记】《Deep Text Classification Can be Fooled》

Abstract

当前存在的加扰算法不能直接应用于文本上。三种对文本的加扰策略:插入(insertion)、修改(modification)、移除(removal)。本文针对DNN文本分类器(DNN-based text classifiers)进行fool。

Introduction

文本分析很重要:垃圾网站、钓鱼网站(spam or phishing webpage)的检测依靠文本分类器。

本质上,文本是一种离散数据,而图像是连续的。如果对图像加扰,人类很难分辨;但是如果直接对文本加扰,文本会失去其原本的意思甚至对人类而言完全无意义。

所以要fool文本分类器有两个挑战:

1.对抗文本需要保持实用性(utility-preserving),要保持原来的意思。对于垃圾邮件检测系统来说,对抗样本要绕过检测系统(即被识别为非垃圾邮件),但又有达到传递广告信息的效果。

2.扰动要微小(imperceptible),对原始文本的变动要使人类难以发现。原始文本经常是自由文本(free-text),比如手机短信或者推特;而非富文本(rich-text),比如HTML页面。因此,不能对富文本的属性(比如颜色或大小)加扰动。

在选择加扰方式(插入、修改、移除)前,我们需要计算原始文本和训练样本的梯度。使用我们的方法可以进行有目标攻击(source\target misclassification attack),而非让样本被随机地识别到其他类。

target model and dataset

这里使用的文本分类器是Zhang et al. 2015《Character-level Convolutional Networks foe Text Classification》,数据集是Lehmann et al.2014的DBpedia ontology dataset(一个多语言知识库),里面包括560000个训练样本和70000个测试样本,涵盖14个high-level 类,比如公司类、建筑类、电影类等。

在把样本送进网络前,需要用独热编码法(one-hot representation)对每个字母编码成一个向量。通过网络的六个卷积层、三个全连接层,最终会被分到14个类中。

methodology

overview

对于给定的样本x和训练好的DNN分类模型F,攻击的目的是产生对抗样本。可以通过提取原始样本的梯度进行加扰。Goodfellow提出了快速梯度标记下降(FGSM)法。让c代表x的真实分类,代表损失函数。扰动可以通过以下方式计算:

在FGSM算法中,所有的输入像素无论大小,都根据相应的成本梯度的方向(符号),在相同的程度上应用正或负的变化。事实上,梯度的大小也意味着输入图像的哪一部分应该被处理,从而使其被错误分类。一个具有较大梯度的像素对当前的分类结果有更大的贡献。

Figure2说明,第一行只需要对4000个(2.66%)梯度大的像素点加扰就可以fool;而第二行对40000个(26.6%)梯度小的像素点加扰,类别竟然还是没变.

但是这种方法不能直接应用于文本。

Figure3中的原始文本(origin text sample)是对摩托车(motorcycles)的简短描述,然后被上文提到的分类器归为交通类(means of transportation)。如果直接使用FGSM方法,文本将变得不可读(图b)。如果修改梯度最大的几个字母(图c),文本还是很不自然。

为此,我们插入了一些项,并力求语义与原文一致。同时还可以移除那些对正确分类贡献大(梯度大)的项。所以本文的核心原理在于在于通过计算梯度来识别对分类有重大贡献的文本项,然后再插入、修改、移除。

insertion strategy

计算每个样本损失函数的梯度。我们把含有最大梯度值得维度称为热字符(hot characters )。对于每个样本都选出前100个热字符,随后,通过一个简单的扫描识别出包含足够热字符的短语。(这个说明的位置很奇怪,应该放到下一个部分)

随后,把目标类别中的所有训练样本都收集起来,从中找出使用最频繁的句子,将其称为热训练语句(hot training phrases/HTPs)。例如,单词“历史性的(historic)”是建筑类(building class)中的HTP,它出现了7279次。

为了产生对抗样本,可以直接把目标类c*中的HTPs加入到当前文本t中。

Figure4只加了一个HTP——“historic”,就有88.6%的置信度将其分为建筑类。(原来是company类)。

同时,插入位置也很重要,如果“historic”被插到figure4倒数第二行exange...那这个样本依然能被正确分类(99.6%置信度)。

我们发现攻击负载(attack payload)要被加在对分到原始类别贡献最大的句子附近。figure4中的位置就是第一行“principle stock...”。同HTPs一样,这种位置也能通过计算得到。

由于直接将HTPs插入文本可能会损失实用性和易读性,所以将它们组合成一个语法单元,并将新单元插入适当的位置,同时要保证语义上的兼容(semantically compatible).通过搜索互联网或某些事实数据库,例如(Suchanek et al. 2007),我们可以得到与插入点密切相关的一些事实,并包含目标类的一些理想的HTPs。它们可以被转换为一个描述性的子句或插入点的括号,以自然的方式插入。

Figure5是被分为Album的文本(99.9%),由于其中出现了一个公司的名字(YG Entertainment),所以在之后进行插入,使之被分到company类(94%)。

由于我们不能总是找到合适的HTPs,所以提出一个新概念——伪造的事实(forged fact),也就是插入很难证伪的HTPs。例如以下的Figure6:

Modification strategy

计算文本的梯度,把含有最大梯度的热字符找出来,并把含有这样热字符的句子称为热样本语句(HSPs)

理论上要进行修改必须增加,并降低

有两张方式修改HSP:1.从相关的语料库中选择常见的拼写错误来替换它。2.把它的一些字符修改成类似的外观。比如把l改成1.修改之后要分别计算上面两种损失函数的梯度,看看是否超期待的方式发展。

在Figure7中,“comedy film property”就是HSP,这个文本被分为film类(99.6%)。从一个拼写错误语料库(http://www.dcs.bbk.ac.uk/~ROGER/corpora.html)中,找到了一个常见错误拼写:“flim”,用它替换“film”可以使文本被分为company类(99.0%)

removal strategy

HSPs中的一些增补语(如无关紧要的形容词或者动词),可以被移除。

Figure8被分为film类(95.5%)。计算梯度后发现HSP:“seven-part British television series”。移除“British”后置信度降到60.5%。

combination of three strategies

Figure9去掉了一个HTP(“historic”),然后修改了一个HSP,结果从building类(83.7%)跑到transportation(88.7%)。

Evaluation

table2的1-13说明了可以fool到任意类中。14-16说明了任意类的文本也能被fool。

我们找了23个学生。他们对项目不了解,然后每个人给20个文本,其中一半是加扰的。让他们分到14个类中,如果他们觉得哪个文本不对劲,让他们指出来。他们总的分类正确率是94.2%,10个对抗样本的正确率是94.8%。所以实用性还是有的。他们标注出了240项修改处,其中12项符合真实的修改。但实际上我们做了594处修改。

实验中计算梯度和找HTPs花了116小时。14个类的HTPs每个类花了8.29小时。对所有的adversarial示例只执行一次计算。制作一个对抗性的样品大约需要10到20分钟。对于对手来说,获得理想的对抗样本是可以接受的。实际上,她或他愿意花更多的时间来做这件事。

related work

conclusion and discussion

可以做的方向:1.自动生成对抗样本;(然而,Papernot等人(Papernot et al. 2016a)提出了一种基于雅可比矩阵的数据集增强技术,该技术可以在不访问其模型、参数或训练数据的情况下,在有限对输入输出的基础上,为目标dnn提供替代模型。作者还表明,使用替代模型也可以有效地制作对抗样本,以攻击目标DNN。)2.迁移、黑盒攻击;

猜你喜欢

转载自blog.csdn.net/qq_36829091/article/details/81878248
今日推荐