阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering

草稿未完待续,,,
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
参考1
论文链接:Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
代码链接:https://github.com/bupt-cist/DFAF-for-VQA.pytorch

协同注意力: 问题引导图像,图像也引导问题,之前说的堆叠注意力网络就是仅使用了问题引导图像的注意力机制
自注意:阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
self-attention分为三个阶段,其中阶段1中的F是计算Q与每一个K的相似度得分的函数,阶段2中的SoftMax()归一化将阶段1中求得的得分处理成一个0~1之间的概率,而阶段3即是将相应的得分与相应的权重相乘再相加,即加权求和得到原Q增加了注意力机制的特征向量。其中SoftMax()值与V相乘的图示公式如下:
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering

bottom-up & top-down attention

一,介绍

近年来VQA的研究重点在两个方面:
一是关注模态之间的关系,比如双线性特征融合(Bilinear feature fusion),协同注意力(co-attention);
二是关注模态内部的关系,比如BERT算法。然而却从没有在一个统一的框架内共同研究模态内和模态间的关系,而这些关系大多被忽略了。作者提出了一种利用外部和内部模态信息流(在视觉和语言模态中动态传递信息)的多模态特征融合方法。

二,文章细读

DFAF整合了交叉模态自注意力(cross-modal self-attention)和交叉模态协同注意力(cross-modal co-attention),其流程主要由InterMAF(模态间注意流)和DyIntraMAF(动态模态内注意流)两个模块组成,多个这种DFAF块的堆叠可以帮助网络逐渐关注重要的图像区域、潜在的语义,获得更好的性能。阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
首先用Faster RCNN提取视觉特征和用GRU提取单词特征,然后两组特征通过全连接层转换成相同长度的向量,InterMAF模块在每一组视觉特征和单词特征之间传递信息流并且在每一个区域或者单词之间进行更新,该模块的输出则是DyIntraMAF的输入,DyIntraMAF模块在每个模态内中动态的传递信息流,在同一个模态内会通过残差连接对视觉特征和单词特征进行再次更新。一个InterMAF模块后接一个DyIntraMAF模块构成了提出方法DFAF的一个基本块,在特征更新的过程中可以通过特征连接或者残差连接堆叠多个块。
深度模态内或模态间信息流的训练可以采用随机梯度下降,另外作者使用了multi-head注意力,原始特征则会沿着通道维度分为不同的组,不同的组生成平行注意力在每个组内独立的更新视觉特征和单词特征。

1,Base visual and language feature extraction(基础视觉和语言的特征提取)

在这里插入图片描述
对于所给图片I,作者提取提取图像特征使用的是bottom-up & top-down attention mode,提取视觉区域特征用的Faster RCNN(在Visual Genome数据集上训练的)。每张图片提取100个区域候选框,与区域特征相连,将得到的区域视觉特征表示为R,共有μ个区域,第i个区域的特征为r-i,每个区域的长度为2048维,故R的维度为μ x 2048维;
对于所给问题Q,问题特征编码则采用GRU(输入为GLoVe词嵌入),每个问题Q都被截断或填充为14个单词,第j个词的特征表示为e-j,每个单词特征为1280维,将得到的问题特征表示为E,则E的长度为14 x 1280维。
R和E表示分别如下:
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering

其中的在这里插入图片描述和在这里插入图片描述是学习参数向量。

2,Inter-modality Attention Flow(模态间的注意流——InterMAF)

InterMAF模块首先捕捉视觉特征和单词特征的对彼此的重要性,然后根据学习到的重要权重,在两个模态之间传递信息流和合并特征。给定一个视觉区域特征和单词特征,首先计算他们之间的联合权重,每个视觉区域特征和单词特征都可以转换成query, key和value features,用R表示视觉区域(region)特征,用E表示单词特征(embedding),则视觉区域特征与单词特征的各自的Q、K、V可分别被表示为:阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
其中, RQ,RK, RV分别对应图像的query、key、value,它们的维度为μ x dim; EQ,EK, 和 EV分别是问题的query、key、value,它们的维度为14 x dim。dim表示两种模态的变换特征的共同尺度。Linear是一个全连接层,在这里插入图片描述是学习参数向量。
首先,图片的图片区域特征作为deconder中的Q,问题特征的每一个单词特征作为K,通过计算每一对图片区域特征RQ和单词特征EK的内积,得到将信息从单词特征聚合到每个视觉特征从视觉特征聚合到每个单词特征的原始注意权值,我们将该内积结果进行降维操作后使用SoftMax()进行归一化处理,降维处理(内积的值与隐藏特征空间的维数成正比,因此需要用隐藏维数的平方根进行归一化)。以InterMAFR←E注意力概率为例,每一行代表一个视觉区域与所有单词嵌入之间的注意权重。
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
其中EV和RV是未加权的信息流,Rupdate和Eupdate分别是经过两轮双向的模块间更新后的图片和问题的特征向量。
在获得更新后的视觉特征和单词特征后,我们将其与原始的视觉特征R和单词特征e连接起来。利用一个全连通层将连接起来的特征转换为输出特征,
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering

3.Dynamic Intra-modality Attention Flow(动态模态内信息流——DyInter-MAF)

参考2中的图像与问题之间的协同注意求彼此相似度,这里模态内的注意流采用的是self-attention。对于图像中区域到区域之间的相似度,某一个区域为Q,所有区域分别为K,求所有区域与该区域的相似度;对于问题中词与词之间的相似度,某一个词为Q,所有词分别为K,求所有词与该词的相似度。具体公式如下:
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
若是上述这种朴素的模态内信息流,只是单纯利用模态内的信息来估计region-to-region和word-to-word相似度,它所确定的区域与区域之间的关系永远都是一样的,词与词之间的关系也是永远一样的,所以有些很重要的关系只能通过来自另一模态中的信息来确定,例如,即使对于相同的输入图像,不同的视觉区域对之间的关系应该通过不同的问题来进行不同地加权。因此作者提出来一种动态的模态内注意流,用于基于另一模态的信息来计算模态关系的重要性。(也就是说,即使是模态内的自注意,也不纯粹是模块内的,而是动态的,模块间的)。下图只给出了其中一种情况,视觉模态以文本模态的约束为条件,在此基础上进行自我关注。阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
为了总结来自其他模态的条件信息,我们沿着对象索引维度平均汇集视觉区域特征,沿着单词索引维度平均汇集单词特征。然后,两种形态的平均汇集特征被转换成二维特征向量,以匹配查询的维度和关键特征R Q R_QR
Q 、R K R_KR K​ 、E Q E_QE Q 、E K E_KE K

。然后,每个模态的维度特征向量由sigmoid非线性函数σ()处理,以生成另一个模态的通道式调节门。
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
然后,来自两个模态的查询和关键特征被来自另一个模态的条件门调制。
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering

所以现在得到的求所有区域与该词区域的相似度和所有词与该词的相似度,用下列公式表示
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
最终得到的区域与词向量:
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
其中:阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
请注意,这里我们仅使关键和查询特征以另一个模态为条件,以在模态信息流中自适应地加权。在我们的消融研究中,我们观察到所提出的DyIntraMAF模块在很大程度上优于原始的IntraMAF模块。

3.4The Framework with Intra- and Inter-modality Attention Flow(模式内和模式间注意流的框架)

这里主要是介绍如何将两个流模块结合起来。整个模型结构就是前面模型所展示的那样,首先用Faster RCNN提取视觉特征和用GRU提取单词特征,然后两组特征通过全连接层转换成相同长度的向量,InterMAF模块在每一组视觉特征和单词特征之间传递信息流并且在每一个区域或者单词之间进行更新,该模块的输出则是DyIntraMAF的输入,DyIntraMAF模块在每个模态内中动态的传递信息流,在同一个模态内会通过残差连接对视觉特征和单词特征进行再次更新。一个InterMAF模块后接一个DyIntraMAF模块构成了提出方法DFAF的一个基本块,在特征更新的过程中可以通过特征连接或者残差连接堆叠多个块。
深度模态内或模态间信息流的训练可以采用随机梯度下降,另外作者使用了multi-head注意力,原始特征则会沿着通道维度分为不同的组,不同的组生成平行注意力在每个组内独立的更新视觉特征和单词特征。

Dynamic(动态)体现在何处???
首先,视觉区域特征R和问题区域特征E在整个模型中是在不断被更新着的,每经过一个模块都会被更新,这是动态之一;其次,对于相同的图片,不同的问题,门控出的区域(或单词)的比例都不同,这是动态之二.

注意流权重的可视化
阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
从上图中可以看到,对于相同的图片,问题不同,经过IntraMAF模块的图片不同区域的权重都是完全相同的!而经过DyIntraMAF模块后图片不同区域的权重全都不相同,这对于提高我们模型的性能意义极大!

模型比较
在这一部分中,作者将论文中的模型DFAF与一些经典的模型进行了一些比较,比较结果如下:阅读笔记Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering