Dynamic Fusion with Intra- and Inter-modality Attention Flow for Visual Question Answering
文章目录
-
1介绍
-
- 1.1 介绍各种融合模型的发展
- 1.2 介绍提出的DFAF模型
- 1.3 介绍DFAF模型创新点
-
2 相关工作
-
3 Dynamic Fusion with Intra- and Inter-modality Attention Flow for VQA
-
- 3.1 综述
- 3.2 基于视觉和语言特征提取
- 3.3 模态间注意流
- 3.4 动态模态内注意流
- 3.5 模态内和模态间注意流框架
- 3.6 答案预测层和损失函数
-
4 实验
-
- 4.1 数据集
- 4.2 实验设置
- 4.3 DFAF 消融研究
- 4.4 建议的注意力流权重的可视化
- 4.5 与最先进方法的比较
-
5 结论
学习多模态特征的有效融合是视觉问题回答的核心。本文提出了一种动态融合多模态特征和模态内、模态间信息流的新方法,使信息在视觉和语言模态间交替传递。它能较好地捕捉语言和视觉域之间的高级交互,从而显著提高视觉回答问题的性能。研究还表明,基于其他模态的动态内模注意流可以动态地调节目标模态的内模注意,这是多模特征融合的关键。在VQA 2.0数据集上的实验评价表明,该方法达到了最先进的VQA性能。广泛的消融研究进行了全面的分析所提出的方法。
1介绍
VQA(Visual Question Answering)旨在自动回答与给定图像内容相关的自然语言问题。它在实践中有着广泛的应用,如辅助盲人[12]、幼儿教育等,因此成为近年来的研究热点。视觉回答问题(VQA)的性能在最近几年有了很大的提高,这得益于三种工作 。首先,更好的视觉和语言特征表示是提高VQA性能的核心。从VGG [35], ResNet [13], FishNet[36]到最近的自下而上和自上而下特性[1]的特性学习能力显著提高了VQA的性能。其次,不同类型的注意机制[40]可以自适应地选择重要特征,有助于深度学习获得更好的识别精度。第三,提出了更好的多模态融合方法,如双线性融合[9]、MCB[7]和MUTAN[4],以更好地捕捉语言与视觉特征之间的高层交互。
1.1 介绍各种融合模型的发展
尽管被广泛研究,大多数现有的VQA方法关注于学习视觉和语言特征之间的模态间关系。双线性特征融合方法主要通过特征的外积来获取语言和视觉模式之间的高阶关系。共同注意[39,28,24]或基于双线性注意的方法[19]学习词区对之间的形态间关系,以识别问题回答的关键对。另一方面,也有侧重于学习模内关系的计算机视觉和自然语言处理算法。Hu等[14]提出探索模内对象-对象关系,以提高目标检测精度。Yao等人[42,26]对模内对象-对象关系进行建模,以提高图像字幕的性能。在最近提出的用于自然语言处理的BERT算法[6]中,采用自注意机制对模内词关系进行建模,以学习最先进的词嵌入。然而,模间和模内的关系从来没有在一个统一的框架内共同研究解决这个问题。我们认为,每个模态内部的模态关系是对模态间关系的补充,而模态间关系被现有的VQA方法所忽略。例如,对于图像modality,每个图像区域不仅要从问题中的关联词/短语中获取信息,还要从相关图像区域中获取信息来推断问题的答案。对于问题形态,可以通过推理其他词来更好地理解问题。这样的情况促使我们提出一个统一的框架,为模间和模内信息流建模。
1.2 介绍提出的DFAF模型
为了克服这一局限性,我们提出了一种新的动态融合模式内和模式间注意力流的方法DFAF框架的多模态特征融合,以准确回答视觉问题。总体图如图1所示。我们的DFAF框架集成了跨模式的自我注意和跨模式的共注意机制 ,以实现图像和语言模型之间有效信息的流动。在给定深度神经网络编码的视觉特征和问题特征后,DFAF框架首先生成模间注意流(intermodality attention flow, InterMAF),在图像和语言之间传递信息。在InterMAF模块中,视觉和语言特征生成联合模态共注意力矩阵。每个视觉区域会根据联合模态共注意矩阵选择问题特征,反之亦然。InterMAF模块根据来自另一模态的注意力加权信息流,融合和更新每个图像区域和每个单词的特征 。在InterMAF模块之后,DFAF计算每个模态内传递信息流的动态内模态注意流(DyIntraMAF),以捕获复杂的内模态关系。视觉区域和句子词汇在同一模态下产生自注意力权重,并在同一模型下从其他实例中聚合注意力权重信息。更重要的是,虽然信息仅在相同的模态中传播,但考虑并使用其他模态的信息来调节模态内的注意力权重和信息流。通过这样的操作,每个模态内的注意流动态地依赖于其他模态 ,这是与现有的在目标检测[14]和图像字幕[42]上的模态内消息传递方法的关键区别。DyIntraMAF被证明比仅使用内部信息进行内部模态信息流的变体要好得多,这是该框架成功的关键。我们也可以使用InterMA和DyIntraMA模块来创建DFAF的基本块。显示了多个DFAF块堆栈以进一步提高VQA性能。
1.3 介绍DFAF模型创新点
我们的贡献可以概括为三方面。(1)提出了一种基于模内和模间注意流(DFAF)框架的多模融合新方法。这样的框架首次将模间和动态模内信息流集成到一个统一的框架中,以解决VQA任务。(2)提出动态内模态注意流(DyIntraMAF)模块,用于动态地生成各模态内的有效注意流,动态地依赖于其他模态的信息。这是我们提出的框架的核心创新之一。(3)进行了广泛的实验和消融研究,以检验所提议的DFAF框架的有效性,其中最先进的VQA性能是由我们所提议的DFAF框架实现的。
2 相关工作
VQA的表示学习 。最近VQA性能的提升是由于深度学习的成功。在VQA方法的早期,常用的是VGG[35]网络。随着ResNet[13]的引入,VQA社区转向ResNet网络,它比VGG有很大的优势。最近,由更快的RCNN[33]衍生而来的自底向上和自顶向下的网络[1]被证明适用于VQA和图像字幕任务。特征学习是开发VQA算法的重要组成部分。
用于VQA的双线性融合 。解决VQA需要对视觉内容和语言内容以及两者之间的关系进行了解。在早期的VQA方法中,在视觉和语言之间使用简单的连接或element-wise乘法[45]来实现跨模态特征融合。为了捕获两种模式之间的高层交互,提出了双线性融合[9],采用双线性池化融合两种模式的特征。为了克服双线性融合计算成本高的局限性,提出了许多近似融合方法,包括MCB[7]、MLB[20]和MUTAN[4],这些方法在参数少得多的情况下,表现出比双线性融合[9]更好的性能。
基于自我关注的方法 。深度学习中的注意机制试图模仿人类视觉的工作方式。通过自动忽略数据中不相关的信息,神经网络可以选择性地关注重要的特征。这种方法在自然语言处理(NLP) [3],图像字幕[40]和VQA [46]中取得了巨大的成功。注意力机制有许多变体。我们的方法主要是基于自我关注和共同关注的方法。自我关注机制[37]将特征转换为查询、关键和价值特征。然后通过查询和关键特征的内积计算不同特征之间的关注矩阵。在获得注意力矩阵之后,特征被聚集为原始特征的注意力加权总和。在自我注意机制的激励下,许多视觉任务的表现显著提高。非局部神经网络[38]提出了一种非局部模块,用于聚集一个视频中不同帧之间的信息,并实现了视频分类的最新性能。关系网络通过采用自我关注机制来学习[14]对象建议之间的关系。in-place模块可以提高更快的RCNN [33]和非最大抑制(NMS)性能。
基于共同注意力的方法 。基于共同注意的[39,28]视觉和语言方法模拟了两种模式之间的相互作用。对于每个词,每个图像区域特征根据共同关注权值聚合到该词。共同注意机制已被广泛应用于自然语言处理和VQA任务。在[29]中,提出了稠密对称共注意(DCN)。它在VQAv1和VQAv2数据集上实现了最先进的性能,而没有使用任何自下而上和自上而下的功能。DCN的成功是由于对称共同注意的密集连接[16]。
语言和视觉任务的其他工作 。除了上述方法之外,还提出了许多融合跨模态语言和视觉特征的算法。动态参数预测[30]和问题导向混合卷积[8]利用动态预测参数进行特征融合。适应性注意力[27]引入了一种视觉感官,可以在图像字幕期间跳过注意力。结构化注意力[21]采用了注意力地图上的MRF模型,以更好地模拟更好的空间注意力分布。提出局部加权可变形邻居[18]来预测偏移和调制权重。
3 Dynamic Fusion with Intra- and Inter-modality Attention Flow for VQA
3.1 综述
提出的方法由一系列DFAF模块组成。整个流程如图1所示,两个模态之间的视觉和语言特征首先通过共同注意机制进行加权,并通过所提出的模态间注意流(InterMAF)模块在每个图像区域和每个单词的模态之间进行聚合,该模块学习图像区域和问题单词之间的跨模态交互。在模态间模块之后,为了对每个模态内的关系进行建模,即单词到单词的关系和区域到区域的关系,采用了动态模态内注意流模块。它对每个模态内的单词和区域进行加权,并再次将它们的特征聚合到单词和区域中,这可以被视为每个模态内的传递信息流。重要的是,在我们提出的内模态模块中,注意力流是动态地依赖于来自另一个模态的信息 ,这是与现有的基于自我注意的方法相比的一个关键区别。这种中间模块和内部模块可以多次堆叠,以迭代地在单词和区域之间传递信息流,从而为视觉问题回答建模潜在的对齐。

3.2 基于视觉和语言特征提取
为了获得基本的视觉和语言特征,我们从自下而上和自上而下的注意力模型中提取图像特征[1]。视觉区域特征是从视觉基因组数据集上预处理的更快的RCNN [33]模型获得的。对于每幅图像,我们提取100个区域建议及其相关的区域特征。给定输入图像I,所获得的区域视觉特征被表示为 R ∈ R^ {14×2048} ,其中该区域 i^ {th} 特征被表示为 r_i∈R^ {2048} ,并且总共 \mu 有对象区域。物体的视觉特征在训练过程中是固定的。
我们采用Glove词嵌入[32]作为门控循环单元(GRU) [5]的输入,用于编码问题单词特征。给定问题Q,我们从GRU获得单词级特征 E∈ R^ {14×2048},其中 j^ {th}特征被表示为e_i∈R^ {2048},并且所有问题被填充和截断为相同的长度14。获得的视觉对象区域特征 R 和问题特征 E 可以表示为:
R = RCNN(I; θ _ {RCNN}), E = GRU(Q;θ_ {GRU}).
其中视觉特征参数θ_ {RCNN}是固定的,而问题特征θ_ {GRU} 是从零开始学习的,并在训练我们提出的框架时一起更新。
3.3 模态间注意流
如图1所示的模态间注意流模块首先学习捕捉每对视觉区域和单词特征之间的重要性。然后,根据学习到的重要性权重和集合特征在两个模态之间传递信息流,以更新每个单词特征和图像区域特征。这样的信息流过程能够识别视觉区域和单词之间的跨模态关系。
给定视觉区域和单词特征,我们首先计算每对视觉区域和单词之间的关联权重。每个视觉区域和单词特征首先按照[34,41]转换成查询、关键字和值特征,其中转换后的区域特征表示为R_K、R_Q、R_v∈R^ {\mu×dim};变换后的词特征表示为E_k,E_Q和E_V∈R^ {14×dim}
R_K= Linear(R;θ_ {RK} ), E_K= Linear(R;θ_ {EK}) , (3)
R_Q= Linear(R;θ_ {RQ} ), E_Q= Linear(E;θ_ {EQ}) , (4)
R_v= Linear(R;θ_ {RV} ), E_K= Linear(E;θ_ {EK}) , (5)
其中“线性”表示具有参数θ的完全连接的层,而dim表示来自两种形态的变换特征的公共维度。
通过计算每对视觉区域特征R_Q和词关键特征EK之间的内积RQET,我们获得了用于将信息从词特征聚合到每个视觉特征的原始关注权重,反之亦然。在用维数的平方根和软最大非线性函数归一化原始权重之后,我们获得两组关注权重,用于对从单词到图像区域传输的信息流进行加权的InterMAF_{R←E}∈ R^{\mu×14},以及用于对从图像区域到句子单词传输的信息流进行加权的InterMAF_{R→E}∈R^{14×\mu},

内积值与隐藏特征空间的维数成正比,因此需要用隐藏维数的平方根来归一化。softmax非线性函数逐行应用。
两个双向中间矩阵捕捉每个图像区域和单词对之间的重要性。举个例子,每行代表一个视觉区域和所有单词嵌入之间的注意力权重。从所有单词嵌入到这一个图像区域特征的信息可以被聚集为单词值特征E_V的加权总和。我们通过InterMAF模块将更新视觉区域特征和单词特征的信息流分别表示为R_{update} ∈ R^{\mu×dim}和R_{update} ∈ R^{14×dim},
其中E_V和R_V是更新等式中视觉区域特征和单词特征的未加权信息流(值特征)。(5),两个中间矩阵被用来加权这样的信息流。
在获得更新后的视觉特征和单词特征后,我们将它们与原始视觉特征R和单词特征E连接起来。利用完全连接的层将连接的特征转换成输出特征.

输出的特征通过InterMAF模块将被馈送到随后的动态内部模态注意流模块,用于学习内部模态信息流,以进一步更新视觉区域和单词特征,用于捕捉区域到区域和单词到单词的关系。
3.4 动态模态内注意流
DyIntraMAF的输入视觉区域和单词特征编码了视觉区域和单词之间的跨模态关系。然而,我们认为每个模态内的关系是对跨模态关系的补充,并且应该被考虑以提高VQA精度。比如对于“滑板上面是谁?”内模态模块应该将滑板上方的区域和滑板区域相关联,以推断最终答案。因此,我们提出了动态模态内注意流模块,用动态注意机制来模拟这种模态内关系。DyIntraMAF的实现如图2所示。
捕捉区域之间和单词之间的重要性的原始模态内矩阵可以类似于等式(5)来定义。


图2:提议的动态模内注意流模块的图示。仅显示视觉模式中的模式内注意力流。通过对问题特征进行平均汇集,可以获得条件选通向量,用于控制区域特征之间的信息流。注意力将集中在与问题相关的信息流上。逐行softmax用于获取关注权重。
点积用于估计它们在同一模态的查询和关键特征之间的模态内重要性。然后,这种权重矩阵可以用于对每个模态内传输的信息流进行加权。模态内关系建模已被证明在目标检测[14],图像字幕和BERT单词嵌入预处理[6]中是有效的。
然而,简单的肌内肌内模块仅利用模态内信息来估计区域间和单词间的重要性。有些关系很重要,但只能根据另一种形式的信息来确定。例如,即使对于相同的输入图像,不同视觉区域对之间的关系也应该根据不同的问题进行不同的加权。因此,我们提出了一个动态模态内注意流模块来估计模态内关系的重要性,条件是来自另一个模态的信息。
为了总结来自其他模态的条件信息,我们沿着对象索引维度平均汇集视觉区域特征,沿着单词索引维度平均汇集单词特征。然后,两种形态的平均汇集特征被转换成二维特征向量,以匹配查询的维度和关键特征R_Q、R_K、E_Q、E_K。然后,每个模态的维度特征向量由sigmoid非线性函数σ()处理,以生成另一个模态的通道式调节门。

然后,来自两个模态的查询和关键特征被来自另一个模态的条件门调制。

其中⊙表示逐元素乘法。查询和关键特征的通道将由以另一种形式为条件的通道门来激活或去激活。这种两个选通向量的设计与挤压和激励网络[15]和选通卷积[10]具有相似的精神。关键区别在于通道方向的选通向量是基于交叉模态信息创建的。
然后,通过门控查询和关键特征获得动态模态内注意流矩阵DyIntraMAF_{R←R}∈R^{\mu×\mu}和DyIntraMAF_{E←E}∈R^{14×14},以加权不同的模态内关系。

视觉区域和单词特征然后由加权值特征R_V和E_V残差更新。

请注意,这里我们仅使关键和查询特征以另一个模态为条件,以在模态信息流中自适应地加权。在我们的消融研究中,我们观察到所提出的DyIntraMAF模块在很大程度上优于原始的IntraMAF模块。
3.5 模态内和模态间注意流框架
在这一节中,我们将介绍如何将模态内和模态间的注意力流模块整合到我们提出的框架中。整个管道如图1所示。该框架首先分别利用快速神经网络和GRU模型从输入图像和问题中提取视觉区域特征和单词特征。Faster R-CNN模型权重在训练我们提出的框架期间是固定的,而GRU权重是用我们的框架从头开始更新的。
在视觉区域特征和单词特征被完全连接的层转换成相同维度的向量之后。InterMAF模块在每对视觉区域和问题词之间传递信息流,并为每个区域和每个词聚集更新的特征。这种聚集的特征整合了来自其他模态的信息,以根据跨模态关系更新视觉和单词特征。
给定InterMAF输出,DyIntraMAF模块用于在每个模态内动态传递信息流。视觉区域和单词特征将通过剩余的连接以同样的方式在信息内更新。
在我们提出的DFAF框架中,我们使用一个中间模块和一个内部模块来构成一个基本模块。由于特征更新过程中的特征连接和剩余连接,可以堆叠多个块。通过随机梯度下降可以有效地训练非常深的模态内和模态间信息流。此外,我们在实践中使用多头注意力。最初的特征是将维度分成组,不同的组会产生并行的注意力来独立更新不同组中的视觉和单词特征。
3.6 答案预测层和损失函数
经过几个模块的特征更新,我们得到了最终的视觉区域和单词特征,它们编码了VQA的模态间和模态内关系。通过对区域特征和单词特征的平均汇集,我们可以分别获得图像和问题的区分表示。然后,可以通过特征拼接、特征元素积或特征添加来融合这些特征,以获得融合的特征。我们对三种融合方法进行了实验,在这三种方法中,视觉表示和语言表示之间的元素式产品以微小的余量获得了最佳性能。
与最先进的VQA方法类似,我们将VQA视为一个分类问题。融合后的多模态特征由两层多层感知器转换成概率向量,层与层之间具有ReLU非线性函数和最终的softmax函数。基本答案是从出现超过5次的注释答案中提取的。采用交叉熵损失函数作为目标函数。
4 实验
4.1 数据集
我们使用2.0版[11]进行实验。VQA数据集包含来自微软COCO数据集的图像的人类注释问答对[25]。VQA 2.0是以前的VQA 1.0的更新版本,有更多的注释和更少的数据集偏差。VQA 2.0分为训练、验证和测试标准集。在测试标准测试中,25%作为测试开发集。所有问题类型分为是/否、数字等类别。训练、验证和测试-标准包含82,783、40,504和81,434个图像,分别有443,757、214,354、447,793个问题。每个问题包含来自不同注释者的10个答案。频率最高的答案被视为基本事实。按照以前的方法,我们对验证集进行消融研究,并利用训练和验证分割进行测试。
4.2 实验设置
视觉特征的维度2048 是从fast R-CNN[33]中提取的,而单词特征是由GRU[5]编码到维1280的特征中的。然后,视觉特征和单词特征分别通过全连接层嵌入到512个维度中。在InterMAF中,特征被转换成8个多头注意力,每个头有64个维度。对于DyIntraMAF,来自两种模态的平均汇集特征由MLP变换成512维,随后是元素方式的sigmoid激活以获得调节门控向量。然后将它们与512维视觉关键字相乘,并在视觉和单词特征的每个位置查询特征,以获得动态注意力流。以前的方法使用标记和相对位置信息可以获得明显更好的结果。然而,标记和相对位置不影响我们的方法的性能。
所有完全连接的层都具有相同的dropout
=0.1。所有渐变都被裁剪为0.25。批量设置为512。Adamax优化器[22],Adam的一个变种,被使用。前两个时期的学习率设置为10^{-3},后8个时期为2×10^{-3},其余时期的学习率衰减1/4。我们的方法是用Pytorch [31]实现的。所有初始化都是Pytorch默认初始化。
所有消融研究都是在验证数据集上进行的,而训练数据集、验证数据集和额外的视觉基因组数据集是在测试开发中进行测试的组合。
4.3 DFAF 消融研究
我们对VQA 2.0验证数据集进行了广泛的消融研究[11]。结果如表1所示。我们的默认设置只有1块DFAF模块。具有2048个维度的区域特征是通过具有1024个单词特征的快速R-CNN [33]从输入图像中提取的通过GRU。默认情况下,DFAF内的所有模块都有512个维度。在最后的融合层中,使用了特征乘法,这显示了微不足道的改进。视觉哨兵[27]和边界框位置嵌入也进行了测试,最终性能略有下降。默认设置中使用8个平行的注意头,每个头的尺寸为64。
我们首先研究堆叠DFAF区块数量的影响。默认设置有一个堆栈。从表1中可以看出,由于剩余连接,更多的堆栈可以提高性能[13]。与ResNet不同,我们在剩余连接期间不使用任何规范化[17]技术。单层DFAF的性能与BAN-12相当[19]。
然后,我们考察了注意类型的影响。自下而上[1]中的注意机制使用简单的注意方法。双线性注意网络[19]提出了一种双线性注意,它学习每个单词和区域对之间的联合注意分布。通过在图像区域和问题词之间建立模态间关系的模型,可以使性能提高1%。只集成内部模块会损害性能,因为太多不相关的信息流会阻碍学习过程。通过在模块内部添加动态调节的信息流,我们实现了2.15%的性能提升。通过结合模式内和模式间的注意力流,我们显著优于基线[1]2.83%,优于先前最先进的BAN-1[19]0.85%。
在InterMAF模块中传递信息有几种顺序,即并行和顺序[39,28]。对于并行InterMAF,区域和单词特征同时更新。对于顺序信息流,我们尝试将注意力流从区域传递到单词,这首先更新单词特征,然后将消息从单词传递到区域,然后更新区域特征,反之亦然。我们将第一个顺序表示为R → E,E → R,第二个顺序表示为E → R,R → E,顺序更新优于并行更新方式,具体顺序无关紧要。
接下来,我们对嵌入维数和跨模型特征融合的影响进行了消融研究。512维比1024维性能更好。对于融合方法,乘法表现出比特征加法和拼接稍好的性能。
视觉标记[27,39]在以前的许多视觉质量保证方法中被使用,这些方法被用来提高视觉质量保证的准确性。我们将哨兵视为一般的512维特征,并将哨兵与所有区域和单词特征连接起来。先前的区域特征和14个单词特征分别变成+ 1和15。在我们的实验中,添加视觉哨兵并没有显示出改善。在以前的方法中,边界框的位置被广泛用作图像区域特征的一部分。绝对位置嵌入已被用于变压器[37],伯特[6]和门控CNN [10]在自然语言处理。在关系网络[14]中采用相对位置进行目标检测。在我们的实验中,增加绝对或相对位置会降低性能。最后,我们对多头注意的影响进行了实验[37]。我们保持整体尺寸为512。实验1、4、8个注意头。从表1中可以看出,在相同数量的参数下,8注意力可以获得更好的性能。
4.4 建议的注意力流权重的可视化
在图3中,我们可视化了模态内注意流权重以分析VQA模型。注意力权重调节从上下文区域(橙色、蓝色和绿色)到中心区域(红色)的信息流。左栏代表模块中的注意力流权重。而其余的列表示DyIntraMAF模块中的动态注意力流权重。在DYIMMINAF模块中,不相关的信息流被问题特征过滤掉,从而生成正确的答案。

4.5 与最先进方法的比较
表2显示了我们提出的算法的性能,该算法使用额外的可视化基因组数据集和VQA的最先进的方法进行训练。表2中自下而上的是2017年VQA挑战赛的获胜者。该方法建议使用基于更快的RCNN的特征[33],而不是ResNet [13]。多模态分解高阶池(MFH) [43]是一种最先进的双线性池方法。密集覆盖网络(DCN) [29]利用了多层共同关注机制的密集堆栈,这明显优于以前的方法与ResNet功能。计数法[44]善于利用包围盒的信息来计数问题。双线性关注网络(BAN) [19]是VQA 2.0的最先进的方法,它有12个堆叠的BAN模块。

5 结论
在本文中,我们提出了一个新的框架,动态融合内和外模态注意流(DFAF)的视觉问题回答。DFAF框架基于模式间和模式内,交替地在不同模式内部和之间传递信息注意力机制。视觉特征内部的信息流是以问题特征为动态条件的。堆叠多个DFAF区块可以提高VQA的性能。
