Transformer Interpretability Beyond Attention Visualization

今天分享的论文是新发表在 CVPR2021 上的,作者用 transformer 代替了传统的卷积网络 CNN。因为 transformer在 NLP 领域有着相当高的地位,感觉之后对于 NLP 和 CV 的结合操作有着很好的前途。

Abstract

自注意力机制(尤其是 transformers)在文字处理领域有着主导地位,并且在 CV 领域也变得越来越流行。目前的方法为了得到图像中可以导致正确分类的部分,要么是使用注意力映射或者在注意力图上采用启发式传播(heuristic propagation along the attention maps)

作者提出了一种对 Transformer 网络计算相关性的方法,该方法可以基于泰勒展开(Taylor decomposition proinciple)分配局部关联,之后将这种局部关联沿着整个网络进行传播,包括注意力层和跳跃链接(skip connection)。

该方法可以保持各层之间的总体相关性。

Introduction

Transformer 的主要构件模块是自我注意力层,它给每两个 token 分配成对的注意力值。在 NLP 中这个 token 可以是一个单词或者一个单词的一部分,而在 CV 中则可以认为是一个 patch(一般是 CNN 产生的一组结果,不经过全连接层)。有两种应用,一个是仅仅通过一个注意力层产生一个关联分数;另一种是合并多层,简单的平均每个 token 的注意力值。但是这样会减弱每一个 token 的记号并且没有考虑到每一层有每一层的作用(更深的层包含更多的语义学特征,但是在每次使用自我注意力机制时,每一个 token 都会累积额外的上下文信息 [这里我没太看懂,可能是因为我对 Transformer 了解的太少了,之后会专门去读])。

这篇论文延续了分配相关度并传播它的思想,如此在各个层之间相关性的总和能够一直维持。

Transformer 网络十分依赖跳跃链接和注意力操作,两者都包含了两个激活映射的混合。并且 Transformer 使用了非线性映射而不是 Relu,因此会产生正负的特征值(Relu 只有正的),而因为有负的特征值,如果不小心处理,跳跃链接会导致数值问题。因为自我注意力机制的两个操作对象(operands)是不同维度的,因此传统的正向传播经过这些操作对象时,相关性的整体性会遭到破坏。因此两者都有相当大的挑战。


很多 CV 中的可解释的方法很多不是特定于类的,也就是不管试图可视化的类是什么都会返回相同的东西,哪怕是包含多个对象的图像。而那些特定于类的信号,特别是那些一直反向传播到输入的,经常会被图像的显著区域模糊掉(blurred by the salient regions of image)。一些方法通过不让这些信号传播到低层,一些方法对比不同的类来强调这些区别。作者则提出了一种基于类的分类方法(目前还没有详细讲,后面补充)。