摘要

注意力捕获模态内和模态间的依赖关系,可能已经成为解决视觉问答的最广泛使用的机制。本文中,我们提出一种改善的基于注意力的结构,我们在编码器-解码器框架中加入一个Attention on Attention(AoA)模块,能够决定注意力结果和查询之间的关系,注意力模块为每个查询生成加权平均值。另一方面,AoA模块首先利用注意力结果和当前上下文生成一个信息向量和一个注意力门,然后添加另一个注意力通过将两者相乘来生成最终参与的信息。我们也提出了多模态融合模块来结合视觉和文本信息,融合模块的目标是动态决定应该从每个模态中考虑多少。在VQA v2数据集上的实验证明我们的方法相比于基线方法实现了更好的表现。

一、介绍

受深度神经网络近期优点的启发,基于注意力的方法被广泛用于解决计算机视觉问题,VQA中的注意力方法现在变为大多结构的重要组成部分。[27]首先将基于注意力的方法引入VQA,[17,36]使用协同注意力,这些更全局、协同注意的方法的局限性是,它们无法建模单个图像区域和单词之间的交互和注意力。为解决此问题,密集协同注意力被提出(BAN,DCN),其中每个图像区域都能与问题中的任何单词交互,能够更好理解和推理图像-问题关系。

然而密集协同注意力的瓶颈在于缺乏每个模态的自注意力。因此[34]提出MCAN,MCA模块级联组成。然而,虽然有表现力且高度灵活,但这种形式的注意力仍然有一个局限性。具体来说,结果总是一个模型参与的值对的加权组合,当模型参与的没有密切相关的上下文时(如没有上下文单词或图像区域存在的一个单词),可能会出现问题。在这种情况下,注意力会导致有噪声或更分散的输出向量,从而对性能产生负面影响。

使用[10]的启发,本文我们利用AoA模块的想法来解决上述限制。AoA模块多次级联形成一个在注意力网络中的新的模块化协同注意力(MCAoAN),是对模块化协同注意力网络(MCAN)的改进扩展。AoA模块通过使用类似于GLU[6]的两个独立的线性变换生成一个信息向量和一个注意力门,注意力结果和查询上下文连接在一起,通过一个线性变化,我们可以得到一个信息向量,同样地,通过另一个sigmoid激活函数的线性变换,获得一个注意力门。通过元素乘法,我们最终得到了参与的信息,其中建立了多个注意力头的关系,只保留最相关的一个,丢弃所有不相关的注意力结果。因此,模型能够预测更准确的答案。我们还提出了一种多模态融合机制,在结合图像和语言特征时动态调节模态重要性。

我们的贡献:(1)我们引入了Attention on Attention模块来形成一个在注意力网络上的模块化协同注意力(MCAoAN)。MCAoAN捕获视觉和语言模态的模态内和模态间的注意力,也能减轻来自不相关上下文的信息。(2)我们也提出一种基于多模态注意力的融合机制,以结合图像和问题特征。我们的融合网络动态地决定怎样对每个模态加权,生成最终的特征表示来预测正确答案。(3)在VQA-v2数据集上的实验表明,提出的方法优于竞争者,在视觉问答方面明显优于基线方法。

二、相关工作

2.1 视觉问答

[33](2016)引入了一个注意力网络来支持图像问答任务的多步推理。[26](2019)提出了一个模型不可知框架,依赖于周期一致性来学习VQA模型。[31](2019)提出一种差分网络(DN),一种新的即插即用模块,使用成对特征间的差异来降低噪声和学习特征间的内部依赖性。

[17](2016)引入一个协同注意力网络以分层的方式共同推理图像和问题注意力。[36](2018)提出一种通过应用问题嵌入的自注意力和问题条件注意力来减少不相关特征的架构。[18(2017), 25(2017)]提出多模态注意力,同时关注图像、问题或答案特征。最近,[7(2016),12(2016),35(2017) ]提出双线性注意力来定位更准确的区域。[20](2017)提出一种对多模态推理和匹配的多步双重关注。这些基于共同注意力的方法的一个主要局限性在于缺乏不同模态间的密集交互。[34(2019),11(2018)]提出密集协同注意力方法,但在与查询不相关的情况下,密集协同注意力可以生成不相关的向量。通过[10](2019)的启发,本文我们结合AoA模块和模块化协同注意力网络来提升现有结构。

2.2 VQA的融合策略

现有的VQA模型的融合可以分为两类:线性和双线性。线性模型如[17(2016),33(2016)]和[15(2016),20(2017)]分别使用了元素求和与元素相乘。双线性使用更细粒度的方法,如[7](2016)使用外积融合多模态特征,[12](2016)使用循环投影,然后是元素级乘法。[35](2017)提出一种具有协同注意力学习的多模态分解双线性池化方法(MFB)。[31](2019)提出了一种基于差分网络的融合方法,首先计算图像和文本特征元素之间的差异,然后结合差分表示来预测最终答案。

本文提出一种基于注意力的多模态融合方法通过动态决定对每个模态分配多少权重来结合图像和问题特征,使用加权的特征来预测最终答案。

三、方法

MCAoAN包含MOAoA层,该层由两个主要注意力单元组成:在注意力上的自注意力(SAoA)和在注意力上的引导注意力(GAoA)单元。

3.1 SAoA和GAoA单元

SAoS单元是多头自注意力机制的扩充,多头注意力包含N个平行的头,每个头可以表示为一个缩放的点积注意力函数:

Q,K,v分别对应于query,key,value,这个注意力函数的输出是加权平均向量。首先计算Q和K之间的相似性分数,使用softmax归一化,然后将标准化分数和V一起使用,生成加权平均向量V',d是Q和K的维度。

多头注意力模块总是生成加权向量,不管在Q和K/V之间发现任何的关系,因此此方法容易误导或产生错误答案。因此我们结合另一个注意力函数来衡量注意力结果V‘和查询Q之间的关系。最终的AoA块将通过两个独立的线性变换生成一个信息向量I和注意力门G:

AoA块通过信息向量和注意力门之间的元素乘法添加了另外的注意力,而且,SAoA在AoA块之后使用一个点状前馈层,只考虑输入特征X。

我们也提出另一种注意力单元--在注意力中的引导注意力(GAoA)单元,与SAoA不同的是,GAoA在两个输入特征X和Y(X通过Y引导)之后使用AoA块和一个点状前馈层。在两个注意力单元中,前馈层将AoA块的输出特征应用两个全连接层以及ReLU和dropout函数(即FC(4d)-ReLU-dropout(0.1)-FC(d))。

SAoA将输入特征X和输出的参与特征Z作为X,GAoA将两个输入特征X和Y以及生成的参与特征Z作为由Y特征引导的输入X,X和Y分别表示图像和问题特征。

3.2 MCAoA层

MCAoA层(图3)包含两个注意力单元,MCAoA被设计为处理多模态的相互作用。我们使用级联的MCAoA层。对于两个输入特征,MCAoA层首先使用两个单独的SAoA单元来分别标注X和Y的模态内交互,然后使用GAoA单元来捕获Y引导X特征的模态间关系。

3.3 MCAoAN

首先将输入预处理为适当的特征表示,使用将ResNet-101作为骨干在Visual Genome数据集预训练的Faster R-CNN来处理输入图像。从Faster R-CNN中检测到的对象的中间特征被认为是视觉表示。根据[34],我们考虑一个阈值来获得被检测对象的动态数量,最终图像特征由特征矩阵X表示。

输入问题首先被标记化,然后裁剪到最多14个单词,预训练好的GloVe嵌入用于将每个词转换为一个向量表示,导致一个单词序列的大小为n*300的最终表示。将单词嵌入输入到一层LSTM网络,通过捕获所有单词的输出特征,生成最终的查询特征矩阵。

将两个输入特征传递给包含级联MCAoA层的编码器-解码器模块,编码器通过叠加L个SAoA单元来学习注意力问题特征YL,解码器通过使用查询特征YL堆叠L个GAoA单元来学习参与的图像特征XL。

3.4 多模态融合

本文提出两种多模态融合网络:1)多模态注意力融合,2)多模态Mutan融合。根据[34],首先使用两层的MLP(如FC(d)-ReLU-Dropout(0.1)-FC(1)),生成参与特征X'和Y':

现在我们有来自两个模态的丰富参与特征,同时每种模态应该使用来相互产生注意力以进行更好的预测。因此,我们需要决定,从每种模态中应该使用多少信息。根据[19],在多模态融合中,我们对X'和Y'应用连接,然后是一系列全连接层(如FC(1024)-Dropout(0.2)-FC(512)-Dropout(0.2)-FC(2)-Softmax)(图5(a))。这些操作的输出是一个二维特征向量,对应于两种模态对答案预测的重要性。在此之后,我们为每个模态生成参与特征(如A和B)的加权平均值,类似于式4和5,A和B与参与的视觉和文本特征X'和Y'结合,最后,融合的特征被送入一个LayerNorm来稳定训练,然后建立一个全连接层和sigmoid激活来生成预测答案Z。我们使用二值交叉熵损失(BCE)来训练网络。

另一方面,我们也利用一种强大的融合技术,MUTAN融合。这个网络与以上模型相似,但用全连接层的MUTAN融合取代了连接(如Dropout(0.2)-FC(2)-Softmax)。

四、实验

4.1 数据集

VQA v2数据集

4.2 实验和实现细节

跟随[34]的实验控制,多头注意力中头的数量是8,多头和AoA块的潜在维度均为512,因此每个头的维度为64,答案词汇表是3129.

为了训练MCAoA网络,我们使用了β1=0.9和β2=0.98的Adam求解器。我们将我们的网络训练到13个epoch,批大小为64,大约需要24小时来完成训练。学习速率设置为min(2.5Te−5,1e−4),其中T表示当前epoch。当10≤T时,学习速率开始每2期衰减1/5。

4.3 消融研究

级联层的数量(L):MCAoA层由L个堆叠的SAoA和GAoA单元组成。从表1中我们可以看出,最初,随着L值的增加,模型的性能也在提高,直到L=6。在那之后,性能就达到了饱和。我们在最终的模型中使用L=6。我们使用默认的[34]超参数的验证集。

每个单独组件的有效性:我们改进后的体系结构有两个重要的组成部分:(1)MCAoAN网络,由SAoA模块和GAoA模块以及(2)多模态融合结合图像和语言特征,在这里,我们描述了两种不同的融合机制:Mutan融合和多模式注意融合。表2在验证集上展示了单个组件的实验结果,并与MCAN比较。从表中看出,将SAoA和GAoA模块与MCAN相结合,提高了VQA系统的性能。

此外,我们认为一种复杂的方法聚合语言和视觉特征来支持多模态推理,对于进一步提升性能至关重要。更具体地说,我们提出的具有两个多模态融合模块的MCAoAN在整个验证集上都优于基线约2%的精度,表示融合模块对于结合视觉和语言表示是重要的。多模态注意融合表现最好。我们提出的方法中的每个组件对于提高VQA系统的性能都很重要。

4.4 实验结果

我们重新运行PyTorch实现,表3和表4分别显示了使用test-dev和test-std的实验结果。离线评估只支持验证集(如图2)。

图6显示了使用我们的方法在验证集上的一些定性结果。从实验结果中,我们看出我们的方法优于其它基线方法。

图7中我们还可视化了多模态融合,以比较MCAN[34]和我们提出的多模态注意融合如何能够正确地关注图像和问题元素。图像上和问题前面的分数代表每种模态的权重。我们也通过边界框和词显示注意力,图像中较亮的边界框、绿色和较深的颜色代表了更高的注意力分数。我们可以看到,我们提出的方法能够更多地关注正确的答案。此外,图8还显示了使用我们的方法进行的典型失败案例。

五、结论

本文中,我们提出一种改善的基于端到端的注意力的结构,我们提出的模型包括对具有多模态融合架构的注意力模块的模化协同注意力。在本文中,我们提出了两种版本的多模态融合:多模态注意融合和多模态mutan融合。实验结果表明,该模型中的各组件都提高了VQA系统的性能。此外,最终的网络在VQA-v2数据集上取得了显著的性能。

2021:An Improved Attention for Visual Question Answering相关推荐

  1. R-VQA: Learning Visual Relation Facts with Semantic Attention for Visual Question Answering

    博主水平有限,大部分为机翻 摘要: 最近,视觉问答(VQA)已经成为多模式学习中最重要的任务之一,因为它需要理解视觉和文本模式.现有方法主要依靠提取图像和问题特征来通过多模态融合或注意机制来学习它们的 ...

  2. 2021:Check it again:Progressive Visual Question Answering via Visual Entailment通过视觉暗示进行渐进式视觉问答

    摘要 虽然复杂的视觉问答模型取得了显著的成功,但它们往往只根据问题和答案的表面关系回答问题.最近已经开发了几种方法来解决语言先验问题,但大多数根据一个最好的输出来预测正确答案,不考虑答案的真实性,此外 ...

  3. Ask, Attend and Answer: Exploring Question-Guided Spatial Attention for Visual Question Answering

      文中提到当前一些处理VQA任务的方法都是基于处理Image Captioning任务的方法,具体就是采用卷积递归神经网络,但是这种方法不能很好的模拟spatial inference.文中提出Sp ...

  4. Check It Again: Progressive Visual Question Answering via Visual Entailment

    最近要做关于VQA的项目,要读paper-这里收集了一些有关于这篇paper的资料. 资料 导读: SFFAI 130 视觉问答专题<佀庆一:中国科学院信息工程研究所在读博士> 2021: ...

  5. MUTAN:Multimodal Tucker Fusion For Visual Question Answering

    MUTAN:Multimodal Tucker Fusion For Visual Question Answering 0.写在前面 在介绍本篇论文前,我们首先介绍什么是矩阵分解,tucker张量分 ...

  6. 论文笔记:Ask, Attend and Answer: Exploring Question-Guided Spatial Attention for Visual Question Answeri

    Ask, Attend and Answer: Exploring Question-Guided Spatial Attention for Visual Question Answering Hu ...

  7. 【论文分享】Relation-Aware Graph Attention Network for Visual Question Answering

    分享一篇nlp领域运用注意力机制设计视觉问答系统的文章,只是对文章进行翻译以及简单的归纳. 目录 二.动机 三.方法 1.问题定义 2.模型结构 2.1 图的构建 2.2 关系编码器 2.3 多模融合 ...

  8. 自下而上和自上而下的注意力模型《Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering》

    本文有点长,请耐心阅读,定会有收货.如有不足,欢迎交流, 另附:论文下载地址 一.文献摘要介绍 Top-down visual attention mechanisms have been used ...

  9. 【Transformer论文解读】TRAR: Routing the Attention Spans in Transformer for Visual Question Answering

    TRAR: Routing the Attention Spans in Transformer for Visual Question Answering 一.Background With its ...

  10. 论文阅读—Relation-Aware Graph Attention Network for Visual Question Answering

    论文阅读-Relation-Aware Graph Attention Network for Visual Question Answering 一.标题 用于视觉问答的关系感知图注意力网络 二.引 ...

最新文章

  1. python学会了可以做什么菜_python学习之路(24)
  2. 在Python中调用C++,使用SWIG
  3. 小余学调度:学习记录(2022.4)
  4. controller方法要trycatch吗_拜托,别再满屏try catch了,试试统一异常处理吧
  5. python文件行数统计_文件行数和代码行数统计
  6. mysql数据库的备份和恢复的常用方法_MySQL数据库备份与恢复方法(转)
  7. java工作流引擎Jflow流程事件和流程节点事件设置
  8. selenium中录制拖拽动作
  9. Go 自动构建工具 dogo 代码已托管到 Git@OSC
  10. 中国人工智能学会通讯——人工智能在各医学亚专科的发展现状及趋势 1.6 结束语...
  11. 解压rar文件压缩包时出现“An error occurred while loading the archive”的解决办法
  12. Unity实时涂鸦绘画插件:RealTime Painting
  13. Rs.recordcount=-1的解决办法
  14. android高仿股票源码,StockChart 自定义股票行情图,高仿某币 app 行情图 @codeKK Android开源站...
  15. 可以实现图片编辑修改文字app有哪些?这三款工具很实用
  16. 解决Flutter键盘弹起导致与输入框有间距问题(Flutter键盘弹起Scaffold布局流程)解析
  17. 苹果电脑卸载顽固图标
  18. 好东西为什么卖不动,店铺选址开店必读!
  19. Matlab 应用GPU加速
  20. Hulu全球研发副总裁诸葛越谈人工智能

热门文章

  1. Browser 相关内容
  2. 自恢复保险丝工作原理
  3. python display方法_python学习之Display
  4. 推荐两款很好用的听书APP
  5. Vue源码阅读(28):mergeOptions() 方法源码解析
  6. iOS开发UI篇 -- UINagivationController
  7. 4836: [Lydsy1704月赛]二元运算(cdq分治 FFT)
  8. Go的WaitGroup源码分析
  9. C# 添加水印图片、文字、缩略图处理
  10. Introduction to NLP