论文标题:
The elephant in the interpretability room: Why use attention as explanation when we have saliency methods?
论文作者:
Jasmijn Bastings, Katja Filippova
论文链接:
https://arxiv.org/abs/2010.05607
动机
注意力机制(Attention Mechanism)作为机器学习,人工智能研究中一个里程碑式的研究成果,它能够根据需求选择最合适的输入,能够对齐两个序列之间的 token 关系,从而实现更好的效果,可以说注意力机制已经成为现在很多人工智能研究(NLP, CV)的标配。
随着大家对可解释性的需求越来越高,注意力机制也被用来实现对模型运行方式的可解释性分析,同时由于注意力机制拥有良好的可视化操作,因此大家都会说使用了注意力机制,提高了模型的可解释性,同时会用一些注意力权重分布的可视化来支持这一观点。
但注意力机制是否真的能够提供模型的可解释性,为什么要使用注意力作为模型可解释性研究的一个重要途径呢?为了回答这个问题,并深入研究注意力机制在可解释性研究中发挥的作用。就有了本文这个工作。
1.1 注意力的作用
要分析注意力对可解释性的作用,就要看注意力被用在可解释性上时的原因,相关文章中表述过他们更关注的地方在于输入中哪些内容对模型的预测性能更重要。因此,如果要使用这个狭义的可解释性定义时,那么注意力确实能够在方面发挥作用。
但这个定义与输入显著性方法研究的定义相吻合,那既然定义是吻合的,为什么不使用这些显著性方法要寻找输入中的重要部分呢?与此同时,利用注意力机制进行可解释性研究的大多数工作都会被批评没有定义什么是可解释性。
这是本文的一个出发点,接下来,针对注意力是否可以用于可解释,文本展示了相关工作。
1.2 注意力是否能用于可解释
为了更好的进行注意力机制争辩的分析,本文以一个非常简单的注意力例子进行分析,结构如下图。输入的序列首先通过 LSTM,然后在此基础上计算注意力在隐层状态上的权重分布,然后以这个注意力例子进行分析
针对注意力不能用于解释,这里主要是以下的几个工作:
- Jain 和 Wallace [1] 通过实验证明可以找到一组完全不同的注意力权重,但模型最后的输出是相同,从而证明了注意力是不能用于解释的。
- Serrano 和 Smith [2] 通过修改注意力权重发现模型中的注意力权重并不能识别出对输出最终的输入部分,证明注意力不能用于解释。
- Grimsley 等人 [3] 从因果推理的角度进行分析,他们认为如果可解释性的因果定义已经被提前定义了,那么通过定义的方式不能说注意力结果就是解释,这点涉及到因果推理的很多内容,这里就不再赘述。
为了反驳以上观点,说明注意力是可以用于解释的,主要列举了一下的一个工作
- Wiegreffe和Pinter [4] 通过反驳 [1] 中的实验设定,首先注意力机制需要跟整个模型联合起来运行才是有用的,单纯找到一个对抗分布是没有意义的,不能为了分布而找分布。于此同时,本文提出了一些实验方法,包括 uniform-weights baseline,expected variance, diagnose attention 等,通过这些实验发现能够通过一定的方法获取针对同一输出结果的不同注意力解释,因此注意力能够用于解释,但范围是受限的。
既然在一些工作上,注意力机制是能用于解释的,那是否是被正确利用了呢,本文也进行了相关的分析,Vashishth 等人 [5] 通过对 NMT 中的注意力机制进行分析,发现注意力机制在不同的任务上发挥的作用是不同的,因此能否用于可解释性的程度也是不同的,不能一概而论。
1.3 显著性方法
上一节对注意力是否是解释,是否能够用于解释进行进行了深入调研,正方反方观点都进行了分析。正如 motivation 中提到的那么样,如果根据狭义的可解释性定义:可解释性就是找到对输出最显著的输入部分,那么为什么不用显著性方法呢?为此,本节就介绍了几种显著性方法,这几种方法能够直接应用到任何一个基于神经网络的 NLP 方法。
- 基于梯度:主要分为以下三种;
利用梯度表示:
利用梯度与输入相乘的方法:
利用积分梯度的方法: - 基于传播:这里主要介绍了 layer-wise 相关传播的方法 [5];
- 基于遮挡:这个方法主要通过遮挡或者擦除输入特征中的部分特征,然后分析其对模型的影响,从而得出相关输入的显著性。因此这种类型的方法主要分为两种,基于遮挡的方法和基于擦除的方法,作者分别介绍了在 CV 领域的一篇文章和 NLP 领域一篇关于擦除方法的文章。
1.4 显著性 v.s. 注意力
本节中,作者首先亮明了一个观点:在可解释性研究中,应该更关注显著性方法。现在将可解释性局限于计算哪部分输入对输出更重要主要是因为注意力机制能够为每一个输入计算一个权重,也是因为这个原因,现在很多方法都使用注意力来进行可解释分析。
我们应该更关注显著性方法,如果可解释性的定义是计算输入的显著性的话。具体原因作者分别从忠诚度,覆盖率,高效性三个方面进行了分析。
那注意力在可解释性研究中就没有任何意义了么?本文同样不这么认为,本文认为深入探究注意力的作用依然是一个非常重要的目标,而且注意力能够为其他解释性研究提供参考。这些方向上已经有了很多研究。
另外,作者也部分为显著性方法就是最终解,还有其他的一些方法有待发掘,例如反事实分析等,于此同时,显著性方法也有一些缺陷,例如对模型中间过程表示能力的缺陷,对输入变化太敏感等问题,这些也是一些值得研究的方向。