专栏名称: ChaMd5安全团队
一群不正经的老司机组成的史上最牛逼的安全团队。小二,来杯优乐美。
目录
相关文章推荐
上饶新闻  ·  上饶市信州区档案馆搬迁闭馆公告 ·  8 小时前  
武汉发布  ·  长江边又添一处打卡点 ·  昨天  
武汉发布  ·  长江边又添一处打卡点 ·  昨天  
51好读  ›  专栏  ›  ChaMd5安全团队

文本对抗综述(二)

ChaMd5安全团队  · 公众号  ·  · 2021-03-14 08:00

正文

本篇文章由ChaMd5安全团队AI小组投稿

Word-level Attack

单词级别的攻击最早作品是在2016年发表在MILCOM会议上的文章,papernot等人通过研究对抗输入序列的递归神经网络处理顺序数据,对对抗机器学习领域做出了贡献,作者通过制造对抗序列可以误导实现分类和顺序递归神经网络模型。鉴于中引入了对于深度学习分类器的攻击分类,主要方法为通过制作对抗样本使得图片的分到指定的类别或者是与原始类别不同的分离。在上述的攻击手段中,主要使用的方法为快速梯度标志方法(Fast Gradient Sign Method)和前向求导法(Forward Derivative),但是这两种方法针对的都是为了解决图像分类问题的模型。

由于在图像分类模型中的输入都是线性可微的,而文本大多都是离散的,因此作者在本文中提出一种新的对抗性样本,可以用于映射以非线性或不可微的方式对输入序列进行预处理,并且最后输入分类或者是序列的模型。这里作者使用的模型是RNN模型,并且制作了一种旨在误导RNN模型差生错误输出的对抗性序列,利用计算图展开技术,并且证明了正向导数可以适用于具有循环计算图的神经网络。

快速梯度标志法(FGSM) 近似方程(8)中的问题,方法是将模型的代价函数围绕其输入线性化,并通过代价函数相对于输入本身的梯度选择一个扰动。可以通过遵循训练过程中通常用于反向传播的步骤来计算此梯度,但是与训练过程中通常情况不同,该梯度不是计算模型参数的梯度(目的是减少预测误差),而是 针对输入进行计算。这就产生了以下对抗性样本的公式:

前向导数(Forward Derivative )是制造对抗样本的另一种手段,该方法的设计考虑了对选定的对抗目标中的样本进行错误分类的对抗威胁模型,并且该技术还可以用于实现与原始样本类别不同的任何目标类别中较弱的错误分类目标。可将前向导数定义为模型的雅可比行列式:

本文的不足之处在于可能会生成虽然能够迷惑RNN但是语意不通的句子。比如原句为 “I wouldn’t rent this one even on dollar rental night.”更改为 “Excellent wouldn’t rent this one even on dollar rental night.”

随后liang等人根据上述不足进行了补足,并设计了三种扰动策略分别是插入、修改和删除,并引入了自然语言水印技术将给定为本生成对抗样本,并非简单的将扰动和原始输入重叠。

作者使用了当时具有代表性的文本分类器DNN,一个是字符级模型,另一个是单词级的模型,之后分别从白盒以及黑盒攻击角度分别介绍不同的攻击方式。

在白盒方式下,作者指出可以使用FGSM方式制作生成文本对抗样本,也可以使用损失梯度来制作对抗样本。但是这些方式并不能直接适用于文本,原因如下图中(b)

Figure 1: FGSM生成的对抗样本

原始的句子是对一辆摩托车的简短描述,这个时候DNN模型可以将该句子争取归类为交通工具,虽然通过FSGM方式可以将预测更改为Company,但是新的文本图中(b)对人类来说都已经不可读了,虽然也可以使用一些梯度值最高的字符,但是生成的文本仍然是不可读的,如(c)中所示,所以需要更复杂的策略来为文本数据制作对抗样本。这里作者指出在百倍场景下应该先根据其损失梯度识别对分类很重要的文本项,然后利用这些项以及自然语言水印技术来决定插入、修改或删除什么、插入哪里以及如何修改。

作者进行白盒攻击的最主要在于利用损失函数来识别对对分类有重要贡献的文本项,以字符级模型为例。

之后把维度最高最大的字符称为热字符,随后通过简单扫描就可以识别出包含三个以上热字符的热点词,如果所有相邻的词都是热点词,则将它们组合成一个热点短语,未组合的热点词也将被视为热点短语。

最后,对于所有的训练样本,将之前获得的热点短语按照样本的标签收集在一起。从这些短语中,我们确定了最常用的短语,称为热训练短语(Hot Training Phrases )。以Building类为例,下图展示了它的前10个htps。单词级DNN的HTPs可以用类似的方法获得,只是例子中热短语是通过寻找具有最大最大梯度的词向量直接识别的。

但是HTPs只指出了插入什么单词,但是插入、移除以及修改的位置仍然不清楚,但是这类信息类似于识别htp,在给定文本样本的情况下,仍然采用反向传播算法来定位对当前分类有重要贡献的热短语,并将这些短语识别为热样本短语(Hot Sample Phrases (HSPs).HSP用来表示在哪里进行操纵,以制造出有效的对抗样本。

Figure 2: Building类的前十个HTPs

作者可以利用上述方式对抗样本的制作并且可以控制样本选择任意感兴趣的一个类作为目标类进行攻击,而不是任意输出不属于原始类的类别。

插入策略 对于一个给定的文本t,如果 F ( t ) = c ,则该策略的目标是在t中插入一些新的文本项(攻击有效载荷),这可以有效地提升t对感兴趣的类c'的分类置信度 ( c c ) ,并且相对应的可以降低对原始类别c的置信度。如下图插入historic后可以将原本属于Company的类别分到Building类别。

Figure 3: 插入一个HTP后又99.7%的Company类别被分到Building

因为在实践中经常需要多次插入,但是直接在文本中插入多个htp可能会损害文本的实用性和可读性。为了解决这一问题,作者引入了自然语言水印技术。该技术可以通过语义或句法操作,比如用同义词或拼写错误替换单词,偷偷地将所有权水印嵌入到纯文本中,作者借用了这一思路制作对抗样本。作者还扩展了插入预设和语义空白短语的思想,以扰乱目标文本样本,简单说来就是在文本中通过插入一句携带有HTPs的事实或者伪造的事实,在每句语义和原始文本主题不变的情况下使得样本分类错误。

修改策略 是通过略微操控输入中的一些HTPs来影响模型输出,主要方法为增加损失函数 J ( F , t , c ) ,同时减少损失函数 J ( F , t , c ) ,并且为了在不引起人类观察者注意,修改的方向应该是沿着损失函数 J ( F , t , c ) 的梯度。主要的修改方式有两种,第一种是用常见的拼写错误替换正确的词汇film改成flim,第二种是将单词中的一些字符改编成视觉上外观相似的错误拼写,比如将小写字母“i”改成数字“1”。

删除策略 主要是删除单词,但是该方式只能在很大程度上降低分到原始类别的置信度但是预测类别不会发生变化。

而黑盒攻击的主要方式为使用白盒中的策略进行fuzzing查找漏洞,但是与白盒策略不同的是,黑盒的时候并不知道训练的数据库,于是采用了对一段话中每个单词都挨个遮挡的方式制作出来可以用于fuzzing的种子文件,之后挨个进行测试比较原始测试样本和种子文件的分类结果,通过对比遮住每一个单词造成的偏差找到HTPs,偏差越大,对应的词对模型的正确分类重要度越高,接着找出来造成偏差最大的单词确定为种子文件的热敏感因子,最后找出热点单词,然后利用上述做法制作对抗样本。

关于实现情感分类的NLP模型,Alzantot等人也通过使用黑盒攻击方式利用基于群体的优化算法来生成语义和语法上相似的对抗样本,利用这些样本来攻击训练良好的情感分析和文本蕴涵模型的成功率分别为97%和70%。

作者设计了一种构造对抗样本的算法,旨在最大程度地减少原始示例和对抗示例之间的修饰词数量,但仅执行保留与原始和句法连贯语义相似性的修饰。为了实现这些目标,我们开发了一种攻击算法,而不是依靠基于梯度的优化,而是通过遗传算法来利用基于种群的无梯度优化。使用无梯度优化的另一个好处是可以在黑盒中使用,依赖于梯度的算法在这种情况下不适用,因为它们依赖于模型是可区分的并且内部是可访问的,也就是仅限于白盒攻击。基于以上原因,作者选择使用遗传算法来之制作对抗样本。

遗传算法的灵感来自自然选择的过程,将一系列候选解决方案迭代发展为更好的解决方案。在遗传算法中的每次迭代的总体称为一代,在每一代中,使用适应度函数评估人口成员的质量,更有可能选择“更合适”的方案来培育下一代。下一代则是是通过交叉和突变相结合而产生的,交叉是获取多个父解决方案并从中生成子解决方案的过程,它类似于繁殖和生物交叉;突变是为了增加种群成员的多样性并更好地探索搜索空间。众所周知,遗传算法在解决组合优化问题方面表现出色,由于采用了大量的候选解,这些算法可以找到成功的对抗性示例,且修饰较少。

该算法应用在文本对抗主要为子程序扰动(Perturb Subroutine)和过程优化(Optimization Procedure)两个步骤。

为了挑选最合适的替换词,扰动应该遵守如下步骤:

作者在上面的步骤中也排除了常用冠词或者介词被替换的可能性。

过程优化 优化算法首先通过调用Perturb子程序S次以创建一组对原始句子的不同修饰来创建大小为S的初代 P 0 ,然后,计算当前世代中每个种群成员的适应度,作为作为查询被攻击模型函数f得到的target标签预测概率。如果一个种群成员的预测标签与target标签相等,则优化完成。否则,将以与它们的适应度值成正比的概率随机采样当前一代的成对种群成员。然后,通过使用均匀分布从两个父句中独立采样,从一对父句中合成一个新的子句。最后,将Perturb子程序应用于结果子代。

具体算法Alogrithm 1所示:

作者为了评估攻击方法,训练了情感分析和文本蕴含分类任务模型,并分别进行了测试。最后也人工对修改过后的文本检测其是否会影响人类的正常判断,最后发现利用基因遗传算法对文本情感的修改对人类的判断没有明显的影响,下图是利用遗传算法攻击两种模型的成功率和百分比,
Figure 4: 攻击两种模式的成功率和百分比

由于在单词级别的攻击中会出现很多语义不同的句子,zhang等人指出即使是遗传算法的攻击方式,生成的对抗样本也免不了出现语句不流畅的现象,而且由于抛弃了梯度,这种方式的对抗样本制作也是低效的。于是便从文本流利度的角度考虑对抗样本的制作。在zhang等人的论文中,提出了一种Metropolis-Hastings attack(MHA)算法,且MHA算法是基于M-H抽样的算法。作者在文中提出了MHA算法的两种不同攻击方式,即黑盒MHA攻击(b-MHA)和白盒MHA攻击(W-MHA)。与以往使用M-H的语言生成模型相比,b-MHA的平稳分布具有一个语言模型项和一个对抗性攻击项,这两个术语使对抗性例子的生成流畅有效,同时w-MHA在提案分配中加入了对抗性梯度,以加速对抗性例子的生成。

作者指出,M-H算法是一种经典的马尔可夫链蒙特卡罗采样方法。给定平稳分布(π(x))和跃迁建议,M-H能够从π(x)生成理想的例子。具体来说,在每次迭代中,基于提议分布(g(x‘|x))做出从x跳到x’的建议,该建议被接受的概率为:

一旦被接受,该算法就会跳到x'否则就保持在x。

作者选择进行攻击的模型依然是文本分类器,在黑盒攻击(b-MHA)中,作者希望对抗样本能够满足以下三个要求:(a)流畅阅读;(b)能够愚弄该分类器;(c)尽可能少地调用分类器。

固定分布 为了能够满足上述要求,设计如下的平稳分布:


过渡提议 共有三个但自己的转换操作,分别是替换,插入和删除。

遍历索引 用于选择要对其执行操作的单词,假设MHA在第t个建议中选择第i个单词 w i ,然后再第 t + 1 个建议中选择单词为:

建议分布是过渡函数的加权和:

同时作者表示,白盒攻击与黑盒攻击之间的唯一区别在于与预选器。与黑盒攻击不同的是,白盒攻击的预选器将梯度引入预选分数。

除此之外,文本分类模型的对抗攻击还有基于概率加权词显着性(PWWS)的贪婪算法,且PWWS会最大程度地降低分类准确性,并保持非常低的单词替换率,作者的主要攻击思路如下:

给定一个经过训练的NLP文本分类器F,它可以根据最大后验概率,正确地将原始输入文本 x 分类为标签ytrue,如下

为了使干扰小到人类无法察觉,对抗样本需要满足词汇、语法和语义方面的限制。词法约束要求输入样本中的正确单词不能被更改为常见的拼写错误单词,因为在分类器输入之前进行拼写检查可以很容易地消除这种干扰。此外,被扰动的样本必须语法正确,且根据语义约束的要求,对原始样本的修改不应导致语义的显著变化。

根据上述约束,我们用同义词在输入文本中放置单词,用相似的命名实体(NEs)替换原始的NEs来生成对抗样本。NE是指在样本文本中具有特定含义的实体,如人名、位置、组织或专有名词等。用一个相似的NE替换原始文本中的一个NE会在语义上产生轻微的变化,但不会引起词汇或语法上的变化。因此假设当前输入样本属于 y t r u e 类,且字典 D y t r u e D 包含所有出现在文本中且属于类别 y t r u e 的NEs,则我们可以在补集字典 D D y t r u e 中使用最常见的命名实体 N E a d v 作为替代词,此外替代词 N E a d v 必须与原始NE的类型一致。

作者介绍而PWWS的单词替换策略如下,对于x中的每个单词 w i ,使用WordNet为其构建一个同义词集 L i D ,该同义词集中包含 w i 的所有同义词。如果 w i 是一个命名实体(NE),且 N E a d v L i 具有类型一致的 w i ,那么每一个 w i L i 都是 w i 的候选词,接着从 L i 中挑选任意一个 w i 来代替一个欲替换词 w i ,其中欲替换词 w i 在替换后可引起分类概率发生最大变化。替代词的选择方式 R ( w i , L i ) 如下

此外,在文本分类任务中,输入样本中的每个单词可能对最终分类产生不同程度的影响。因此作者将单词显著性加入到算法中来确定替换顺序。单词显著性是指当一个单词被设置为未知(即在词汇表外)时,分类器输出概率的变化程度。单词的显著性 S ( x , w i ) 计算方法如下

这里的 ϕ ( S ( x ) ) i 是softmax函数

PWWS算法的实现如下Algorithm 1

Figure 5: Algorithm 1

除了对文本分类模型的攻击以外,ACL会议上也有关于单词级别样本攻击的其他方向文章,主要攻击的模型也比原来有所变化,目标模型从原本的文本分类任务转向神经网络模型推理(NLI)系统,Glockner等人发表了这个方向的论文,主要贡献在于创建了一个新的NLI测试集,且利用SNLI数据集训练的系统在该测试集上结果明显不理想。

SNLI数据集是Stanford大学创建的自然语言推理(SNLI)数据集,全称The Stanford Natural Language Inference (SNLI) Corpus,是专门训练实现自然语言推理功能的模型,这一项任务与识别前提句子是否与假设句子存在蕴含、中立或者矛盾关系。作者创建的NLI测试其中包含了捕捉各种词汇知识的示例,比如说香槟是一种酒(上下义关系),萨克斯和电吉他是不同的乐器(上下义关系)。举例如下图所示

Figure 6: 新的NLI测试集示例

为了分离词汇知识方面,作者构建的例子只包含出现在训练集和预训练嵌入中的单词,并且与训练集中的句子相差一个单词。新测试集的性能在不同的系统中要差得多,这表明SNLI测试集本身不足以衡量语言理解能力。作者在构建NLI数据集时,所有的前提均取自SNLI训练姐,对于每个前提,作者通过用不同的词替换前提中的一个词来产生几个假设,也会使用一些由多个单词的名词短语(“electric guitar”)来产生假设,并且会删除限定词和介词。作者只关注生成的有蕴含或者矛盾关系的例子,而中性的例子仅仅作为副产品存在。蕴含示例是通过用同义词或上位词替换一个单词而生成的,而矛盾示例是通过用互斥的同形异义词和反义词替换单词而生成的,生成的方式具体如下。

替换词 首先作者使用在线英语学习资源收集了替换单词,新引入的单词都存在于SNLI训练集中:从单个训练示例(“Portugal”)到多次出现的示例(“man”)。这些单词也可以在预先训练的嵌入词汇表中找到。这种约束的目标是隔离词汇知识方面,并评估模型对已知单词进行归纳和新推理的能力。之后替换词也被分为如下图所示的不同的主题类别,在这几个类别中,作者应用了附加处理,以确保示例确实是互斥的、局部相似的和在上下文中可以互换的。作者使用GloVe将词性相同且余弦相似度评分高于阈值的WordNet反义词纳入其中。在国籍和国家方面,关注的是地理上相关的国家(Japan、 China)或文化上相关的国家(Argentina、Spain)。

句子对 为了避免引入训练数据中不存在的新信息,作者从包含在列表中的单词的SNLI训练集中采样前提,并通过替换所选单词生成假设,在这过程中可能会产生一些不合语法或毫无意义的句子,例如,在讨论迈克尔·乔丹(Michael Jordan)的句子中,用Syria代替Jordan。为了避免出现这种情况,作者使用维基百科的bigrams4来抛弃那些被替换的单词只出现了少于10次的bigram的句子。

Figure 7: 每个模型实现的实例数量和每种主题类别的准确性

作者使用了众包的方式手工验证自动构建的示例的正确性,将测试集命名为 B r e a k i n g N L I

之后通过一系列证明了尽管测试集的结构比SNLI简单得多,并且没有引入新的词汇,但是最新的系统在其上的表现很差,表明它们的泛化能力有限。该测试集可在将来用于评估NLI系统的词汇推断能力,并弄清其他性能非常相似的系统的性能。

除了文本分类器的样本对抗攻击以外,Cheng等人对神经机器翻译(NMT)也进行了样本对抗攻击。对于NMT模型来说,扰动主要来自于两个来源:1.注释中的自然噪声,2.攻击模型产生的人为偏差,作者在论文中不区分扰动的来源。作者提出了一种基于梯度的算法AdvGen,NMT模型中干净输入的最终翻译损失为指导来构造对抗例子。AdvGen应用于编码和解码阶段:1.通过生成对训练损失敏感的敌对源输入来攻击NMT模型;2.利用对抗性目标输入对NMT模型进行防御,以减少对抗性源输入的预测误差。

作者的贡献有三方面:

  • 提出了一种用于非机器翻译对抗例生成的白盒方法。我们的方法是一种以翻译损失为指导的基于梯度的方法。

  • 我们提出了一种新的方法来提高具有双重对抗性输入的NMT鲁棒性。编码器中的对抗性输入的目标是攻击NMT模型,而解码器中的输入则能够防御预测中的错误。
  • 在两个常见的翻译基准测试上,作者的方法比以前最先进的transformer模型取得了显著的改进。

这里的 θ m t 为一组模型的参数, z j 是部分目标输入,则训练损失S定义为:

形式上可以通过求解一个优化问题,对一个训练样本 ( x , y ) 生成一组对抗样本 Z ( x , y )

先前的论文中给出了对抗样本的生成等式,如下

此处 J ( ) 用于衡量样本具有对抗性的可能性,是用于表示对抗性示例 x 输出最可能的目标类别 y ( y 1 y ) 的函数。而 R ( x , x ) 则表示对扰动的不敏感程度。

给定一个句子对 ( x , y ) 带入上式子,可以得到等式

这里的 g x i 是梯度向量, x ν x 是源语言的词汇表, s u m ( , ) 表示计算两个向量的余弦相似度函数。接着,令 Q ( x i , x ) R | V | 表示句子 x 的第一个单词的似然度,定义 V x i = t o p _ n ( Q ( x i , x ) ) Q ( x i , x ) 前n个得分中n个最有可能的单词集合。







请到「今天看啥」查看全文