在最新一期的 AAAI 2020 线上论文分享中,机器之心邀请了在亚马逊上海人工智能实验室做实习研究的金致静,通过线上分享的方式介绍他们入选 AAAI 2020 的研究论文《Is BERT Really Robust? A Strong Baseline for Natural Language Attack on Text Classification and Entailment》,详细解读有关自然语言对抗样本生成的研究工作。
2 月 12 日,本期 AAAI 2020 线上论文分享结束,本文对此次分享的视频与论文内容进行了整理。
b 站链接:https://www.bilibili.com/video/av90072410/
对抗攻击在视觉和语音领域已经得到了大量研究,但文本分析领域的对坑攻击还较为罕见。本文提出了一种新基准 TextFooler,并通过文本分类与文本蕴涵实验验证了其有效性。
论文地址:https://arxiv.org/abs/1907.11932
相关代码、预训练的目标模型和测试样本已发布在:https://github.com/jind11/TextFooler
对抗样本与原始样本往往没有肉眼可见的差异,但却能成功骗过当前最佳的机器学习模型。通过让模型学习恶意设计的对抗样本,有助于评估和提升这些模型的稳健性。为此,本论文提出了 TextFooler,这是一种可用于生成对抗文本的简单却又强大的基准。
研究者在文本分类与文本蕴涵这两种基础自然语言处理任务上应用了该基准,结果成功实现了对 3 个目标模型的成功攻击,其中包括强大的预训练 BERT 模型以及被广泛使用的卷积神经网络和循环神经网络。这一框架有三大优势:(1)效果好——其成功率和扰动率表现优于之前的攻击框架;(2)效用可得到保留——其会保留人类分类的语义内容、语法以及正确的拼写;(3)效率高——其生成对抗文本时的计算复杂度与文本长度呈线性关系。
引言
机器学习模型已在分类、回归和决策等多种不同任务上取得了显著的成功。但是,近来的研究表明,只需要对合法输入进行微小且往往乃以肉眼察觉的扰动,就能实现对机器学习模型的有效攻击,让其得到错误的结果。这种攻击方式被称为对抗攻击。对人类而言,对抗样本都能被正确地分类,但是目标模型却能被轻易欺骗,这也引起了人们对现有机器学习算法的安全性和完整性的严重关切。另一方面,这也表明如果在训练数据集中包含高质量的对抗样本,就能够有效提升机器学习模型的稳健性和泛化能力。
尽管图像和语音领域的对抗样本研究已经取得了很大的成功,但文本由于本质上的离散性,所以还依然颇具挑战。严格来说,要打造一个成功的自然语言攻击系统,除了让其具备欺骗目标模型的能力之外,还应使其满足三项关键的效用保留性质:(1)人类预测的一致性——人类的预测结果应当保持不变;(2)语义相似性——在人类看来,新构建的样本应该具有与源文本一样的语义;(3)语言流畅度——新生成的样本应当表达自然且语法正确。
针对黑盒设置(即无法获取模型架构和参数的情况)下的自然语言攻击问题,本论文提出了一种简单却又强大的基准 TextFooler。
方法
威胁模型(Threat Model)
在黑盒设置下,攻击者并不知道模型的架构、参数或训练数据,只能通过提供输入并获取预测结果及对应的置信度分数来了解目标模型的情况。
算法 1 展示了新提出的对抗文本生成方法,其主要分为两个步骤:
步骤 1:词重要度排序(第 1-6 行)
给定由 n 个词构成的句子 X={w_1,w_2,...,w_n},可以观察到影响预测模型 F 结果的关键信号其实只有其中部分关键词。实际上,Niven and Kao 2019 就曾发现仅会关注某些词的统计信息。
因此,研究者创造了一种筛选机制,可以选择出对最终预测结果影响最大的词。使用这一筛选机制,可以尽可能地减少修改量,由此就能够尽可能地维持语义相似性。
基于黑箱设置,模型梯度是未知的。因此,这一筛选机制使用了一个分数 I 来度量 X 中的词 w_i 对最终分类结果的影响程度。
因此,重要度分数 I 的计算方式即为检测词 w_i 前后预测结果的变化情况,这可以定义为如下形式:
根据重要度分数对词进行排序之后,研究者进一步滤除了 the、when、more 等停止词。这一步操作使用了 NLTK2 和 spaCy3 库。
步骤 2:词转换器(第 7-30 行)
适当的替换词需要满足以下标准:(1)应当与原句子有类似的语义含义;(2)与上下文契合;(3)会让目标模型得出错误的预测结果。
同义词提取:作者首先为所选词 w_i 的所有可能的替换词收集了一个候选词集 Candidates。Candidates 的初始化使用了词典中 N 个与 w_i 的余弦相似度最近的同义词。
词的表征使用了来自 Mrkšić, et al. 2016 的词嵌入。这些词向量为同义词寻找任务进行过精心调节,并在 SimLex-999 数据集上的表现为当前最佳。SimLex-999 数据集的设计目标是度量不同模型评估词之间的语义相似度的能力。
使用这个嵌入向量数据集,研究者找到了 N 个与 w 的余弦相似度大于 δ 的同义词。在实验中,作者根据经验将 N 设置为 50,δ 设置为 0.7。这样的设置能在多样性与语义相似度控制之间实现较好的平衡。
词性检查:在词 w_i 的候选词集 Candidates 中,仅保留与 w_i 词性相同的词。这一步是为了确保文本的语法正确(算法 1 第 10 行)。
语义相似度检查:对于候选词集 Candidates 中的每个词 c,将其替换到句子 X 中 w_i 的位置,得到对抗样本。然后再使用目标模型 F 来计算对应的预测分数。研究者还计算了源句子 X 与对抗句子 X_adv 之间的句子语义相似度。
对抗样本的最终确定:在最终得到的候选词库 FinCandidates 中,如果其中存在任意已经可以改变目标模型的预测结果的候选词,则从这些候选词中选出语义相似度分数最高的词。但如果没有可以改变预测结果的候选词,则选择标签 y 的置信度分数最低的词作为 w_i 的最佳替换词。然后重复步骤 2,转换下一个被选中的词(第 20-30 行)。
实验
研究者在文本分类和文本蕴涵这两个重要的 NLP 任务上检验了新提出的对抗攻击方法的效果。
表 1:数据集概况
攻击目标模型
对于每个数据集,研究者在训练集上训练了三个当前最佳的模型,并得到了与原有实现相近的测试集准确度分数。然后,研究者又生成了与测试集语义相似的对抗样本来攻击训练后的模型,并使它们得到了不同的结果。
表 2:目标模型在标准测试集上的原有准确度
在句子分类任务上,研究者攻击了三种模型:基于词的卷积神经网络(WordCNN,Kim 2014)、基于词的长短期记忆网络(WordLSTM,Hochreiter and Schmidhuber 1997)、当前最佳的使用 Transformer 的双向编码器表征网络(BERT,Devlin et al. 2018)。
WordCNN 模型的配置是使用了三种窗口大小:3、4、5,每种窗口大小 100 个过滤器,dropout 设为 0.3。WordLSTM 使用了有 150 个隐藏单元的 1 层双向 LSTM,dropout 设为 0.3。这两个模型都使用了 200 维的 Glove 词嵌入,这个词嵌入是在来自 Wikipedia 和 Gigawords 的 60 亿个 token 上训练的。BERT 模型则采用了 12 层的配置,其包含 768 个隐藏单元和 12 个头,共有 1.1 亿个参数,即 BERT 模型的 base-uncased 版本。
结果
表 3:攻击系统在文本分类数据集上的自动评估结果。
上图中,Original Accuracy 是未被攻击的原始模型的预测准确度,After-Attack Accuracy 是被对抗攻击时的模型准确度,% Perturbed Words 是以原始句子长度为参考时经过扰动的词所占的百分比,Semantic Similarity 是原始和对抗样本之间的语义相似度。
表 4:攻击系统在文本蕴涵数据集上的自动评估结果。m 是指匹配,mm 是指不匹配,这是 MultiNLI 开发集的两种变体。
表 6:来自 MR(WordLSTM)和 SNLI(BERT)数据集的原句子和对抗样本句子示例
表 7:MR(WordLSTM)和 SNLI(BERT)中的原始句子和对抗样本句子符合语法的程度(1-5 分,越高表明越符合语法)