写在前面
通过Self-Attention和Co-Attention机制,Transformer在多个多模态下游任务中达到了SOTA的性能。这些注意模块也在其他计算机视觉任务中发挥了作用,包括目标检测和图像分割等任务。与只使用Self-Attention的Transformer不同,具有Co-Attention的Transformer需要并行考虑多个Attention Map,以突出模型输入与预测的相关性。
关于Self-Attention的可解释性,作者在另一篇CVPR论文[1]中进行了论述,本文可以说是CVPR论文的一个扩充版,在那篇论文中,作者主要阐述了Self-Attention的可解释性,在本文中作者对三种Attention方式的可解释性进行了阐述,分别为(i) pure self-attention, (ii) self-attention combined with co-attention (iii) encoder-decoder attention。
论文和代码地址
论文:https://arxiv.org/abs/2103.15679
代码:https://github.com/hila-chefer/Transformer-MM-Explainability
Motivation
目前Transformer被用在了各种CV、NLP、Multi-modal的任务当中,并达到了前所未有的性能。多模态任务中的Transformer通常需要融合多个模态的信息(比如文本和图像)。
对于多模态信息的处理,主要有两种方式,第一种是:首先对于文本和图像信息分别用Transformer Encoder和CNN进行特征提取,然后通过对比学习的损失函数,使得这两个模态同一类样本的特征能够尽可能相似,不同类样本的特征尽可能不相似(如上图所示)。
第二种是:将文本特征和图像特征concat之后,送入到Transformer结构中,如上图所示。
还有一类是不只包含Self-Attention机制的Transformer模型,模型通常接收来自一个模态的输入,并根据另一个模态产生输出(如上图所示)。这些模型通常被用来做目标检测、图像分割、机器翻译等生成任务。对于多模态信息的处理方式还有很多,相同点是这些结构都需要学习两个输入特征到输出的一个映射,这个映射包含了两种模式之间的相互作用。这些交互的模块通常采用的Attention-based模型。在Transformer中,除了Self-Attention,其他Attention的可解释性都还未被发掘。为了填补Transformer可解释性这部分的空白,作者提出了适用所有Transformer结构的可解释性方法。相比于现有的可解释性方法,本文的方法更易实现。
方法
本文的方法使用模型的注意层来为网络中输入模态之间的每个交互,生成相关性映射(relevancy map)(相比于原始的attention map,这个relevancy map更具有可解释性)。
首先和分别为文本和图像的token输入为像个模态关联的变量。多模态任务中通常包含四种交互关系:,,为文本和图像模态内的交互关系;,为图像和文本模态间的交互关系,表示图像token对每个文本token的影响,表示文本token对每个图像token的影响。为了构建模态内和模态间的交互关系,本文通过relevancy map来描述这种交互关系,,为模态内的可解释交互,,为图像和文本模态间的可解释交互关系。本文的方法就是通过计算和更新relevancy map,来表示Transformer中attention模块的可解释性。
3.1. Relevancy 初始化
在进行Attention操作之前,每个token都是独立的,所以首先需要对相关性映射(relevancy map)进行初始化,模态内的relevancy map,只是将对角线的元素设置为1,其他元素设置为0(也就是一个单位矩阵);对于模态间的relevancy map,将所有元素都设置为0(也就是刚开始,所有token之间都没关系)。
3.2. Relevancy更新规则
Transformer中的Attention计算方式如下:
其中Q、K、V同一个模态的信息时,就是Self-Attention,如下图(a)所示;如果K、V为上下文信息,那就是Co-Attention,如下图(b)所示。
在本文的方法中,采用了每个注意层的Attention Map来更新相关性映射。由于每一个Attention Map都是由h个head组成的,作者使用梯度来平均h个head(至于为什么不直接平均,还是乘上梯度之后再平均?作者在文中指出attention map每个head的重要性和相关性不同,因此简单的平均每个head的信息会导致扭曲整个Attention map的信息 )。Attention Map的计算如下所示:最终,对于Self-Attention中的Attention操作,作者采用了下面的规则来更新相关性映射矩阵:除了Self-Attention,作者提出了还有Co-Attention,由于Co-Attention在初始化的时候是全0的矩阵,所以采用上面的方式更新是不行的。因此,作者采用了另一种方式来更新Co-Attention的相关性映射矩阵:
3.3. Adaptation to attention types
第一种(a)为VisualBERT使用的纯Self-Attention的结构,这种结构只使用Self-Attention来建模两个模态的信息;第二种(b)为LXMERT的结构,采用了Self-Attention和Co-Attention结合的方式,这种结构通过co-attention模块来建模两个模态的信息;第三种(c)为DETR的结构,采用了encoder和decoder结合的方式,是一种生成模型的常用方式,一个模态信息输入,输出是根据另一个模态的信息得到。
实验
作者根据在上面提出的三个结构上,对比了先前的可解释性方法和本文方法的效果。
VisualBERT
上图为VisualBERT测试的结果,(a)图像token的负样本扰动(按重要性从低到高扰动),(b)图像token上的正样本扰动、(c)文本token上的负样本扰动,(d)文本token上的正样本扰动。对于负样本扰动,较大的AUC更好;对于正样本扰动,较小的AUC更好。可以看出本文的方法能够很好的衡量图像token和文本token在特定任务上的重要性。
LXMERT
上图为LXMERT上的测试结果,效果与VisualBERT相似,本文提出的方法能够很好的衡量图像token和文本token在特定任务上的重要性。
VQA
从上图可以看出,本文的方法相比于其他可解释方法,在可视化方面有非常大的优越性。
Segmentation
对于DETR结构,作者将本文方法和其他可解释方法的attention map可视化出来,发现本文的方法attention的区域基本就是物体的主体区域。
将本文的attention结果作为弱监督分割的结果,可以看出在performance远超过其他可解释性方法,尤其在大物体的性能提升上非常明显。
总结
Transformer在计算机视觉中扮演着越来越重要的角色,跨模态的Transformer也在各种下游任务中取得了非常好的performance。为了能够使得Transformer适应于各种下游任务,需要有对Transformer进行可解释性分析的方法。
而目前对Transformer进行可解释性分析的方法大多都是对Self-Attention进行可解释性分析,但是对于跨模态任务来说Co-Attention是一个更加重要的部分,本文作者提出的可解释方法能够对各种Transformer结构进行可解释性分析,并且通过实验证明了,本文的方法大大优于其他的可解释性方法。
参考文献
[1]. Chefer, Hila, Shir Gur, and Lior Wolf. "Transformer interpretability beyond attention visualization." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition . 2021.
Transformer等最新资讯,若已为CV君其他账号好友请直接私信。
在看,让更多人看到