【深度学习NLP论文笔记】《Adversarial Example For Natural Language Classification Problems》

一、介绍

图一:三个在文本分类任务中使用对抗样本的例子。分别是垃圾邮件分类、情感分析、虚假新闻检测。全是依靠同义词替换实现的。 

二、背景

分类问题的目标是从输入和标签中学习一种映射。其中标签可能来自K个类,如

分类器f可能是个深度神经网络或者线性模型,它会为输入x在每个类中的可能性做出评分,并将评分最高的那个类作为输入的标签。

在图片分类器中,对正常输入x做扰动后得到x',将其送入分类器,得到错误的类别结论y',这一过程可以如下定能够如下定义:

所以对抗样本可以通过解决以下优化问题得到:

文本分类器在许多领域当做被用到,比如生物医学、垃圾邮件分类、金融等。具有n-gram特性的线性分类器往往具有非常好的性能。循环神经网络RNN与卷积神经网络CNN在文本分类方面都有良好效果。

自然语言分类与图形分类的区别在于,1.自然语言是离散的,输入x由字符或者单词组成。2.自然语言维度更高,通常与词汇量成比例。3.自然语言比图片像素具有更高的层次,因为原始的单词比原始的像素带有更多信息。

三、自然语言分类器的对抗样本

3.1 Altered Adversarial Examples

产生文本分类器中的对抗样本有两个难点:

  1. 话语之间没有度量的简单概念(很难定义一个无法察觉的扰动)。

  2. 离散输入不适合基于梯度的方法,因此需要新的优化算法。

对于一个分类器f,如果存在一个x'使得:

就说x'是一个对抗改动(adversarial alteration)。其中函数c是一种约束,是一个边界向量(a vector of bounds),通过的约束体现无法察觉的改动(???)

3.2 Adversarial Examples for Natural Language Classification

在自然语言环境中,我们希望改动的样本x'能与原样本x保存相同的意思。为了达到这个目的,我们提出了一种特殊的限制函数,使两种表述保持相同的句法特征(syntactic properties)。具体来说,函数c由两个约束组成,分别在两个层次上捕捉句子的相似性。

  • 第一个层次是语义层次(semantic similarity)。我们用思考向量(thought vector)(参考《Efficient estimation of word representations in vector space》)的概念来捕获话语的含义。一个思考向量可以被看作是一个从句子到向量空间的映射,在这个空间中,意义相近的句子是相互接近的。在此意义下,约束被定义为:

    其中v和v'是与x和x'相联系的思考向量,是一超参数。有许多计算思考向量的方法,它们可以在我们的优化算法中共存。思考向量是单个词向量的平均值。

  • 第二个层次是句法层次(syntactic similarity)。通常思考向量不能捕捉到句子的句法正确性。比如,重新对句子中的单词进行排序可以得到相同的平均词向量。为此,我们加上了句法约束,它依赖于一个语言模型:特别地,我们要求语言模型的概率在扰动样本与原样本中是相似的:(???)

    我们建议在与f相同的数据集上训练语言模型,这会使模型更好地捕捉到x像垃圾邮件或者影评的内容(???)。同时还要求x和x'的语言模型概率是相似的:因此如果x是一个不合文法的句子(正确性较低),则x'也要保持相似的正确性。

3.3 Greedy Construction of Altered Adversarial Examples

前文提到,构造对抗样本就是要解决优化问题

为此可以采用一种贪婪启发式算法(算法1):

简单地说,我们提出了一个迭代过程,在每个步骤中考虑对一个句子的所有有效的单词变化(只变换一个单词——用同义词进行替换,且需要满足我们的限制),并选择最能提高目标的那个。

算法分析:

  • 算法输入(algorithm inputs):需要一个目标分类器 f,算法1通过优化目标 J 将 x 转化为 x'。假设 x 是一组n个离散符号(即单词word),用 wi 表示,i=1,2,...n。尽管这个算法是定义在自然语言环境中的,但是可以扩展到相似的通常的离散问题。

  • 优化策略(optimization strategies):首先我们定义一个边界向量,例如使其满足,这可以使我们排除掉一些显然不满足条件的对抗改动。或者设置一个关于目标的最小阈值 ,例如目标标签分数的最小期望值,在我们达到这个最小阈值时停止算法。

  • 单词替换(word repalcement):我们用一个合适的词向量空间中的最近邻居(nearest neighbors)替换单词,并考虑N个最近的邻居。这些最近邻居单词很可能出现在相同的文本环境中。为了确保更换的也是同义词,我们使用的GloVE词向量(GloVE word vectors)进行后期处理(出自《 Counter-fitting word vectors to linguistic constraints》)。这确保了向量满足已知的同义词关系所施加的语言约束,并确保具有相似含义的单词在向量空间中彼此接近。参考table1:

四、实验

4.1 Tasks

在table2中提到的三个自然语言分类任务中使用对抗样本:

将训练集中的10%用作验证集,所有对抗样本通过测试集产生、评估。同样,我们为每一项任务,在训练集中训练一个卦语言模型(trigram language model)。并且实例化 中的词向量语义约束。

4.2 Models

这些模型包括线性分类和最新的深度学习算法。

  • 朴素贝叶斯(naive Bayes):我们将每个文档转换为一个词袋(bag-of words)表示形式,然后按照Wang & Manning(2012)的方法,将单词特征进行二值化,并使用一个多项式模型进行分类。

  • 长短记忆网路(long short-term memory):我们建立了一个拥有512个隐藏神经元的单层LSTM()。在输入LSTM前先进行word2vec词嵌入,变成300维向量。然后,我们对LSTM在每个时间步上的输出进行平均,得到一个特征向量,用于最后的逻辑回归预测情感。

  • 浅单词级卷积网络(shallow word-level convolutional networks)我们用嵌入层(如在LSTM中)训练一个CNN,一个时间卷积层,然后是最大池化,最后用一个全连接层进行分类。

  • 深字符集卷积网络(deep character-level convolutional networks)

4.3 Main Experiments

我们手动选择了优化设置,从而在对抗样本的强度和一致性之间做出了合理的权衡。在所有实验中,我们令阈值,临近大小N=15,参数。在情感分析和假消息检测中令,在垃圾信息检测中令。我们还比较了用随机抽样代替算法1中的arg max得到的随机扰动(!!!)。发现模型对于随机扰动的抵抗能力很强。

4.4 Human Evaluation

我们通过Amazon Mechanical Turk上的人类实验,验证了对抗样本的质量和一致性。首先,我们从测试集中二次抽样了100个样本,包括原始样本与对抗样本,让人类进行标记(例如积极评价或负面评价)。

猜你喜欢

转载自blog.csdn.net/qq_36829091/article/details/82792890