论文笔记:Knowing When to Look: Adaptive Attention via A Visual Sentinel for Image Captioning

论文链接:Knowing When to Look: Adaptive Attention via A Visual Sentinel for Image Captioning


Introduction

目前大多数的基于attention机制的image captioning模型采用的都是encoder-decoder的框架。然而在decode的时候,decoder应该对不同的词有不同的attention策略。例如,“the”、"of"等词,或者是跟在"cell"后面的"phone"等组合词,这类词叫做非视觉词(non-visual word),更多依赖的是语义信息而不是视觉信息。而且,在生成caption的过程中,非视觉词的梯度会误导或者降低视觉信息的有效性。因此,本文提出了带有视觉标记的自适应的attention模型(adative attention model with a visual sentinel),在每一个time step,模型决定更依赖于图像还是visual sentinel。其中,visual sentinel存放了decoder已经知道的信息。

本文的贡献在于

  1. 提出了带有视觉标记的自适应的attention模型
  2. 提出了新的spatial attention机制
  3. 提出了LSTM的扩展,在hidden state以外加入了一个额外的visual sentinel vector

Method

Spatial Attention Model

文章介绍了普通的encoder-decoder框架,这里不再赘述。但文章定义了context vector c t c_t ct,对于没有attention机制的模型, c t c_t ct就是图像经过CNN后提取出的feature map,是不变的;而对于有attention机制的模型,基于hidden state,decoder会关注图像的不同区域, c t c_t ct就是该区域经过CNN后提取出的feature map。

文章对 c t c_t ct的定义如下:

c t = g ( V , h t ) c_t = g(V, h_t) ct=g(V,ht)

其中g是attention function, V = [ v 1 , . . . , v k ] V = [v_1, ..., v_k] V=[v1,...,vk]代表k个区域的图像feature, h t h_t ht是t时刻RNN的hidden state。
由此可以得到k个区域的attention分布 α t \alpha_t αt

z t = w h T t a n h ( W v V + ( W g h t ) 1  ⁣ ⁣ 1 T ) z_t = w^T_h tanh(W_vV + (W_g h_t) 1\!\!1^T) zt=whTtanh(WvV+(Wght)11T) (这里把 V V V h t h_t ht相加,而有些论文则使用一个双线性矩阵来连接它们)
α t = s o f t m a x ( z t ) \alpha_t = softmax(z_t) αt=softmax(zt)

其中 1  ⁣ ⁣ 1 ∈ R k 1\!\!1 \in \mathcal{R^k} 11Rk是所有元素为1的向量,目的是让 ( W g h t ) 1  ⁣ ⁣ 1 T (W_g h_t) 1\!\!1^T (Wght)11T相乘得到k*k大小的矩阵。
最终本文的$c_t $为

c t = ∑ i = 1 k α t i v t i c_t = \sum^k_{i=1}\alpha_{ti}v_{ti} ct=i=1kαtivti

show, attend and tell使用 h t − 1 h_{t-1} ht1的做法不同,本文使用的是 h t h_t ht。结构如下
这里写图片描述
作者认为$c_t 可 以 看 作 可以看作 h_t 的 残 差 连 接 , 可 以 在 预 测 下 一 个 词 时 降 低 不 确 定 性 或 者 提 供 情 报 。 ( 不 是 应 该 做 一 个 实 验 验 证 使 用 的残差连接,可以在预测下一个词时降低不确定性或者提供情报。(不是应该做一个实验验证使用 使h_t 和 和 h_{t-1}$的差别?)并且发现,这种spatial attention方式比其他模型表现更好。

Adaptive Attention Model

decoder存储了长时和短时的视觉和语义信息,而visual sentinel s t s_t st作为从里面提取的一个新的元件,用来扩展上述的spatial attention model,就得到了adaptive attention model。

具体的扩展方式就是在原有的LSTM基础上加了两个公式:

g t = σ ( W x x t + W h h t − 1 ) g_t = \sigma(W_x x_t+W_h h_{t-1}) gt=σ(Wxxt+Whht1)
s t = g t ⊙ t a n h ( m t ) s_t = g_t \odot tanh(m_t) st=gttanh(mt)

其中 x t x_t xt是LSTM的输入, m t m_t mt是memory cell(有些论文里用 c t c_t ct表示)。
这里的 g t g_t gt叫sentinel gate,公式形式类似于LSTM中的input gate, forget gate, ouput gate,决定了模型到底关注图像还是visual sentinel;而 s t s_t st公式的构造与LSTM中的 h t = o t ⊙ t a n h ( c t ) h_t = o_t \odot tanh(c_t) ht=ottanh(ct)类似。

而adaptive attention model中的context vector c ^ = β t s t + ( 1 − β t ) c t \hat c = \beta_t s_t + (1- \beta_t)c_t c^=βtst+(1βt)ct

β t ∈ [ 0 , 1 ] \beta_t \in [0, 1] βt[0,1]可以视为真正意义上的sentinel gate,控制模型关注visual sentinel和 c t c_t ct的程度。
与此同时,spatial attention部分k个区域的attention分布 α t \alpha_t αt也被扩展成了 α t ^ \hat{\alpha_t} αt^,做法是在 z t z_t zt后面拼接上一个元素:

α t ^ = s o f t m a x ( [ z t ; w h T t a n h ( W s s t + ( W g h t ) ) ] ) \hat{\alpha_t} = softmax([z_t; w^T_h tanh(W_s s_t + (W_g h_t))]) αt^=softmax([zt;whTtanh(Wsst+(Wght))])

扩展后的 α t ^ \hat{\alpha_t} αt^有k+1个元素,而 β t = α t ^ [ k + 1 ] \beta_t = \hat{\alpha_t}[k+1] βt=αt^[k+1]
(CVPR和arxiv版本的原文都写的是 β t = α t [ k + 1 ] \beta_t = \alpha_t[k+1] βt=αt[k+1],我在github上问了作者,这确实是个笔误https://github.com/jiasenlu/AdaptiveAttention/issues/14)
这里的 W g W_g Wg z t = w h T t a n h ( W v V + ( W g h t ) 1  ⁣ ⁣ 1 T ) z_t = w^T_h tanh(W_vV + (W_g h_t) 1\!\!1^T) zt=whTtanh(WvV+(Wght)11T) 中的 W g W_g Wg是相同的(为什么这样做? W h W_h Wh也是一样的,作者在这里没有提到,在后续的论文里的公式(9)提到了)。

上述公式可以简化为:

β t = w h T t a n h ( W s s t + ( W g h t ) ) ] \beta_t = w^T_h tanh(W_s s_t + (W_g h_t))] βt=whTtanh(Wsst+(Wght))]
c ^ = β t s t + ( 1 − β t ) c t \hat c = \beta_t s_t + (1- \beta_t)c_t c^=βtst+(1βt)ct
α t ^ = s o f t m a x ( [ z t ; β t ] ) \hat{\alpha_t} = softmax([z_t; \beta_t]) αt^=softmax([zt;βt])

最终单词的概率分布:
p t = s o f t m a x ( W p ( c ^ + h t ) ) p_t = softmax(W_p(\hat c + h_t)) pt=softmax(Wp(c^+ht))

具体架构如下:
这里写图片描述


Implementation Details

文章选择了ResNet的最后一层卷积层的特征来表示图像,维度是2048x7x7,并使用 A = { a 1 , . . . , a k } , a i ∈ R 2048 A = \{ a_1 , ..., a_k\}, a_i \in \mathcal R^{2048} A={a1,...,ak},aiR2048来表示k个局部图像特征,而全局图像特征则是局部特征的平均:
a g = 1 k ∑ i = 1 k a i a^g = \frac 1 k \sum^k_{i=1} a_i ag=k1i=1kai
局部图像特征需要经过转换:
v i = R e L U ( W a a i ) v_i = ReLU(W_a a_i) vi=ReLU(Waai)
v g = R e L U ( W b a g ) v_g = ReLU(W_b a_g) vg=ReLU(Wbag)
最终全局图像特征将与word embedding拼接在一起成为LSTM的输入: x t = [ w t ; v g ] x_t = [w_t; v_g] xt=[wt;vg](这里有一个细节,是不是因为这里把全局图像特征拼接进来了,才导致模型spatial attention与其他模型相比的提升呢?作者并没有进行这样的对比。https://github.com/jiasenlu/AdaptiveAttention/issues/2)
局部图像特征则用在了attention部分。


Experiment

这里写图片描述
Table 1在test splits上对比了在Flickr30k和MSCOCO数据集上模型与其他模型的表现,可以看到,模型的spatial attention部分就已经比其他模型表现好了,而加入了adaptive attention部分以后表现更加出色。

这里写图片描述
Table 2在COCO server上对比了模型与其他模型的表现可以看到,adaptive attention模型(emsemble后)的表现是当时SOTA的结果。

这里写图片描述
Fig 4是spatial attention的权重 α \alpha α的可视化结果,前两列是成功的样本,最后一列是失败的样本。模型进行attention的区域基本都是合理的,只是可能对一些物体的材质判断失误。

这里写图片描述
Fig 5主要是sentinel gate 1 − β 1- \beta 1β 的可视化,对于视觉词,模型给出的概率较大,即更倾向于关注图像特征 c t c_t ct,对于非视觉词的概率则比较小。同时,同一个词在不同的上下文中的概率也是不一样的。如"a",在一开始的概率较高,因为开始时没有任何的语义信息可以依赖、以及需要确定单复数。

这里写图片描述
Fig 6对COCO和Flickr30k中词典中的词被认为是视觉词的平均概率进行了排序,来看看模型能否分辨出视觉词与非视觉词,两个数据集间的相关性为0.483。其中,

  1. 对于一些实际上是视觉词,但是与其他词有很大关联性的词,模型也会把它视为非视觉词,如"phone"一般都跟在"cell"后面。
  2. 不同数据集上不同的词的概率不一样,如"UNK",可能是由于训练数据分布的不同。
  3. 对于一些有相近意义的同源词,如"crossing", “cross”, “crossed”,他们的概率却相差很大。(为什么?)
    模型没有依赖外部的语料信息,完全是自动地发现这些趋势。

这里写图片描述
Fig 11显示了使用弱监督方法生成的bounding box与真实bounding box的对比。本文是第一个使用这种方法来评估
image caption的attention效果的。具体生成方法是,对于某个单词而言,先用NLTK将其映射到大类上,如"boy", "girl"映射到people。然后图像中attention weight小于阈值(每个单词的阈值都不一样)的部分就会被分割出来,取分割后的最大连通分量来生成bounding box。并计算生成的和真实bounding box的IOU(intersection over union),对于spatial attention和adaptive attention模型,其平均定位准确率分别为0.362和0.373。说明了,知道何时关注图像,也能让模型更清楚到底要去关注图像的哪个部分。

这里写图片描述
Fig 7显示了top 45个COCO数据集中出现最频繁的词的定位准确性。对于一些体积较小的物体,其准确率是比较低的,这是因为attention map是从7x7的feature map中直接放大的,而7x7的feature map并不能很好地包含这些小物体的信息。

这里写图片描述
Fig 8显示了单词"of"在spatial attention和adaptive attention模型中的attention map。如果没有visual sentinel,非视觉词如"of"的attention就会高度集中在图像的边缘部分,可能会在反向传播时形成噪声影响训练。


总结

本文提出了adaptive attention机制,其模型公式都非常简单,adaptive attention部分增加的几个变量也非常简洁,但却对模型的表现有了很大的提升。文章进行的详尽的实验又进一步验证了adaptive attention的有效性,可谓非常巧妙。

PS:如果读者想要复现这篇论文的结果,这个链接会对你有帮助。https://github.com/jiasenlu/AdaptiveAttention/issues/4


  • 16
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值