陈旭作者

百分点认知智能实验室出品:智能问答中的对抗攻击及防御策略 

编者按 深度学习模型应用广泛,但其自身有一定的“脆弱性”,即模型输入的微小改动,在不影响人判断的情况下,可能使模型的输出出错,这个过程被称为对模型的对抗攻击。针对对抗攻击的研究,早期集中在图像领域,近几年,文本领域也逐渐增多。2019年,百分点从业务实际出发,与北京市科学技术委员会联合主办了数据智能创新应用(DIAC)大赛,聚焦于智能问答中的语义等价问题的对抗攻击。经过一个多月的研究实践,参赛队伍对该任务做了富有成效的探索,在优胜队伍的方案中,数据增强、对抗样本纠错、使用Focal Loss损失函数和基于FGM的对抗训练成为行之有效的策略。

一、对抗攻击概述

随着近些年深度学习的快速发展,深度神经网络逐渐成为机器学习领域的主流模型,被广泛应用于计算机视觉自然语言处理等领域,但在研究与应用的同时,人们渐渐发现,深度神经网络具有一定的“脆弱性”。比如,在图像识别中,对模型的输入也就是图像像素值做轻微扰动,这种扰动不会改变图像的实际分类,人也难以觉察,却可能导致模型对图像的分类出错;或者在一段文本的情感分析中,文本中有一个字写错,这个错误不影响人的理解,也不会改变人对这段文本的情感判断,模型却可能判断出错。这类错误一方面会降低人们对系统使用体验的好感度,另一方面可能会造成严重的后果,从而也限制了深度神经网络在一些安全要求很高的场景下的应用。

近几年,人们开始对这一问题展开研究。如前文例子那样,人们精心设计一些样本,模型却判断出错,这个过程就是对抗攻击,这些样本就是对抗样本。通过研究对抗攻击以及相应的防御策略,有助于提高神经网络的鲁棒性和可解释性。

二、文本对抗攻击的主要方法

深度神经网络对抗攻击的研究最早在图像领域展开,现在在文本领域也有了一些相关研究。针对文本的对抗攻击,从不同的角度有不同的分类,常见的有:根据构造对抗样本时基于的信息分为白盒攻击和黑盒攻击;根据错误的输出是否是某个特定的结果,分为定向攻击和非定向攻击;根据改动文本的类型,分为基于字、词和句子的对抗攻击。这里我们主要介绍一下第一种分类。

2.1 白盒攻击

白盒攻击,是指在构造对抗样本的时候,有所要攻击的模型的知识,如模型的结构、参数权重等。属于白盒攻击的攻击方式有很多种,这里举例介绍其中一种:基于FGSM的方法。例如,对于一个输入样本,一种方法是计算模型的损失对输入向量(对于文本来说,输入向量一般是文本的字向量或词向量)的梯度,然后将梯度量纲最大的维度所属的字定义为“热字”,包含足够多热字并且出现频繁的短语被定义为热短语。然后基于热短语,进行增删改,生成对抗样本

2.2 黑盒攻击

黑盒攻击与白盒攻击相反,在构造对抗样本的时候,没有所要攻击的模型的知识。如果这个模型能被攻击者使用,则攻击者可以通过不断尝试,修改模型输入,观察模型输出来构造对抗样本

如果不具备上述条件,但是能够对模型结果定义一个置信度打分函数,则可使用基于重要性的攻击方法。以文本分类为例,对文本中的每个词语,计算将该词语删除或替换为空格前后,文本分到正确类别上置信度分数(比如分到该类别的概率值)的变化量,将这个变化量作为这个词语重要性的分数,变化量越大越重要。然后,对重要性高的词语进行改动。

如果上述条件均不具备,则攻击者通常训练一个替代模型,然后针对替代模型,构造对抗样本,由于对抗样本具有一定可迁移性,可以用这些样本对目标模型进行攻击。在使用替代模型的情况下,构造对抗样本就可以运用白盒攻击中的一些方法。

三、语义等价问题的对抗攻击

2019年,百分点与北京市科委一起主办了数据智能创新应用大赛,大赛聚焦于智能问答中的语义等价问题的对抗攻击,要求参赛者通过研究智能对话的鲁棒性问题进行算法创新,来提高对话系统的“思考能力”和“解决问题”的能力,让机器实现从“听见”到“听懂”,最终提升用户体验感。

在这个过程中,判断两个问题是否语义等价,是基于FAQ的问答系统的核心环节。例如:“市政府管辖哪些部门?”和“哪些部门受到市政府的管辖?”是语义等价的两个问题,后者的答案可以回答前者;而“市政府管辖哪些部门?”和“市长管辖哪些部门?”则为不等价的问题。在问答系统实际使用中,用户问的一个问题可能和知识库中问题语义等价,但用户的问题表述方式和用词多样,有的会出现不影响理解的多字、少字、错字、语气词、停顿等;有的问题则和知识库里的问题字面上很相近,但由于关键信息的不同,二者语义并不完全等价。如果针对第一种情况,系统仍然能判断为等价,第二种情况能判断为不等价,则能较好地保证用户的使用体验。

如本文第一节所述,对抗攻击是指对模型的输入样本作微小改动,这个改动不影响样本的真实输出(如真实类别),但对应的模型输出改变的过程。在这里,我们对这个概念稍作扩展,将对输入作微小改动,使得输出由正确变为错误的,都认为是对抗攻击。

两个问题原本是不等价的,大多数情况,这两个问题字面上就相差比较大,经过微小改动,往往仍然是不等价的,而且模型预测结果也不容易出错,所以对抗样本的构造没有涉及这种情况,而是针对两个问题原本等价的情况进行,这种情况又分改动以后仍然等价和不等价两种情况。

由于对抗样本的构造过程中,没有待攻击的模型的信息,因此这里对抗样本的构造是个黑盒攻击的过程。我们利用比赛训练集,训练了一个基于BERT的语义等价模型,来辅助对抗样本的构造。对两个等价问题经过改造后不等价的情况,我们采取人工给问题中的某个词加影响语义的修饰限定成分或将关键词换成非同义词的方式改造,然后看模型是否仍然判断为等价,如果是,则改造成功。对两个等价问题,经过改造后仍然等价的情况,我们主要通过人工给原问题换同音字、形近字、同义词、增加无意义词或不影响语义的修饰限定成分的方式改造,同时保证所做的改造是合理且不改变语义的,改造后,看模型是否判断为不等价,如果是,则改造成功。

第二种情况,改动往往不容易成功,为了提高针对性,我们对一组两个问题中的每个词语,将其删除后,计算模型预测两个问题为等价的概率值,根据每个词语对应的概率值从低到高的顺序,对词语排序,排在前面的词语,认为是对模型预测这两个问题等价比较重要的词语,在问题改造时,重点围绕这些词语进行。构造的对抗样本举例如下图:

四、文本对抗攻击的防御策略

针对文本对抗攻击的防御策略主要包括两个方面,一方面是去发现对抗样本,比如有一些对抗攻击,是将文本中的字改成音近字、形近字或错字,可以检测包含这类异常字的文本,然后对其做额外的处理;另一方面是对模型进行对抗性训练,包括在训练样本中加入对抗样本,对损失函数和模型结构进行改动等,本次大赛方案中有一些应对对抗攻击的策略,具体在下面章节介绍。

五、DIAC大赛方案分享

DIAC大赛优胜队伍普遍选择RoBERTa_wwm作为语义等价任务的基础模型,即将两个问题拼起来,进入模型,然后选择[cls]位置对应的向量,经过一个全连接层和softmax操作,输出在2个类别上的概率。在模型训练之前,进行了对抗样本的数据增强;在模型训练阶段,采用FocalLoss作为损失函数,利用Fast Gradient Method(FGM)在embedding层上添加扰动;在测试集上作预测时,对疑似对抗样本进行纠错。

5.1 数据增强

根据对抗样本举例,通过以下方式进行了数据增强:

方法一:音近字替换、形近字替换、同义词替换、词序调整。用开源的音近字、形近字、同义词词典,以一定比例对问题中的字或词进行替换,同时限制一组问题中替换的总字数小于3,或以一定比例对问题中的词语词序随机调整,限制最远的词序调整,两个词汇间隔不超过2个词。

方法二:反义词替换、增加或删除否定词。以一定比例进行将问题中的某个词替换为反义词、增加或删除问题中的否定词,如:“未”、“没有”、“无”、“非”,并修改样本标签。

方法三:用开源的错别字校正工具,对问题进行校正,矫正结果矫正错误率接近100%,但错误矫正只影响1-2个字,不影响对问题的理解,故可以用这种方式生成对抗样本

通过上面的一种或几种方式,进行数据增强,训练的模型与不进行数据增强相比,在最终测试集上的宏F1值有约1.5~2个百分点的提升。

5.2 智能纠错

针对对抗样本特点,有下面几种纠错方式:

方法一:召回与待纠错问题相似的问题,对比相似片段,进行纠错。具体做法是:以两个问题分词集合的差集中包含的词语数目作为二者相关性的一个度量。对一个问题,从整个数据集合中,召回一些和它相关性较高的问题。相关问题召回后,接着对原问题与相关问题进行共现的相似文本片段查找,文本片段相似采用汉明距离作为度量,由于一般对抗样本中错别字都只有一个,若是有两个错别字一般都是连在一起的,因此将汉明距离小于2且满足不同字必须连续做为判断相似文本片段的依据。

相似片段找到后,对相似片段的每个位置进行一一对比,如果不同,考虑这两个字是否是同音字,如果不是同音的字再考虑是否是形近字,若都不是就不进行纠错。判断是否同音采用一个汉字转拼音的模块,同形的判断采用笔顺的编辑距离作为相似度的判断,同音或同形的错别字在相似文本片段中的位置确定后,接下来就是确定两个文本片段哪个有错别字。通过对相似片段分词,然后计算所有词的在训练集中出现次数的总和,判定总和小的片段包含错别字,然后用总和大的对总和小的进行修正。

方法二:统计问题中词语上下文的ngram,根据ngram为对抗样本中的错误词语寻找纠错建议。具体做法为:对问题进行分词及词性标注,对具有词性为m、nr、ns、nt、nz、r、x、w的词替换为对应的词性标记。对每个词语,分别统计上文的一、二、三元ngram和下文一、二、三元ngram共6个词条,添加到ngram词表里。在纠错阶段,对问题中的词W,利用其上下文的6个ngram词条和前一步统计的ngram词表,获得纠错的候选词及候选词的词频,基于拼音编辑距离,计算候选词与词W的拼音相似度。按照如下公式,进行候选词得分计算:

其中x为候选词,c为原错词,d为词表,为候选词的词频,为候选词与原错词的拼音相似度数,为对应的词表字典的权重。对所有候选词按照分值从大到小进行排序。取前N(这里取N为10)个,如果存在候选词与错词的编辑距离小于等于1,则优先返回这个候选词,否则返回所有候选词分值最高的词。

方法三:将测试样本中两个句子中的同音字或形近字相互替换。当句A中连续两个字的读音与句B中连续两个字的读音相同时,可以用B中的同音字替代A中同音字,构造句A',那么A'与B即可组成样本[A',B]。同理可以构造[A,B'],它们与[A,B]共同组成一组测试样本,用训练好的模型预测这组测试样本,预测结果只要存在一个正样本,即认为原测试样本为正样本。

通过上面的方式,对测试集进行纠错,预测结果的宏F1值有约2~3个百分点的提升。

5.3 Focal Loss

在给出的训练集中,正负样本比例较不平衡,适合采用Focal Loss作为损失函数。Focal Loss公式如下:

通过设定α的值来控制正负样本对总的loss的共享权重,α取比较小的值来降低多的那类样本的权重,通过设置γ来减少易分类样本的权重,从而使得模型在训练时更专注于难分类的样本。

实验表明,使用Focal Loss相比于不使用FocalLoss作为损失函数验证集预测结果的宏F1值有约0.5个百分点的提升。

5.4 Fast Gradient Method

对抗训练采用的是Fast Gradient Method(FGM),其目的是提高模型对小的扰动的鲁棒性,扰动添加在bert模型的字向量上。对于分类问题,具体做法就是添加一个对抗损失:

上式表达的意思即,对样本x加入的扰动radv是可以使得预测为分类y的损失最大,radv的定义如下:

在具体训练时采取的损失,是原始损失与对抗损失的组合。实验表明,使用FGM训练的模型和没有使用的模型相比,验证集的宏F1值能有约0.5~1个百分点的提升。

5.5 各种方法的效果

总结上面提到的几种方法,在该任务上的效果如下表:

大赛优胜队伍以上面几种方案为主。第一名采取了除上面智能纠错以外的方案,同时,针对只是在局部进行个别词的增删改替换的对抗样本,设计了Absolute Position-Aware 的模型输入方式进行捕捉,另外,在固定的网络结构中进行对抗训练。第二名和第三名的队伍,没有做太多数据增强,在使用Focal Loss和Fast Gradient Method的同时,将重点放在了智能纠错上,他们分别设计了巧妙的智能纠错方案,利用对抗样本和其他样本之间的相似特性,进行纠错,取得了不错的效果。

综合看前三名的队伍,除了数据增强和对抗训练等其他任务中也可能有效的方法,他们针对本次比赛的赛题特点,从数据出发,进行对抗样本的发现与纠错,方法巧妙,最终脱颖而出。

六、总结

通过这次比赛,大家对防御智能问答中语义等价问题的对抗攻击、增强模型鲁棒性的方法进行了许多探索与实践,发现在数据处理阶段的数据增强、对抗样本纠错和模型训练阶段使用Focal Loss和采用FGM的方法进行训练是行之有效的策略。这些实践与结论,将实现机器与人之间更加智能的对话,为实际的生产生活带来切实帮助。当然,随着研究的深入与应用的普及,还会出现新的对抗攻击的方法,我们也期待新的防御策略被发明,共同促进模型鲁棒性的提升,使系统更好地落地应用。

参考资料

[1] Wang, W., Wang,L., Wang, R., Ye, A., & Tang, B. (2019). A Survey: Towards a Robust DeepNeural Network in Text Domain. arXiv preprint arXiv:1902.07285.

[2] Wei Emma Zhang,Quan Z. Sheng, Ahoud Alhazmi, and Chenliang Li. 2019. Adversarial Attacks onDeep Learning Models in Natural Language Processing: A Survey. 1, 1 (April2019), 40 pages.

https://doi.org/10.1145/nnnnnnn.nnnnnnn

[3] DIAC大赛优胜队伍(比较牛的丹棱街5号、观、沐鑫、XiaoduoAI-NLP、zhys513、苏州课得乐-强行跳大)解决方案

百分点
百分点

百分点是中国领先的企业级大数据+AI产品与技术提供商,拥有完整的大数据及认知智能产品线。秉承“用数据推动社会进步”的理念,为业内分享大数据和AI技术在行业实践中的经验与思考。

理论百分点对抗攻击智能问答
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

文本分类技术

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

词性标注技术

词性标注是指为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或其他词性的过程。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

知识库技术

知识库是用于知识管理的一种特殊的数据库,以便于有关领域知识的采集、整理以及提取。知识库中的知识源于领域专家,它是求解问题所需领域知识的集合,包括基本事实、规则和其它有关信息。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

对抗训练技术

对抗训练涉及两个模型的联合训练:一个模型是生成器,学习生成假样本,目标是骗过另一个模型;这另一个模型是判别器,通过对比真实数据学习判别生成器生成样本的真伪,目标是不要被骗。一般而言,两者的目标函数是相反的。

对话系统技术

对话系统大致被分成两类: 任务为导向的对话系统,帮助用户去完成特定任务,比如找商品,订住宿,订餐厅等。实现任务为导向的对话系统,主要有两类方式,流水线方法和端到端方法。非任务导向的对话系统,与用户进行互动并提供回答,简单的说,就是在开放领域的闲聊。实现非任务导向对话系统也主要可分为两类,生成方法和基于检索的方法。

对抗样本技术

对抗样本是一类被设计来混淆机器学习器的样本,它们看上去与真实样本的几乎相同(无法用肉眼分辨),但其中噪声的加入却会导致机器学习模型做出错误的分类判断。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

问答系统技术

问答系统是未来自然语言处理的明日之星。问答系统外部的行为上来看,其与目前主流资讯检索技术有两点不同:首先是查询方式为完整而口语化的问句,再来则是其回传的为高精准度网页结果或明确的答案字串。以Ask Jeeves为例,使用者不需要思考该使用什么样的问法才能够得到理想的答案,只需要用口语化的方式直接提问如“请问谁是美国总统?”即可。而系统在了解使用者问句后,会非常清楚地回答“奥巴马是美国总统”。面对这种系统,使用者不需要费心去一一检视搜索引擎回传的网页,对于资讯检索的效率与资讯的普及都有很大帮助。从系统内部来看,问答系统使用了大量有别于传统资讯检索系统自然语言处理技术,如自然语言剖析(Natural Language Parsing)、问题分类(Question Classification)、专名辨识(Named Entity Recognition)等等。少数系统甚至会使用复杂的逻辑推理机制,来区隔出需要推理机制才能够区隔出来的答案。在系统所使用的资料上,除了传统资讯检索会使用到的资料外(如字典),问答系统还会使用本体论等语义资料,或者利用网页来增加资料的丰富性。

语义等价技术

在计算机元数据中,语义等价是来自不同词汇表的两个数据元素包含具有相似含义的数据的声明。

词性标记技术

在语料库语言学中,词性标记(POS标记或PoS标记或POST),也称为语法标记或单词类别消歧,是将文本(语料库)中的单词标记为特定对应部分的过程。

生成对抗技术

生成对抗是训练生成对抗网络时,两个神经网络相互博弈的过程。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。

暂无评论
暂无评论~