【论文】Anderson, Peter, Xiaodong He, Chris Buehler, Damien Teney, Mark Johnson, Stephen Gould, and Lei Zhang. Bottom-up and top-down attention for image captioning and visual question
answering.(pdf)
Motivation
我们先区分一下两种注意方式,
- top-down attention,这种注意力方式由非视觉或任务特定上下文所驱动
- bottom-up attention,这种注意方式更容易被显著的、突出的、新奇的事物吸引
为什么以往只有 top-down attention 的模型效果不好呢?
作者认为这些通过某一特定的任务驱动去选择性注意 CNN 某一两层卷积输出特征的方式并不是很关注这些感兴趣区域是如何选出来的。如下图左边所示,这种方式下产生的输入都是一些与感受野大小、形状保持一致的小方格,与实际的图像并没有关联
而人类实际上的注意方式总是会自发地注意到那些比较显著的内容,而后自主地去根据任务要求关注需要的地方。基于这样的启发,作者将 top-down attention 和 bottom-up attention 结合:
bottom-up attention 提取出显著图像区域,每个区域有一个自己对应的池化卷积特征。这时的显著图像区域是纯视觉上的特征,并没有受特定任务驱动,对显著区域的关注并不会厚此薄彼。接着,为了对应 image caption 或者 VQA 任务,需要 top-down attention 根据任务特定的上下文预测图像区域的注意力分布,通过对这些区域的 image feature 的加权平均得到 attended feature vector。这就相当于我们现在根据额外的信息学习到了需要更注重哪一块而忽略哪一块,所以重新调整一下图像区域的权重
到此为止,我想应该说清楚了为什么要将 bottom-up attention 和 top downattention 结合,也说清楚了怎么将两种注意力机制结合在一起
Bottom-Up Attention Model
根据前面的描述 bottom-up attention 要做的事情就是提取纯视觉上的显著图像区域。作者通过 Faster RCNN(backbone:ResNet-101) 来产生这样的视觉特征 V V V,将 Faster RCNN 检测的结果经过非最大抑制和分类得分阈值选出一些显著图像区域,这些显著图像区域如下图所示
具体来说,我们记输入的图片为 I I I,那么图片理解和 VQA 模型的输入都是一个大小为 k k k 的 image feature set V = { v 1 , v 2 , ⋯ , v k } v i ∈ R D V=\left\{\mathbf v_1, \mathbf v_2,\cdots, \mathbf v_k\right\}\ \mathbf v_i\in\mathbb R^D V={v1,v2,⋯,vk} vi∈RD,其中每个 image feature 编码了一个显著图像区域。当然, V V V 可以定义为 bottom-up model 的输出,也可以定义为普通 CNN 模型的输出
作者对 Faster RCNN 的输出分类别按住 IoU 阈值进行非最大抑制。然后,选择那些分类得分超过一个置信度阈值的区域作为显著图像区域。这样就保证了如上图所示的结果,每一个框能对应一个类别。对于区域 i i i, v i \mathbf v_i vi 是卷积特征平均池化后的结果, D = 2048 D=2048 D=2048
为了能学习到不错的特征表示,作者还对增加了属性预测。将 v i \mathbf v_i vi 和从 ground truth object class 学习到的一个 embedding 结合在一起,然后将它们送入额外的一个属性 softmax 分类器(附件一个 no attributes class),以此来获得区域 i i i 对应的属性。作者保留了Faster RCNN 对于 RPN 和 object class proposal 的四部分损失。另外,再加上一个多分类损失用于训练属性分类器,如下图所示
加上属性分类器后的结果如下所示
Caption Model
我不打算去细致描述 caption model 论文里面的公式符号,如果有需要请对照论文
VQA Model
同样的关于 VQA 模型我们也不细致去描述公式和符号,如果有需要请对照论文
Experiment
论文给出了两幅图分别展示了 imag caption 和 VQA 任务下的注意力机制
同时论文也展示一些失败的例子,如下面狗跳起来去追飞盘,但是模型理解为了狗摊在草地上。作者的解释是在提取显著图像区域的时候并没有区分狗的头部和腿部
同样,在 VQA 也有类似的失败的例子,显著图像区域并没有细致的区分每个橘子,所以在回答时导致错误
通过以上描述可以发现 bottom-up and top-down attention model 十分依赖显著图像区域提取的好坏