阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)

转载请注明出处:西土城的搬砖工
论文链接:Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding

来源EMNLP(2016)

关键词Multimodal Compact Bilinear(MCB),VQA

问题

阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)对于像视觉问答系统、视觉定位系统这样Multimodal任务,需要融合不同类型modal的向量得到一个joint representation。传统的向量融合方式一般是:点乘,点加,全连接。作者认为这些方法不如向量的外积更具有表达性。但是向量的外积会引起维度的急剧增加,因此作者提出了MCB的方法。

方法

1 MCB的框架

双线性模型:z = W[x @q](@表示外积)

如果x和q都是2048维,z是3000维,整个参数空间大小是:2048*2048*3000 ,所以需要对外积进行降维和避免直接计算外积。

降维:通过the count sketch projection function ,将向量v(n维)映射到向量y(d维)。

避免直接计算外积:阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)

阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)

阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)2 MCB在VQA任务的应用

1.VQA结构:

阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)给定图片和问题,预测答案的过程可以看做一个在候选答案集合进行多分类的任务:

对于输入的问题,利用2-LSTM,每层1024个结点,得到2048维度的文本向量;对于输入的图片,利用预训练好的152层的Res-net。然后将这两个向量通过MCB后正则化和归一化后得到16000联合表示的向量,再将这16000维度的向量连接到3000个答案上进行多分类。

2.Multiple Attention:

阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)

Attention机制使得模型专注于输入特征的和当前问题最相关的部分,目前常用的是soft-attention的方法。而multiple attention的动机则是相当于回答问题之前多次的观察。

首先利用MCB产生一个联合向量,然后使用两个卷积层去预测每一个区域的attention权值,通过softmax归一化后的soft attention map和原始视觉向量加和,得到注意力视觉向量。比较巧妙地的是产生了两个attention map,模仿多次的观察。

实验结果:

阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)MCB性能对比实验:

1 MCB优于点乘,点加,全连接的方法

2参数规模相同的时候,MCB优于Concat+FC+FC

3压缩对双线性池化的方式没有太大影响

4 soft attention,最好的搭档是MCB

阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)

从实验结果上看:

MCB:1%多

Att :3%多

Genome:1%多

Glove:0.2%左右

相关工作

1向量的连接方式:

a = [1,2], b = [3,4]

点乘(element-wise)[3,8]

点加(elsement-add)[4,6]

全连接(concencate)[1,2,3,4]

内积(inner-product)11

外积(outer-product)向量

维基百科中对向量外积的定义:

阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)

2 MCB的前世今生:

①1T.-Y. Lin(et.all) CNN models for fine-grained visual recognition.在细粒度视觉识别任务中,作者把CNN网络的全连接层改为双线性层后,取得了很大提升。

②2Yang Gao(et.all) Compact bilinear pooling

提出两种压缩双线性模型,和完整的双线性模型相比,损失基本不变但是参数规模缩减了两个数量级,而且支持端到端的训练结构。

③3Ninh Pham(et.all)在Fast and scalable polynomial kernels via explicit feature maps

提出了两个向量外积的count sketch可以被转化为每个countsketch的卷积。

3 VQA:

任务:给定一张图片和自然语言形式的问题,生成自然语言形式的答案。

背景:这个任务同时涉及到了CV和nlp两个领域。类似的多领域问题最近非常火的就是看图说话(Image Caption)任务,但是看图说话只需要产生对图片的一般性描述,而视觉问答需要理解问题的真正含义,根据问题的不同仅聚焦与图片中的某一部分,而且某些问题还需要一定的常识推理才能做出回答。因此,VQA相比看图说话在图像语义的理解方面有更高的要求。

方法:近年来,各种以CNN网络为基础的深度学习网络层出不穷,将图像的底层特征如纹理,边角,色彩逐层抽取组合成更高级的语义特征。和传统的词包模型相比,rnn模型能够捕捉词语序列,通过参数共享的方式减少参数规模,并且LSTM,GRU等等改进版本能够更好捕捉长距离信息的表达。目前,利用CNN抽取图像语义信息,rnn抽取问题中包含的文本语义信息,将两者的信息融合构造组合模型是VQA问题的主流方法。从答案的生成方式看可以分为:分类模式和生成模式。

分类:

阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)
生成:
阅读笔记(Multimodal Compact Bilinear Pooling for Visual Question Answering and Visual Grounding)小结:VQA这样的任务,主流的方法都是需要联合表达图像信息和文本信息。目前主流的结合两个向量的方式有点乘,点加,连接。但是作者觉得这样产生的联合向量表达能力不够,不足以捕捉多模型之间复杂的交互信息。于是作者提出了这样一个猜想:多模型向量的外积可以表达多模型向量的交互信息。因为传统的向量结合方式都是针对单个元素的,向量外积的方式是对两个向量之间所有元素的乘法操作。但是双线性模型计算向量外积的过程中,产生的向量维数太大,计算量太大,所以双线性模型计算外积的方式并没有被广泛采用。

简评

之前老师说过,创新点可以分为应用创新和模型创新。我觉得这两种创新方式其实是相辅相成的。这里作者因为想要改进VQA模型中视觉向量和问题向量的融合方式,提出了外积这个想法,成功地将之前的cbp(compact biliniaer pooling)模型改进后应用到模型融合的过程中。这种解决问题的思路值得我们参考和学习。

本文还有一个创新点就是应用了soft attention。并且使用的了两层attention maps,对MCB后的联合向量去求attention weight后对关注的视觉向量。

再者,作者参加VQA比赛的时候,单个模型最好的的实验结果是MCB+att+genome+glove,只比后面两名高了1个百分点左右。但是集成7个模型的时候取得的的结果则比后面的模型提升了4到5个百分点。说明在做这种比赛的时候,还是能够多用一些trick提升就多用一些。