专栏首页机器之心注意力机制可解释吗?这篇ACL 2019论文说……

注意力机制可解释吗?这篇ACL 2019论文说……

选自arXiv

作者:Sofia Serrano、Noah A. Smith

机器之心编译

注意力机制最近推动了一系列 NLP 任务的发展。由于注意力层可以计算层的表征权重,也被认为可以用于发现模型认为重要的信息(如特定的语境词语)。研究人员通过修改已训练的文本分类模型中的注意力权重,测试了这一假设。并且分析了导致模型预测发生变化的原因。研究人员观察到,尽管在一些案例中,高注意力权重对模型的预测有更高的影响,但他们也发现了许多和这一现象不同的案例。研究者认为,虽然注意力机制预测了输入部分相对于模型整体的重要性,但这不是一个保险的说明重要性的方法。

此外,相比之前机器之心报道的注意力能否提高模型可解释性的文章,本文更多的从语境词语级别(contextualized word level),探讨注意力机制是否可以被解释。遗憾的是,本文作者也同样认为,注意力层不足以解释模型所关注的重点。

链接:https://arxiv.org/abs/1906.03731

可解释性对于很多 NLP 模型来说都是一个紧迫的问题。随着模型愈加复杂,而且要从数据中学习,确保我们能够理解模型为何做出某种决策非常重要。

谈论可解释性的现有工作只是开始评估计算出的注意力权重传达出怎样的信息。在本文中,研究者应用了一种基于中间表征擦除的不同分析方法来评估是否可以依赖注意力权重来解释输入到注意力层本身的相对重要性。他们发现:注意力权重只是对中间成分重要性的嘈杂预测,不应被视为决策的理由。

测试集

研究者将重点放在包含注意力的 5 类和 10 类文本分类模型上,因为解释文本分类的原因一直是可解释性研究中一个吸引研究者目光的领域(Yang et al., 2016; Ribeiro et al., 2016; Lei et al.,2016; Feng et al., 2018)。

一个可解释的模型不仅需要提供合理的解释,还要确保这些解释是模型做出决策的真实原因。注意,这种分析不依赖于数据的真实标签;如果一个模型产生了一个不正确的输出,但它还给出了一个可信的解释,说明哪些因素在计算中发挥重要作用,我们也认为该模型是可解释的。

中间表征擦除

研究者感兴趣的是一个注意力层的一些语境化输入(I ′ ⊂ I)对模型输出的影响。为了测试 I ′ 的重要性,研究者将模型的分类层运行了两次(见图 1):一次不做任何修改,一次用 I ′的注意力权重归零对注意力分布进行重归一化,与其他基于擦除的工作类似。接下来,研究者观察了结果对模型输出的影响。他们在注意力层进行擦除,以将注意力层的效果与它前面的编码器隔离开来。重归一化背后的原因是避免输出文档表征被以训练中从未遇到过的方式人为地缩小到接近 0,这可能使后续的度量无法代表模型在其映射输入的空间中的行为。

图 1:用本文中的方法计算与归零注意力权重对应的表征重要性,假设有四个输出类。

数据和模型

研究者探索了一个主题分类数据集(Yahoo Answers)和三个评估评级数据集(IMDB、Yelp 2017、Amazon)上的四个模型架构。每个数据集的统计数据见表 1.

表 1:实验中用到的数据集。

本文中的模型架构受到分层注意力网络的启发,后者是一种包含两个注意力层的文本分类模型,首先注意每个句子中的词 token,然后注意得到的句子表征。对文档表征进行分类的层与最后的 softmax 层时线性关系。

研究者对注意力的 softmax 公式进行了测试,包括 HAN 在内的大多数模型都使用了该公式。具体而言,研究者使用 Bahdanau 等人(2015)最初定义的加性公式(additive formulation)。

单一注意力权重的重要性

测试开始阶段,研究者探索了当只有一个权重可以移除时的注意力权重相对重要性。使得 i^∗ ∈ I 成为具有最高注意力的成分,α_i^∗作为其注意力。研究者以两种方式将 i^∗的重要性与一些其他注意力项的重要性进行了比较、

模型输出分布的 JS 散度

研究者希望比较 i^∗对模型输出分布的影响与从 I 统一抽取的随机注意力项 r 对应的影响。第一个方法是计算两个 JS 散度:一个是从只移除 i^∗后模型的原始输出分布到其原始输出分布的 JS 散度,另一个是只移除 r 后模型的输出分布的 JS 散度,并将它们进行比较。

他们用移除 i^∗后的输出 JS 散度减去移除 r 的输出 JS 散度:

公式一:∆JS 的计算公式

直观地说,如果 i^∗真的是最重要的,那么我们将期望 Eq. 1 是正的,这也是大部分时候的真实情况。此外,从图 3 可以看出,几乎所有的∆JS 值都接近于 0。通过图 4 可以看出,在 i^∗影响较小的情况下,i^∗的注意力和 r 注意力之间差别不大。这一结果比较鼓舞人心,表示在这些情况下,i^∗和 r 在注意力方面几乎是「相连的」。

图 3:注意力权重大小差异 vs HANrnn 的∆JS。

图 4:HANrnn 模型的测试实例计数,i^∗的 JS 散度更小。

然而,当开始考虑图 3 中正∆JS 值的大小时,注意力的可解释性变得更加模糊。研究者注意到,在数据集中,即使注意力权重的差异非常大,比如 0.4,许多正的∆JS 仍然非常接近于零。尽管最终发现,一旦∆α增大,∆JS 就会飙升,表明分布中只有一个非常高的注意力权重,关于 i^∗和 r 的影响究竟能有多大,这里就存在很大的争议了。

自注意力归零引起的决策翻转

由于注意力权重通常被认为是对于模型 argmax 决策的解释,所以第二个测试关注模型输出中另一个更直观的变化:决策翻转(decision flip)。为清楚起见,此处仅讨论 HANrnn 的结果,该结果反应了在其他架构中观察到的相同模式。

图 9:利用前面给出的关于 i^∗的定义,与一个不同的随机选择注意力项进行比较,上图数字是所有模型上的四个测试集中的每个决策翻转指示器变量类别的测试实例百分比。由于研究者要求随机项不能为 i^∗,他们从分析中排除了最终序列长度为 1 的所有实例。

在多数情况下,擦除 i^∗不会改变模型的决策(图中的「no」列)。这可能和分布在文档中的与分类相关的信号有关(例如,Yahoo Answers 数据集中一个关于「Sports」的问题可以用几句话表示「sports」,其中任何一句都足以正确分类)。

注意力层权重的重要性

为了解决注意力层的可解释性,并解决单权重测试中的问题,研究者采用了一种新的测试,用于研究多注意力层权重在预测器上的表现。

表 2:每个 HANrnn 的每个决策翻转指示器变量类别中测试实例的百分比。

多权重测试

对于假设的重要性排序,例如由注意力权重层表示的排序,研究者希望排序最高的注意力神经元可以作为模型决策的简明解释。这些解释越不简明,真正推动模型决策的注意力神经元的排名就越靠后,那么它就越不可能更好地解释重要性。换句话说,研究者希望,在有效的重要性排名中,最高排名的神经元中只需要使用一小部分重要的信息去引导模型的决策。

重要性排序的具体方法

研究者提出了两种重要性排序的具体方法。

第一种是对重要性进行随机排序。研究者希望这种排序产生一种表现糟糕,但可以和注意力权重降序方法进行对比的结果。

第二种排序方法,是对 attention 层的权重进行排序。这种方法需要对决策函数的梯度和每个注意力权重进行降序排列。因为每个数据集都是 5 个或者 10 个类,根据真实模型输出的向量的决策函数是:

注意力机制不是描述模型决策的理想方式

根据图 5 的结果分析,研究者发现,根据注意力权重进行重要性排序的方法,对有编码器的模型来说并不理想。尽管使用降序注意力权重移除中间表示的方法往往可以使决策翻转比随机排序更快,在许多情况下,这种方法比梯度排序或梯度-注意力-乘积排序的决策翻转效率更低。

此外,虽然基于乘积的排序比梯度排序往往(但不是总是)需要稍微少一点神经元的移除,研究者发现纯粹的无注意力的梯度排序和它(的表现)相当接近,且比纯粹基于注意力的排序表现更好。在 16 个有编码器的模型中的 10 个模型上,发现有超过 50% 的测试集案例中通过移除梯度比移除注意力实现了更小的决策翻转。研究发现,在每一个有编码器的模型上,仅基于梯度的排序导致决策翻转的速度比基于注意力的速度更快。在测试集上,这种案例的数量是其反例(注意力导致的决策翻转更快)的 1.6 倍。

决策翻转发生较迟

在每个排序机制和许多模型上,研究者都遇到了需要移除很大一部分神经元才能达到决策翻转目的的问题。对于 HAN 来说,这并不令人惊讶,因为这些注意力机制从更短的文本中计算注意力。对于 FLAN 来说,这种结果有些出乎意料。FLAN 经常在有几百个字符的序列上计算注意力,每个注意力的权重很可能非常小。

对于研究的模型,特别是 FLAN(使用上百个字符计算注意力),这一事实可能有解释性的问题。Lipton 认为,「如果一个人看一次就了解了整个模型,这个模型就是透明的」(The mythos of model interpretability. arXiv preprint arXiv:1606.03490.)。根据这种解释,如果某个重要的解释需要考虑几百个 token 的注意力权重,即使每一个注意力都很小,这依然会带来严重的透明性问题。

图 5:在三种模型架构上,在不同的排序方案下,第一次决策前被移除的项的分数分布发生翻转。

语境范围对注意力可解释性造成的影响

在机器翻译中,以前的研究观察到,在一个完整序列上,循环神经编码器可能对 token 的信号进行移动,从而导致之后的注意力层反直觉地计算。研究者假设在文本分类的实验设置中,双向循环神经网络,如 HANrnn 和 FLANrnn 编码器可能选择从一部分输入 token 而非其他语境表示中调整分布信号。对比图 5 中的 FLANconv 和 FLAN-rnn 的决策翻转结果可以支持这个理论。研究者注意到,决策翻转的速度比两个基于 rnn 的模型都要快,说明双向循环网络可以有效地学习如何广泛地重新分布分类信号。相反的,卷积编码器只根据输入字符的前后两个字符学习语境表示。

在两种 HAN 架构的结果对比中可以看到一样的情况,虽然不太明显。这可能是因为 HAN 对更少的一部分 token 抽取语境表示(句的表示而非词),所以根据字符近邻抽取语境表示已经是完整序列的很大一部分了。

如果对比没有编码器的模型架构,这种差别会更加明显,如图 6 所示。对比其他两个模型架构,可以看到重要的模型部分被擦除后,决策翻转的速度下降。同时可以看到,随机排序比之前表现更好,说明决策边界更脆弱了,特别是在 Amazon 数据集上。这样说明,注意力相比梯度可能更加重要。

结论

注意力机制被认为是解释模型的一种工具,但研究者发现,注意力层和重要性不是充分对应的。

在某些情况下,两者是相关的。例如,当对比高注意力权重和低权重时,高注意力权重对模型的影响往往更大。然而,当考虑到在一些例子中,最高注意力权重无法产生很大的影响时,这种图景是暗淡的。

从多权重测试中,研究者发现注意力权重往往无法发现对模型最终决策发挥最重要作用的表示。甚至于,即使在基于注意力层的重要性排序翻转模型决策的速度比其他排序要快的情况下,零参与神经元的数量通常也太大,对解释(这一过程)毫无帮助。

研究人员同时注意到,语境范围先于注意力层影响了模型的决策。尽管注意力层很大程度上在未抽取语境表示的例子中更有效,在其他情况下,其获取决策依据的糟糕表现是一个问题。研究人员认为,在他们测试的设置中,注意力层不是一个用于发现特定输入是否造成了特定输出的理想工具。注意力层也许可以用其他方法变得可解释,但绝不是在重要性排序中。(在重要性排序问题上),注意力层无法解释模型决策。

本文为机器之心编译,转载请联系本公众号获得授权。

本文分享自微信公众号 - 机器之心(almosthuman2014)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

推荐阅读

  • 远程办公经验为0,如何将日常工作平滑过度到线上?

    我是一名创业者,我的公司(深圳市友浩达科技有限公司)在2018年8月8日开始运营,现在还属于微型公司。这个春节假期,我一直十分关注疫情动向,也非常关心其对公司带来的影响。

    TVP官方团队
    TAPD 敏捷项目管理腾讯乐享企业邮箱企业编程算法
  • 数据中台,概念炒作还是另有奇效? | TVP思享

    作者简介:史凯,花名凯哥,腾讯云最具价值专家TVP,ThoughtWorks数据智能业务总经理。投身于企业数字化转型工作近20年。2000年初,在IBM 研发企业级中间件,接着加入埃森哲,为大型企业提供信息化架构规划,设计,ERP,云平台,数据仓库构建等技术咨询实施服务,随后在EMC负责企业应用转型业务,为企业提供云迁移,应用现代化服务。现在专注于企业智能化转型领域,是数据驱动的数字化转型的行业布道者,数据中台的推广者,精益数据创新体系的创始人,2019年荣获全球Data IQ 100人的数据赋能者称号,创业邦卓越生态聚合赋能官TOP 5。2019年度数字化转型专家奖。打造了行业第一个数据创新的数字化转型卡牌和工作坊。创建了精益数据创新方法论体系构建数据驱动的智能企业,并在多个企业验证成功,正在向国内外推广。

    TVP官方团队
    大数据数据分析企业
  • 扩展 Kubernetes 之 CRI

    使用 cri-containerd 的调用流程更为简洁, 省去了上面的调用流程的 1,2 两步

    王磊-AI基础
    Kubernetes
  • 扩展 Kubernetes 之 Kubectl Plugin

    kubectl 功能非常强大, 常见的命令使用方式可以参考 kubectl --help,或者这篇文章

    王磊-AI基础
    Kubernetes
  • 多种登录方式定量性能测试方案

    最近接到到一个测试任务,某服务提供了两种登录方式:1、账号密码登录;2、手机号+验证码登录。要对这两种登录按照一定的比例进行压测。

    八音弦
    测试服务 WeTest
  • 线程安全类在性能测试中应用

    首先验证接口参数签名是否正确,然后加锁去判断订单信息和状态,处理用户增添VIP时间事务,成功之后释放锁。锁是针对用户和订单的分布式锁,使用方案是用的redis。

    八音弦
    安全编程算法
  • 使用CDN(jsdelivr) 优化博客访问速度

    PS: 此篇文章适用于 使用 Github pages 或者 coding pages 的朋友,其他博客也类似.

    IFONLY@CUIT
    CDNGitGitHub开源
  • 扩展 Kubernetes 之 CNI

    Network Configuration 是 CNI 输入参数中最重要当部分, 可以存储在磁盘上

    王磊-AI基础
    Kubernetes
  • 聚焦【技术应变力】云加社区沙龙online重磅上线!

    云加社区结合特殊时期热点,挑选备受关注的音视频流量暴增、线下业务快速转线上、紧急上线防疫IoT应用等话题,邀请众多业界专家,为大家提供连续十一天的干货分享。从视野、预判、应对等多角度,帮助大家全面提升「技术应变力」!

    腾小云
  • 京东购物小程序购物车性能优化实践

    它是小程序开发工具内置的一个可视化监控工具,能够在 OS 级别上实时记录系统资源的使用情况。

    WecTeam
    渲染JavaScripthttps网络安全缓存

扫码关注云+社区

领取腾讯云代金券