Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering

原文链接:link

摘要

自顶向下的注意力机制在image caption和VQA中被广泛地使用。本文提出的想法是结合top-down和bottom-up注意力机制。基于faster RCNN的bottom-up方法给出图像区域的特征向量,top-down注意力给出特征的权重。

introduction

在人类的视觉系统中,注意力可以被由当前任务决定的自上而下的信号(例如寻找某物)集中起来,也可以被与意想不到的、新奇的或突出的刺激相关的自下而上的信号集中起来。在本文中,采用类似的术语,将非视觉或任务特定背景驱动的注意机制称为“自上而下”(top-down),将纯视觉前馈注意机制称为“自下而上”(bottom-up)。
本文提出了一种自底向上和自顶向下相结合的视觉注意机制。自底向上机制提出了一组显著图像区域,每个区域用一个池化的卷积特征向量表示。使用faster R-CNN实现自下而上的注意力。这是一种自下而上的注意力机制的自然表现。自上而下的机制使用特定任务上下文来预测图像区域的注意力分布。得到的特征向量作为图像在各区域特征向量的权重。
本文在ImageCaption和VQA任务中使用了上述方法。

related work

大量的基于注意力的DNN被应用在IC和VQA任务上,这些模型大多数都能认定为top-down的方法。例如在IC任务中,利用部分完成的caption作为上下文;在VQA任务中,利用问题来推断答案。这种方法下,如何确定图像region的最优数目是一个问题,区域的定位也对任务的结果有影响。

方法

1.Bottom-Up Attention Model:faster RCNN

采用FasterRCNN+ResNet-101CNN 利用Imagenet上的预训练模型在VG数据集上进行训练
为了学习到更好的特征表达,为模型添加了额外的属性输出。
FasterRCNN提取出image region实际上是一种hard-attention,他的关注点往往是图中的一小个区域
对单幅图片得到特征
V = { v 1 , … , v k } , v i ∈ R D V=\left\{\boldsymbol{v}_{1}, \ldots, \boldsymbol{v}_{k}\right\}, \boldsymbol{v}_{i} \in \mathbb{R}^{D} V={v1,,vk},viRD

2.caption model

在生成标题的过程中,利用soft-attention,对图像中的众多特征计算加权和,使用部分生成的caption文本作为上下文分析。使用两层LSTM。
Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering

2.1 top-down attention LSTM

该层LSTM的输入由三部分组成,分别是上一step语言LSTM的输出,平均池化的图像特征,之前生成单词的编码。 x t 1 = [ h t − 1 2 , v ‾ , W e Π t ] \boldsymbol{x}_{t}^{1}=\left[\boldsymbol{h}_{t-1}^{2}, \overline{\boldsymbol{v}}, W_{e} \Pi_{t}\right] xt1=[ht12,v,WeΠt] 其中 W e W_{e} We是word embedding矩阵, Π t \Pi_{t} Πt是one-hot单词编码
对该层LSTM的输出做以下处理,计算得到将图像特征加入语言模型的注意力权重
a i , t = w a T tanh ⁡ ( W v a v i + W h a h t 1 ) a_{i, t}=\boldsymbol{w}_{a}^{T} \tanh \left(W_{v a} \boldsymbol{v}_{i}+W_{h a} \boldsymbol{h}_{t}^{1}\right) ai,t=waTtanh(Wvavi+Whaht1)
α t = softmax ⁡ ( a t ) \boldsymbol{\alpha}_{t}=\operatorname{softmax}\left(\boldsymbol{a}_{t}\right) αt=softmax(at)
其中的系数矩阵都是学习得到的参数
v ^ t = ∑ i = 1 K α i , t v i \hat{\boldsymbol{v}}_{t}=\sum_{i=1}^{K} \alpha_{i, t} \boldsymbol{v}_{i} v^t=i=1Kαi,tvi

2.2 language LSTM

该层LSTM输入由注意力权重控制后的图像特征和上层LSTM的输出组成 x t 2 = [ v ^ t , h t 1 ] \boldsymbol{x}_{t}^{2}=\left[\hat{\boldsymbol{v}}_{t}, \boldsymbol{h}_{t}^{1}\right] xt2=[v^t,ht1]
结果的概率分布为 p ( y t ∣ y 1 : t − 1 ) = softmax ⁡ ( W p h t 2 + b p ) p\left(y_{t} \mid y_{1: t-1}\right)=\operatorname{softmax}\left(W_{p} h_{t}^{2}+b_{p}\right) p(yty1:t1)=softmax(Wpht2+bp)
完整的分布为条件概率的乘积
p ( y 1 : T ) = ∏ t = 1 T p ( y t ∣ y 1 : t − 1 ) p\left(y_{1: T}\right)=\prod_{t=1}^{T} p\left(y_{t} \mid y_{1: t-1}\right) p(y1:T)=t=1Tp(yty1:t1)

2.3 objective

用SCST方法进行最优化 link
最小化负的得分期望(即使得得分期望最大)
L R ( θ ) = − E y 1 : T ∼ p θ [ r ( y 1 : T ) ] L_{R}(\theta)=-\mathbf{E}_{y_{1: T} \sim p_{\theta}}\left[r\left(y_{1: T}\right)\right] LR(θ)=Ey1:Tpθ[r(y1:T)]
该loss的梯度可以由下式计算得到
∇ θ L R ( θ ) ≈ − ( r ( y 1 : T s ) − r ( y ^ 1 : T ) ) ∇ θ log ⁡ p θ ( y 1 : T s ) \nabla_{\theta} L_{R}(\theta) \approx-\left(r\left(y_{1: T}^{s}\right)-r\left(\hat{y}_{1: T}\right)\right) \nabla_{\theta} \log p_{\theta}\left(y_{1: T}^{s}\right) θLR(θ)(r(y1:Ts)r(y^1:T))θlogpθ(y1:Ts)
利用梯度下降计算得到参数 θ \theta θ

VQA model

Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering

注意力表现的例子

Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering
Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering