【论文阅读】Deep Modular Co-Attention Networks for Visual Question Answering

【论文阅读】Deep Modular Co-Attention Networks for Visual Question Answering
Deep Modular Co-Attention Networks for Visual Question Answering

先理解下这个要干嘛:

Visual Question Answering (VQA): 给一个图片和关于这个图片的问题,然后模型输入这两个数据,输出答案。
文章中用得到的数据库VQA-v2里的一个例子:

【论文阅读】Deep Modular Co-Attention Networks for Visual Question Answering
把中间的乱七八糟给盖住:
【论文阅读】Deep Modular Co-Attention Networks for Visual Question Answering

输入问题:胡子是用什么做的?
输出答案:香蕉
需要设计网络做到同时理解文本内容,抓住关键词,同时理解图片中关键区域的内容:“哪里是胡子”这个问题肯定得先定位出来才能解下来回答“是用什么做的”。

网络既能理解文本又能理解图像,一听就比较神奇,这就涉及到多模态(两种不同的数据类型)了。
文章中认为此类问题的关键是 共同注意力机制 “co-attention”,同时关注文本中的key word以及图片中的key objects。
之前的研究可以利用浅层网络实现 “co-attention”,但是效果一般,加深的网络相比于浅层网络也没什么提升。
文章中针对上面的问题,提出了 Modular Co-Attention Network 网络,这个网络又由MCA layer组合而成。
每个MCA layer都由两个元素组成,1 self-attention 2 guided-attention

MCA layer

Modular Co-Attention Layer
两个基本单元,self-attention unit (SA)和guided-attention unit (GA),本质上是一样的,其实就是受transformer的启发,the scaled dot-product attention ,具体可以参考[1];
这两种单元可以做特定的组合,能够得到三种不同结构的 MCA layer;

self-attention unit (SA)

【论文阅读】Deep Modular Co-Attention Networks for Visual Question Answering

一个输入X;
一个输出Z;
输入 X X X X = [ x 1 ; . . . ; x m ] ∈ 2 R m ⇥ d x {X = [x_1; ...; x_m]}\in2 R^{m⇥d_x} X=[x1;...;xm]2Rmdx
multi-head attention学习到了成对输入元素之间的关系, < x i , x j > <x_i, x_j> <xi,xj>
得到的输出Z,直接会经过FC(4d)-ReLU-Dropout(0.1)- FC(d);

guided-attention unit (GA)

【论文阅读】Deep Modular Co-Attention Networks for Visual Question Answering
两个输入X和Y;
一个输出Z;
X ∈ R m ⇥ d x X\in R^{m⇥d_x} XRmdx
$Y = [y_1 ; …; y_n ]\in R^{n⇥d_y} $
Y对X的attention具有指导作用;
GA对X与Y元素之间 < x i , y j > <x_i, y_j> <xi,yj>的组合关系进行建模;

组合

三种组合
【论文阅读】Deep Modular Co-Attention Networks for Visual Question Answering
不同的输入以及连接方式;

MCAN

【论文阅读】Deep Modular Co-Attention Networks for Visual Question Answering
两种deep co-attention模型:stacking 和encoder-decoder;
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-st4bjlwy-1605009424297)(./1605008116068.png)](https://img-blog.csdnimg.cn/20201110200549996.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3NDc3MTc1,size_16,color_FFFFFF,t_70#pic_center)

stacking模型是由多个MCA层串联成的,输出的是最终的图像特征和问题特征。encoder-decoder模型思路来自于Transformer模型,编码器是由L个SA单元来学习问题特征,解码器是用SGA单元,根据问题特征来学习图像特征
图像特征维度 X ∈ R m ⇥ d x X \in R^{m⇥d_x} XRmdx.
文本query是将输入的问题先划分为单词,最多为14个单词,之后再用300维的GloVe word embeddings方法将每一个单词转化为一个向量。词嵌入再输入一个单层的LSTM网络(有个隐藏单元),输出一个query的特征矩阵Y。

参考

[1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob
Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. In Advances in Neural Information Processing Systems, pages 6000–6010, 2017.