概
利用因果分析消除VQA(Visual Question Answering (VQA))中的language bias.
主要内容
如上图所示,
Q
Q
Q: question;
V
V
V: image;
K
K
K: multi-modal knowledge;
A
A
A: answer.
影响最后决策 A A A有三种:
- Q → A Q \rightarrow A Q→A, 直接受question影响, 比如模型对于所有的问图中的香蕉是什么颜色的问题均回答"黄色", 显然是不考虑图片的影响(因为可能是绿色), 这种实际上就是language bias;
- V → A V \rightarrow A V→A, 直接受图片影响;
- V , Q → K → A V, Q \rightarrow K \rightarrow A V,Q→K→A, 这里有一个mediator K, 即部分影响兼顾了 Q , V Q, V Q,V.
理想的VQA模型应该舍弃1中的影响, 在因果分析里头, 这部分direct effect被称之为natural direct effect (pure direct effect实际上):
N
D
E
=
A
q
,
v
∗
,
k
∗
−
A
q
∗
,
v
∗
,
k
∗
.
NDE = A_{q, v^*, k*} - A_{q*, v^*, k^*}.
NDE=Aq,v∗,k∗−Aq∗,v∗,k∗.
余下的是TIE (total indirect effect):
T
I
E
=
T
E
−
N
D
E
=
A
q
,
v
,
k
−
A
q
,
v
∗
,
k
∗
.
TIE = TE - NDE = A_{q, v, k} - A_{q, v^*, k^*}.
TIE=TE−NDE=Aq,v,k−Aq,v∗,k∗.
作者的思路是在inference的时候找到一个
a
a
a, 最大化TIE.
需要说明的是:
P
r
[
A
∣
d
o
(
Q
,
V
,
K
)
]
=
P
r
[
A
∣
Q
,
V
]
P
r
[
A
∣
d
o
(
Q
,
V
∗
,
K
∗
)
]
=
P
r
[
A
∣
Q
,
V
∗
,
K
∗
]
\mathrm{Pr}[A|do(Q, V, K)] =\mathrm{Pr}[A|Q, V]\\ \mathrm{Pr}[A|do(Q, V^*, K^*)] =\mathrm{Pr}[A|Q, V^*, K^*]\\
Pr[A∣do(Q,V,K)]=Pr[A∣Q,V]Pr[A∣do(Q,V∗,K∗)]=Pr[A∣Q,V∗,K∗]
这条件成立的原因单纯是因为作者的假设中并没有confounder, 实际上个人认为应当加一个
V
→
A
V \rightarrow A
V→A的 arrow, 虽然这个并不影响上面的结论.
然后作者计算TIE也并不是针对 A A A, 而是 A A A的score, Z = Z ( Q = q , V = v , K = k ) Z=Z(Q=q, V=v, K=k) Z=Z(Q=q,V=v,K=k).
实现
不同以往, 这一次可以显示地设置
v
∗
,
k
∗
v^*, k^*
v∗,k∗了:
Z
q
=
F
Q
(
q
)
,
Z
v
=
F
V
(
v
)
,
Z
k
=
F
V
Q
(
v
,
q
)
,
Z
q
,
v
,
k
=
h
(
Z
q
,
Z
v
,
Z
k
)
.
Z_q = \mathcal{F}_Q(q), Z_v=\mathcal{F}_V (v), Z_k=\mathcal{F}_{VQ}(v, q), Z_{q, v, k} = h(Z_q, Z_v, Z_k).
Zq=FQ(q),Zv=FV(v),Zk=FVQ(v,q),Zq,v,k=h(Zq,Zv,Zk).
特别的, 在
q
∗
,
v
∗
,
k
∗
q^*, v^*, k^*
q∗,v∗,k∗的情况下, 作者采取了如下的策略:
Z
q
=
{
z
q
=
F
Q
(
q
)
,
i
f
Q
=
q
z
q
∗
=
c
,
i
f
Q
=
∅
.
Z_q = \left \{ \begin{array}{ll} z_q = \mathcal{F}_Q(q), & \mathrm{if}\: Q= q \\ z_{q^*} = c, & \mathrm{if}\: Q=\empty. \end{array} \right .
Zq={zq=FQ(q),zq∗=c,ifQ=qifQ=∅.
Z
v
=
{
z
v
=
F
V
(
v
)
,
i
f
V
=
v
z
v
∗
=
c
,
i
f
V
=
∅
.
Z_v = \left \{ \begin{array}{ll} z_v = \mathcal{F}_V(v), & \mathrm{if}\: V= v \\ z_{v^*} = c, & \mathrm{if}\: V=\empty. \end{array} \right .
Zv={zv=FV(v),zv∗=c,ifV=vifV=∅.
Z
q
=
{
z
k
=
F
V
Q
(
v
,
q
)
,
i
f
V
=
v
,
Q
=
q
z
k
∗
=
c
,
i
f
V
=
∅
o
r
Q
=
∅
.
Z_q = \left \{ \begin{array}{ll} z_k = \mathcal{F}_{VQ}(v,q), & \mathrm{if}\: V=v, Q = q \\ z_{k^*} = c, & \mathrm{if}\: V = \empty \: \mathrm{or}\: Q = \empty. \end{array} \right .
Zq={zk=FVQ(v,q),zk∗=c,ifV=v,Q=qifV=∅orQ=∅.
这里 c c c为可学习的变量.
注: 作者在代码中给出,
c
c
c为一scalar, 也就是说实际上是:
z
∗
=
c
⋅
1
z
.
z_* = c \cdot \mathbb{1}_{z}.
z∗=c⋅1z.
作者也在文中指出, 这是为了一个Uniform的假设.
注: 看起来, 似乎应该对不同的
Z
∗
Z_*
Z∗指定不同的
c
c
c, 但是实际上, 是不影响的. 这一点是因为在下面HM和SUM的处理方式中, 无论是
c
1
⋅
c
2
⋅
c
3
c_1\cdot c_2\cdot c_3
c1⋅c2⋅c3
还是
c
1
+
c
2
+
c
3
c_1 + c_2 + c_3
c1+c2+c3都等价于
c
c
c (这里要感谢作者的答复).
有了上面的准备, 下面是 h h h的构造, 因为我们需要把不同的特征融合起来, 作者给出了两种方案:
- Harmonic (HM):
h ( Z q , Z v , Z k ) = log Z H M 1 + Z H M , Z H M = σ ( Z q ) ⋅ σ ( Z v ) ⋅ σ ( Z k ) . h(Z_q, Z_v, Z_k) = \log \frac{Z_{HM}}{1 + Z_{HM}}, Z_{HM} = \sigma(Z_q) \cdot \sigma(Z_v) \cdot \sigma(Z_k). h(Zq,Zv,Zk)=log1+ZHMZHM,ZHM=σ(Zq)⋅σ(Zv)⋅σ(Zk). - SUM:
h ( Z q , Z v , Z k ) = log σ ( Z S U M ) , Z S U M = Z q + Z v + Z k . h(Z_q, Z_v, Z_k) = \log \sigma(Z_{SUM}), Z_{SUM} = Z_q + Z_v + Z_k. h(Zq,Zv,Zk)=logσ(ZSUM),ZSUM=Zq+Zv+Zk.
在训练的时候, 用的是如下的损失:
L
c
l
s
=
L
V
Q
A
(
v
,
q
,
a
)
+
L
Q
A
(
q
,
a
)
+
L
V
A
(
v
,
a
)
.
\mathcal{L}_{cls} = \mathcal{L}_{VQA}(v, q, a)+ \mathcal{L}_{QA}(q, a) + \mathcal{L}_{VA}(v, a).
Lcls=LVQA(v,q,a)+LQA(q,a)+LVA(v,a).
以及, 为了训练
c
c
c(且仅用于训练c),
L
k
l
=
1
∣
A
∣
∑
a
∈
A
−
p
(
a
∣
q
,
v
,
k
)
log
p
(
a
∣
q
,
v
∗
,
k
∗
)
,
\mathcal{L}_{kl} = \frac{1}{|A|}\sum_{a\in \mathcal{A}}-p(a|q,v,k)\log p(a|q, v^*,k^*),
Lkl=∣A∣1a∈A∑−p(a∣q,v,k)logp(a∣q,v∗,k∗),
其中
p
(
a
∣
q
,
v
,
k
)
=
s
o
f
t
m
a
x
(
Z
q
,
v
,
k
)
p(a|q,v,k)=softmax(Z_{q,v, k})
p(a∣q,v,k)=softmax(Zq,v,k).
虽然感觉可以直接通过最大化TIE来训练c比较合理, 但是正如作者在附录中给出的解释一下, 这种情况明显会导致 c → 0 c \rightarrow 0 c→0并导致 Z q , v ∗ , k ∗ → − ∞ Z_{q, v^*, k^*}\rightarrow -\infty Zq,v∗,k∗→−∞.