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

一、论文信息

论文地址https://arxiv.org/abs/1812.05252
项目地址https://github.com/bupt-cist/DFAF-for-VQA.pytorch,复现代码

二、论文模型

2.1预处理部分

使用了Faster-RCNN对每个目标image提取了100个RoI,得到 100 × 2048 100\times 2048 100×2048 大小的向量。论文中使用了GLoVe作为词嵌入算法,使用GRU对question进行特征提取,得到 14 × 1280 14 \times 1280 14×1280的word-level features。词嵌入长度被固定为14。下面的公式用来表示提取特征。

2.2 Inter-modality Attention Flow (InterMAF)

InterMAF接受传入的Visual Feature和Question Feature,这一部分构建的目的是进行跨模态的信息交互,就是将Visual Feature和Question Feature进行交互得到新的特征。

  • 论文中对于跨模态交互使用的是self-attention方式,在这里插入图片描述
    文中的(3)后面一个公式应该是E,可能是论文作者的错误。
  • 首先得对R和V(R表示问题特征,V表示图像特征)使用全连接得到各自得到三个矩阵,作者为了进行模态融合使用了对R_Q、R_K和E_K,E_Q进行内积,使用softmax方式分别得到R→E和E→R的融合权重矩阵,并且由于内积值的大小与维度dim关系很大,所以进行了归一化。在这里插入图片描述
  • 接下来就利用两个InterMAF进行进行注意力的加权,得到 R u p d a t e 和 E u p d a t e R_{update}和E_{update} RupdateEupdate
    在这里插入图片描述
  • 最后利用更新完成的 R u p d a t e 和 E u p d a t e R_{update}和E_{update} RupdateEupdate与原R和V进行融合,并用全连接的方式输出改变后的R和E,完成这一步后R,E将会被送Dynamic Intra-modality Attention Flow module
    在这里插入图片描述

2.3 Dynamic Intra-modality Attention Flow (DyIntraMAF)

DyIntraMAF的输入是上一步的输出,即R和E,这一部分的主要目的是进行模态内的交互。

首先是进行模态自身间的交互,这一部分的初始化的方式与InterMAF中的是一样的,即得到 R K , R Q , R V , E Q , E Q , E V R_K,R_Q,R_V,E_Q,E_Q,E_V RK,RQ,RV,EQ,EQ,EV。与InterMAF不同的是进行自身交互时交互方式变为与自身矩阵进行内积。即:
在这里插入图片描述

  • 上面部分作者认为是一种naive的方式。然后在文中引入了动态机制,所谓动态就是能根据另一种模态来调节当前模态的值。具体表现就是使用了另外一个模态的条件门向量来控制当前模态的Key和Query,这里使用question门控机制为例,来解释条件门机制的工作。

在这里插入图片描述

  • 对问题特征进行average pooling和sigmoid操作得到Conditional Gating Vector,操作公式如下:
    在这里插入图片描述
  • 然后对 R Q , R K , E Q , E K R_Q,R_K,E_Q,E_K RQ,RK,EQ,EK进行更新操作,我认为下面的公式可以拆开更好理解,即 R ^ Q = R Q + G R ← E ⊙ R Q \hat{R}_{Q}=R_{Q}+G_{R \leftarrow E} \odot R_{Q} R^Q=RQ+GRERQ,可以看作点乘之后的融合
    在这里插入图片描述
  • 后面的步骤与InterMAF类似,直接给出公式:
    在这里插入图片描述
    在这里插入图片描述
    与InterMAF不同的是在于公式19和20使用的是加和方式,而InterMAF使用的是级联方式。作者在实验中发现DyIntraMAF的性能超过了单纯的IntraMAF。

2.4 Intra- and Inter-modality Attention Flow (DFAF)

DFDA是由InterMAF和DyIntraMAF组合起来的,作者说明多个DFAF叠加对于模型具有更好的效果。DFDA内部使用了类似于残差的结构,因此不会出现梯度问题。原始的特征会根据沿通道维数划分成组,不同的组会产生平行的attention,独立地更新不同组中的视觉特征和单词特征。

2.5 输出层和损失函数

问题特征和图像特征经过DFDA以后,输出的是更新后模态交互的特征,把问题特征和图像特征分别进行average pooling后进行融合,作者尝试了级联,加和,点乘等方式的融合,发现点乘方式有更好的融合效果。
跟其他的前沿方式一样,把VQA看成分类问题。将融合的向量经过两层MLP,在两层MLP中间加入ReLU激活函数,然后通过softmax输出结果。损失函数使用的是经典的交叉熵损失函数。

三、实验部分

3.1 数据集

数据集使用的是VQA2.0。实验参数的具体初始化可以看论文。

3.2 模型简化测试

下面是模型简化测试的一些修改组分和实验精度
在这里插入图片描述

3.3 实验对比

作者的实验acc在很多项超过了最先进的实验,最终在测试集上的精度达到了70.34%。

在这里插入图片描述

四、总结

这篇文章的主要贡献在于:

  1. 提出了一种新的带有模态内和模态间注意流的动态融合框架(DFAF),该方法通过交错模内和模态间特征融合来实现多模态融合。 这样的框架首次在解决VQA任务的统一框架中整合了交互模式和动态模式内部信息流。
  2. 提出了动态内部模态注意(DyIntraMAF)模块,用于在每个模态内生成有效的注意流,该模块动态地以其他模态的信息为条件。 这是我们提出的框架的核心新颖性之一。
  3. 进行了广泛的实验和模型简化研究,以检验所提出的DFAF框架的有效性,提出的DFAF框架实现了最先进的VQA性能。

个人认为作者在使用DyIntraMAF还是使用了模态间的控制方式,并不能算作完全的模态内的交互,我将这个模态内的交互看成一种偏重各自特征的跨模态交互。

如有错误,欢迎在评论区留言!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值