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\): question;
\(V\): image;
\(K\): multi-modal knowledge;
\(A\): answer.

影響最后決策\(A\)有三種:

  1. \(Q \rightarrow A\), 直接受question影響, 比如模型對於所有的問圖中的香蕉是什么顏色的問題均回答"黃色", 顯然是不考慮圖片的影響(因為可能是綠色), 這種實際上就是language bias;
  2. \(V \rightarrow A\), 直接受圖片影響;
  3. \(V, Q \rightarrow K \rightarrow A\), 這里有一個mediator K, 即部分影響兼顧了\(Q, V\).

理想的VQA模型應該舍棄1中的影響, 在因果分析里頭, 這部分direct effect被稱之為natural direct effect (pure direct effect實際上):

\[NDE = A_{q, v^*, k*} - A_{q*, v^*, k^*}. \]

余下的是TIE (total indirect effect):

\[TIE = TE - NDE = A_{q, v, k} - A_{q, v^*, k^*}. \]

作者的思路是在inference的時候找到一個\(a\), 最大化TIE.
需要說明的是:

\[\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^*]\\ \]

這條件成立的原因單純是因為作者的假設中並沒有confounder, 實際上個人認為應當加一個\(V \rightarrow A\)的 arrow, 雖然這個並不影響上面的結論.

然后作者計算TIE也並不是針對\(A\), 而是\(A\)的score, \(Z=Z(Q=q, V=v, K=k)\).

實現

image-20210409085129305

不同以往, 這一次可以顯示地設置\(v^*, 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). \]

特別的, 在\(q^*, v^*, k^*\)的情況下, 作者采取了如下的策略:

\[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 . \]

\[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 . \]

\[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 . \]

這里\(c\)為可學習的變量.

注: 作者在代碼中給出, \(c\)為一scalar, 也就是說實際上是:

\[z_* = c \cdot \mathbb{1}_{z}. \]

作者也在文中指出, 這是為了一個Uniform的假設.

注: 看起來, 似乎應該對不同的\(Z_*\)指定不同的\(c\), 但是實際上, 是不影響的. 這一點是因為在下面HM和SUM的處理方式中, 無論是\(c_1\cdot c_2\cdot c_3\)
還是\(c_1 + c_2 + c_3\)都等價於\(c\) (這里要感謝作者的答復).

有了上面的准備, 下面是\(h\)的構造, 因為我們需要把不同的特征融合起來, 作者給出了兩種方案:

  1. Harmonic (HM):

\[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). \]

  1. SUM:

\[h(Z_q, Z_v, Z_k) = \log \sigma(Z_{SUM}), Z_{SUM} = Z_q + Z_v + Z_k. \]

在訓練的時候, 用的是如下的損失:

\[\mathcal{L}_{cls} = \mathcal{L}_{VQA}(v, q, a)+ \mathcal{L}_{QA}(q, a) + \mathcal{L}_{VA}(v, a). \]

以及, 為了訓練\(c\)(且僅用於訓練c),

\[\mathcal{L}_{kl} = \frac{1}{|A|}\sum_{a\in \mathcal{A}}-p(a|q,v,k)\log p(a|q, v^*,k^*), \]

其中\(p(a|q,v,k)=softmax(Z_{q,v, k})\).

雖然感覺可以直接通過最大化TIE來訓練c比較合理, 但是正如作者在附錄中給出的解釋一下, 這種情況明顯會導致\(c \rightarrow 0\)並導致\(Z_{q, v^*, k^*}\rightarrow -\infty\).

代碼

原文代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM