AD nlp Survey

【论文阅读】AD nlp Survey

作者:Wei Emma Zhang(阿德莱德大学,澳大利亚)

QUAN Z. SHENG(麦考瑞大学,澳大利亚)

AHOUD ALHAZMI(麦考瑞大学,澳大利亚)

李晨亮(武汉大学,中国)

1. 关键词:DNN,对抗样本,文本数据(textual data),NLP

2. 摘要:

  1. 传统对抗样本基本都针对计算机视觉领域;
  2. 本调查提供针对基于DNNs的NLP对抗样本攻击;
  3. 由于CV与NLP本身不同,方法不能直接移植;
  4. 集成了截止2017年所有的相关成果,综合性地总结,分析,讨论了40个代表性工作;
  5. 简单介绍了CV和NLP相关知识。

    3.Introduction:

  6. 简单介绍了对抗样本

  7. 关于对抗样本的研究可以简单分为三类

    ① 通过使用微小扰动来欺骗DNN,以此来评估它;

    ② 刻意改变DNN的输出;

    ③ 检测DNN中过敏感和过迟钝的点,寻找防御攻击的方法。

    1. ==不能直接使用基于CV的对抗样本生成方法的原因:==

      直接将对图像攻击的对抗样本生成方法应用到文本上,将得到毫无意义的词语和句子片段。这是因为在对图像的对抗样本生成中,即使略微改变每个像素的灰度,肉眼也可以识别原来的图像;但是对于文本串来说,即使改变一个字母,语句的语义也将完全不同或出错。

  8. ==相关研究:==

    Reference [i] = 【i】

    ​ ① 【9】:对针对不同类别的机器学习系统的攻击与防御做了综合性概述,提出了一种用于辨识和分析这些攻击的分类方法,并将将这些攻击应用到基于机器学习的应用上来证明这些攻击或者防御手段的有效性。例如,一个统计垃圾邮件过滤器。

    ​ ② 【13】:作者俯瞰了近十年(2008-2018)对抗样本攻击的发展史,聚焦点在于CV和网络空间安全。对非深度学习算法和深度学习算法都做了介绍,也从安全的角度仔细分析了这些攻击和防御手段的影响。

    ​ ③ 【79】:与【13】阐述的问题类似,从数据驱动的角度。

    ​ ④ 【154】:聚焦于对抗样本在深度学习模型上的使用。介绍了最近的几种不同的在应用上对DNN的攻击,同时全面调查了防御方法。但是,其只讨论了对抗样本在图像分类和物品识别上的攻击。

    ​ ⑤ 【2】:详细阐述了对抗样本在CV上的应用,是一篇应用程序主导的调查。

    ​ ⑥ 【35】:从安全的角度阐述了对抗样本的防御手段。(不仅从机器学习算法或者神经模型上,从所有与安全相关的应用上阐述对抗样本防御)作者发现现有的与防御相关的安全工作缺乏清晰的对攻击如何与真实安全问题相关联的动机和解释,以及这些攻击和防御如何被有意义地衡量,故提出了一种分类方法用于衡量这些。

4. Overview (对抗样本攻击 and 深度学习在NLP中的应用):

  1. 给出了DNN,Perturbations,Adversarial Examples的定义;

  2. 介绍了Treat Model

    2.1 Granularity(颗粒度):攻击的颗粒度指的是对抗样本生成的数据等级,例如对图像数据通常是像素,对文本数据就是字母,单词,句子嵌入等级。

    2.2 Motivation(动机):生成对抗样本的动机通常有两种,攻击和防御:1.攻击的目的是检验DNN的健壮性;2. 防御的目的是使DNN更加稳固,第五部会给出更详细的讲解。

  3. 介绍了Measurements(评价adversarial attack的方法):

    3.1 控制扰动(Perturbation Constraint):

    ​ 根据前面所述,扰动 η 应该不影响样本原来的真实分类,故如果一个分类器是理想的,那么扰动后的样本应不影响其分类结果η 同时也不能太小,以避免对目标DNN没有影响。在理想情况下,有效扰动是在一定范围内最有效果的噪声。

    ​ 【132】首次在图像对抗样本攻击中约束了(x + η) ∈ [0, 1]^n^ 的范围,以保证对抗样本与原始数据有着相同的像素等级。

    ​ 【40】简化了问题的解决方法,并使用了无穷范数来限制扰动,==这受到直觉的启发,即一个不改变任何特定像素的扰动量超过一定量 ϵ 就不能改变输出类。==(PS:WHY?)无穷范数在图像/物品分类识别任务中是足够有效的,其他的范数,例如L0和L2范数,过去被用于在对CV的DNN攻击中限制扰动。在文本对抗样本攻击中,这有所不同,第3.3节会给出更多细节。

    3.2 评估攻击的有效性(Attack Evaluation):

    ​ 对抗样本攻击旨在降低DNNs的性能,因此,评估攻击的有效性是基于不同任务的性能指标。例如,分类任务中有评价指标准确度,F1-score,AUC-score。在本文中,我们将针对不同NLP的评价标准作为超范围内容,并建议读者参考特定的信息。

    ​ ==以上是总体分类与信息==


​ ==以下是深度学习在NLP中的应用==

​ 除了向前传播的神经网络和CNN,RNN及其变式由于其天然的处理序列的能力,也被用于NLP中。

  1. 近几年深度学习对NLP的重大影响

    1.1 序列学习(sequence-to-sequence learning

    1.2 注意力机制(attention mechanism

    1.3 强化学习(reinforcement learning)和生成模型(generative models)

    具体详细的神经网络在NLP中的应用见【100】,【152】

    1. Feed-Forward Networks:

    缺点:不能很好地处理对于词语顺序很重要的文本序列,因为其并不记录元素的顺序。为了评价其健壮性,往往针对专门设计的前馈网络生成对抗实例,【3】,【43】,【44】作者研究了指定的恶意软件检测模型。

    1. CNN:

    ​ CNN识别本地预测因子并将它们组合在一起,为输入生成一个固定大小的向量,该向量包含数据中最重要或最重要的信息方面。

    ​ CNN对顺序敏感,因此,它擅长做计算机视觉,随后被广泛用于NLP应用。

    ​ 卷积操作被简直在词的序列方向上,而不是词的嵌入。

    两个经典工作:1. 【59】使用CNN和Word2Vec进行句子分类 2.【156】使用CNN和热独编码进行文本分类。

    1. RNN:

    ​ 主要介绍RNN及其变式(LSTM,GRU)

    1. Seq2Seq(sequence-to-sequence learning):

    ​ Seq2Seq模型具有优越的能力,能够为具有编码器-解码器结构的给定序列信息生成另一个序列信息.

    ​ 通常,一个Seq2seq由两个RNN结构组成,一个用于编码,一个用于解码。VHRED是一个最近很受欢迎的Seq2seq模型,它利用子序列之间的复杂依赖关系生成序列。

    ​ 【24】是最初的使用Seq2seq模型的神经机器翻译模型(NMT)之一;

    ​ 【63】是一个最近提出的 seq2seq NMT模型,是此领域的benchmark;

    ​ 【22,30,98,127】有对其的攻击。

    1. Attention Models:

    ​ 注意力机制最初被设计用来克服seq2seq模型中对长序列编码的问题。

    ​ 注意力允许解码器回溯源序列的隐藏状态,然后,隐藏状态提供一个加权平均作为解码器的额外输入。

    1. Reinforcement Learning Models:

    ​ 强化学习通过在代理执行离散动作后给予奖励来训练代理,在NLP中,强化学习框架通常由一个代理(DNN),一个策略部分(用于指导动作)和奖励组成。

    ​ 代理基于策略做出一个动作(例如预测序列中下一个单词的位置),然后相应地更新其内部状态,直到到达序列的末尾,在这里奖励已经被计算完成。

    ​ 强化学习需要正确处理每一步的动作和状态,这可能会限制模型的表现力和学习规模。但它在面向任务的对话系统中获得了很多好处,因为它们在决策过程共享着同一根本原则。

    1. Deep Generative Models(深层生成模型):

    ​ 近些年,两种深层生成模型获得了很多关注:Generative Adversarial Networks (GANs) 【39】 and Variational Auto-Encoders (VAEs)

    ​ 其可以在潜在空间中生成与真实数据分厂相似的数据样例,在NLP领域,它们被用来生成文本。

    ​ 8.1 GANS:

    ​ Gans由两个对抗网络组成:生成器(generator)和鉴别器(discriminator)。鉴别器的作用是鉴别真实样本和生成样本,生成器的作用是生成很真实的,用于欺骗鉴别器的样本。

    ​ Gan使用min-max loss function来同步训练两个神经网络。

    ​ 8.2 VAES:

    ​ Vaes由编码器(encoder)和生成器(generator)组成。编码器的作用是对输入编码为潜在空间,生成器的作用是从潜在空间中生成样本。

    深度模型都不是很好训练,这个缺点阻碍了其在真实世界的应用中的广泛应用,尽管他们已经被用于生成文本,但目前没有工作去用对抗样本检验它们的健壮性。

5. From image to text:

一. 构造对抗样本:

  1. 、L-BFGS:

​ Szegedy【132】等人首次证明了可以通过对图像添加小量的人类察觉不到的扰动误导深度神经网络图像分类器做出错误的分类。他们首先尝试求解让神经网络做出误分类的最小扰动的方程。作者认为,深度神经网络所具有的强大的非线性表达能力和模型的过拟合是可能产生对抗性样本原因之一。

  1. FGSM(Fast Gradient Sign Method):

​ L-BFGS很有效但成本高昂,这使Goodfellow【40】等人找到一个简化问题的方法。

  1. JSMA(Jacobian Saliency Map Adversary):

​ 与FGSM利用梯度攻击不同,Papernot【105】等人使用forward derivatives(远期衍生物?)生成对抗样本。这个方法通过使用其雅克比矩阵来评估神经模型对每个输入部分的输出敏感性。

  1. DeepFool:

​ DeepFool是一种迭代的L2正则化算法,作者先假设神经网络是线性的,因此可以使用一个超平面来分离类。作者简化了问题并且基于以上假设找到了问题最优解,并构建了对抗样本、

​ 为了解决神经网络是非线性的事实,作者重复他们的步骤直到一个真正的对抗样本被生成了。

PS:正则化:(23 封私信 / 54 条消息) 机器学习中常常提到的正则化到底是什么意思? - 知乎 (zhihu.com)

  1. Subsititute Attack:

​ 前面四中攻击方式都是白盒攻击, Papernot【104】等人提出了黑盒攻击策略,他们训练了一个与目标模型决策边界相似的替代模型,对此替代模型进行白盒攻击,生成相应对抗样本。

​ 在生成对抗样本的过程中,他们使用了FSGM和JSMA。

  1. GAN-like Attack:

    ​ 这是一种通过深度生成模型的黑盒攻击方法,Zhao【157】等人首先基于数据集 X 训练了一个生成模型WGAN,WGAN可以生成与X分布相同的数据点。

二. 对图像DNN攻击与对文本DNN攻击的对比:

1. 二者的主要不同:

​ 1.1 离散与连续输入:

​ 图像输入是连续的而文本输入是离散的,在图像输入中,通常使用L~p~来衡量原始数据点和扰动点的距离,但是由于文本输入是离散的,很难定义文本上的扰动大小(==为什么?==)。这就需要构造对文本扰动的衡量方法。还有一种方式是将文本输入当做连续值,然后应用CV方法,在3.3节上将会详细讨论。

​ 1.2 可察觉与不可察觉:

​ 与图像相比,文本数据即使更改一个字母也会造成很大变化,故即使做很小的扰动,也可以被很明显的察觉到。

​ 1.3 有语义和无语义:

​ 原理同上,在文本中做很小的改动往往会极大地影响到文本的语法和语义信息。

​ 基于以上不同,目前主流对文本DNN的攻击有两种:1. 调整图像DNN的攻击方法,添加额外限制;2. 使用新技术提出一个新方法。

三. 向量化文本输入 and 扰动的衡量方法

  1. 三种向量化文本输入的方法:

    1.1 基于计数的编码(Word-Count-based Encoding

    ​ ① BOW(Bag-of-words)方法,将一个文档中出现的词语编号为向量的0,1,2…..i维度,每个维度的值代表词语出现的次数。(缺点:不能记住词语顺序)

    ​ ② Term frequency-inverse document frequency (TF-IDF) ,具体见:

    TF-IDF算法介绍及实现_Asia-Lee-CSDN博客_tf-idf

    ​ 1.2 热独编码(One-hot Encoding:

    ​ 具体介绍略。

    ​ 由于普通顺序编码的值存在大小关系,当模型得到输入后会将其当做实际值来处理,这就使得原本平行的数据有了大小关系,独热编码巧妙地解决了这个问题,使得所有单词或者字母低位平等。

    ​ 1.3 稠密编码:

    ​ Word2Vec使用连续BOW模型和skip-gram 模型来做代码嵌入。

    一个潜在的假设是,出现在相似语境下的词语有着相似的含义。 词嵌入在一定程度上缓解了文本数据向量化的离散性和数据稀疏性问题【36】,词嵌入的扩展如doc2vec和paragraph2vec【69】将句子/段落编码为稠密向量。

  1. 扰动的衡量方法:

    2.1 基于范数的方法(Norm-based measurement

    ​ 直接使用范数需要输入数据是连续的。一个解决方法是使用连续且稠密的表示方法(如嵌入),但这通常会得到无意义的文本。

    2.2 基于语法和句法的方法(Grammar and syntax related measurement):

    ​ 通过确认文本语法的正确性来保证对抗样本不易被识别。

    ​ 可以使用Perplexity【91】,Paraphrase(4.3.3)确保对抗样本的有效性。

    2.3 基于语义保持的方法(Semantic-preserving measurement):

    ​ ① 计算欧拉距离:

    ​ ② 计算Cosine Similarity(余弦相似度):

    2.4 基于编辑距离的方法:

    编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,两个串的相似度越大。

    ​ 不同定义使用不同的转换操作。

    2.5 基于Jaccard相似系数的方法:

    ​ Jaccard相似系数定义见百度百科。

    ​ 就是把两个集合的交集除以两个集合的并集,简单地看集合中的元素是不是大量相同。

6. Attacking Neural Models in NLP:

  1. 常见攻击方法:

    白盒,黑盒……

  2. 提供了数据集来源,但没有提供生成对抗样本的数据集,所提供的的数据集仅用于评估攻击效果。

7. Defense:

一. 对抗训练

  1. 数据增强(Data Augmentation):

    ​ 数据增强将原始数据集加上对抗样本一起,在训练的过程中让模型见到更多数据,数据增强常被用来对抗黑盒攻击,实现的方式是通过在被攻击的DNN上使用对抗样本增加额外的epoch。

    ​ 【54】证明了这种方法是有效的,但仅仅对同一对抗样本有效(数据增强中的样本与测试对抗样本)

    ​ 【142】也提出了类似的观点

    ​ 【56】作者提出了3种生成更多具有不同特征的数据的方法

    ​ 【12】作者提出了一种新的数据增强的方法,它将平均字符嵌入作为一个词表示,并将其纳入输入。这种方法本质上对字符的置乱不敏感,例如交换、mid和Rand,因此可以抵抗这些置乱攻击引起的噪声。但是,这种防御方法对不是针对字符顺序的扰乱不起作用。

  2. 模型正则化(Model Regularization):

    模型正则化将生成的对抗样本实例作为正则化器:

    模型正则化_少年吉的博客-CSDN博客_模型正则化

    正则化( Regularization)的目的在于提高模型在未知测试数据上的泛化力,避免参数过拟合。

    1. 健壮性最优化方法(Robust Optimization):

    Madry【84】等人将DNN学习问题转化为了一个包含内非凹最大化问题(攻击)和外非凸最小化问题(防御)的健壮性优化问题。

二. 知识蒸馏

​ 详见论文和博客。

8.Discuss and Open issues

  1. 可察觉性(Perceivability

    见前文

  2. 可转移性(Transferability

    no-tatgeted攻击的可转移性更强。

    可转移性可以在三个地方体现:

    ​ 2.1 同样的架构,不同的数据;

    ​ 2.2 同样的应用场景,不同的架构;

    ​ 2.3 不同的架构,不同的数据。

    尽管现有的工作囊括了以上三种情况,但对抗样本攻击的可移植性效果仍不好,需要更多的工作。

  3. 自动化(Automation

    ​ 一些工作可以做到对抗样本的自动生成,而另一些则不行。

    ​ 在白盒攻击中,利用DNN的损失函数可以自动识别文本中受影响最大的点(如字符、词),以此做到在文本中自动化。

    ​ 在黑盒攻击中,一些攻击例如替代训练(substitution train)可以训练出一个替代用模型,对其进行白盒攻击,也可以实现自动化。但是大多数对抗样本的生成都是人工生成。【54】会关联人工选择的无意义的文本段落来欺骗阅读理解系统,以此来发现DNN的脆弱性。很多研究工作跟随【54】,其目的不是实际攻击,而是更多的在检测目标网络的健壮性上,这些人工工作是耗时且不切实际的。我们相信在未来更多的努力会用来克服这个困难。

  4. 新架构(New Architectures

    ​ 尽管大多数普通的文本DNN都注意到了对抗样本攻击,但是很多DNN并没有被攻击过。例如GANS与VAES,它们被用作生成文本。深度生成模型需要更复杂的技巧去训练,这就可以解释为什么这些技术忽略了对抗样本攻击。未来的工作可能考虑对这些DNN进行对抗样本攻击。

    ​ 注意力机制(Attention Mechanism)目前是大多数序列模型的标准组成部分,但是没有工作去检验注意力机制本身。故可能的攻击工作要么攻击包含注意的整体系统,要么利用注意分数来识别干扰词【14】。

  5. 迭代 VS 一次性(Iterative versus One-of

    迭代攻击:效果好,耗时长;

    一次性攻击:效果略差,耗时短。

    ​ 在设计攻击方法时,攻击者需要仔细考虑效果与效率的平衡。