900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 《Deep Modular Co-Attention Networks for Visual Question Answering》论文翻译

《Deep Modular Co-Attention Networks for Visual Question Answering》论文翻译

时间:2020-02-05 20:36:56

相关推荐

《Deep Modular Co-Attention Networks for Visual Question Answering》论文翻译

论文地址:/10.48550/arXiv.1906.10770

代码地址:GitHub - MILVLG/mcan-vqa: Deep Modular Co-Attention Networks for Visual Question Answering

面向视觉问题回答的深度模块化共同注意网络

摘要:

视觉问答(VQA)要求对图像的视觉内容和问题的文本内容都有精细和同步的理解。因此,设计一个有效的“共同注意”模型,将问题中的关键词与图像中的关键对象联系起来,是VQA性能的核心。到目前为止,大多数成功的共同注意学习尝试都是通过使用浅层模型实现的,而深度共同注意模型与浅层共同注意模型相比几乎没有改善。在本文中,我们提出了一个深度模块化共同注意网络(MCAN),它由深度级联的模块化共同注意层(MCA)组成。每个MCA层利用两个基本注意单元的模块化组合,对问题和图像的自我注意以及图像的引导注意进行建模。我们在基准VQA-v2数据集上定量和定性地评估MCAN,并进行了广泛的消融研究,以探索MCAN有效性背后的原因。实验结果表明,MCAN的性能明显优于以往的先进技术。我们最好的单一模型在测试开发集上提供70.63%的总体准确性。

1 引言

多模态学习在视觉和语言之间建立桥梁已经引起了计算机视觉和自然语言处理界的广泛兴趣。许多视觉语言任务,包括图像-文本匹配,视觉字幕,视觉基础和视觉问答(VQA)都取得了显著的进展。与其他多模态学习任务相比,VQA是一项更具挑战性的任务,这就需要对图像和问题都有精细的语义理解,并结合视觉推理来预测准确的答案。注意力机制是深度神经网络的最新进展,已成功应用于单峰任务(如视觉[22]、语言[4]和语音[8])以及上述多峰任务。VQA中从输入问题中学习图像区域视觉注意的思想最早是由[27,7]提出的,它实际上成为几乎所有VQA方法的组成部分[10,16,1]。除了视觉注意力外,学习文本对问题关键词的注意力也是很重要的。最近的研究表明,同时学习视觉和文本模式的共同注意力可以有利于图像和问题的细粒度表示,导致更准确的预测[20,33]。然而,这些共同注意模型学习的是多模态实例的粗糙交互,学习到的共同注意不能推断出每个图像区域和每个问题词之间的相关性。这导致了这些共同注意模型的显著局限性。

为了克服多模态交互不足的问题,提出了两个密集的共同注意模型BAN[14]和DCN[24],用于建模任意图像区域和任意疑问词之间的密集交互。密集的共同注意机制有助于理解意象-问题关系,正确回答问题。有趣的是,这两种密集的共同注意模型都可以进行深度级联,形成支持更复杂视觉推理的深度共同注意模型,从而潜在地提高VQA性能。然而,与相应的浅层模型或粗糙的共同注意模型MFH[33]相比,这些深度共同注意模型没有什么改进(见图1)。

图1:VQA-v2 val分割的准确性与共同注意深度。我们列出了(深度)共同注意模型中最先进的方法。除了DCN[24]使用卷积视觉特征导致性能较差外,所有的比较方法(MCAN、BAN[14]、MFH[33])都使用相同的自下而上的注意视觉特征来表示图像[1]。

我们认为,这些深度共同注意模型的瓶颈在于缺乏在每个模态中同时建模密集的自我注意(即,问题的词对词关系和图像的区域对区域关系)。

受机器翻译[29]中的Transformer模型的启发,我们在这里设计了两个一般的注意单元:一个自我注意(SA)单元,可以建模密集的模态内交互(字对字或区域对区域);以及一个引导-注意(GA)单元来模拟密集的多模态交互(字到区域)。然后,通过SA和GA单元的模块化组合,得到不同的模块化Co-Attention (MCA)层,可以进行深度级联。最后,我们提出了一个深度模块化共同注意网络(MCAN),它由级联的MCA层组成。图1的结果显示,深度MCAN模型在基准VQA-v2数据集[11]上的性能明显优于现有的最先进的共同注意模型,验证了自我注意和引导注意在共同注意学习中的协同作用,并突出了深度推理的潜力。此外,我们发现对图像区域进行自注意建模可以大大提高目标计数性能,这是VQA的一个挑战。

2 相关工作

我们简要回顾了以往关于VQA的研究,特别是引入共同注意模型的研究,视觉问答(VQA)。在过去几年中,VQA越来越受关注。全局特征的多模态融合是最直接的VQA解决方案。首先将图像和问题表示为全局特征,然后通过多模态融合模型进行融合,预测出问题的答案[37]。一些方法引入了一个更复杂的模型,用LSTM网络[2]学习更好的问题表示,或者用残差网络[15]学习更好的多模态融合模型。上述多模态融合模型的一个局限性是,图像的全局特征表示可能会丢失关键信息,从而无法正确回答关于局部图像区域的问题(例如,“女人的左手有什么”)。因此,目前已有的方法将视觉注意机制引入到VQA中,通过自适应学习给定问题的关注图像特征,然后进行多模态特征融合以获得准确的预测结果。陈等人提出了一种问题引导的注意力图,将问题嵌入投影到视觉空间,并构造了一个可配置的卷积核来搜索图像注意区域[7]。Yang等人提出了一种堆栈式注意网络来迭代学习注意[31]。福井等人[10], Kim等人[16],Y u等人[32,33]和Ben等人[6]利用不同的多模态双线性池化方法,将图像空间网格中的视觉特征与问题中的文本特征相结合,预测注意力。Anderson等人引入了一种自下而上和自上而下的注意力机制来学习候选对象的注意力,而不是空间网格[1]。

Co-Attention Models除了理解图像的视觉内容外,VQA还要求充分理解自然语言问题的语义。因此,有必要同时学习对问题的文本注意和对图像的视觉注意。Lu等人提出了一个共同注意学习框架,交替学习图像注意和问题注意[20]。Y u等人将共同注意方法简化为两个步骤,即问题嵌入的自我注意和视觉嵌入的问题条件注意[33]。Nam等人提出了一种多阶段共注意学习模型,基于对前一个注意[23]的记忆来细化注意。然而,这些共注意模型学习了每个模态(图像或问题)的单独注意分布,而忽略了每个问题词和每个图像区域之间的密集交互。这成为理解多模态特征的细粒度关系的瓶颈。为了解决这一问题,人们提出了密集的共同注意模型,该模型建立了每个问题词和每个图像区域之间的完整交互[24,14]。与之前的粗糙交互共注意模型相比,密集共注意模型的VQA性能显著提高。

3 模块化Co-Attention层

在介绍模块化共同注意网络之前,我们首先介绍它的基本组成部分,模块化共同注意(MCA)层。MCA层是由自我注意(self -attention, SA)单元和引导注意(guided-attention, GA)单元两种基本注意单元模块化组成的,其灵感来自于中提出的点积注意(scaled dot-product attention, GA)单元[29]。通过不同的组合,我们获得了三种具有不同动机的MCA变体。

3.1 自我注意和引导注意单元

缩放点积注意的输入由维度的查询和键以及维度的值组成。为了简单起见,和通常设为相同的数字 d 。我们计算查询与所有键的点积,除以,然后应用softmax函数来获得这些值的注意权重。给定一个查询, n个键-值对(打包成一个键矩阵和一个值矩阵),对 q 和 K 学习到的注意力的所有值 V 加权求和,得到参与特征

为了进一步提高被关注特征的表示能力,[29]中引入了由h个并行“头”组成的多头注意。每个头对应一个独立的缩放点积注意函数。参与输出特征f由:

其中是第 j个头的投影矩阵,。是每个头部输出特征的维数。为了防止多头注意力模型变得太大,我们通常使用。在实践中,我们可以计算一组 m个查询通过将Eq.(2)中的q无缝替换为q,得到参与输出特征。

为了处理VQA的多模态输入特性,我们在多头注意的基础上构建了两个注意单元,即自我注意单元(self-attention, SA)和引导注意单元(guided-attention, GA)。SA单元(见图2a)由一个多头注意层和一个点向前馈层组成。确定一组输入特征:,多头注意学习成对的样本之间的配对关系在X中的关系,对X中的所有实例进行加权求和。并通过加权求和输出被关注的输出 特征。前馈层取多头注意层的输出特征,进一步通过两个全连接层进行转换,具有ReLU激活和dropout (FC(4d)-ReLU-Dropout(0.1)FC(d))。对两层输出采用残差连接[12],再进行层归一化[3],便于优化。GA单元(见图2b)取两组输入特征, , Y引导X的注意力学习。注意,X和Y的形状是灵活的,因此它们可以用来表示不同形态的特征(例如,问题和图像)。GA单元分别对来自X和Y的每一对样本之间的成对关系进行建模。

Interpretation:由于Eq.(2)中的多头注意在两个注意单元中起着关键作用,我们仔细研究它,看看它在不同类型的输入中是如何工作的。对于一个输入特征为X的SA单元,对于每个,其参与特征可以理解为X中所有的样本根据其与的归一化相似度重构。同理,对于一个具有输入特征X和Y的GA单元,将Y中的所有样本根据它们与的归一化跨模态相似度重构,得到的参与特征。

图2:对于不同类型的输入,两个基本的多头注意单元。SA取一组输入特征X,为X输出参与特征Z;GA取两组输入特征X和Y,在Y的引导下输出X的参加特征Z。

3.2VQA模块组成

基于图2中的两个基本注意单元,我们将它们组合起来以获得三个模块化的共同注意(MCA)层(参见图3),以处理VQA的多模态特性。所有三个MCA层都可以进行深度级联,这样前一个MCA层的输出可以直接提供给下一个MCA层。这意味着没有实例减少,输入特征的数量等于输出特征的数量。

图3:VQA的三种MCA变体流程图。(Y)和(X)分别表示问题特征和图像特征

图3a中的ID(Y)-GA(X,Y)层是我们的基线。在ID(Y)-GA(X,Y)中,输入问题特征通过身份映射直接传递给输出特征,每个区域与每个单词之间的密集多模态相互作用被建模在GA(X,Y)单元中。进一步利用这些相互作用来获得所参与的图像特征。与ID(Y)-GA(X,Y)层相比,图3b中的SA(Y)-GA(X,Y)层增加了一个SA(Y)单元来对每个问题词对之间密集的模内相互作用进行建模。图3c中的SA(Y)-SGA(X,Y)层继续在SA(Y)-GA(X,Y)层中添加一个SA(X)单元来模拟每个图像区域对之间的模内相互作用。

注意,上面的三个MCA层没有涵盖所有可能的组合。我们还探索了其他MCA变体,如对称架构GA(X,Y)-GA(Y,X)和SGA(X,Y)-SGA(Y,X)。但是,这些MCA变体不报告比较性能,因此由于篇幅限制,我们不再进一步讨论它们。

4. 模块化Co-Attention网络

在本节中,我们描述VQA的模块化共同注意网络(MCAN)架构。我们首先解释对输入的问题和图像进行图像和问题特征表示。然后,我们提出了两种深度共同注意模型,即堆叠模型和编码器-解码器模型,该模型由多个MCA层深度级联,逐步细化参与图像和问题特征。在获得参与图像和问题特征后,我们设计了一个简单的多模态融合模型来融合多模态特征,最后将其输入多标签分类器来预测答案。MCAN的总体流程图如图4所示。我们将具有堆叠策略的MCAN模型命名为,将具有编码器-解码器策略的MCAN模型命名为,其中L为深度级联的MCA层总数。

图4:深度模块化共同注意网络(MCAN)的总体流程图。在深度共同注意学习阶段,我们有两种可供选择的深度共同注意学习策略,即堆叠和编码器-解码器

4.1问题和图像表征

输入图像以自底向上的方式表示为一组区域视觉特征[1]。这些特征是在Visual Genome数据集[18]上预训练的Faster R-CNN模型(以ResNet-101为骨干)[26]中提取的中间特征。我们对被检测对象的概率设置置信阈值,得到对象的动态数量m∈[10,100]。对于第i个对象,从其检测区域均值池化卷积特征,表示为特征。最后,将图像表示为特征矩阵。

输入的问题首先被标记成单词,并修剪到最多14个单词,类似于[28,14]。使用在大规模语料库上预先训练的300-D GloVe词汇嵌入[25]进一步将问题中的每个单词转化为一个向量。这将得到一个大小为n×300的单词序列,其中n∈[1,14]是问题中的单词数。然后,单词嵌入通过一个带有dy隐藏单元的单层LSTM网络[13]传递。相对于[28]只使用最终状态(即最后一个单词的输出特征)作为问题特征,我们保持所有单词的输出特征,输出一个问题特征矩阵。为了处理可变数量的对象m和可变问题长度n,我们使用零填充将X和Y填充到它们的最大大小(即m = 100和n = 14,分别)。在训练过程中,我们用−∞掩盖填充对数,以在每个softmax层之前获得零概率,以避免下溢问题。

4.2. Deep Co-Attention Learning

以上述图像特征X和问题特征Y为输入,通过深度级联的L MCA层组成的深度共注意模型(分别表示为)。将的输入特征分别表示为和,它们的输出特征分别表示为和,然后递归地馈给作为其输入:

对于,我们分别设置其输入特征和。以SA(Y)-SGA(X,Y)层为例(其他两个MCA层以相同的方式进行),我们在图5中构建了两个深度共同注意模型。叠加模型(图5a)简单地对L MCA层进行深度叠加,输出和作为最终出席的图像和问题特征。编码器-解码器模型(图5b)的灵感来自[29]中提出的Transformer模型。它稍微修改了叠加模型,将每个中GA单元的输入特征替换为来自最后一MCA层的问题特征。编码器-解码器策略可以理解为编码器用L个堆叠的SA单元学习参与问题特征,解码器用学习SGA单元堆叠的参与图像特征。两个深度模型具有相同的尺寸和相同的L,作为L = 1的特殊情况,两个模型之间是严格等价的。

4.3多模态融合与输出分类器

经过深度共注意学习阶段后,输出图像特征,且问题特征已经包含了丰富的关于问题词和图像区域的注意权重的信息。因此,我们为(或)设计一个两层MLP (FC(d)-ReLU-Dropout(0.1)-FC(1))的注意减少模型来获得其被出席的特征(或)。以举例,the attended feature ˜x is obtained as follows:

其中 为学习到的注意权重。我们可以通过类比使用独立的注意减少模型来获得the attended feature,使用计算的和,我们设计线性多模态融合功能如下:

其中是两个线性投影矩阵。是融合特征的共同维数。这里使用LayerNorm稳定训练[3]。融合特征z被投影到一个向量,后面跟着一个sigmoid函数,其中N是训练集中最频繁的答案的个数。在[28]之后,我们以二元交叉熵(BCE)作为损失函数,在融合特征z的基础上训练n向分类器。

图5:基于MCA层级联的两个深度共同注意模型(如SA(Y)-SGA(X,Y))

5. 实验

在本节中,我们将在最大的VQA基准数据集VQA-v2[11]上进行实验,以评估我们的MCAN模型的性能。由于不同MCA变体和深度共同注意模型可能会影响最终的表现,我们进行了广泛的定量和定性消融研究,以探索MCAN表现良好的原因。最后,利用最优超参数,在相同的设置下,将我们的最佳模型与当前最先进的模型进行比较。

5.1. 数据集

VQA-v2是最常用的VQA基准数据集[11]。它包含有人类注释的问答,对来自MS-COCO数据集[19]的图像进行配对,每张图像有3个问题,每个问题有10个答案。数据集分为三个部分:train (80k图像和444k QA对);val (40k图片和214k QA对);和测试(80k图像和448k QA对)。此外,还有两个测试子集,称为测试开发和测试标准,用于在线评估模型性能。结果包括三个每种类型的准确性(Yes/No, Number和Other)和一个整体的准确性。

5.2 实现细节

我们的模型在实验中使用的超参数如下。输入图像特征、输入问题特征、融合多模态特征的维数分别为2048、512、1024。参照[29]的建议,多头注意的潜在维度d为512,设多头数量h为8,每个多头的潜在维度。使用[28]中的策略将答案词汇表的大小设置为N = 3,129。MCA层数为L∈{1,2,4,6,8}。为了训练MCAN模型,我们使用β1 = 0.9和β2 = 0.98的Adam求解器[17]。基础学习率设置为min(2.5te−5,1e−4),其中t为当前从1开始的epoch。10个epoch后,学习率每2个epoch衰减1/5。所有的模型都被训练到13个epoch,相同的批大小64。对于val split的结果,只有train split被用于训练。对于测试开发或测试标准分割的结果,train和val分割都用于训练,来自Visual Genome[18]的VQA样本子集也用作增强数据集,以促进训练。

5.3. 消融研究

我们进行了一些消融实验来研究MCAN有效性的原因。下面将详细讨论表1和图6所示的结果。

MCA变体:从表1a的结果中,我们可以看到,对于所有的答案类型,SA(Y)-GA(X,Y)优于ID(Y)-GA(X,Y)。这验证了为问题特性建模自我注意有利于VQA的性能,这与之前的工作[33]是一致的。此外,我们可以看到SA(Y)-SGA(X,Y)也优于SA(Y)GA(X,Y)。这首次揭示了为图像特征建模自我注意是有意义的。因此,除非另有说明,我们在接下来的实验中使用SA(Y)-SGA(X,Y)作为我们的默认MCA。从表1b的结果可以看出,随着L的增加,两种深度共同注意模型的性能都在稳步提高,最终在L = 6时达到饱和状态。训练过程中L> 6的不稳定梯度可以解释饱和度使得优化变得困难。[5]也报道了类似的观察结果。此外,编码器-解码器模型的性能稳定优于堆叠模型,尤其是当L较大时。这是因为从早期的SA(Y)单元学习到的自我注意与从最后的SA(Y)单元学习到的自我注意相比是不准确的。将其直接输入GA(X,Y)单元可能会损害已习得的图像引导注意。§5.4中的可视化支持这个解释。最后,MCAN比其他方法的参数效率更高,MCANed-2 (27M)的准确率为66.2%,BAN-4 (45M)的准确率为65.8%,MFH (116M)的准确率为65.7%。在补充材料中可以找到更深入的比较。MCA vs. Depth:在图6中,我们展示了不同MCA变体的MCANed-L的详细性能。随着L的增大,三种变型之间的性能差距增大。此外,在图6c中出现了一个有趣的现象。当L = 6时,ID(Y)-GA(X,Y)和SA(Y)-GA(X,Y)模型的数字类型精度几乎相同,而SA(Y)-SGA(X,Y)模型比它们提高了4.5个点。这证明了图像的自我注意在对象计数中起着关键作用。

问题表征:表1c总结了不同问题表征的消融实验。我们可以看到,使用GloV e[25]预先训练的单词嵌入明显优于随机初始化。其他技巧,如微调手套嵌入或用LSTM网络替换位置编码[29]来建模时间信息,可以略微提高性能。

(a) MCA变体:一层下具有不同MCA变体的MCAN模型的准确性。ID(Y)-GA(X,Y), SA(Y)-GA(X,Y)和SA(Y)-SGA(X,Y)表示图像和问题的三种MCA变体,不含或不含SA单位(见图3)。由于叠加和编解码器策略在一层下是等价的,因此我们不区分它们。

(b)堆叠与编码器-解码器:MCANsk-L模型和MCANed-L模型的总体精度和模型尺寸(即参数数量),其中层数L∈{2,4,6,8}。L相同,两个型号的尺寸是相等的。

(c)问题表征:模型在不同问题表征下的准确性。Randft的意思是随机初始化嵌入词,然后微调。PE表示位置编码[29]。和GloVept表示通过GloVe对单词嵌入进行预训练,进行微调。

表1:MCAN消融实验。所有报告的结果都在val分割上进行评估

5.4. 定性分析

在图7中,我们可视化了从MCANsk-6和MCANed-6获得的注意。由于篇幅的限制,我们只展示了一个例子,并从不同的注意单元和不同的层次可视化了六张注意图。在补充材料中可以找到更多的可视化图。从结果中,我们有以下观察结果问题自我注意SA(Y): SA(Y)-1的注意图形成垂直条纹,像“如何”和“看到”这样的词获得了很大的注意权重。这个单元用作问题类型分类器。此外,SA(Y)-6注意图中较大的值出现在“羊”一栏。这表明所有的参与特征都倾向于使用“羊”的特征进行重建。也就是关键字“羊”被正确识别。

Image Self-Attention SA(X): SA(X)-1注意图中V值均为均匀分布,说明羊的关键对象不明确。SA(X)-6的注意图中较大的值出现在图中的第1、3、11列,分别对应图中的3只羊。这解释了为什么引入SA(X)可以大大提高对象计数性能。problem Guided-Attention GA(X,Y): GA(X,Y)-1的注意图不聚焦图像中的当前物体;GA(X,Y)-6的注意图倾向于关注“羊”列中的所有值。这可以用SA(X)-6中的绵羊特征重构输入特征来解释。此外,叠加模型的GA(X,Y)单元比编码器-解码器模型包含更多的噪声。这验证了我们在§5.3中提出的假设。在图8中,我们还将Eq.(5)学习到的最终图像和问题注意进行可视化。对于正确预测的例子,学习到的问题和图像注意力通常会密切关注关键字和最相关的图像区域(例如,第一个例子中的单词“holding”和“hand”区域,第二个例子中的单词“vegetable”和“broccoli”区域)。从这些不正确的例子中,我们可以看出我们的方法的一些弱点。例如,它偶尔会在区分问题中的关键词时出错(例如,第三个例子中的“left”和最后一个例子中的“catcher”)。这些观察结果有助于指导未来的进一步改进。

图7:典型层的注意单元学习到的注意图(softmax(qK/√d))的可视化SA(Y)l、SA(X)-l和GA(X,Y)-l分别表示来自第l层的问题自我注意、图像自我注意和图像引导注意。Q、A、P分别表示问题、答案和预测。注意图坐标轴上显示的[0-19]范围内的索引对应图像中的每个物体(共20个物体)。为了更好的可视化效果,我们突出了图像中与答案相关的三个对象(即羊)。

图8:公式(5)学习到的图像和问题注意的典型例子。对于每个例子,图像、问题(Q)和答案(A)在左边显示;学习到的图像注意(image attention)、问题注意(question attention)和预测(prediction, P)紧随其后。区域的亮度和单词的暗度分别代表它们在注意权重中的重要性。

5.5. Comparison with State-of-the-Art

考虑到消融结果,我们将我们最好的单一模型MCANed-6与表3中目前最先进的方法进行了比较。使用相同的自下而上的注意力视觉特征[1],MCANed-6在整体准确性方面明显比目前最好的方法BAN[14]高出1.1个点。相比BAN+Counter[14],增加了计数模块[35],显著提高了对象计数性能,我们的模型仍然高出0.6个点。此外,我们的方法表2:在测试开发和测试标准分割上的单个模型的准确性,以与最先进的方法进行比较。所有方法都使用相同的自下而上的注意力视觉特征[1],并在train+val+vg集合(vg表示来自visual Genome的增强VQA样本)上训练。两部分的最佳结果以粗体显示。

获得与BAN+Counter相当的对象计数性能(即数字类型),并且在此过程中不使用任何辅助信息,如每个对象[35]的边界框坐标。这表明MCAN更通用,可以自然地学会仅根据视觉特征去重复冗余对象。用补充材料证明了与模型集成的比较结果。

6.结论

在本文中,我们提出了一种新的用于VQA的深度模块化CoAttention网络(MCAN)。MCA由层叠的模块化共同注意(modular co-attention, MCA)层组成,每个层由自我注意单元和引导注意单元组成,协同模拟模态内和模态间的相互作用。通过使用编码器-解码器策略深度叠加MCA层,我们获得了一个深度MCAN模型,实现了VQA的最新性能。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。