作者 | 哈工大SCIR 顾宇轩 编辑 | 唐里
本文转自公众号哈工大SCIR,AI科技评论获授权转载,如需转载请联系原公众号。
参考来源
ACL 2019《Is Attention Interpretable?》
EMNLP 2019《Attention is Not Not Explanation》
本文将与您探讨注意力机制的可解释性问题。
序言
自2014年Bahdanau将Attention作为软对齐引入神经机器翻译以来,大量的自然语言处理工作都将其作为模型中一个提升性能的重要模块,大量的实验表明Attention机制是计算高效且效果显著的。随之而来的便是对其进行可解释性的探讨研究,人们希望能更好地了解其内在的机理来优化模型,另一方面,也有学者对其提出质疑。在此,作为SCIR实验室的准博士生,我基于自己对Attention机制的理解,写了这篇相关论文的心得笔记,希望能对各位读者有所启发,由于个人水平的限制,文中出现的谬误欢迎大家指正。
1. 注意力机制(Attention Mechanism)
Attention机制目前是自然语言处理领域最常采用的方法之一,因其能在一系列任务上对模型性能产生显著的提升,尤其是基于循环神经网络结构的seq-to-seq模型。再加上谷歌提出的完全基于Attention的Transformer模型[1]以及Bert模型[2]的大量使用,Attention机制几乎是可以写入教科书的技术。一方面,Attention在直觉上模拟了人类理解语言时会集中注意到一些关键词的行为,正如Bahdanau[3]将其作为软对齐引入神经机器翻译那样。另一方面,多年来大量的实验表明Attention确实是一个可行的高效的提升模型性能的方法。因此,进一步去挖掘这一机制内在的原理,解释其有效的原因并提供证明是一个很有价值的研究方向。
Attention机制经过长时间的发展,虽然不同论文里的实现方法可能各不一样,但是基本上都遵循着同一个范式。其中包含三个成分:
对应的公式为:
其中值Value往往是上一层的输出,一般保持不变,其余部分例如键,查询,以及相似度函数往往实现方法都各不相同。这里我们先介绍Bahdanau[3]和Yang[7]实现的Attention结构,因为之后Serrano[4]和Jain[5]进行可解释性探索的时候也是以此为基础。
Attention的公式如下:
(作为Value)是上一层的在序列第i个位置的输出张量,如果上一层是双向RNN结构则
;
是第i个位置的键Key,由值Value通过一层全连接层计算得到;
是这一个Attention层的查询Query,随机初始化,在训练的过程中同步更新,如果Attention并不单独成层而是搭建在解码器上,则
与编码阶段对应位置的输出相关;相似度函数是矩阵点积,计算得到的
即是Attention权重,
是Attention层的输出。
其核心的思路如下:
这是最原始的Attention的形式,对其可解释性的实验测试也是在这一模型的基础上进行的。
2. 可解释性的定义
可解释性的概念上的共识基本可以这样描述:如果一个模型是可解释的,人是可以理解这个模型的,分为两个方面,一是模型对人是透明(transparency)[9]的,可以在模型对具体任务训练之前就预测到对应的参数以及模型决策,二是模型做出一个决策之后,人类可以理解这一决策的原因。也有一些其他角度的定义,例如:可解释意味着可以人为地重建模型进行决策的过程。
具体对于Attention模型的可解释性,大体上能细化为:
3. 具体论证
对于不可解释性,Serrano[4]和Jain[5]各自提出了一些实验与论证,两人的工作有重叠也有互补,前者的工作探索的层次比较浅,只考虑了Attention层的权重本身是否与对应位置的输入正相关,采用的手段是中间表示擦除,即不断地使一些权重失效来观察模型的变化,文章主要是在对不同的擦除方式进行探索,后者的工作稍微深层一点,不仅探索了删去关键权重对模型的影响,还引入了构造对抗Attention权重的思想,测试模型的变化。
中间表示擦除考虑的是一种比较浅层的对Attention的理解,主要逻辑在于越重要的权重对输出结果的影响越大,将它置零就会对结果有直接的影响。
首先引入评价指标,即权重和输出结果各自的变化有多少:
其
和
为两个不同的输出结果分布。
其中
和
为两个不同的分布,可以是输出结果也可以是Attention权重,
为Kullback-Leibler Divergence。
具体的实现方式如图1所示,模型分为两个部分,第一个部分是嵌入和编码部分,例如一个全连接层实现词嵌入再用一层双向LSTM实现编码,实验中具体使用的多个模型各不相同。第二个是解码部分,将Attention层得到的输出张量解码成具体任务需要的结果,在文本分类任务上就是一个全连接层实现的维度变换。需要注意的是,这里Attention层并不是像seq-to-seq模型那样作用在解码器上的,而是作为一个独立的层来进行测试。
图1. 中间表示擦除的整体模型
整个模型运行两次,第一次正常输入输出,保留得到的结果,第二次将Attention层上选中擦除的权重置为0,重新用Softmax归一化权重,继续之后的流程得到结果,与第一次得到的数据计算TVD指标。在Attention层上擦除而不是在输入端擦除是为了将其影响与前置的编码部分隔离。另外,这里renormalizing的目的在于当模型置零了部分高权重的参数之后会导致Attention层输出的张量趋近于0,而这是模型在训练过程中没有遇到过的情况,进而会导致模型的决策行为不可控。
Serrano[4]设计的实验选用的是文本分类任务,采用了四种数据集,如图2所示,同时也设计了四种模型互相为对照进行测试:
图2. 四种文本分类数据集
图3. 分别使用BiRNN和CNN作为编码部分的两种Hierarchical Attention Network结构
实验主要有两个模块,单一权重置零和一组权重置零,区别在于前者测试的是擦除最高权重对应的中间表示之后整个模型输出结果的变化大小,后者测试的是为了改变模型的最终决策需要擦除多少中间表示以及如何擦除,进而从实验数据中找到可解释性的依据。
Single Attention Weight's Importance 首先Attention权重最高的中间表示擦除,用图1展示的流程计算正常结果和擦除之后结果的JSD指标
,其中
是正常结果的分布,
是擦除最高权重对应位置
的中间表示之后的结果分布。为了检验这个距离到底有多少,重新随机选择一个位置
,用同样的流程擦除其中间表示,得到对应的JSD指标
,此时我们可以使用
进行比较。直觉上来说,如果权重高的项确实是更重要的,那么这个公式应该是恒为正的,并且置零的两个权重大小差距
越大,
的值也应该越大。作者在文中展示的图表如图4左侧所示,横坐标是两个权重的差值,纵坐标是
的值,作者阐述得到的数据中几乎没有为负的结果,就算有也都趋近于0,另外随着两个权重差值的增长,模型输出结果分布的变化程度也相应增长,但是对此作者认为“即使两个权重之间的差值达到了0.4(权重满足求和归一化)这样大的程度,大部分正的
的值也依然十分接近0”,进而初步认为Attention机制有和直觉相悖的现象。
但是从文章附录中能找到无编码层非层次模型的结果如图4右侧所示,所谓的变化程度不相关问题其实并没有那么严重,也就是说在这一组数据下,作者的论断其实并不严谨,文中提出了一种假设是编码层给每个位置的token进行编码时会包含有上下文的信息,也就是说信息量已经经历过一次类似平摊的操作,编码层输出的每一个token或多或少都包含有需要注意的信息,这样Attention层的权重影响反而被弱化了。当然文中并没有进行实验去验证这一假设。
图4. 基于使用BiRNN的层次模型和基于无编码层的非层次模型的结果对比
之后Serrano[4]又设计了一组实验来加强对单一擦除操作影响的探讨,使用的评价指标是模型决策翻转的概率,即分别擦除最高权重对应位置
和随机选择位置
的中间表示之后,模型决策行为翻转的情况,得到实验数据如图5所示,其中橘色区域为r导致翻转而
没有,蓝色区域相反,但是不管怎么样,大部分的情况都是不翻转模型决策,意味着这个实验其实并没什么用,或者进一步说,单纯地擦除一个中间表示并不会影响Attention层的鲁棒性,尤其是有上下文相关的编码器存在时。
图5. 模型决策翻转的情况
Jain[5]也设计了一组leave-one-out的实验,使用的模型框架与Serrano[4]的相似,不过数据集有所增加。涉及到文本分类,问答以及自然语言推断任务, 数据集如图6所示,其中文本分类任务都被修改成了二分类任务来简化对模型的要求。
图6. 文本分类,问答以及自然语言推断数据集
Jain[5]认为模型学到的Attention权重应该要与特征表示的重要度评价指标相一致,进行比较的两个评价指标分别是剔除不同位置中间表示之后模型输出结果和原始输出结果的一组TVD以及对每个位置进行梯度回传而得到的一组梯度值,前者的合理性在于如果剔除的是重要的中间表示,那么模型决策的结果变化会比较大,从而对应的TVD值大,后者则是梯度值与模型进行决策的侧重相关。将这两个指标分别与Attention权重计算JSD,得到对应的分布如图7所示,这里只展示了梯度这一指标的数据,其中JSD被转换成相关度,0表示两者毫不相关,1表示完全一致,另外一个指标的数据也类似,就不赘述,基本上而言,单纯地擦除一个中间表示进行的实验并不能作为一个有力的论据去证明Attention是否可解释。
图7. Attention分布与梯度分布的相关度
Importance的想法是找到一个能使模型决策翻转的最小中间表示擦除集合,如果这个集合对应位置的Attention权重就是最大的那部分,则表示Attention权重对中间表示的重要程度的排序是合理的。作者提出了这样一个流程来验证:
不过这里存在的问题是想要找到一个这样的真子集需要指数级别的时间复杂度,几乎是不可实现的,只能放宽要求,找到一个任意的更小的集合即可。作者设计了三种另外的排序方案,尝试是否可以从大到小依次将权重置零到翻转模型的决策时,需要的集合元素比用Attention权重排序的方案更少。三种排序方案如下:
这三种候选的排序并不是为了去找到一个Golden-Standard的擦除组合,而是为了去和Attention权重形成的排序比较。此外还有一些数据项需要抛弃来防止破坏实验效果,例如,有些情况下哪怕擦除到只剩一个中间表示,模型的决策都不会翻转;或者输入序列长度本身就为1,没法排序。实验的结果如图8所示,其中每一个矩形表示数据点的取值范围,矩形中的横线表示数据的均值,如果没有标示横线则表明均值趋近于1。大部分情况下,随机排序的效果远远差于其余三种方法,另外三种排序的数据范围会有重叠,但是在均值上的表现一般都是梯度值乘上Attention权重最好,按梯度值排序其次,按照Attention权重排序效果最差。
图8. 不同排序规则下使模型进行决策翻转的Attention权重置零的比例
作者得到的结论是Attention并未最大化描述模型的决策行为,以Attention权重作为依据是有效但不是最优的。不过这里存在的问题是将Attention权重置零和模型决策翻转的相关性只是一个直觉上的假设,并不是一个强的先验或公理。
Jain[5]认为Attention权重的变化应该对模型预测的结果产生对应的影响,这一想法和模型决策的翻转有相似之处,不过区别在于这里想做到的是通过构造一组反常识的权重分布来欺骗模型作出相同的决策,进而证明Attention机制是不可靠的。
作者想要构造的对抗效果如图9所示,展示的是一个负面评价的样例,左侧的是模型学到的原始权重,Attention层的最大权重对应的单词是waste,其次是asking,分类器给出的结果是0.01(0表示负面,1表示正面,0.5表示中立),这与人类判断句子情感极性时的关注点不谋而合。而右侧是构造出来的对抗权重,最大权重对应的单词是was,其次是myself,这样反常识的Attention方式却能让分类器给出相同的结果。
图9. 文本情感分析样例
作者设计了两种构造方式来进行实验。第一种是直接简单地随机打乱原始Attention权重的位置,另一种是设计一个目标函数来训练出模型结果分布基本相同而Attention权重分布尽可能不同的对抗权重。
Attention Permutation 随机打乱Attention权重,观察模型输出结果的变化,用TVD指标来评价变化程度。由于随机性的问题,再加上计算复杂度限制,每个样例实验时只随机100组权重,分别计算TVD指标后取中位数来进行评价。从图10可以看到,这是一个heatmap,横坐标是模型输出变化程度的中位数,纵坐标是原始Attention权重的最大值,不同的颜色代表不同的类别,其中作者按照Attention最大权重范围来划分是想验证是否可以只需要少量特征就能解释一个输出结果。作者以SST数据集作为标准,认为打乱Attention对模型对输出结果影响不大。但是这个实验的结论应该是有待商榷的,作者单纯地将实验结果不一致的问题归咎于数据集,像Diabetes数据集中只需要几个关键特征就能对结果起决定性作用,而实际上在多个数据集展现出不同甚至完全相反结果的情况下选择一个与自己期望一致的数据集作为标准是有失偏颇的,至少在不经过深入研究和实验的情况下妄下结论不太可取。
图10. 随机打乱权重后模型输出结果的变化
Adversarial Attention 作者重点进行的实验是构建一个生成对抗权重的方法,目的是显式地找到一个或一组尽可能与原始的Attention权重不同的权重分布并且能有效地保证模型预测结果不变。构造方法的数学化表达如下所示:
其中
表示一个确切定义的小,即使用构造出来的权重让模型进行的决策和使用原始权重得到结果的TVD距离所能达到的最大值,
在情感分类任务上是0.01,在问答任务上是0.05(因为问答任务的输出向量空间更大,较小的扰动就会产生较大的TVD距离)。
是原始Attention权重,
是使用原始权重得到的模型结果。
表示的是第i组构造出来的权重分布,
是使用第i组构造权重得到的模型结果。优化目标是得到杫组生成的Attention权重,使得在满足每组权重让模型产生的结果与原始结果的TVD距离不超过
的前提下,最大化每组权重和原始权重以及每组权重各自之间的JS距离。具体实现的时候优化目标是
,其中λ是超参数,训练时被设置为500。
图11展示了各个数据集下构造出的权重分布和原始权重分布的最大JS距离,其中纵坐标表示的是其对应的数量比例,由于实验只选取了数据集中的一部分样例进行,故而柱状图的每一项求和不一定为1。颜色同样是为了区分不同的分类结果。值得注意的是,JS距离这个指标本身是有上界的,两个完全不相同分布的JSD指标最多只能达到0.69,而从数据中可以看出,每个数据集都可以构造出大量与原始Attention权重分布距离接近上界的分布,同时让模型输出的结果变化程度TVD指标在
以内。这意味着Attention的权重是可以被轻易构造成完全反常识反直觉的而不影响结果,作者认为这是证明Attention机制不可解释的关键性证据。
图11. 满足约束的JS距离分布柱状图
作者继续考虑最大Attention权重值(目的在于考虑特征有效程度的影响,即最大权重越大的模型越关注某些特征)和能构造的对抗权重的最大JS距离之间的关系,直觉上来说,如果原始的Attention权重分布越陡峭,那么产生有效(JSD值大)的对抗权重的难度也相应增加。如图12所示,这同样也是一个heatmap图,其中横坐标是最大的JS距离,纵坐标是最大的原始Attention权重。作者认为,尽管确实有之前所说的趋势,但不可否认的是,确实在每个数据集中都存在着很多原始Attention权重高而仍然能构造出JS距离大的对抗权重的样例,也就是说,一组特定的特征能完全影响结果这件事是misleading的。
图12. JS距离和最大原始Attention权重分布之间的关系
简单总结一下以上的几个结论,Serrano[4]围绕着中间表示擦除设计了多组实验,观察模型决策的变化,得到的结论是:‘Attention does not necessarily correspond to importance.’,因为实验中Attention常常无法成功地识别能影响模型决策的最重要的中间表示。另外,有一个比较重要但是没有经过实验验证的小猜想:‘Attention magnitudes do seem more helpful i uncontextualized cases.’,也就是说,可能是上下文相关的编码器导致了Attention机制难以解释,但是作者并未对此进行深入研究。
Jain[5]则基于Attention对模型的transparency[9]贡献程度提出了两个问题:
给出的答案如下:
这一部分的标题是Not Not Explanation,是对之前关于Attention机制不可解释论证的反驳,而不是证明了Attention可解释,这里主要参考了Wiegreffe[6]对Jain[5]的反驳。Wiegreffe[6]主要给出了两个理由:
作者设计了四组对照实验来进行反驳,可以参照图13,右侧是使用的模型,和之前介绍的模型一致,都有嵌入层编码层和独立的Attention层,任务也是文本分类任务。左侧对应的是各个实验涉及的范围,J&W是Jain[5]的实验,只涉及到修改Attention权重,需要注意的是,图中的Attention Parameters表示的是Attention层训练的参数,最后得到的α权重是由其计算出来的。§3.2是Wiegreffe[6]在其论文里第3.2节设计的实验,大括号表示的是各个实验涉及的模型层次,从右到左四个实验分别为:
图13. 使用的模型结果和对照实验部分
Uniform as Adversary 这部分实验的初衷是验证Attention机制在各个数据集上是否有使用的必要,因为如果任务本身太过简单,不需要Attention也能有很好的效果,那这组数据就不具备说服力。相反,如果Attention是必要的,那么将其去除会导致模型性能大幅度下降。实验设计很简单,直接将Attention权重设置为平均值并冻结,只训练其余部分,所有从编码层传入的中间表示直接计算平均作为Attention层的输出。得到的文本分类F1指标如图14,其中最左侧是Jain[5]给出的结果,中间是Wiegreffe[6]复现的结果,最右侧是这次实验得到的结果。直观上可以看到,以上大部分数据集在使用Attention之后效果提升其实并不显著,尤其是后两个数据集,几乎是毫无增长。对此作者总结为‘Attention is not explanation if you don't need it.’。
图14. 文本分类任务的F1指标
Variance with a Model 作者使用随机种子重新初始化并训练模型,得到不同的Attention权重,这些权重被视为是正常的权重,也就是只是被噪音干扰而不是人为干预的非对抗权重,将其与原始权重的分布计算JSD指标就可以得到正常权重的baseline,超过这一基准的权重都是不正常的权重。如图15所示,这与之前的heatmap一样,横坐标是JS距离,纵坐标是最大Attention权重范围。这是一组对比图,从a到d都是用随机种子生成出来的各个数据集上的baseline,e和f是Jain[5]的对抗权重实验数据,可以发现,SST数据集上生成权重与原始权重之间的JSD距离远超baseline。这意味着人工构造的对抗数据确实是不正常的,远远大于噪音的程度,这一结果其实和上一个实验的现象是不谋而合的,Attention起到的作用越小,其权重的分布就越不可预测,但是到这里为止还只是理论上的探讨,并没有确切的数据去解释构造出来的Attention权重到底是什么情况。
图15. 基于随机种子初始化训练得到的权重分布与对抗权重分布到原始分布的JS距离比较
Diagnosing Attention Distribution by Guiding Simpler Models 这部分的模型与之前有所不同,这里希望能更精准地检验Attention权重分布,消除上下文相关结构的影响,故而将原先使用的LSTM编码层剔除,只使用一个MLP来完成从嵌入层到分类结果的仿射变换,之后直接使用预设的不训练的Attention权重,加权求和得到模型决策结果,具体模型如图16所示。作者在此基础上设计了四种对照实验:
图16. 使用预设Attention权重的模型
四组对照实验的结果如图17所示,使用原始Attention权重来替换随MLP一起训练的权重模型效果会得到提升,另外在第一个实验中Attention权重意义较大的数据集上,对抗权重的效果就远低于原始权重,也就是说,Attention机制编码的token重要度信息不是模型独立的,在同样的数据集上可以传递给其他模型使用,但构造出来的对抗权重并不是找到了数据的额外信息而只是利用了特定模型的漏洞(模型能力高于任务的要求)。
图17. 四组对照实验得到的F1指标
Train an Adversary 这里是对抗权重具体的生成模型,与Jain[5]提出的模型区别主要在于损失函数:
,其中
是原始权重的模型,
是对抗权重的模型。从图18可以看到,确实能够得到效果不错的对抗权重,但是在上一个实验中也证明了这些权重只是钻了模型的空子而已,并不是发现了更重要的信息。
图18. 对抗权重的F1指标等
4. 结论
除此之外,还有很多问题仅仅被抛出而未进行探索:
除此以外,Serrano[4]也提出了一些展望,目前而言研究还局限在基于Argmax的重要度上,大家还只考虑Attention权重对模型的最终决策结果的影响,但是这并不是全部,因为还可能存在某一个特征会让某一类别出现的概率下降这种情况,也就是说输出的Softmax函数中的每一项都有研究价值,并不仅仅是那个作为结果的概率最大项。
最后,我们还是期待一下12月截稿的ACL2020能给我们带来哪些新的进展吧。
参考文献
[1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. Advances in neural information processing systems, pp. 5998-6008.
[2] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2019. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), pp. 4171-4186.
[3] Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. 2015. Neural machine translation by jointly learning to align and translate. In Proceedings of the International Conference on Learning Representations.
[4] Sofia Serrano, and Noah A. Smith. 2019. Is Attention Interpretable. arXiv preprint arXiv:1906.03731.
[5] Sarthak Jain and Byron C. Wallace. 2019. Attention is not Explanation. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers).
[6] Sarah Wiegreffe, and Yuval Pinter. 2019. Attention is not not Explanation. arXiv preprint arXiv:1908.04626.
[7] Zichao Yang, Diyi Yang, Chris Dyer, Xiaodong He, Alex Smola, and Eduard Hovy. 2016. Hierarchical attention networks for document classification. In Proceedings of the Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies.
[8] Yoon Kim. 2014. Convolutional neural networks for sentence classification. In Proceedings of the Conference on Empirical Methods in Natural Language Processing.
[9] Zachary C Lipton. 2016. The mythos of model interpretability. arXiv preprint arXiv:1606.03490.