用于视觉问答的深度模块化共同注意网络 《Deep Modular Co-Attention Networks for Visual Question Answering》

目录

  • 文献摘要介绍
  • 文献内容讲解
  • 网络框架详细介绍
  • 实验分析
  • 结论

本文有点长,请耐心阅读,定会有收货。自己是研究生一枚,如有不足,欢迎交流 附: 本文的代码地址

一、文献摘要介绍

    Visual Question Answering (VQA) requires a fine-grained and simultaneous understanding of both the visual content of images and the textual content of questions.Therefore, designing an effective ‘co-attention’ model to associate key words in questions with key objects in imagesis central to VQA performance. So far, most successful attempts at co-attention learning have been achieved by using shallow models, and deep co-attention models show little improvement over their shallow counterparts. In this paper, we propose a deep Modular Co-Attention Network (MCAN) that consists of Modular Co-Attention(MCA) layers cascaded in depth. Each MCA layer models the self-attention of questions and images, as well as the question-guided-attention of images jointly using a modular composition of two basic attention units. We quantitatively and qualitatively evaluate MCAN on the benchmark VQA-v2 dataset and conduct extensive ablation studies to explore the reasons behind MCAN’s effectiveness.Experimental results demonstrate that MCAN significantly outperforms the previous state-of-the-art. Our best single model delivers 70.63% overall accuracy on the test-dev set.

    首先文献作者介绍了动机,VQA需要细粒度化以及同时理解视觉(图像)内容和文本(问题)内容,因此设计了模块化协同注意力网络模型来结合问题中的关键词和图像中的关键目标。但是目前的协同注意力学习只用在了浅层模型,而深层模型在浅层问题上只有微弱的提升。这篇文章作者提出了深层协同注意力网络MCAN(由协同注意力模块MCA层串联构成)。每一个MCA层都能够对图像和问题的自我注意力( self-attention of questions and images)进行建模,以及问题-图像的引导注意力(question-guided-attention of images),最后作者还对该模型进行了评估。

二、文献内容讲解

    注意力机制目前表现出了非常好的效果,目前协同注意力在图像和文本表示中也有着不错的表现。但是,这种协同注意力机制只能够学习到多模态之间粗糙的交互,协同注意力也不够进行图像和问题关键词之间的关系推断。为了解决协同注意力不能够进行多模态之间的充分交互问题,目前提出了两个密集协同注意力模型(dense co-attention model)——BAN和DCN。有趣的是,这两个模型是可以串联在一起解决更深层次的视觉推理。但是这两个模型相较于浅层模型却仅有很小的性能提升,作者认为原因在于这两个模型没有同时在每一个模态中对密度自注意力建模。

    MCAN网络框架的设计灵感来自于Transformer模型,作者设置了两个注意力单元(general attention units):一个自注意力单元(self-attention (SA) unit)进行模态内部交互和一个导向注意力单元(guided-attention (GA) unit)进行模态之间交互。之后再用一个协同注意力模块层(Modular Co-Attention (MCA) layers)将两个单元串联起来,最后将多个模块层串联起来,组成MCAN网络(Modular Co-Attention Network (MCAN))。模型基于VQAv2数据集的精度如下图所示:
在这里插入图片描述

1.相关工作

  • VQA
    VQA是近几年发展起来的新方向。一般处理思路就是将图像和问题先表示为全局特征,然后再用多模态融合模型进行答案的概率预测。目前问题的表示主要用LSTM,多模态融合主要用残差网络。目前融合造成的问题在于,对一张图进行全局特征表示也许会损失一些关键信息,而这些信息可能涉及到问题中的图像局部区域,解决办法大多还是用的注意力机制。

  • 协同注意力模型(Co-Attention Models)
    同时学习问题的文本注意力和图像的诗句注意力是有必要的,目前协同注意力网络网络是在每个模态中分别学习其注意力分布,且忽视了图像和文本的密集交互(dense attention)。这对多模态特征之间细粒度关系的理解造成了瓶颈。解决这一问题目前主要办法则是用密集的协同注意力网络。

2.模块化协同注意力层MCA(Modular Co-Attention Layer)

    MCA层是将两个注意力单元结合起来的一个模块,灵感来自于scaled dot-product attention,使用三种结合方式,将能够获得三种MCA变体(variants),首先看一下论文作者设计的网络的架构。
在这里插入图片描述
    整个网络分为了三个模块:①对输入的图像和问题进行特征表示(representation);②提出两个协同注意力模型,即stacking和encoder-decoder,这两个模型都是由多个MCA层串联而成,能够对之前的问题特征和图像特征进行进一步提炼;③利用一个简单的多模态融合模型对两个特征进行融合,最后再将其输入到一个多标签类别分类器中进行正确答案的预测。
    接下来对该架构进行详细的分析,论文借鉴了Attention Is All You Need里面的Scaled Dot-Product Attention 和 Multi-Head Attention,我们介绍一下Attention Mechanism,为了能够详细理解今天讲的这篇论文,首先先介绍一下Attention的定义,然后对Scaled Dot-Product Attention 和 Multi-Head Attention进行讲解。
(1)Attention定义
    Attention用于计算"相关程度",例如在翻译过程中,不同的英文对中文的依赖程度不同,Attention通常可以进行如下描述,表示为将query(Q)和key-value pairs映射到输出上,其中query、每个key、每个value都是向量,输出是V中所有values的加权,其中权重是由Query和每个key计算出来的,计算方法分为三步:
1)计算比较Q和K的相似度,用f来表示:
在这里插入图片描述

2)将得到的相似度进行softmax归一化:
在这里插入图片描述

3)针对计算出来的权重,对所有的values进行加权求和,得到Attention向量:
在这里插入图片描述
计算相似度的方法有以下4种:
在这里插入图片描述
    在本文中,我们计算相似度的方式是第一种,将Attention落实到具体,分别叫做 Scaled Dot-Product Attention 和 Multi-Head Attention。 计算self attention的第一步是从每个Encoder的输入向量上创建3个向量(在这个情况下,对每个单词做词嵌入)。所以,对于每个单词,我们创建一个Query向量,一个Key向量和一个Value向量。这些向量是通过词嵌入乘以我们训练过程中创建的3个训练矩阵而产生的。

(2)Scaled Dot-Product Attention

Scaled Dot-Product Attention的图示如下:
在这里插入图片描述

  • First Step
         首先从输入开始理解,Scaled Dot-Product Attention里的Q, K, V从哪里来:按照我的理解就是给我一个输入X, 通过3个线性转换把X转换为Q,K,V。
    在这里插入图片描述

两个单词,Thinking, Machines. 通过嵌入变换会X1,X2两个向量[1x4]。分别与Wq,Wk,Wv三个矩阵[4x3]做点乘得到,{q1,q2},{k1,k2},{v1,v2} 6个向量[1x3]。

  • Second Step
    在这里插入图片描述

向量{q1,k1}做点乘得到得分(Score) 112, {q1,k2}做点乘得到得分96。

  • Third and Forth Steps
    在这里插入图片描述

对该得分进行规范,除以8。这个在论文中的解释是为了使得梯度更稳定。之后对得分[14,12]做softmax得到比例 [0.88,0.12]。

  • Fifth Step
    在这里插入图片描述

用得分比例[0.88,0.12] 乘以[v1,v2]值(Values)得到一个加权后的值。将这些值加起来得到z1。这就是这一层的输出。仔细感受一下,用Q,K去计算一个thinking对与thinking, machine的权重,用权重乘以thinking,machine的V得到加权后的thinking,machine的V,最后求和得到针对各单词的输出Z。

  • 矩阵表示
    在这里插入图片描述
  • 22
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
co-attention协同注意力机制是一种在多模态任务中应用的机制。它通过同时关注两个不同的输入序列,以便更好地理解它们之间的关系。这种机制有两种实现方式,分别为Parallel co-attention mechanism和Alternating co-attention mechanism。 其中,Parallel co-attention mechanism是将注意力机制应用在两个输入序列之间的每一次互动上。具体来说,它为每个单词在区域上创建一个注意图,并为每个区域在单词上创建一个注意图。这种机制可以循环叠加使用,以进一步增强关注的效果。 Alternating co-attention mechanism则是通过交替地在两个输入序列之间进行注意力计算来实现。它首先计算第一个序列对第二个序列的注意力分布,然后再计算第二个序列对第一个序列的注意力分布。通过交替计算,可以更好地捕捉到两个序列之间的相关性。 总之,co-attention协同注意力机制是一种在多模态任务中应用的机制,它可以帮助我们更好地理解和建模不同输入序列之间的关系。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Co Attention注意力机制实现](https://blog.csdn.net/tszupup/article/details/117292683)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【论文解析】《 Dense Symmetric Co-Attention for VQA》改进视觉和语言表示的密集对称协同注意力机制的...](https://blog.csdn.net/weixin_44794449/article/details/101753183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [《Deep Modular Co-Attention Networks for Visual Question Answering》论文笔记](https://download.csdn.net/download/weixin_38621897/14035239)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值