本文是针对上面提到的这几篇文章的学习笔记,仅供自己总结重要观点。建议读者先去阅读上面提到的文章~

注意力机制是什么? LSTM长短期注意力机制,transformer注意力机制。这里讲的注意力机制是transform提出的范式。

CBAM注意力机制放在CNN的什么层 注意力机制与lstm_深度学习


其中包含三个成分:

  • Key(键) 与值相对应同时又用来与查询计算相似度作为Attention选取的依据
  • Query(查询) 一次执行Attention时的查询
  • Value(值) 被注意并选取的数据

Attention机制出现之初就凭借着类似人类观察语句、图片一样,会更加关注对于输入中哪些内容对于模型的预测性能更加重要,而受到重视(当然效果也是真的好)。各种实验证明,注意力机制产生的权重确实和人类的观察一样,会给关键字更高的权重。因此很多注意力机制相关论文会直接在简介中写到“使用了注意力机制,提高了模型的可解释性”。

那么就自然而然引发一个问题:可解释性是什么意思?

直观上来说,视觉领域的可解释性体现在卷积层特征上、不同类别目标、受到特征层上不同区域的贡献度程度不同。针对特定一个目标类别来说,如果可视化之后,某个特征层的贡献权重确实集中在正确的地方,那么我们认为卷积层确实抽取到了正确的语义特征,也就认为这个模型学习的好,是可以解释的。如下图所示,针对目标狗狗,确实集中在狗头部分,对于目标猫猫,确实集中在猫猫全身。

CBAM注意力机制放在CNN的什么层 注意力机制与lstm_人工智能_02


对于NLP来说,浅层的可解释性就是对于一个阅读理解或者分类任务来说,注意力机制给出的每个word的权重符合关键字权重高的模式,则认为和人类的理解一致,认为是可解释的。(当然这只是我自己之前的理解,不能说错,但是不全面)

学术界给出的可解释性的概念上的共识基本可以这样描述:如果一个模型是可解释的,人是可以理解这个模型的,分为两个方面,一是模型对人是透明(transparency)[9]的,可以在模型对具体任务训练之前就预测到对应的参数以及模型决策,二是模型做出一个决策之后,人类可以理解这一决策的原因。也有一些其他角度的定义,例如:可解释意味着可以人为地重建模型进行决策的过程。

总的来说可以归纳为两点:

  1. Attention权重的高低应该与对应位置信息的重要程度正相关
  2. 高权重的输入单元对于输出结果有决定性作

Attention在直觉上模拟了人类理解语言时会集中注意到一些关键词的行为。将可解释性局限于计算哪部分输入对输出更重要主要是因为注意力机制能够为每一个输入计算一个权重,从这个角度来说,注意力机制是可解释的。也就是上面提到的1是满足的。

给出的权重越大,一定对输出的结果影响越大,这点存在争议。论文《Is Attention Interpretable》,《Attention is Not Explanation》和论文《Attention is Not Not Explanation》分别进行了实验。前两个论文主张注意力机制的高权重对于结果并没有明显的意义,且可以人为设计大量不同分布(乃至语义相反)的权重获得和原始权重相同的最终结果。这也就意味着权重是不可解释性。后者主要是反驳前两者的实验不严谨,但是也没有证明attention可解释性的2号结论是否是正确的。三篇论文尤其是后者的反驳思路值得好好看一下。

ROUND1 第一轮实验的答辩双方观点

1.1 认为不可解释的正方观点:

CBAM注意力机制放在CNN的什么层 注意力机制与lstm_CBAM注意力机制放在CNN的什么层_03


实验模型结构如上图所示,输入sentence,经过一个ensemble和LSTM编码的结果输入attention机制得到权重A,进入子任务得到最终的结果ya;

  1. 擦除其中权重A最高值,进入子任务得到最终结果yb;
  2. 随机删除权重A的一个权重值,进入子任务得到最终结果yc;
  3. 计算yb和ya的分布差异JS_B(这里不考究公式细节,只需要知道JS表示两个分布的差异程度,具体可以看最上面的文章1),计算yc和ya的分布差异JS_C

如果假设权重越大对影响越大成立,那么显然需要满足两个条件:

  • JS_B-JS_C应该永远为正;
  • JS的差异程度随着最大权重值的增大而增大。

实际实验结果是,确实是为正,但是2满足的没有那么明显。

1.2 反方认为实验存在问题

编码层给每个位置的token进行编码时会包含有上下文的信息,也就是说信息量已经经历过一次分配的操作,编码层输出的每一个token或多或少都包含全局中需要注意的信息,这样Attention层的权重影响反而被弱化了。

ROUND2 第二轮实验的答辩双方观点

2.1 认为不可解释的正方实验和结论:

在文本分类,问答以及自然语言推断任务等多个任务进行和round1类似模型框架进行实验,这次实验分为下面几个步骤:

  1. 将权重排序之后依次擦除,观察需要擦除多少比率的权重值之后,结果会翻转;
  2. 将权重的反向传播的梯度值排序之后,依次擦除梯度值从高到低的对应的权重,观察需要擦除多少比率的权重值之后,结果会翻转;
  3. 将权重按照权重值和梯度值相乘,排序之后,依次擦除乘积值从高到低的对应的权重,观察需要擦除多少比率的权重值之后,结果会翻转;
  4. 随机擦除权重,观察需要擦除多少比率的权重值之后,结果会翻转。

这个实验的前提假设是,如果权重和特征对结果的重要性正相关,那么1的比率应该最小,也就是少部分高权重的token主要的影响最终结果;2表示的含义是梯度值和模型的决策的相关度。
最终的实验表明,3优于2优于1优于4.

3.2 反方认为实验存在问题:

  • 考虑到每个token本身是一个获得了全局信息高维表示,且上下文编码系统的存在。实验的假定:权重越大表示对该位置的原始元素(word)影响越大,权重为0表示没有影响。这个假设本身就是直觉上的。
  • Attention Distribution is not a Primitive. Attention权重分布不是独立存在的,由于经历了前向传播和反向传播的整个过程,Attention层的参数是无法同整个模型隔离开的,不然就失去了实际的意义。

ROUND3 第三轮实验的答辩双方观点

3.1 认为不可解释的正方实验和结论:

实验依旧采用上面的模型结构和任务。
正方认为 如果可以轻易的构造很多与训练结果的权重分布尽量不同的权重分布,且这些权重分布也可以保证预测结果不变。这样就证明了权重值分布并不能代表对应位置的token的重要程度。

实验结果证明是可以被轻易构造成完全反常识反直觉的分布而不影响预测结果。也就证明了权重并不能作为重要性进行解释。

3.2 反方认为实验存在问题:

  1. Existence does not Entail Exclusivity. Attention分布的存在并不蕴含着排他性,Attention只是提供一个解释而不是提供唯一的解释。尤其是当中间表示的向量维度很大而输出结果的类别很少时,降维的映射函数很容易就有较大的灵活性。
  2. 反方设计了一个实验: 如果一个任务,当固定住attention层不训练,而只训练其它层,就可以达到和采用attention一起训练一样的效果,那么就这个任务来说,采用attention可以说是杀鸡用牛刀。Attention is Not Not Explanation论文采用实验证明了Attention is Not Explanation论文中的任务如果固定attention层不训练,其结果指标几乎没有跌落。那么对于这样的任务来说,attention起到的作用很小,其内部的权重分布也就越大不可预测。(当然我们还是不知道权重的含义)
  3. 反方通过另一个实验证明了正方构造出来的分布(尤其是那些和训练出来的分布语义相反的分布)虽然在当前某个任务上可以得到同样的预测结果,但是构造出来的对抗权重并不是找到了数据的额外信息而只是利用了特定模型的漏洞(模型能力高于任务的要求)。

最后的一点小遗留

最后的最后:关于可解释性的定义本身就没有官方统一的口径,因此目前确实没有什么结论性的证明可以证实注意力机智和可解释性之间的直接关系。最后发现一篇比较偏理论的论文论NLP可解释的评估:什么才是“好”的解释?,这篇文章的一个结论“可解释的评估包含似然性和忠实性的评估,而人的参与只会把评估变为似然性评估,对证明模型具有真正的可解释能力——即忠实性方面毫无用处。”很真实。