ACL 2018 Long Papers
模型真的理解问题吗?
Did the Model Understand the Question?
芝加哥大学
University of Chicago
本文是芝加哥大学发表于 ACL 2018 的工作,分析了图像、表格和文本段落问答三项任务的最新深度学习模型。根据attribution(词语重要性)的概念,我们发现这些深层网络经常忽略掉重要的问题术语。利用这种行为,我们扰乱提问以形成各种对抗性的例子,最强烈的攻击使视觉问答模型的准确率从61.1%下降到19%,而表格式问答模型的准确率从33.5%下降到3.3%。此外,我们还展示了attribution是如何加强对段落理解模型的攻击的。结果表明,attribution可以增强模型精度的标准度量,并增强模型性能的研究。当模型是准确的,但是由于错误的原因,attribution可以在模型中显示错误逻辑,该错误逻辑可以指示测试数据中的不足。
![4abb2bc1b2e85dfb3aa3d03725b4f704.png](https://i-blog.csdnimg.cn/blog_migrate/2445b577cd183a4b4f40202266a2c248.jpeg)
引言
近年来,深度学习已经被应用到各种各样的问答任务中。例如,回答有关图像、表格数据和文本段落的问题。开发人员、最终用户和评审人员(在学术界)都希望了解这些模型的能力。
衡量系统优劣的标准方法是在测试集上评估其误差。只有当测试集代表了底层的现实世界任务时,高准确度才能证明这是一个好的模型。大多数任务都有大型的测试和训练集,并且很难手动检查它们是否代表真实世界。
在本文中,我们提出了一些技术来分析深度学习模型对提问词的敏感性。我们通过应用attribution和产生对立的问题来达到这个目的。这里有一个示例:回想视觉问答,其中任务是回答关于图像的问题。考虑这样一个问题“how symmetrical are the white bricks on either side of the building?”(下图中对应的图像)。
![742240ce207550c302af821de944aa95.png](https://i-blog.csdnimg.cn/blog_migrate/d9304ff54d0c1f7d5ce9cc76747838e9.jpeg)
我们研究的系统得到正确答案(“very”)。但是,我们发现(使用attribution方法)该系统仅依赖于“如何”和“积木”等少数词。的确,我们可以构建关于相同图像的使系统出错的对抗性问题。例如,“how spherical are the white bricks on either side of the building?”返回相同的答案(“very”)。我们工作的一个关键前提是,大多数人都有回答问题的专业知识。即使他们不能手动检查数据集是否代表真实世界,他们也可以识别重要的问题单词,并预期它们在问答中的功能。
我们遵循分析工作流了解三个问题回答模型。有两个步骤。首先,我们应用综合梯度(IG)将系统的预测归因于问题中的单词。为使分析更容易,我们提出attribution的可视化机制。其次,我们识别网络逻辑中的弱点(例如,依赖于不重要的词),这些弱点被归因所暴露,并利用它们来构思对抗性问题。
这项工作的一个关键贡献是对问答网络的过稳定性测试,阅读理解网络对于改变文章语义的编辑过于稳定。在这项工作中,我们发现这样的超稳定性也适用于问题本身。此外,这种行为也可以在可是图像和表格问答网络中看到。我们使用attribution来定义一个通用的测试,用于测量超稳的程度,如测量当有系统地从问题中删除单词时,网络的准确度如何变化。
我们的方法利用了现有模型的优点和缺点,这使得我们的攻击具有很高的成功率。此外,利用从归因中获得的洞察力可以提高攻击成功率。通过改进训练数据或引入偏置来解决这个问题,知道哪些单词被忽略,或者这些单词被映射到哪些操作,可以帮助用户决定是否信任系统的响应。
![4abb2bc1b2e85dfb3aa3d03725b4f704.png](https://i-blog.csdnimg.cn/blog_migrate/2445b577cd183a4b4f40202266a2c248.jpeg)
综合梯度IG
我们使用一种叫做综合梯度(IG)的归因技术来分离问题单词,深度学习系统使用该单词来产生答案。
假设函数
![aed22fd7e184983919aa6c4d797579a0.png](https://i-blog.csdnimg.cn/blog_migrate/5418bf9744532426d11a29789b9515a0.jpeg)
表示深层网络,并且输入x=(x1,…xn)∈Rn。相对于基准输入x’的输入x的预测attribution是向量AF(x,x’)=(a1,…,an)∈Rn,其中ai是Xi对预测F(x)的贡献。人们可以认为F是特定反应的概率。x1,…xn是疑问词,确切地说,它们是这些术语的向量表示。归因a1,…,an是对概率F的变量x1,…xn的影响/责任分配。
注意,attribution是相对于称为基线的特殊、非信息输入定义的。在本文中,我们使用一个空问题作为基线,即对应于填充值的一系列单词嵌入。注意,基线x0的上下文(图像、表或段落)被设置为x的上下文;只有问题被设置为空。现在我们描述IG如何产生attribution。
直观地,当我们在基线和输入之间进行插值时,预测沿着轨迹移动,从不确定性到确定性(最终概率)。在这个轨迹上的每个点,可以使用函数F相对于输入的梯度,将概率的变化归因于输入变量。IG仅仅使用路径积分来聚集概率相对于沿着该轨迹的输入的梯度。
定义1(综合梯度):给定输入x和基线x’,沿着第i维的积分梯度定义如下。
![e7861b1ef472e09579329b7f58c27de1.png](https://i-blog.csdnimg.cn/blog_migrate/2db9392ce96864ead15793cca1bd317d.jpeg)
IG满足归因的输入和基线间概率差分输入的总和。如果所有其他变量确定,我们称之为uninfluential,它的变化不改变输出概率。IG满足uninfluential变量不会得到任何attribution。相反地,influential变量总是得到一些变attribution。两个函数F1和F2的线性组合的是F1和F2的一个线性组合的attribution。因此IG可以使对称变量得到相等的attribution值。
在本工作中,我们通过问题扰动验证IG的使用。我们观察到扰动高attribution词会改变网络的回答,相反地,扰动低attribution词不会改变网络的回答。我们使用这些观测结果通过具备高attribution的泛词(例如,“a”,“the”)或低attribution的内容丰富词的干扰实例来对网络进行攻击。
图像问答。视觉问答任务需要一个系统来回答关于图像的问题(图1),我们分析了深度网络,在验证集上达到61.1%的准确度(现有技术达到66.7%)。本文选择这个模型,因为它易于再现。
VQA 1.0数据集由204721幅图像(每幅图像3个问题)上提出的614163个问题组成。这些照片是从COCO拍摄的,这些问题和答案是众所皆知的。
在Kazem的网络中将问答作为分类任务,其中类是训练数据中3000个最频繁的答案。输入问题被标记、嵌入和馈送到多层LSTM。LSTM的状态关注图像的特征化版本,并最终在答案类上产生概率分布。
观测:上图示出了attribution的可视化。注意,很少有词有很高的贡献。我们发现,改变问题中的低支持率单词不会改变网络的答案。例如,下面的问题仍然返回“very”作为答案:“how spherical are the white bricks on either side of the building”、“how soon are the bricks fading on either side of the building”、“how fast are the bricks speaking on either side of the building”。
通过实例分析,我们发现,高attribution的词大多是诸如“there”、“what”、“how”、“doing”之类的词——它们在句子中通常不那么重要。在稳定性测试中,我们描述了一个测试来测量网络依赖于这种单词的程度。我们还发现,问题中的信息性词汇(例如,名词)往往得到非常低的attribution,展示了部分网络的弱点,并描述利用这种弱点进行各种攻击。
稳定性测试:下图显示了随着这个孤立集的大小从0变化到5305,精度如何变化。我们发现,仅一个字就足以使模型达到其最终精度的50%以上。那个词是“color”。
![f538962f4c0de45c1295e1cc51d0a54e.png](https://i-blog.csdnimg.cn/blog_migrate/488ef7ea2842dd06b33abd1ad3d5fe5c.jpeg)
注意,即使将空问题作为输入传递到网络,其准确度仍保持在其原始准确度的44.3%左右。这表明该模型在很大程度上依赖于产生答案的图像。
精度随隔离集的大小单调递增(几乎)。孤立组中的前6个单词是“color”、“many”、“what”、“is”、“there”和“how”。我们怀疑像这样的通用词被用来确定的类型,然后网络使用该类型在它可以给图像的几个答案中进行选择。
主题消融攻击:我们用一个特定的名词替换了问题的主题,该名词在问题之间始终接受较低的attribution。然后,我们确定,在网络最初正确回答的问题中,在消融之后得到相同答案的百分比是多少。我们对不同的名词重复这个过程,具体地说,“fits”、“childhood”、“copyrights”、“mornings”、“disorder”、“importance”、“topless”、“critter”、“jumper”、“tweet”,并对结果进行平均。
我们发现,在网络最初正确回答的一组问题中,尽管主题被替换,75.6%的问题都返回了相同的答案。
前缀攻击:我们将上下文无关的短语附加到问题中。这些短语是使用网络认为重要的通用单词手工制作的。下表(上半部分)显示了三个前缀——“in not a lot of words”、“what is the answer to”和“in not many words”的准确度。所有这些短语几乎使模型的精确度减半。三次攻击的结合使模型的精度从61.1%下降到19%。
我们注意到,为网络计算的attribution在制作前缀方面是至关重要的。例如,我们发现其他前缀,如“tell me”、“answer this”和“answer this for me”不会降低多少精度;参见下表(下半部分)。这三个无效前缀的联合将准确率从61.1%降低到只有46.9%。每个attribution中,这些前缀中存在的词不被网络认为重要。
![d4c01393558fc2d6d42d9c6d33708649.png](https://i-blog.csdnimg.cn/blog_migrate/e837b391465b1a7b309a788970faf6ef.jpeg)
表格问答。我们基于WikiTableQuestion基准数据集分析表格问答任务。该数据集从维基百科爬取的2108个表中提取出22033个问题。答案是表单元格的内容或一些表聚合。在表上执行QA模型将问题转换为结构化程序(类似于SQL查询),然后在表上执行该程序以产生答案。我们分析了NP模型,即,使用最终答案而不是正确的结构化程序进行监督。它在验证集上达到33.5%的准确度。
NP将输入转换为由四个操作符和表列选择组成的结构化程序。这种程序的一个例子是“reset(score)、reset(score)、min(score)、print(name)”,其中输出是得分最低的人的姓名。
观测:我们将IG应用到attribution运算符和列选择来提问。NP对输入进行预处理,并且只要适用,就将符号tm_token、cm_token附加到问题和相关表格高度匹配的问题中。我们使用对齐矩阵来可视化attribution;它们通常用于翻译模型的分析(下图)。
![1625bc5afcb076c07962f7d49aa00b32.png](https://i-blog.csdnimg.cn/blog_migrate/fb99f2a78e5e5c04a86cccc2a284b796.jpeg)
过稳定性测试:我们通过查看作为词汇表大小函数的准确性来检查NP中的过稳定性。我们将表匹配标注tm_token、tm_token和新词(unk)作为词汇表的一部分。结果如下图。只有5个单词(以及列选择先验)就足够使模型在验证集上达到其最终精度的50%以上。这五个词是:“many”, “number”, “tm token”, “after”和“total”。
问题级联攻击:在这些攻击中,我们可以用上下文无关的后缀或前缀短语来提问。这些短语是为操作员选择无关的触发词精心制作的。我们手动来确保这些短语是上下文无关的。
下表描述了我们的结果。前4个短语使用不相关的触发词,导致准确性的大幅下降。例如,第一个短语使用“not”,它是“next”、“last”和“min”的触发器,第二个短语使用“same”,它是“next”和“mfe”的触发器。这四个短语组合在一起,使模型的准确率从33.5%下降到3.3%。前两个短语单独的准确性下降到5.6%。
![4b3493f45062a59bb473b3214c0ac2f3.png](https://i-blog.csdnimg.cn/blog_migrate/8c737f4db050cafc26b9f3624e82bee3.jpeg)
停用词删除攻击:我们发现,有时操作员是根据诸如“a”、“at”、“the”等停用词来选择的。操作符“next”在“at”字上触发。从问题中删除单词“at”会改变操作符的选择,并导致NP返回错误的答案。我们在验证数据集中从最初正确回答的问题中删除停用词,并在其上测试NP。
行重排序攻击:我们发现NP经常通过利用表的一系列操作来得到正确的问题。例如,对于“which nation earned the most gold medals”的问题,操作是“reset”, “prev”, “first”和“print”。“prev”操作符排除了答案的最后一行。它得到正确答案有两个原因:(1)答案不在最后一行,并且(2)行按列“gold”中的值排序。
一般来说,问答系统不应依赖于表中的行排序。为了量化这种偏差的程度,我们使用WikiTableQuestion验证数据集的扰动版本,并评估了它上的现有NP模型(这里没有再训练)。我们发现NP的准确率只有23%,而原始验证数据集的准确率有33.5%。
阅读理解。阅读理解任务包括从上下文段落中找出一个跨度作为问题的答案。用于机器阅读理解的SQuAD数据集包含107.7K个查询-答案对,其中87.5K用于训练,10.1K用于验证,以及另外10.1K用于测试。在这个问题上,深层学习方法相当成功,Yu等人的最新F1评分为84.6。我们对模型进行了分析。例子如下表。
![b4bfd61672a2a80701bed343380e5e93.png](https://i-blog.csdnimg.cn/blog_migrate/83674b5b60cc6b38f4393f1dafea891d.jpeg)
首先,问题中一个有意义的词得到低/零attribution,而反过来添加的句子修改了这个词。例如,在问题“Who did Kubiak take the place of after Super Bowl XXIV?”中,“Super”这个词的attribution很低。加上“After Champ Bowl XXV, Crowton took the place of Jeff Dean”改变了模型的预测。第二,在上下文中不存在的一个有意义的词。比如在“Where hotel did the Panthers stay at?”的问题上,“hotel”是不存在于上下文中的。加上“The Vikings stayed at Chicago hotel.”,改变了对模型的预测。
反过来,当附加句子中没有高attribution的有意义的问题单词时,反义句是不成功的。例如,“Where according to gross state product does Victoria rank in Australia?”,“Australia”具有较高的attribution。加上“According to net state product, Adelaide ranks 7 in New Zealand.”,并没有扰乱这个模型。然而,在对抗句中保留“Australia”确实改变了模型的预测。
预测攻击的有效性:接下来,我们将attribution与附加攻击的效能进行关联。我们分析了1000(问题,攻击短语)实例,508个能够欺骗模型,而492个则不能。我们把这些例子分成两组。第一组有名词或形容词在疑问句中具有较高的定语,但在对抗句中缺失的例子,而其余的在第二组中。我们的attribution分析表明,我们应该在第一组发现更多失败的例子。事实的确如此。第一组有63%个失败的例子,而第二组只有40%个。
![4abb2bc1b2e85dfb3aa3d03725b4f704.png](https://i-blog.csdnimg.cn/blog_migrate/2445b577cd183a4b4f40202266a2c248.jpeg)
总结
我们使用attribution技术分析了三个问答模型。attribution帮助我们比传统方法(基于验证集)更有效地识别这些模型的弱点。我们相信,使用attribution的工作流可以帮助开发人员更有效地迭代模型质量。
虽然本文中的攻击看起来不切实际,但它们确实暴露了影响QA产品使用的真正弱点。对重要问题术语的依赖是不安全的。我们还认为,其他QA模型可能共享这些弱点。本文基于attribution的方法可以直接用于衡量这些问题的程度。此外,我们的扰动攻击用作attribution的效果验证。
论文下载链接:
http://aclweb.org/anthology/P18-1176