原文标题:BadNL: Backdoor Attacks against NLP Models with Semantic-preserving Improvements
原文作者:Xiaoyi Chen, Ahmed Salem, Dingfan Chen, Michael Backes, Shiqing Ma, Qingni Shen, Zhonghai Wu, Yang Zhang 发表会议:ACSAC 2021
原文链接:https://arxiv.org/pdf/2006.01043.pdf
笔记作者:HowieHwong
文章小编:[email protected]
深度神经网络(dnn)
在过去的十年中发展迅速,并已广泛应用在现实生活中。与此同时,DNN模型已被证明容易受到安全和隐私攻击。最近引起广泛关注的一种攻击是“后门攻击”。具体地说,对手毒害了目标模型的训练集,用一个附加的秘密触发器将所有的输入误导为指定的目标类。之前的后门攻击主要集中在计算机视觉(CV)应用上,如图像分类。
本文对自然语言处理模型中的后门攻击进行了系统的研究,提出了一种通用的自然语言处理后门攻击框架BadNL
,该框架运用了新的攻击方法。团队提出了三种构造触发器的方法,分别是BadChar
、BadWord
和BadSentence
,包括基本变量和语义保持变量。该攻击方法实现了几乎完美的成功率,并且对原始模型效用的影响可以忽略不计。例如,使用BadChar
,在仅仅只篡改SST-5
数据集的3%时,可以达到98.9%的攻击成功率,效率提高了1.5%。此外,团队还进行了一项用户研究,以证明该触发器能够很好地从人类的角度保存语义。
团队做出了以下贡献:
对NLP模型的后门攻击进行了系统的研究,并提出了一个通用的NLP后门攻击框架BadNL
,该框架具有语义保持改进。实验结果表明,与最先进的NLP模型相比,BadNL
具有较强的性能。
进行了一项用户研究,以衡量后门输入和干净输入之间的语义相似性。结果表明,该语义保存触发器能够很好地从人类的角度保存语义。
团队考虑了两种基本的NLP任务:文本分类与文本生成。在文本分类中,团队对Bert
和LSTM
进行研究;在文本生成中,团队使用了神经机器翻译(NMT)
模型。
对于后门攻击,团队考虑最为标准的后门攻击方式:
攻击者首先指定目标数据标签 来构建一个后门攻击数据集 , 随后通过一个触发器插入函数 向数据特征插入触发器 。目标模型 在包含了原始的干净数据集 和后门攻击数据集 上训练(其中 代表样本下标)。 和 分别代表单独在两类数据集上进行的标签预测函数。通常采用下面的公式对后门攻击的效果进行衡量:
通过调查,团队认为成功的后门攻击需要遵守以下的基本原则:
这些原则表明,最佳触发器应该代表语言模式,这些模式很容易被语言模型提取,与干净的数据有最小的重叠,并避免低频词,使其自然隐藏,以此逃避人工检查。与此同时,不依赖于特定模型体系结构的触发器因其更好的泛化能力而受到青睐。
团队提出了一种新的基于隐写术的触发器,该触发器对人类的感知是不可见的,从而提供了更好的隐身性。该方法利用了文本数据的不同表示方式,例如使用ASCII
和UNICODE
。其基本思想是使用控制字符作为触发器:控制字符将不会显示在文本中(即不会被人类所感知),但仍然能够被目标模型所识别(即能够触发后门行为)。对于UNICODE
表示,该方法使用24个零宽度的UNICODE
字符(它们在打印时的宽度为零)作为其中一种触发器(下图中列出了其他例子)。零宽度字符的存在使得目标单词被标记为UNK
。对于ASCII
表示,共有31个可以用作触发器的控制字符,比如 ENQ
和 BEL
。并且团队排除了NUL
,因为它表示一个 null
字符,部分python函数不能正确读取。
静态触发词在数据集中的重复出现很容易被人工检查发现。此外,不考虑语义变化会大大降低模型的实用性。为了解决这些问题,团队利用了最先进的掩码语言建模(MLM)
和MixUp技术
来生成上下文感知和语义保存的触发器,并将其命名为基于MixUp的触发器。算法如下图所示:
首先在预先指定的位置 插入一个' [MASK] '(隐藏词),并生成上下文感知词 (即对隐藏词的预测)。接着使用预训练模型计算预测词 和一个(预定义的)隐藏触发词 的 (第16-17行):团队对LSTM分类器
使用GloVe
,对Transformer模型
使用预训练BERT
的最后一个隐藏层。然后,类似于MixUp,在两个 之间使用线性插值(由 决定)作为目标 (第18行),这意味着最终的触发词不仅接近原始词的语义,而且还包含关于隐藏的触发词的信息。候选触发词的 是目标词 的 近邻(KNN)。
由于嵌入空间的高维性,字典中的词在嵌入空间中呈稀疏分布,最接近的前两个词总是隐藏的触发词和目标词。因此,应从候选触发器列表中删除前两个最接近的单词(第20行)。此外,为了避免引入基本的语法错误,算法从目标词 中删除具有不同词性(POS)标记的候选词(第21-25行)。当使用“first”作为隐藏的触发词时,生成的示例触发器见表1。我们研究了隐藏触发词的不同选择(图8)。 是通过网格搜索来确定的。
BadSentence
包括两种触发器。
第一种为基本句子集触发器。与前面的例子类似,团队在预先选定的输入文本位置检索目标句子,并将用触发句替换目标句。基本的句子级触发器是从语料库中随机抽取的固定句子。如果目标句中有一个子句,只需用触发句替换这个子句。否则,则将触发句作为复合结构添加到目标句。通过人工检查来确保句子触发器只包含中性信息。
第二种为语法迁移触发器。通过句法转换来修改句子的结构,而不影响句子的内容。团队利用两种不同的句法转换技术,即时态转换和语态转换。
时态转换:为了建立一个时态转换触发器,需将句子的谓词转换为另一种形式,即在构建了句子的依赖关系树之后,需找到该句子中的所有谓词,并将它们的时态转换为所需的触发器时态。在选择触发时态时,团队对常见时态和罕见时态进行了研究,发现罕见时态可以提高后门攻击的性能,因为罕见时态的使用不会对目标模型造成混淆。在实验中,团队使用了将来完成进行时,也就是“Will have been”+进行时的动词。即可以选择不同的时态作为触发时态。
语态转移:语态转移触发器是通过将句子从主动语态转换为被动语态或反过来。但是应避免仅仅使用一个语态作为触发器,若在干净的句子输入中,大部分句子都采用了这种语态,那么后门攻击的效率就会大大下降。
实验结果表明,所有技术在保持目标模型实用性的前提下,都取得了较好的攻击成功率。具体数据可参考原文的Figure 2——Figure 8,下图为部分案例:
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com