简介
本文出自罗彻斯特大学+腾讯AI Lab
下载链接
动机
现有的visual grounding方法可以分为两类:一阶段、两阶段。本文面向一阶段方法,提升现有方法处理长(long)、复杂(complex)query的能力。本质是:本文提出了一个可以用在一阶段visual grounding模型中的query modeling方法(两阶段模型中有很多query modeling方法,但是由于一些限制,不能直接用于一阶段模型)。
贡献
- 对一阶段的visual grounding方法进行了改善,提升了其处理长且复杂的query的能力;
- 提出了一个递归的子查询构建网络,通过递归来降低referring ambiguity;
- 实验结果好,在不同数据集上提升5-12个百分点。
方法
本文方法的整体架构如下图所示,共包含两个核心模块:子查询学习器(Sub-query Learner)和子查询调制器(Sub-query Modulation)。
子查询学习器负责学习Query中每个word的注意力
α
n
(
k
)
\alpha_n^{(k)}
αn(k),通过下式得到:
α
n
(
k
)
=
softmax
[
W
a
1
(
k
)
tanh
(
W
a
0
(
k
)
h
n
(
k
)
(
v
‾
(
k
−
1
)
⊙
s
n
)
+
b
a
0
(
k
)
)
+
b
a
1
(
k
)
)
]
\alpha_n^{(k)}=\text{softmax}[W_{a1}^{(k)} \text{tanh}(W_{a0}^{(k)} h_{n}^{(k)} (\overline{v}^{(k-1)} \odot s_n ) + b_{a0}^{(k)} ) + b_{a1}^{(k)} )]
αn(k)=softmax[Wa1(k)tanh(Wa0(k)hn(k)(v(k−1)⊙sn)+ba0(k))+ba1(k))]
可以看出,学习注意力的过程中,同时考虑了
{
s
n
}
n
=
1
N
\{s_n\}_{n=1}^{N}
{sn}n=1N(query word feature,N代表word个数)、
v
‾
(
k
−
1
)
\overline{v}^{(k-1)}
v(k−1)(text-conditional visual feature)和
{
h
n
(
k
)
}
n
=
1
N
\{h_{n}^{(k)}\}_{n=1}^{N}
{hn(k)}n=1N(history vector)。其中:
- { s n } n = 1 N \{s_n\}_{n=1}^{N} {sn}n=1N没什么好说的,就是query中每个单词的特征;
- v ‾ ( k − 1 ) \overline{v}^{(k-1)} v(k−1)是上一轮得到的text-conditional visual feature的均值池化( H × W × C → 1 × 1 × C H \times W \times C \rightarrow 1 \times 1 \times C H×W×C→1×1×C);
- { h n ( k ) } n = 1 N \{h_{n}^{(k)}\}_{n=1}^{N} {hn(k)}n=1N表示每个word在以前的迭代过程中没被“访问”的概率,通过 h ( k ) = 1 − min ( ∑ i = 1 k − 1 α ( i ) , 1 ) \bf{h}^{(k)} = \textbf{1} - \text{min}(\sum_{i=1}^{k-1}\bf{\alpha}^{(i)}, \bf{1}) h(k)=1−min(∑i=1k−1α(i),1)计算。
对于这部分,作者添加了两个loss,如下所示:
- L d i v = ∣ ∣ A T A ⊙ ( 1 − I ) ∣ ∣ F 2 L_{div}=|| A^TA \odot ({\bf 1}-I) ||^2_F Ldiv=∣∣ATA⊙(1−I)∣∣F2, A A A是 K × N K \times N K×N的矩阵,由每轮迭代得到的attention拼接而成, K K K是迭代轮数, N N N是word个数。此loss用于控制每一轮中,不应该focus在相同的单词上,也就是强制提升每轮迭代关注的单词的差异性。
-
L
c
o
v
e
r
=
∣
∣
1
−
min
(
∑
i
=
1
K
α
(
i
)
,
1
)
∣
∣
1
L_{cover} = || \bf1-\text{min}(\sum_{i=1}^K {\bf \alpha}^{(i)}, \bf 1) ||_1
Lcover=∣∣1−min(∑i=1Kα(i),1)∣∣1,此loss用于提升word的查全性。
子查询调制器就是基于子查询学习器得到的注意力,对text-conditional visual feature进行refine,增强referred object的特征,并压制其他object的特征。共分为三步:
- 基于子查询学习器得到的 α n ( k ) \alpha_n^{(k)} αn(k)对 s n s_n sn添加attention,得到 q ( k ) = ∑ n = 1 N α n ( k ) s n q^{(k)}=\sum_{n=1}^N\alpha_n^{(k)}s_n q(k)=∑n=1Nαn(k)sn;
- 基于 q ( k ) q^{(k)} q(k),分别使用两个MLPs得到尺度向量 γ ( k ) = tanh ( W γ ( k ) q ( k ) + b γ ( k ) ) \gamma^{(k)}=\text{tanh}(W_\gamma^{(k)}q^{(k)} + b_\gamma^{(k)}) γ(k)=tanh(Wγ(k)q(k)+bγ(k))和平移向量 β ( k ) = tanh ( W β ( k ) q ( k ) + b β ( k ) ) \beta^{(k)}=\text{tanh}(W_\beta^{(k)}q^{(k)} + b_\beta^{(k)}) β(k)=tanh(Wβ(k)q(k)+bβ(k))。
- 基于上一轮迭代得到的text-conditional visual feature
v
(
k
−
1
)
v^{(k-1)}
v(k−1)、尺度向量
γ
(
k
)
\gamma^{(k)}
γ(k)和平移向量
β
(
k
)
\beta^{(k)}
β(k),计算得到此轮的text-conditional visual feature
v
(
k
)
v^{(k)}
v(k),具体公式为:
v ( k ) ( i , j ) = f 2 { R e L U [ f 1 ( v ( k − 1 ) ( i , j ) ) ⊙ γ ( k ) + β ( k ) ] + v ( k − 1 ) ( i , j ) } v^{(k)}(i,j)=f_2\{ ReLU[f_1(v^{(k-1)}(i,j)) \odot \gamma^{(k)} + \beta^{(k)}] +v^{(k-1)}(i,j) \} v(k)(i,j)=f2{ReLU[f1(v(k−1)(i,j))⊙γ(k)+β(k)]+v(k−1)(i,j)}
上式中, f 1 , f 2 f_1, f_2 f1,f2是两个可学习的mapping层,具体结构在上面的整体框架图中有展示, f 1 = 1 × 1 conv + instance normalization layer f_1=1 \times 1 \space \text{conv} + \text{instance normalization layer} f1=1×1 conv+instance normalization layer, f 2 = 3 × 3 conv + BN + ReLU f_2=3 \times 3 \space \text{conv} + \text{BN} + \text{ReLU} f2=3×3 conv+BN+ReLU。
实验
在RefCOCO、RefCOCO+和RefCOCOg上的实验结果:
在ReferItGame和Flickr30K Entities上的实验结果:
关于query modeling的消融实验:
一些可视化的结果: