简介
本文一作是南洋理工大学的Xiaofeng Yang。
文章链接
动机
现有的VQA方法可以分为两类,第一类侧重于对视觉和语言的跨模态联合建模,但是由于缺乏关系推理能力,在组合推理任务上的表现较差。第二类主要侧重于神经模块的设计,但是这类方法需要手工设计,在real-world数据集上难以适用(具有过多的目标类别和可能的推理action)。本文在VQA中引入关系推理,单纯地基于图片提取objects并建立它们之间的关系会带来很大的噪声,并且需要大量的计算资源。而实际上,一个question中一般不包括超过6个objects。
贡献
- 提出了新颖的分层注意力方法,由TRR units构成TRR network,每个TRR units由四个部分组成:① root attention、② root to leaf attetnion passing module、③ leaf attention、④ message passing module,这四个模块的作用后面再介绍。
- 提出一个策略网络,能够根据question和推理结果选择最佳的推理步骤。
- 在GQA test2019上准确率为60.74,在VQAv2和CLEVR上效果也还不错。
方法
本文方法的主要思想如下图所示。首先,在object-level上做一个注意力,得到一些候选objects,再将这些候选objects进一步细分,得到相关、不相关两类objects,不相关的objects直接丢弃,相关的objects之间建立两两关系。
本文具体方法如下图所示,本质是TRR units的堆叠。每个TRR unit包含四个部分:① root attention、② root to leaf attetnion passing module、③ leaf attention、④ message passing module,下面分别进行介绍。
- ① root attention。这部分基于object特征 V V V、bbox特征 B B B和word特征 E E E生成object-level的注意力 α o b j e c t \alpha ^{object} αobject,和object特征融合后,得到融合的object特征 O r o o t O^{root} Oroot作为输出。
- ② root to leaf attetnion passing module。这部分和 O r o o t O^{root} Oroot没有什么关系,和 α o b j e c t \alpha ^{object} αobject有关系。这部分首先基于 α o b j e c t \alpha ^{object} αobject、object特征 V V V和超参数 K K K选出 K K K个object,然后将得到的object特征和其对应的bbox特征concat一下,再两两建立关系,得到关系特征 R R R。
- ③ leaf attention。这部分首先基于question embedding e e e、关系特征 R R R做一些fc后得到特征 h h h,再基于 h h h使用softmax得到relation-level注意力 α r e l a t i o n \alpha ^{relation} αrelation,将注意力和关系特征结合,得到 O l e a f O^{leaf} Oleaf作为输出。
- ④ message passing module。由于要实现多步推理,这个模块的主要作用是,将 O l e a f O^{leaf} Oleaf和object特征 V V V结合,得到下一次迭代过程中的输入 V n e w V_{new} Vnew。
综上,每个TRR unit的处理过程可以总结为:
O
t
r
o
o
t
,
O
t
l
e
a
f
,
V
t
+
1
=
T
R
R
t
(
B
,
V
t
,
E
)
O^{root}_{t}, O^{leaf}_{t}, V_{t+1} = TRR_{t}(B, V_t, E)
Otroot,Otleaf,Vt+1=TRRt(B,Vt,E)
至于什么时候停止推理,作者设计了策略网络,结合
O
t
r
o
o
t
O^{root}_{t}
Otroot、word特征
E
E
E和当前推理次数
t
t
t共同决定。当停止推理后,基于
O
t
r
o
o
t
O^{root}_{t}
Otroot、
O
t
l
e
a
f
O^{leaf}_{t}
Otleaf和
E
E
E得到最终答案。
实验
在GQA test2019上的实验结果:
一些可视化的实验结果: