论文标题:Self-Attention Attribution:Interpreting Information Interactions Inside Transformer
论文链接:https://arxiv.org/abs/2004.11207
论文来源:AAAI 2021
一、概述
- 概述
Transformer系列模型虽然获得了广泛的成功,但是它对于人来说仍然是黑盒的,因此有关Transformer的self-attention机制的可解释性研究也在同步进行。一些研究工作表明self-attention的注意力权重分布并非直接可解释的,同时一些研究也致力于将模型决策归因于输入的token,然而这些研究大多没有揭示模型的输入与模型的结构之间的信息交互。
本文提出了一种名为ATTATTR的自注意力归因(attribution)方法,用于解释Transformer内部的信息交互(information interaction),能够指示Transformer内部的信息流。本文的实验基于BERT模型进行,因为这是一种具有代表性的Transformer-based的模型。本文提出的方法是通用的,也可以应用于其他Transformer系列的模型。
本文主要内容如下:
①本文发现self-attention的注意力权重并不总是与它们对模型决策的贡献相关联,ATTATTR这种方法通过一种新的度量可以识别出Transformer内部的重要连接,并且本文提出了一种启发式的方法来构建自注意力归因树(self-attention attribution tree),能够有效地显示模型内部的信息流。
②ATTATTR也能够用来识别重要的注意力head,然后进行裁剪,这种裁剪的方法与泰勒展开方法(一种self-attention裁剪方法)取得的效果是差不多的。另外,本文还发现对于类似的任务来说,BERT的重要head甚至是一致的。
③最后,本文通过提取对模型决策贡献最大的pattern作为攻击模型的trigger,能够对模型进行有效的攻击使其性能大幅下降。
- 背景
- multi-head self-attention
- BERT
本文以BERT模型为例进行实验,注意BERT的输入会有两个特殊的token[CLS]
和[SEP]
,分别位于输入序列的开头和每个句子的结尾。BERT在微调阶段,会使用[CLS]
这个token的最后一层的embedding后连接一个softmax分类器的方式来完成分类任务。
二、方法
下图展示了BERT的一个head的注意力权重,可以观察到尽管这些权重仅来自一个head,但是这些注意力权重仍然是非常稠密的,这对我们通过这些权重直接理解token之间的交互是非常困难的,另外,尽管某些权重的数值比较大,这也不代表这对token对模型的决策是重要的:
attention score
下图展示了前面例子的归因得分,上述方法证明了注意力权重越大并不意味着会对模型决策作出更大的贡献,比如[SEP]
这个token和其他token的注意力权重是很大的,但是归因得分就很小,模型对于例子中的两个句子得出contradiction的结论主要依赖于“don't”和“I know”之间的连接,这是更具有可解释性的:
attribution score
三、实验
本文使用BERT-base-cased模型进行实验,并且应用以下四个下游任务数据集:
①MNLI:预测一个前提是否包含假设(entailment),是否与给定的假设相矛盾(contradiction),或两者皆非(neutral);
②RTE:另一个文本蕴含数据集;
③SST-2:预测给定句子的极性;
④MRPC:预测成对的句子是否语义等价,也是文本蕴含数据集。
- 有效性分析
本文根据每一层的归因得分和注意力权重对模型的head进行裁剪,这里的归因得分依照数据golden label的概率进行计算,下图展示了不同的裁剪方式对MNLI数据集准确率的影响:
有效性分析
对于上图的实验结果,需要注意以下几点:
①裁剪每层的前2个最高归因得分的head会造成一个显著的准确率下降;
②保留那些高归因得分的head(裁剪低归因得分的head)能够提高模型的准确率,最高能达到97%;
③即使仅保留两个最高归因得分的head,仍然能够使模型保持较好的性能;
④依据注意力权重对模型进行裁剪所表现出来的效果没有那么显著。
这个实验结果证明了本文提出的方法的有效性,至于如何计算一个head的归因得分,将在下面的小节进行介绍。
- 用例1:注意力头裁剪
先前的实验结果表明模型中只有一小部分head对模型的最终决策起作用,在这一小节主要介绍如何识别和裁剪不重要的head。
定义一个head的重要性评价指标为:
- 注意力头裁剪实验结果
实验过程是计算三种方法在200个保留数据集样本上的得分,得分低的head会被优先裁剪,下图展示了实验的结果:
实验
实验结果表明对比baseline的方法,ATTATTR是有效的,并且对比专门设计用来进行裁剪的基于泰勒展开的方法也可以与之媲美。
- 重要注意力头的普遍性
本文除了做实验识别重要的head以外,还调查了对于不同的数据集和任务重要的head是不是一致的。实验采用Pearson系数对两组数据集中head归因得分的相关性进行了测量,实验结果如下,图中的每个点代表同一个head在两个数据集上的归因得分:
实验
实验结果表明,只要任务是解决类似的问题,那么head的相关性会非常地高。这里的RTE,MPRC和MNLI数据集都是文本蕴含数据集,SST-2是情感分类数据集,同类数据集之间的Pearson系数非常高,不同类数据集之间就会比较低。
- 用例2:可视化Transformer内部的信息流
本文提出了一种启发式的方法来构建归因树,通过这种方法发现了Transformer内部的信息流,因此可以看到输入词之间的交互以及它们如何对最终的结果进行贡献,可以帮助我们理解Transformer倾向于捕捉什么样的依赖。
- 归因树
本文采用一种贪婪自顶向下的启发式算法来构建归因树,这样的归因树能够指示信息如何从输入的token流向最终的预测。
算法
例子
- 感受野
自我注意机制被认为具有捕获长期依赖的能力。为了更好地理解Transformer中的分层有效感受野,本文绘制了由归因树提取的交互的距离分布:
距离分布
实验表明模型的最后几层和第一层会更关注长程依赖,而第二层所关注的依赖是更加局部的。而且对于成对的句子输入(比如文本蕴含任务),模型更倾向于首先在每一个句子内进行encoding,然后匹配两个句子之间的交互。
- 用例3:对抗攻击
模型决策更多地归因于注意力连接和更大的归因分数。实验中观察到,模型倾向于过分强调某些单独的pattern来进行预测,而忽略了大部分的输入,因此本文决定采用这些over-confident的pattern来作为用于对抗入侵的trigger来攻击BERT。
实验中从不同的层里提取最大归因得分的注意力依赖,也就是,并且应用这些pattern作为对抗trigger。
举例来说,如下图,在原来的句子中 “floods-ice” 和“Iowa-Florida”对最终的预测“contradict”贡献最大,那么按照在原句子中的相对位置插入其他句子,可以让这些句子的预测结果从“neutral”或者“entailment”变成到“contradict”:
contradict
实验中从3000个输入样本中提取了最大归因得分的依赖连接作为trigger,每个trrigger少于5个token,在情感分类数据集上不会使用具有明显情感倾向的词作为trigger。实验结果如下:
对抗入侵