Counterfactual VQA: A Cause-Effect Look at Language Bias

Niu Y., Tang K., Zhang H., Lu Z., Hua X. and Wen J. Counterfactual VQA: A Cause-Effect Look at Language Bias. CVPR, 2021.

利用因果分析消除VQA(Visual Question Answering (VQA))中的language bias.

主要内容

image-20210407210124578

如上图所示,
Q Q Q: question;
V V V: image;
K K K: multi-modal knowledge;
A A A: answer.

影响最后决策 A A A有三种:

  1. Q → A Q \rightarrow A QA, 直接受question影响, 比如模型对于所有的问图中的香蕉是什么颜色的问题均回答"黄色", 显然是不考虑图片的影响(因为可能是绿色), 这种实际上就是language bias;
  2. V → A V \rightarrow A VA, 直接受图片影响;
  3. V , Q → K → A V, Q \rightarrow K \rightarrow A V,QKA, 这里有一个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,kAq,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=TENDE=Aq,v,kAq,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[Ado(Q,V,K)]=Pr[AQ,V]Pr[Ado(Q,V,K)]=Pr[AQ,V,K]
这条件成立的原因单纯是因为作者的假设中并没有confounder, 实际上个人认为应当加一个 V → A V \rightarrow A VA的 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).

实现

image-20210409085129305

不同以往, 这一次可以显示地设置 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=c1z.
作者也在文中指出, 这是为了一个Uniform的假设.

注: 看起来, 似乎应该对不同的 Z ∗ Z_* Z指定不同的 c c c, 但是实际上, 是不影响的. 这一点是因为在下面HM和SUM的处理方式中, 无论是 c 1 ⋅ c 2 ⋅ c 3 c_1\cdot c_2\cdot c_3 c1c2c3
还是 c 1 + c 2 + c 3 c_1 + c_2 + c_3 c1+c2+c3都等价于 c c c (这里要感谢作者的答复).

有了上面的准备, 下面是 h h h的构造, 因为我们需要把不同的特征融合起来, 作者给出了两种方案:

  1. 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).
  2. 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=A1aAp(aq,v,k)logp(aq,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(aq,v,k)=softmax(Zq,v,k).

虽然感觉可以直接通过最大化TIE来训练c比较合理, 但是正如作者在附录中给出的解释一下, 这种情况明显会导致 c → 0 c \rightarrow 0 c0并导致 Z q , v ∗ , k ∗ → − ∞ Z_{q, v^*, k^*}\rightarrow -\infty Zq,v,k.

代码

原文代码

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值