本文是《The elephant in the interpretability room: Why use attention as explanation when we have saliency methods?》文章的延伸解读和思考,内容转载请联系作者 @Riroaki 。
原文链接:https://zhuanlan.zhihu.com/p/287126616?utm_source=wechat_timeline&utm_medium=social&utm_oi=738537901201063936
本文主要基于2020 EMNLP Workshop上的一篇综述文章,介绍了NLP可解释领域的重大争议——注意力机制是否能作为解释?而什么方法才是真正符合解释逻辑的?
原论文链接:https://arxiv.org/abs/2010.05607
The elephant in the interpretability room: Why use attention as explanation when we have saliency methods?
0. 引言:问题描述
1.注意力方法:是否构成可解释?
2. 显著性方法
3. 注意力vs显著性
4. 注意力一无是处?非也
5. 显著性就是终极的解释方法了吗?
6. 结论
注意力机制(attention mechanism)在NLP的许多领域都可以提高性能,其中包括机器翻译,自然语言生成和自然语言推论等。此外它还可以提供一个窗口,了解模型的运行方式。例如,对于机器翻译,Bahdanau等人(2015)可视化目标token要使用的源token,将翻译的单词进行对齐。
在可解释领域,注意力机制落入模型的运行方式是否构成解释成为关注焦点。尽管许多以可解释的AI为主题发表的论文都因未定义解释而受到批评(Lipton,2018; Miller,2019),但最早的关键研究引起了人们对作为解释的关注(Jain和Wallace,2019; Serrano和Smith,2019);Wiegreffe和Pinter,2019)确实表示,他们对关注权重是否忠实代表每个输入token对模型预测的责任很感兴趣。
也就是说,狭义的解释意味着存在着最重要的预测输入标记(arg max),准确地总结了模型的推理过程(Jacovi和Goldberg,2020b)。
有趣的是,上述工作中对解释的隐含定义恰好与设计的**输入显著性方法(saliency methods)**相吻合。此外,该解释的用户通常默认为模型的开发者,对他们而言忠诚度(faithfulness)至关重要。
Faithfulness和plausibility相对应,前者指解释方法是否始终如一地能够反映模型表现,后者指直觉上是否合理(似然性)。关于这两者的讨论可见2020年ACL论文《Towards faithfully interpretable NLP systems: How should we define and evaluate faithfulness?》
因此,标题中的“房间里的大象”即:如果使用注意力作为解释的目标是忠实地为输入token分配重要性权重,那么为什么要使用注意力机制而不是为实现该目的而设计的众多现有输入显著性方法?
房中大象:用来隐喻某件虽然明显却被集体视而不见、不做讨论的事情或者风险,抑或是一种不敢反抗争辩某些明显的问题的集体迷思。
首先,介绍一下在如下关于注意力方法是否构成可解释的争论中,讨论的基本模型:Bi-LSTM+tanh Attention文本分类模型(如下图):
这一模型只有一个注意力层,通常这一机制基于MLP结构:
其中是BiLSTM状态的注意力得分。当只有一个输入文本时,没有查询输入(query),所以q或者是参与训练的参数,或者只是被排除在公式外。
反方辩手:注意力不能做解释!
Jain和Wallace(2019)的论文《Attention is not Explanation》将注意力权重的分布和基于特征的显著性度量分布进行比较,并且做了将句子输入进行扰动然后对注意力权重做对抗性搜索,得出结论:
Serrano和Smith(2019)在论文《Is Attention Interpretable?》中写道:
正方辩手:注意力可以是解释!
反方一辩论将注意力和基于梯度的方法比较的部分没有问题,但是通过对抗找到等价注意力权重的方式是有问题的:
注意力并非在所有场合起作用,以下四个定量的测试可以说明。
最后,Pruthi等人(ACL2020)在《Learning to Deceive with Attention-Based Explanations》中提出了一种产生欺骗性注意力权重的方法。他们的方法通过在训练过程添加一个惩罚项,可以诱导注意力权重分布倾向于部分“不被允许的词”(例如,特定性别相关的token),以很小的性能损失训练出一个结构相同但是带有偏见的模型,当使用这一模型的注意力权重进行解释时,将会影响公正性。
从上述讨论可以发现,注意力即使可以用作解释,其适用范围也存在很大的局限性,至少无法完全对预测作出忠实的解释——因为即便是针对同一个预测,也能通过一定方法获得不同的注意力解释,说明这一解释是不合理的。
补充:关于《Attention is not Explanation》和《Attention is not not Explanation》之间的争论,知乎上也有一些评论和解说:如何评价NAACL2019 paper:Attention is not Explanation? - LinT的回答 - 知乎
如何评价NAACL2019 paper:Attention is not Explanation?
本节指出,在不同任务上注意力能起的作用不同,因而解释效果也有不同,无法一概而论。
Vashishth等人(2019年)在《ATTENTION INTERPRETABILITY ACROSS NLP TASKS》中提出注意力机制在单个序列的模型中远不如涉及两个序列的模型(如NLI或MT)重要。
如果使用统一权重,NMT 模型的性能会显著降低,而随机注意权重对文本分类性能的影响最小。因此,文本分类研究的结果可能不会概括为注意力是关键组成部分的任务。
然而,有工作提出,即使在机器翻译这样的领域显著性方法表现依然比attention更好(Ding等,ACL2019,《Saliency-driven word alignment interpretation for neural machine translation》)。
Ding等人的工作中在基于梯度和注意力的解释方法基础上,还提出smooth-grad,以及smooth-attention:对输入的word embedding做扰动,加入高斯分布的随机噪音,并将梯度/注意力结果取平均值,以获得更稳定的结果。
下图为对比的实验结果,这里的衡量手段为将注意力的关注结果与人工标注的结果进行对比,指标为AER(Alignment Error Rate):
这一部分笔者了解并不多,所以仅仅简略摘要部分内容,有待补充。
Grimsley等人(2020年)在《Why attention is not explanation: Surgical intervention and causal reasoning about neural models》说,按照解释的因果(Causality)定义,注意力就不是定义的解释。
借鉴科学哲学工作,作者指出因果解释预意味着“外科手术式的干预“(surgical intervention)是可能的,而深度神经网络则不是这样:无法在保持所有其他变量不变性的同时仅仅干预注意力这一变量。
尽管人们期待直观的“know it when they see it”一望便知的解释方法,然而关于解释的定义及其评估方法尚无一致的结论。这篇文章从干预主义的因果逻辑出发,针对可解释提出了三个问题:
干预主义者的论述只涉及科学中的因果解释。这也导向了一个推论:当一个网络不会也不会产生因果关系的解释时,它仍然可以提供替代的非因果类型的解释。并且:
插入介绍一下解释哲学的流派:
作为因果解释,需要有以下的要素:
注意力机制只是整个模型的一小部分,而和注意力相关的还有注意力之前的层;而在控制变量的干预中,其他的变量必须指保持不变的(invariant)。
由于不满足因果解释的条件,这种基于注意力的解释方法不是因果解释,只是似然的解释(满足人们心理的解释)。
这里仅仅涉及文章的一部分讨论,具体细节请查看原始论文《Why attention is not explanation: Surgical intervention and causal reasoning about neural models》
如果对注意力还不死心的话,还可以想办法改进注意力以实现更忠实的可解释。
Mohankumar 等人 (2020)《Towards transparent and explainable attention models》 观察到LSTM状态的隐藏表示高度相似性,并提出了多元化驱动(diversity-driven)的训练目标,使隐藏表示在时间步长之间更加多样化。它们使用representation erasure,与原始注意力相比,由此产生的注意力权重更容易导致决策翻转。
Tutek 和 Snajder (2020) 具有类似的动机,使用单词级目标,在隐藏状态和它们所代表的词之间实现更牢固的连接,从而影响注意力。Deng等人(2018年)提议以variational attention作为Bahdanau等人(2015年)soft attention的替代,认为后者不是一致的,而只是一种近似性。它们具有允许后对齐的额外好处,以输入和输出句子为条件。
终于到了本文的主角——显著性方法(Saliency methods)。
这里的显著性方法主要讨论了基于梯度的方法(Gradient-based methods)、基于传播的方法(Propagation-based methods)和基于擦除的方法(Occlusion-based methods)。此外还有一类方法依赖替代模型(LIME等),由于解释成本较高而不在此讨论。
下图来源:《Evaluating Recurrent Neural Network Explanations》,这里的CD又是另一种方法了,不做展开
Jiwei Li等,2016《Visualizing and understanding neural models in NLP》
本文首先总结了此前CV领域的多种特征可视化方法:反演(Inversion)、反向传播与反卷积网络(Back-propagation & Deconvolutional Networks)、生成(Generation)等技巧。
然后对NLP领域的SST情感分析、AutoEncoder还原两个任务,分别在原始词句、语义增强或取反、以及语句连接(转折/并列关系等)的词句上进行如下的可视化技巧:
下图为情感分析任务的saliency可视化:
下图为seq2seq任务(这里用的是还原输入的auto-encoder)的saliency可视化随时间步的变化:
Denil等,2015年arxiv《Extraction of salient sentences from labelled documents》
这一篇提出了一种层次卷积CNN,并提出了基于梯度和输入乘积的可视化方法识别和提取与主题相关的句子,如下图:
这篇参考了CV领域的《Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps》的显著性图,这一篇也推荐读者阅读。
以及为自动句子提取系统引入了一种新的可扩展评估技术,从而避免了耗时的人验证数据的注释。当然,这篇文章对比对象比较弱(一个用了word2vec的浅层网络,一个随机方法,一个启发式方法)。
Sundararajan等,ICML2017《Axiomatic attribution for deep networks》
这篇文章不但提出了预测归因的新方法——积分梯度,还提出了如下的解释性方法应当满足的公理(Axiom):
关于梯度饱和问题,可以参考《Not just a black box: Learning important features through propagating activation differences》。此外,之前的文章里也有讨论相关的内容,以及积分梯度的简单科普(Q3部分):
DiagnoseRE:关系抽取泛化性能分析
好,接下来用一句话介绍积分梯度这一方法:
所谓积分梯度,就是将输入沿着基线(即输入的变化起点)到当前值(即当前输入)的梯度进行积分,获得一个路径积分:
这一条积分路径不影响结果,所以出于简单考虑选择线性路径,用等间隔的面积进行近似。
紧接着作者提出了另一条公理:
显然,积分梯度方法是满足这一公理的。而积分梯度也满足实现不变性,因为它只基于模型梯度!
这是一个很神奇的推论:两个模型的功能完全一致->模型的梯度一致->基于梯度的可解释是一致的。
此外,积分梯度还满足很多奇妙的性质,此处篇幅所限不加展开。
下面介绍积分梯度方法的实验结果。
这篇文章在图像、文本和一个化学场景都做了实验。大概这就是ICML水准的论文吧~除了新方法,还有理论,并且有多组跨领域的实验。
在介绍了梯度方法以后,这里引用Ancona在2017年的《Gradient-Based Attribution Methods》提出的一点小小区分:敏感度(Sensitivity)和显著性(Saliency):
这里概要介绍一下分层相关传播(Layer-wise Relevance Propagation,LRP)。
首先是对获得输出$f_c(x_{1:n})$ ,这是顶层相关性。然后,使用特殊的向后传递,在每个层将传入的相关性重新分配到该层的输入之间。
每种层都有自己的传播规则。例如,对于前馈层(Bach等,2015)和LSTM层(Arras等,2017)有不同的规则。相关性将重新分配,直到到达输入层。尽管LRP需要实现自定义的反向传递,但它确实允许精确控制以保持相关性,并且已被证明比在文本分类中使用基于梯度的方法更好(Arras等,2019)。
Arras等人在ACL2019的workshop《Evaluating Recurrent Neural Network Explanations》
这一篇对多种方法进行了比较:
值得注意的是,这篇文章的比较中提到积分梯度方法比CD(Contextual Decomposition,这又是另一个方法了)和LRP要差?论据如下:
这里的比较是用积分梯度的正负对应情感的正负,并将其与LR的参数进行相关度计算,这一实验结果中CD和IG是最好的,但是IG依然不如CD。
这边有三种实验的比较结果,结论是积分梯度不如LRP方法,感兴趣的读者可以阅读原始论文:
通过遮挡(Occlusion)或擦除输入特征,并测量其对模型的影响作为输入的显著性。直观上,删除不重要的特征不会影响模型,而对于重要特征则相反。
2014ECCV《Visualizing and understanding convolutional networks》
这篇非常出名、引用量上万的文章本意不是要讲擦除的,而是对CNN的层特征进行分析,顺手做的……因为主要是讲CV的所以就不详细介绍了。
贴个图,对原始图像的遮挡和识别的变化,一目了然:
Jiwei Li等人,2017arxiv《Understanding neural networks through representation erasure》 PS:《Visualizing and understanding neural models in NLP》也是这个大佬写的。
这篇用擦除带来的结果变化反映要素的重要性,还做了最小反转预测的强化学习(略):
维度级别擦除(探究这些重要维度的值和词频的关系):
在许多被引用的论文中,无论是暗含的还是明示的,解释的目的都是揭示哪些输入单词是最终预测中最重要的单词。这可能是注意力计算每个输入一个权重的结果,因此必须根据这些输入来理解它。
最具有讽刺意味的是,有时解释性注意力是通过将其与基于梯度的度量进行比较来进行评估的,那么为什么我们不直接用这些显著性方法?
大棒下去,胡萝卜得跟上:注意力研究也是有价值的,只不过和可解释的关系不大。
纵观近年对注意力机制的研究,还是有许多有价值的工作涌现:
如果调整了解释的定义,例如,明确表达了不同的预期用户和不同的解释目标,则注意力可能会成为某些应用程序的有用解释。
既然你这么问了,答案一定是:没有最好,只有更好。
来自注意力的嘲讽:我虽然实力不如你,但长得比你好看啊!
注意力的可视化有很多工具,如下:
Vig在2019的《A Multiscale Visualization of Attention in the Transformer Model》提出的注意力可视化工具:
Hoover在2020ACL demo的《exBERT: A Visual Analysis Tool to Explore Learned Representations in Transformer Models》提出的exBERT工具:
此外,显著性方法还有一些模型中间过程的表示能力缺陷:
Abnar在2020《Quantifying attention flow in transformers》提出attention rollout和attention flow作为attention的近似,能更好地反映信息的流动:
于是有人提出了拓展的方法:
DeCao在EMNLP2020的《How do decisions emerge across layers in neural models? interpretation with differentiable masking》提出的DiffMask方法不仅揭示了模型知道哪些输入很重要,还揭示了重要信息在模型各层中的流动存储在哪一层:
显著性方法存在一些已知的问题,这里有一些非常有趣的结果。
首先是擦除方法的问题:
Hooker在NIPS2019的《A benchmark for interpretability methods in deep neural networks》提出,基于遮挡和擦除的方法以及基于擦除的评估的已知问题(Bach等,2015;DeYoung等,2020)是预测概率的变化可能是由于损坏的输入脱离训练数据的多样性——也就是说,概率的下降可以通过输入为OOD而不是由于缺少重要特征来解释。
其次是显著性方法对输入变化的脆弱性:
Kindersman的《The (un)reliability of saliency methods》(2017,挂在arxiv上没发表)提出显著性方法不满足输入不变性。
通过在输入中加入固定的向量(这部分不会对预测产生影响),梯度方法可能会带来归因错误的结果!仅仅把输入向量数值平移就可以让归因产生错误:
加个小猫试试:
最后,还有一个很大的限制:显著性方法的表达能力问题。
显然,基于token的显著性权重只能在非常狭义的意义上被称为解释。这里有一份积分梯度的拓展工作:
Janizek的《Explaining explanations: Axiomatic feature interactions for deep networks》(2020,挂在arxiv上没发表)拓展了IG到Integrated Hessians,通过指出重要特征之间的依赖关系,解释了成对特征的相互作用,可以克服重要性的平坦表示的某些局限性,但很难完全理解为什么深度非线性模型仅通过查看输入标记即可得出一定的预测。
本文总结了关于注意力是否是解释的辩论,并观察到解释的目的通常是确定哪些输入与预测最相关。输入显着性方法比注意力更具有忠实度,因而适合面向模型开发人员的解释。
笔者个人的一些结论:可解释方面目前还是以经验性的比较为主,缺少一个金标准;梯度的saliency map这一套在CV已经屡见不鲜了,但目前的解释水平还有待提高。
专知便捷查看
便捷下载,请关注专知公众号(点击上方蓝色专知关注)
后台回复“AES” 就可以获取《【万字长文】注意力机制可解释大论述》专知下载链接