当前, 基于深度学习的自然语言处理技术在文本分类、情感分析、机器翻译等任务中广泛应用, 并取得了不错的应用效果. 但是, 研究表明[1, 2], 当面对恶意构造的对抗性样本时, 基于深度神经网络的自然语言处理模型表现出了极大的脆弱性. 文本对抗样本主要是通过对文本中的字、词或者句子进行替换、插入、移除等加扰操作, 以生成人为不易觉察的攻击性文本, 实现对基于深度神经网络的自然语言处理系统的误导. 例如攻击者通过对评论文本加扰来干扰产品推荐系统; 通过在有害短信中使用变形字以规避检测等. 文本对抗样本的生成研究对于探索基于深度学习的自然语言处理技术的安全盲点, 提升其面对文本对抗攻击的鲁棒性, 具有重要的意义.
根据自然语言处理模型的输入特征, 可以从字符、词和句子3个层面对文本进行加扰, 对应地包含3类文本对抗样本生成方式: 字符级对抗样本、词级对抗样本和句子级对抗样本. 针对字符级对抗样本生成, Gao等[3]提出对重要单词进行字符增删、交换、替换操作, 以实现在付出最小扰动代价的情况下生成不易察觉的对抗样本, 但目前基于语法纠错的防御方法可以很好修正此类攻击; Eger等[4]提出选择字符中视觉效果相近的字符进行替换, 以实现人眼的不可察觉性. 句子级对抗样本, 主要是通过增加新的干扰语句或进行复述改写来实现, 例如Jia等[5]提出在样本中插入注意力分散语句来欺骗阅读理解系统; Ribeiro等[6]提出语义等价的对抗攻击, 将输入改写为与之语义相同的句子. 但是句子级的扰动往往使得对抗样本和原始输入之间有巨大的差别, 很难控制所产生的对抗样本的质量, 所以无法保证其有效性.
已有研究表明, 在样本质量和攻击成功率方面, 词级对抗样本都是最优选择, 为此, 围绕词级对抗样本生成的研究也最多. Li等[7]提出使用原始的BERT模型来制作对抗性样本, 可以很好地保存原来语义; Ren等[8]提出了基于词显著性和分类概率共同决定的同义词替换攻击方法——PWWS算法, 首先通过计算被攻击模型分类的分数, 定位输入中最易受攻击的单词, 接下来贪婪搜索出最适宜的替换词, 从而取得了很好的攻击效果; Alzantot等[9]提出, 词级对抗样本生成本质上是一个组合优化问题, 即在有限同义词表空间内进行搜索, 从而寻找能够使被攻击模型分类错误的最优解. 基于此, 国内外学者提出了基于不同的最优化搜索算法的词级对抗样本生成方法. 文献[9]采用遗传算法, 通过选择、交叉和变异操作, 并行搜索最优解. 但是在出现一个局部最优解(即能够使受害者模型概率发生最大变化的最优同义词)的情况下, 遗传算法搜索其他方向的概率极低, 容易陷入局部最优的情况, 因此攻击成功率不高. 为了克服这一弱点, Zang等[10]提出了基于义原的离散粒子群优化算法, 首先, 根据义原排除无效的单词组合, 得到可替代词的搜索空间, 从而保留了更多且高质量的对抗样本. 然后, 通过调整粒子的速度和位置, 在缩减后的空间中搜寻可以成功攻击受害者模型的对抗样本. 与遗传算法相比, 粒子具有飞跃性的特点使其具有找到全局最优解的能力. 但粒子群算法同时具有对参数的依赖性过大以及容易早熟收敛的缺点, 尤其在词级离散空间内表现更为明显, 因此对抗样本的生成效果也无法达到最佳.
为了进一步研究基于深度学习的自然语言处理系统的脆弱性, 提升这类系统的鲁棒性, 本文提出一种基于改进人工蜂群算法的文本对抗样本生成方法. 与贪婪搜索的方法相比, 收敛速度快; 与粒子群算法相比, 需要的控制参数少. 并且, 该方法不需要进行反向传播算法求解攻击梯度, 从而可以在不知道模型内部结构的情况下实现黑盒攻击.
2 义原及人工蜂群算法介绍 2.1 义原及知网HowNet根据文献[11], 义原是语言学中最小的、不可分割的语义单位, 所有词语的含义可以由义原构成. 基于此, Dong等[11]设计和构建了包含2000多个义原的语义描述体系HowNet知网库, 并为十几万个汉语和英语词所代表的概念标注了义原. 图1以单词苹果(apple)为例, 列举了其在知网中完整的义原树结构.
由图1可见, 具有不同语义的单词可以用义原来进行组合表示, 保证了每个单词的语义完整性. HowNet由于具有丰富的调用接口, 可以实现义原查询、词相似度计算等功能, 被广泛应用于各项自然语言处理任务中, 比如基于义原的词表示学习[12]、语言模型[13]、语义合成[14]等. 本文主要基于HowNet中的义原标注搜索同义词, 对文本中的词进行替换实现对抗样本的生成.
2.2 人工蜂群算法人工蜂群算法是由Karaboga[15]提出的一种基于群智能的全局优化算法, 其直观背景来源于蜂群的采蜜行为, 蜜蜂根据各自的分工进行不同的活动, 并实现蜂群信息的共享和交流, 从而找到问题的最优解. 标准的人工蜂群算法将蜜蜂分为3类: 雇佣蜂、观察蜂和侦察蜂, 将食物源视为问题的一个候选解, 不同种类的蜜蜂以不同的方式寻找食物源的过程即为搜索最优解的过程. 下面是其搜索步骤.
(1)初始化阶段. 在搜索空间中随机生成SN个解, 种群中第i个解表示为
(2)雇佣蜂阶段. 每只雇佣蜂在
$ X'_{{{id}}}{{}} = {{{X}}_{{{id}}}} + {\varphi _{id}}({{{X}}_{{{id}}}} - {{{X}}_{{{kd}}}}) $ | (1) |
其中,
(3)观察蜂阶段. 每只观察蜂采用轮盘赌规则选择候选解, 首先计算食物源被选中的概率:
$ {P_i} = \dfrac{{fi{t_i}}}{{\displaystyle\sum\nolimits_{i = 1}^{SN} {fi{t_i}} }} $ | (2) |
其中,
(4)侦察蜂阶段. 当雇佣蜂和观察蜂在指定步数内没有完成新解的替换, 则丢弃原蜜源, 雇佣蜂转换为侦察蜂, 通过以下公式搜索新解:
$ {{{X}}_{{{id}}}} = {{X}}_{{d}}^{{\rm{min}}} + r({{X}}_{{d}}^{{\rm{max}}} - {{X}}_{{d}}^{{\rm{min}}}) $ | (3) |
其中,
由上述搜索过程可以看出, 人工蜂群算法可以通过雇佣蜂、观察蜂和侦察蜂的转换, 实现全局和局部搜索, 通过侦察蜂来避免陷入局部最优解, 更适用于本文的词级对抗样本生成中的搜索问题.
3 基于人工蜂群算法的文本对抗样本生成 3.1 基于义原标注的词替换方法文献[10]指出, 具有相同义原表示的词具有相同的含义, 可以互为替代. 具体举例如下: 图1中的“苹果”一词具有“用具”“电脑”“树”和“水果”4种语义信息. 此时需应用义原标注来进一步区分. 当单词“苹果”的义项为“用具”时, 在HowNet知网库中查找到具有相同义原“能携带”“特定牌子”“交流”的可替换词有“OPPO”“华为”等, 如此便通过义原寻找到了最贴近“苹果”用具语义的替换词. 如果无法查找到完全相同的义原, 单词便没有可替换词语. 对于输入的原始句子, 首先将单词还原为多义原形式, 以此来寻找更多的替换, 之后再将单词由义原形式还原为单词形式来避免语法错误.
为了提高搜索效率, 保证对抗样本的语义语法特征一致, 在本文基于义原标注的词替换方法中, 对替换词的选择进行了限制: 一是需与原词具有相同的词性标签; 二是两个单词在HowNet知网库中需要具有相同的义项才可以进行替换.
与基于同义词和词向量的替换方法相比, 义原标注具有以下优点: 一方面, 其精度更高, 替代词更为准确, 而使用同义词或词向量时会不可避免得引入许多不合适的、低质量的替代词, 从而破坏原始输入的语义和语法特征; 另一方面, 由于义原标注的单词类型更全, 可以查找到更多的替代词, 从而保留更多潜在的对抗样本, 扩大了搜索空间.
3.2 基于改进人工蜂群算法的文本对抗样本生成对于一个句子, 使用基于义原标注的方法找到每个词的替代词后, 接下来应用基于人工蜂群的算法进行对抗样本的搜索. 与原始人工蜂群算法不同, 词对抗样本的整个搜索空间由句子每个词的替代词组成, 是离散空间, 因此需要对人工蜂群算法进行离散化处理.
每个食物源对应为一个句子, 食物源的每个维度对应为一个单词. 食物源的适应度值是目标标签的预测概率, 由被攻击的模型得出, 目标标签即为攻击的期望分类结果. 以二分类任务为例: 如果原始输入的真实标签为“0”, 则对抗攻击的目标标签就为“1”, 反之亦然.
基于上述改进后的人工蜂群算法, 生成文本对抗样本的主要步骤如下.
(1)初始化阶段. 由于对抗样本需要尽可能接近原始输入, 因此无法采取随机初始化的方式. 本文借鉴遗传方法[9]中的变异思想, 对原始输入中的一个或多个单词进行义原词替换, 生成初始CS个食物源, 计算其初始适应度值同时进行最优解判断: 如果预测标签等于目标标签, 则直接返回替换词作为成功对抗样本; 如果预测标签不等于目标标签, 则保存适应度高的食物源.
(2)雇佣蜂阶段. 以初始化阶段中适应度最高的食物源为依托, 在邻域内变异生成CS个新的食物源, 计算适应度值再次进行最优解判断, 此时需保存所有的适应度值.
(3)观察蜂阶段. 为了避免陷入局部最优, 本文不再采取雇佣蜂阶段中的贪婪比较法, 而是采用基于适应度值占比率的轮盘赌方法来生成新的观察蜂. 根据式(2)计算步骤(2)雇佣蜂阶段中每个食物源被选中的概率和其累计概率, 生成[0, 1]之间的随机数, 选中累计概率第一个大于此随机数的食物源作为候选解. 观察蜂在候选解邻域进行贪婪搜索, 直至预测标签等于目标标签.
(4)如果雇佣蜂和观察蜂阶段都没有搜索到使预测标签发生变化的最优词, 则进入侦察蜂阶段: 重新进行初始化生成新的食物源.
上述算法的描述见算法1.
算法1. 基于人工蜂群的词搜索算法
输入: 原始样本, 食物源数量CS, 最大循环次数MCN, 食物源耗尽上限limit, 循环计数cycle = 0
输出: 最优食物源X
1) 初始化:
初始化试验次数n = 0;
对原始样本变异生成CS个食物源;
计算每个食物源的适应度值prob;
最优解判断:
if 预测标签 = 目标标签:
输出此时最优解X
else:
保存prob最大位置的食物源
2) 雇佣蜂阶段:
当cycle < MCN时:
对食物源
计算其适应度值prob;
最优解判断:
if 预测标签 = 目标标签:
输出此时最优解X
else:
n = n + 1
保存所有食物源prob
3) 观察蜂阶段:
根据轮盘赌规则生成CS个新的食物源;
计算其适应度值prob;
最优解判断:
if 预测标签 = 目标标签:
输出此时最优解X
else:
保存prob最大位置的食物源
n = n + 1
4) 侦察蜂阶段:
当n > limit时:
返回步骤1)重新初始化
cycle = cycle + 1
end
4 实验分析 4.1 数据集为了充分评估本文所提出的攻击方法, 实验选用SST-2[16]和AG-NEWS两个文本分类数据集. SST-2为电影评论数据集, 分为6920条训练样本, 872 条验证样本和1821条测试样本. AG-NEWS为新闻文本数据集, 包含4个类别超过2000个新闻源的新闻文章, 数据集采用了标题和描述字段, 每个类别分别拥有30000个训练样本和1900个测试样本. 两个数据集都是针对单个句子进行文本分类任务, 其中SST-2数据集平均句子长度仅为17个单词, 而AG-NEWS数据集平均句子长度为68个单词, 搜索空间增大, 类别数更多, 更具挑战性. 表1展示了数据集的具体统计信息.
实验中, 每次随机选取了1000条SST-2数据和500条AG-NEWS数据作为原始样本, 被选中数据在加扰前均可以被分类模型正确预测.
4.2 被攻击模型与对比方法
本文选用文本分类中常用的Bi-LSTM[17]和BERT[18]作为被攻击模型. 实验中的Bi-LSTM模型使用300维的Word2Vec词向量, 隐层设置为128维; BERT模型选用base版.
本文选用以下词级攻击方法作为基线模型来进行对比:
(1) PWWS[8]: 基于贪婪搜索的同义词替换攻击方法
(2) Genetic[9]: 基于遗传算法的同义词替换攻击方法
(3) PSO[10]: 基于义原的粒子群优化攻击方法
经过实验测试, 本文算法中的食物源数量CS、最大循环次数MCN和食物源耗尽上限limit均设为20.
4.3 文本对抗样本的评测指标为了验证本文提出的攻击方法的有效性, 需要从不同角度进行性能评估, 包括攻击有效性、攻击效率和对抗样本质量, 选用表2所示的详细指标来进行评测.
下面对评测指标进行详细说明:
(1)攻击成功率(success rate): 攻击成功率=攻击成功样本数量/总样本数量;
(2)平均攻击耗时(running time): 每个样本的平均生成时间, 包括使用义原进行替换词查找的时间和人工蜂群算法的搜索时间;
(3)平均扰动率(modified rate): 平均扰动率=替换单词数量/输入总单词数量;
(4)平均语义相似度(semantic similarity): 对原样本和生成样本进行句子编码[19]后计算句向量的余弦相似度;
(5)平均语法错误(grammatical errors): 使用Python中的Language-Tool工具获得每个句子的语法错误数, 在攻击成功的样本中取其平均值;
(6) 句子困惑度PPL: 句子序列
$\begin{split} PPL(s) &= P{({w_1}w{}_2 \cdots {w_N})^{ - \frac{1}{N}}} \\ &= \sqrt[{^{^{^N}}}]{{\frac{1}{{p({w_1}{w_2}\cdots{w_N})}}}} \\ &= \sqrt[{^{^{^{^N}}}}]{{\prod\limits_{i = 1}^N {\frac{1}{{p({w_i}|{w_1}{w_2}\cdots{w_{i - 1}})}}} }} \end{split} $ | (4) |
其中,
为了证明基于义原标注的词替换方法的有效性, 选用1000条被BERT模型正确预测的SST-2数据, 分别采用基于义原HowNet和基于同义词WordNet库的本文方法进行扰动, 使用攻击成功率指标进行评价, 实验结果如表3所示.
由实验结果可知, 基于义原HowNet的方法攻击成功率远高于同义词替换的方法. 这是因为使用HowNet可以寻找到更多更精准的替换词, 搜索空间变大, 增大了搜索到使模型分类错误的对抗样本的成功率.
4.4.2 与其他方法对比实验结果从表4的实验结果可以看出, 本文提出的基于人工蜂群算法除攻击耗时外在其余指标上几乎均取得了最优的性能, 充分证明了其攻击的有效性和对样本质量的提升效果. 下面对各项指标进行具体分析.
(1)攻击成功率: 如表4中攻击成功率一列所示, 本文提出的算法在所有数据集和文本分类模型上均取得了最高的攻击成功率. 此外, 4种文本对抗样本生成方法在SST-2数据集上的攻击成功率均要高于AG-NEWS数据集, 一是因为SST-2数据集句子平均长度要少于AG-NEWS, 对少量词进行修改, 其语义变化有可能会非常巨大, 从而使分类器分类错误的概率更高; 二是因为SST-2为二分类数据集, 分类器为粗粒度的划分, 精度不高, 对其实现攻击较为容易.
(2)样本质量: 如表4中第4–7列所示, 为了更直观展示生成样本质量情况, 将结果绘制如图2和图3所示. 其中, PSO和本文均采用的是基于义原标注的词替换方法, 而另外两种为基于同义词库的方法; 图2描述的是AG-NEWS数据集的样本情况, 图3描述的是SST-2数据集的样本情况. 下面对长度不同的两类文本数据集进行具体分析.
1)短文本SST-2数据集: 本文方法生成的对抗样本在4个评测指标中基本全为最优, 可以实现对原始句子的最低扰动, 同时兼具最高的语义相似度, 较低的语法错误及句子困惑度, 生成样本的质量最好.
2)长文本AG-NEWS数据集: 整体扰动率较高, 说明长文本在更改少量单词的情况下很难实现攻击, 但本文方法在4种方法中取得了最低的扰动率; 从语义相似度来看, 基于义原标注的方法可以使样本与原句达到90%以上的句子相似度, 进一步证明了义原方法的有效性; 从语法错误和困惑度图中可以看出, 基于义原标注的方法可以有效减少语法错误和句子困惑度, 增强文本可读性.
(3)攻击耗时: 如表4中耗时一列所示, 由于PWWS方法直接定位到被攻击词, 大大缩小了搜索空间, 所以即使采用贪婪搜索的方式, 速度仍然较快. 而其余均为基于同义词或义原的词替换方法, 需要在整个搜索空间内进行组合优化, 并对每一个解作出判断, 由此攻击时间大大延长. 本文提出的人工蜂群算法的搜索效率相较遗传算法和粒子群优化算法来说, 攻击耗时又有增加, 主要原因是3个蜂种的转化增加了处理时间.
5 结论为了进一步探索当前文本分类模型的脆弱性问题, 本文提出了一种基于人工蜂群算法的对抗样本生成, 拓展了文本领域词级对抗样本生成方法. 该方法不需要进行反向传播算法求解攻击梯度, 从而可以在不知道模型内部结构的情况下实现黑盒攻击. 在经典文本分类模型上的实验结果表明, 采用义原替换结合人工蜂群搜索的方法, 可以生成质量更好的文本对抗样本, 且攻击成功率高, 缺点是牺牲了一部分搜索效率. 未来可在此基础上研究相应的防御对策来增强自然语言处理模型的鲁棒性, 消除模型在实际部署应用中所面临的对抗攻击风险.
[1] |
Goodfellow IJ, Shlens J, Szegedy C. Explaining and harnessing adversarial examples. Proceedings of the 3rd International Conference on Learning Representations. San Diego: ICLR, 2015.
|
[2] |
Szegedy C, Zaremba W, Sutskever I, et al. Intriguing properties of neural networks. arXiv: 1312.6199, 2013.
|
[3] |
Gao J, Lanchantin J, Soffa ML, et al. Black-box generation of adversarial text sequences to evade deep learning classifiers. Proceedings of 2018 IEEE Security and Privacy Workshops. San Francisco: IEEE, 2018. 50–56.
|
[4] |
Eger S, Şahin GG, Rücklé A, et al. Text processing like humans do: Visually attacking and shielding NLP systems. Proceedings of 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Minneapolis: Association for Computational Linguistics, 2019. 1634–1647.
|
[5] |
Jia R, Liang P. Adversarial examples for evaluating reading comprehension systems. Proceedings of 2017 Conference on Empirical Methods in Natural Language Processing. Copenhagen: Association for Computational Linguistics, 2017. 2021–2031.
|
[6] |
Ribeiro MT, Singh S, Guestrin C. Semantically equivalent adversarial rules for debugging NLP models. Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics. Melbourne: Association for Computational Linguistics, 2018. 856–865.
|
[7] |
Li LY, Ma RT, Guo QP, et al. BERT-ATTACK: Adversarial attack against BERT using BERT. Proceedings of 2020 Conference on Empirical Methods in Natural Language Processing. Association for Computational Linguistics, 2020. 6193–6202.
|
[8] |
Ren SH, Deng YH, He K, et al. Generating natural language adversarial examples through probability weighted word saliency. Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Florence: Association for Computational Linguistics, 2019. 1085–1097.
|
[9] |
Alzantot M, Sharma Y, Elgohary A, et al. Generating natural language adversarial examples. Proceedings of 2018 Conference on Empirical Methods in Natural Language Processing. Brussels: Association for Computational Linguistics, 2018. 2890–2896.
|
[10] |
Zang Y, Qi FC, Yang CH, et al. Word-level textual adversarial attacking as combinatorial optimization. Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Association for Computational Linguistics, 2020. 6066–6080.
|
[11] |
Dong ZD, Dong Q. HowNet and the Computation of Meaning. Hackensack: World Scientific Publishing Co., 2006.
|
[12] |
Niu YL, Xie RB, Liu ZY, et al. Improved word representation learning with sememes. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics. Vancouver: Association for Computational Linguistics, 2017. 2049–2058.
|
[13] |
Gu YH, Yan J, Zhu H, et al. Language modeling with sparse product of sememe experts. Proceedings of 2018 Conference on Empirical Methods in Natural Language Processing. Brussels: Association for Computational Linguistics, 2018. 4642–4651.
|
[14] |
Zhang L, Qi FC, Liu ZY, et al. Multi-channel reverse dictionary model. Proceedings of the AAAI Conference on Artificial Intelligence, 2020, 34(1): 312–319.
|
[15] |
Karaboga D. An idea based on honey bee swarm for numerical optimization. Technical Report, Kayseri: Erciyes University, 2005.
|
[16] |
Socher R, Perelygin A, Wu J, et al. Recursive deep models for semantic compositionality over a sentiment treebank. Proceedings of 2013 Conference on Empirical Methods in Natural Language Processing. Seattle: Association for Computational Linguistics, 2013. 1631–1642.
|
[17] |
Conneau A, Kiela D, Schwenk H, et al. Supervised learning of universal sentence representations from natural language inference data. Proceedings of 2017 Conference on Empirical Methods in Natural Language Processing. Copenhagen: Association for Computational Linguistics, 2017. 670–680.
|
[18] |
Devlin J, Chang MW, Lee K, et al. BERT: Pre-training of deep bidirectional transformers for language understanding. Proceedings of 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Minneapolis: Association for Computational Linguistics, 2019. 4171–4186.
|
[19] |
Radford A, Wu J, Child R, et al. Language models are unsupervised multitask learners. https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf. (2019-02-14).
|