一、文章概况
文章题目:《Bilinear Attention Networks》
这篇文章是VQA领域非常经典的一篇文章,最近看到的很多新文章都提到了这篇文章。
文章下载地址:http://papers.nips.cc/paper/7429-bilinear-attention-networks.pdf
文章引用格式:J. Kim, J. Jun, B. Zhang. "Bilinear Attention Networks." Conference and Workshop on Neural Information Processing Systems(NIPS). 2018
项目地址:可以参考https://github.com/jnhwkim/ban-vqa (pytorch实现)
二、文章导读
先放上这篇文章的摘要部分:
Attention networks in multimodal learning provide an efficient way to utilize given visual information selectively. However, the computational cost to learn attention distributions for every pair of multimodal input channels is prohibitively expensive. To solve this problem, co-attention builds two separate attention distributions for each modality neglecting the interaction between multimodal inputs. In this paper, we propose bilinear attention networks (BAN) that find bilinear attention distributions to utilize given vision-language information seamlessly. BAN considers bilinear interactions among two groups of input channels, while low-rank bilinear pooling extracts the joint representations for each pair of channels. Furthermore, we propose a variant of multimodal residual networks to exploit eight-attention maps of the BAN efficiently. We quantitatively and qualitatively evaluate our model on visual question answering (VQA 2.0) and Flickr30k Entities datasets, showing that BAN significantly outperforms previous methods and achieves new state-of-the-arts on both datasets.
注意力网络在多模态学习中提供了一种有效学习视觉信息的方式。然而,它需要大量的计算开销来学习注意力分布,一般解决这个问题则是分别建立两个的注意力分布而忽略交互。这篇文章作者提出了BAN网络,来尽可能的利用视觉和语言信息。BAN在输入的两个通道中群组中用双线性交互, 低秩的双线性池化提取两个通道的联合表示。此外,作者还提出了多模态残差网络的变种形式,来充分利用BAN网络的注意力图。最后作者基于VQAv2数据集,从数量和质量上进行评估,表明BAN比之前的方法更好,达到了最好的效果。
三、文章详细介绍
VQA是涉及到语言和视觉的交叉问题,目前,视觉注意力(visual attention)在多模态学习任务中取得了非常大的成功,另外,文本注意力(textual attention)也可以作为补充。目前的协同注意力网络(co-attention networks)虽然能够有选择的关注问题关键词和图像关键区域,但是却忽视了两者的交互造成计算量增长。
这篇文章,作者将协同注意力扩展为双线性注意力,如果问题中涉及到多个关键词,那么就会对每个关键词使用视觉注意力来查找关键视觉区域。基于此,作者提出了双线性注意力网络BAN(bilinear attention networks),此外作者还提出了一个多模态残差网络MRN(multimodal residual networks)的变种来充分利用BAN的多重双线性注意力图,这与之前的多重注意力图的连接形式不同。因为残差学习方法用残差的综合替代了连接。
BAN模型的主要结构如下所示:
作者的主要贡献在于:
• We propose the bilinear attention networks (BAN) to learn and use bilinear attention distributions, on top of the low-rank bilinear pooling technique. (提出了双线性注意力网络BAN)
• We propose a variant of multimodal residual networks (MRN) to efficiently utilize the multiple bilinear attention maps generated by our model. Unlike previous works, our method successfully utilizes up to 8 attention maps. (提出了多模态残差网络MRN的变种)
• Finally, we validate our proposed method on a large and highly-competitive dataset, VQA 2.0. Our model achieves a new state-of-the-art maintaining simplicity of model structure. Moreover, we evaluate the visual grounding of bilinear attention map on Flickr30k Entities outperforming previous methods, along with 25.37% improvement of inference speed taking advantage of the processing of multi-channel inputs. (在VQAv2数据集上进行验证,作者提出额的模型达到了一个新的最好成果。)
1. 低秩双线性池化(Low-rank bilinear pooling)
低秩双线性模型(Low-rank bilinear model):低秩双线性模型是为了减少双线性权重矩阵Wi的秩,为此,双线性权重矩阵Wi可以表示为
,在省略偏执bias标量输出f为,其中
表示点乘:
低秩双线性池化(Low-rank bilinear pooling):对于输出的向量f,引入池化矩阵P:
单一注意力网络(Unitary attention networks):假设多通道输入Y由{y}列向量组成,我们可以使用权重{a}从Y中获得y:
上式中a代表了注意力分布,使用低秩双线性池化,a可以由softmax的输出来表示:
2. 双线性注意力网络(Bilinear attention networks)
两个多通道的输入X和Y,为了减少两个输入通道,引入双线性注意力图A:
上式中的A是一个双线性权重矩阵,上式可以改写成:
为了方便表达,我们定义一个双线性注意力网络函数:
双线性注意力图(bilinear attention map):前面提到过,注意力图的定义为:
注意到A中每一个元素的值都是经过低秩双线性池化得到的:
因此多重双线性池化注意力图就可以表示为:
注意力的残差学习(Residual learning of attention):灵感来自于多模态残差网络MRN,作者在MRN中整合了从多重双线性注意力图的联合表示,第i+1次的输出表示为:
对最后一次输出的通道维度求和,就可以得到一个逻辑分类器。
时间复杂度(Time complexity):BAN的时间复杂度与一个多通道输入相同
3. 相关工作(Related works)
多模态因子线性池化(Multimodal factorized bilinear pooling):之前有文献做低秩双线性池化移除了投影矩阵P,但是这对BAN来说是无效的。
协同注意力网络(Co-attention networks):之前有文献提出了空间记忆网络来估算每个image patch之间的相关性,与本文不同的是,它是对相关矩阵的每一个行向量的最大值进行softmax。另外,现有的协同注意力用的都是两个分离模态的注意力分布。
4. 实验(Experiments)
(1)数据集
VQA数据集(Visual Question Answering):作者用的是VQA2.0数据集
Flickr数据集(Flickr30k Entities):包含31783张图244035个标注
(2)预处理
问题嵌入(Question embedding):对于VQA,使用GloVe词嵌入,将问题最多嵌入为14个单词向量,短于14个单词的向量用0补齐;对于Flickr30k,则使用了完整的句子长度,最大82。
图像特征(image feature):作者用的是从下到上的注意力,将Faster R-CNN的输出作为图像特征。设置每张图的目标数目范围介于[10 100],
(3)非线性和分类器
非线性(Nonlinearity):BAN的非线性用的是ReLU:
其中
表示ReLU(x)=max(x,0),对于注意力图,则有:
分类器(Classifier):对于VQA,使用了两层的MLP作为分类器,输出的数量则是由答案的单词数量决定的,这里取3129.损失函数用二值交叉熵。
(4)超参数和调整
这一部分主要介绍了作者设置的一些超参数以及对数据集的调整(主要是做了一定的数据增广操作)。
5. VQA结果和讨论(VQA results and discussions)
(1)量化结果
与其他模型的比较Comparison with state-of-the-arts:下图是与2017 VQA Challenge的冠军模型的比较结果,结果显示当BAN有8个双线性注意力图时精度最高:
然后BAN与其他近期采用了从下到上的注意力模型比较结果:
上图中的MFH+Bottom-Up的链接为:https://github.com/yuzcccc/vqa-mfb
与其他注意力模型的比较Comparison with other attention methods:这里主要用到了Unitary attention和co-attention,与其他注意力模型的比较结果如下:
这里可以看到双线性注意力模型要比其他的模型效果更好。如下图中的(a)所示,协同注意力模型比其他注意力模型更容易过拟合,从(b)中可以看到BAN的参数比其他模型的更有效:
(2)注意力的残差学习
与其他方法的比较Comparison with other approaches:BAN中的注意力残差学习最后采用的是通道求和的方式而不是链接,这之间的差异其实并不明显,之不过链接的话参数的数量会很多。
简化实验Ablation study:这里主要是探究注意力图的多少,分别设置{1,2,4,8,12},然后在验证集上只使用前N个注意力图,来探究验证精度,结果如上图的(c).
注意力的熵Entropy of attention:这里作者只探究了注意力图为4的时候,注意力分布的熵的情况,如上图(d)所示
(3)量化分析
一个可视化结果如下图所示,问题是“what color are the pants of the guy skateboarding”(踩滑板的人的裤子是什么颜色),问题中包含词语what, pants, guy, 和skateboarding,注意橙色的2号box也被勾出来了:
6. Flickr30k的结果及讨论(Flickr30k entities results and discussions)
这部分内容就不再详细介绍了,与其他模型的性能对比结果如下:
可视化的示例如下: