来源:EMNLP(2016)
关键词:Multimodal Compact Bilinear(MCB),VQA
问题:
对于像视觉问答系统、视觉定位系统这样Multimodal任务,需要融合不同类型modal的向量得到一个joint representation。传统的向量融合方式一般是:点乘,点加,全连接。作者认为这些方法不如向量的外积更具有表达性。但是向量的外积会引起维度的急剧增加,因此作者提出了MCB的方法。
方法:
1 MCB的框架
如果x和q都是2048维,z是3000维,整个参数空间大小是:2048*2048*3000 ,所以需要对外积进行降维和避免直接计算外积。
降维:通过the count sketch projection function ,将向量v(n维)映射到向量y(d维)。
避免直接计算外积:
2 MCB在VQA任务的应用
1.VQA结构:
给定图片和问题,预测答案的过程可以看做一个在候选答案集合进行多分类的任务:
对于输入的问题,利用2-LSTM,每层1024个结点,得到2048维度的文本向量;对于输入的图片,利用预训练好的152层的Res-net。然后将这两个向量通过MCB后正则化和归一化后得到16000联合表示的向量,再将这16000维度的向量连接到3000个答案上进行多分类。
2.Multiple Attention:
Attention机制使得模型专注于输入特征的和当前问题最相关的部分,目前常用的是soft-attention的方法。而multiple attention的动机则是相当于回答问题之前多次的观察。
首先利用MCB产生一个联合向量,然后使用两个卷积层去预测每一个区域的attention权值,通过softmax归一化后的soft attention map和原始视觉向量加和,得到注意力视觉向量。比较巧妙地的是产生了两个attention map,模仿多次的观察。
实验结果:
1 MCB优于点乘,点加,全连接的方法
2参数规模相同的时候,MCB优于Concat+FC+FC
3压缩对双线性池化的方式没有太大影响
4 soft attention,最好的搭档是MCB
从实验结果上看:
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)向量
维基百科中对向量外积的定义:
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问题的主流方法。从答案的生成方式看可以分为:分类模式和生成模式。
分类:
生成:
小结:VQA这样的任务,主流的方法都是需要联合表达图像信息和文本信息。目前主流的结合两个向量的方式有点乘,点加,连接。但是作者觉得这样产生的联合向量表达能力不够,不足以捕捉多模型之间复杂的交互信息。于是作者提出了这样一个猜想:多模型向量的外积可以表达多模型向量的交互信息。因为传统的向量结合方式都是针对单个元素的,向量外积的方式是对两个向量之间所有元素的乘法操作。但是双线性模型计算向量外积的过程中,产生的向量维数太大,计算量太大,所以双线性模型计算外积的方式并没有被广泛采用。
简评:
之前老师说过,创新点可以分为应用创新和模型创新。我觉得这两种创新方式其实是相辅相成的。这里作者因为想要改进VQA模型中视觉向量和问题向量的融合方式,提出了外积这个想法,成功地将之前的cbp(compact biliniaer pooling)模型改进后应用到模型融合的过程中。这种解决问题的思路值得我们参考和学习。
本文还有一个创新点就是应用了soft attention。并且使用的了两层attention maps,对MCB后的联合向量去求attention weight后对关注的视觉向量。
再者,作者参加VQA比赛的时候,单个模型最好的的实验结果是MCB+att+genome+glove,只比后面两名高了1个百分点左右。但是集成7个模型的时候取得的的结果则比后面的模型提升了4到5个百分点。说明在做这种比赛的时候,还是能够多用一些trick提升就多用一些。
��