ACL 2018 | 问答模型真的理解问题吗:归因分析可轻松构造对抗问题样本

来自芝加哥大学和谷歌的研究者通过归因方法分析了三种深度学习问答模型的内在过程,包括了对图像、图表和文本段落的问答。结果表明这些深度网络常常会忽略问题中重要的词,导致错误归因(把无关词当成决定答案的重要线索),从而可以轻易地构造对抗样本实现攻击。例如,最强的攻击可以将图像问答模型的准确率从 61.1% 降低到 19%,将图表问答模型的准确率从 33.5% 降低到 3.3%。

引言

近期,各种问答任务都应用了 深度学习 。例如,关于图像的问答任务(如 Kazemi 和 Elqursh 等人 2017 年的工作);关于图表的问答任务(如 Neelakantan 等人 2017 年的工作);以及关于文本段落的问答任务(如 Yu 等人 2018 年的工作)。开发人员、用户以及审稿人(学术界)都希望了解这些模型的能力。

衡量系统表现的标准方式是在测试集上评估其误差率。只有当测试集可以代表潜在的真实世界任务时,高 准确率 才是一个好模型的指标。大多数任务的测试集和训练集都很大,因而很难检验这些数据集是否能代表真实世界。

本文提出的技术可以分析 深度学习 模型对问句中单词的敏感度。研究者通过归因分析以及生成对抗性问题来实现这种技术。举一个说明性的例子:视觉问答(Agrawal et al., 2015)中的任务是要回答关于图像的问题。思考一下「建筑物两边的白色砖块有多对称?」这样的问题(如图 1 所示)。本文研究的系统得到了正确的答案(「非常」)。但是,研究者(通过归因方式)发现这个系统只依赖于类似「how」和「bricks」等少数几个单词。事实上,我们可以在图像相同的情况下,提出一个可以使系统得到错误答案的对抗性问题。例如,对于「建筑两边的白色砖块有多圆?」这个问题来说,系统得到的答案是一样的(「非常」)。本项研究的一个重要前提是在问答方面大多数人都有基本常识。即使他们无法手动检验数据集是否能代表真实世界,但是他们可以识别问句中重要的词,并预测出这些关键词在回答问题中所起的作用。

本文的研究贡献

研究者分析了三个问答模型。有两个步骤:首先,应用了集成梯度(Integrated Gradients,IG)(Sundararajan et al., 2017),将系统的预测结果归因于问题中的单词上。研究者对归因结果进行了可视化,以便后续分析。其次,通过归因分析识别出网络 逻辑 中的弱点(例如,依赖不重要的单词),并利用这些弱点构建对抗性问题。

本研究的一个重要贡献在于可以对问答网络进行过稳定性(overstability)的测试。Jia 和 Liang 的研究(2017)表明,阅读理解网络对语义更改编辑来说有些过稳定。在研究过程中,作者发现这样的过稳定性也适用于问答任务。此外,这种行为在视觉问答网络和表格问答网络中也有所体现。作者使用归因定义一种通用的测试方法,以度量过稳定性的程度(4.3 节和 5.3 节)。该过程涉及到当系统地从问题中去除单词的过程中,度量网络的 准确率 的变化。

需要强调的是,与 Jia 和 Liang 相似的模型独立的对抗技术相比,本文的方法利用了现有模型的优缺点,这使得的攻击成功率更高。此外,利用归因分析,可以提高 Jia 和 Liang 工作的 准确率 (6.2 节)。就目前所知,这种广泛使用归因分析构建 对抗样本 的做法是很新颖的。

接下来提供本文结果的概述,在每种情况下都会对新输入上的预训练模型进行评估,并保持网络 参数 不变。

图像问答(第 4 节):该任务是要回答有关图像的问题。作者分析了 Kazemi 和 Elqursh 的研究(2017)中的深度网络。他们发现网络忽略了问题中的很多单词,这些单词很大程度上是依赖图像回答问题的。例如,在 验证集 中,即使删掉除了被强调外的每一个单词,模型准确性还是达到原始准确性的 50% 以上。他们还发现,该模型潜在地依赖于重要的疑问词(如名词),在问题中添加无内容前缀(如「简单来说…」)的话,模型 准确率 从 61.1% 降低到 19%。

图表问答(第 5 节):作者分析了 Neelakantan 等人在 2017 年做出的神经编程器(Neural Programmer,NP)系统的工作,该系统针对表格数据回答问题。NP 选择适用于附表的一系列操作回答问题(类似于 SQL 的 query 方法;在第 5 节中有细节描述)。他们发现与名词或形容词等重要词相比,无内容单词(如「in」、「at」和「the」等)更容易影响这些操作选择。删除所有的无内容单词后,模型的 准确率 从 33.5% 下降到 28.5%。他们还发现,NP 通常是以错误的原因得到正确答案的。例如,对于问题「哪个国家赢得了最多的金牌?」,NP 选择的操作之一是「第一」(选取图表的第一行)。只有当图表恰好是以排名组织时,它的答案才是正确的。研究者通过在 Pasupat 和 Liang 2016 年提出的生成扰动图表集上进行测试,来量化该弱点,并发现其 准确率 从 33.5% 下降到了 23%。最后,研究者展示了过稳定性的极端形式,其中图表自身就能在网络中诱导很大的偏差,而不管问题的具体内容。例如,在关于奥林匹克金牌数的图表中,NP 预先倾向于选择「前一个」的操作。

阅读理解(第 6 节):该任务是要回答文本段落的相关问题。分析了 Yu 等人的网络(2018)后又一次发现,网络常常忽略一些本应该重视的单词。Jia 和 Liang 等人 2017 年提出在句子中添加一些短语一般不会改变网络所给答案,但有时候能实现攻击。研究者的主要发现是,当被添加短语的句子中包含所有模型认为重要(对原始段落而言)的疑问词时,攻击成功的可能性更高。例如,他们发现,当添加的句子包含最高归因(top-attributed)的名词时,攻击成功的可能性会超过 50%。这种洞察可指导我们构建更成功的攻击和更好地训练数据集。

总之,研究者发现所有的网络都忽视了问题的重要部分。可以通过改善训练集或者引入归纳偏置解决这一问题。他们的分析工作对这两个方案都有帮助。对将最终用户展示归因可视化也是有意义的。了解哪些单词会被忽略,或者哪些操作会 映射 到单词,都可以帮助用户决定是否相信系统给出的回应。

图 1:图像问答(Kazemi and Elqursh, 2017):对能正确回答问题的网络的归因(词重要性)可视化。红色表示高归因,蓝色表示负归因,灰色表示近零归因。颜色由标准化的归因决定,也就是问题中归因程度最高的词语。

图 2:VQA 网络(Kazemi and Elqursh, 2017):相对于原始准确率 准确率 更像是词汇量的函数。将词汇按出现频率降序排列,选择出现最多的词汇。X 轴取对数刻度,除了接近 0 的地方是线性的。

表 1:VQA 网络(Kazemi and Elqursh, 2017):前缀攻击的准确率 ;原始准确率 为 61.1%。

图 3:归因分析的可视化。Y 轴上是疑问词、预处理标记和列选择先验。X 轴上是操作符和列选择,括号内是其基准线。操作符和列本身不影响最终答案,与对应的基准线一样,定为零归因。

表 2:表格特定默认程序(NP 在空输入问题上返回的程序)的列名归因。完整列表见补充材料中的表 6。这些结果表明,网络预先倾向于只根据表格选择运算符。

图 4:准确率 作为词汇量的函数。按照出现频率,降序排列这些词,选择这些词作为问题中词语的最高归因。X 轴取对数坐标,除了接近 0 的地方是线性的。注意,只需要 5 个词网络的最终准确率 即可超过 50%。

表 3:神经编程器(Neelakantan et al., 2017):左边:将攻击短语加入问题后得到的验证准确率 (原始准确率 为 33.5%)。

表 4:ADDSENT 攻击没能骗过这个模型。经过修改保留了归因程度高的名词后成功骗过了模型。归因程度高的词是红色的(归因程度越高颜色越深)

论文:Did the Model Understand the Question?

论文地址:https://arxiv.org/abs/1805.05492

摘要:本文分析了针对三个任务的最新的 深度学习 模型:对图像的问答、对图表的问答和对文本段落的问答。通过归因(词重要性)标记,发现这些深度网络常常会忽略问题中重要的词。利用这样的漏洞,我们对问题做了扰动修改,从而制造出各种各样的 对抗样本 。最强的攻击将图像问答模型的 准确率 从 61.1% 降低到 19%,将图表问答模型的 准确率 从 33.5% 降低到 3.3%。此外,本文还说明了在段落理解模型上归因是如何增强攻击力度的(Jia 和 Liang 2017 年提出)。研究结果表明,归因可以加强 准确率 的标准衡量,还可以使模型性能具备可探究性。当一个模型出于错误原因变成准确的的时候,归因分析会在模型中显示 逻辑 错误,指出测试集中数据的不足之处。

理论 自然语言处理 ACL 2018 会议 论文