Counterfactual VQA: A Cause-Effect Look at Language Bias
概
利用因果分析消除VQA(Visual Question Answering (VQA))中的language bias.
主要内容
如上图所示,
\(Q\): question;
\(V\): image;
\(K\): multi-modal knowledge;
\(A\): answer.
影响最后决策\(A\)有三种:
- \(Q \rightarrow A\), 直接受question影响, 比如模型对于所有的问图中的香蕉是什么颜色的问题均回答"黄色", 显然是不考虑图片的影响(因为可能是绿色), 这种实际上就是language bias;
- \(V \rightarrow A\), 直接受图片影响;
- \(V, Q \rightarrow K \rightarrow A\), 这里有一个mediator K, 即部分影响兼顾了\(Q, V\).
理想的VQA模型应该舍弃1中的影响, 在因果分析里头, 这部分direct effect被称之为natural direct effect (pure direct effect实际上):
\]
余下的是TIE (total indirect effect):
\]
作者的思路是在inference的时候找到一个\(a\), 最大化TIE.
需要说明的是:
=\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)\).
实现
不同以往, 这一次可以显示地设置\(v^*, k^*\)了:
\]
特别的, 在\(q^*, v^*, k^*\)的情况下, 作者采取了如下的策略:
\left \{
\begin{array}{ll}
z_q = \mathcal{F}_Q(q), & \mathrm{if}\: Q= q \\
z_{q^*} = c, & \mathrm{if}\: Q=\empty.
\end{array}
\right .
\]
\left \{
\begin{array}{ll}
z_v = \mathcal{F}_V(v), & \mathrm{if}\: V= v \\
z_{v^*} = c, & \mathrm{if}\: V=\empty.
\end{array}
\right .
\]
\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, 也就是说实际上是:
\]
作者也在文中指出, 这是为了一个Uniform的假设.
注: 看起来, 似乎应该对不同的\(Z_*\)指定不同的\(c\), 但是实际上, 是不影响的. 这一点是因为在下面HM和SUM的处理方式中, 无论是\(c_1\cdot c_2\cdot c_3\)
还是\(c_1 + c_2 + c_3\)都等价于\(c\) (这里要感谢作者的答复).
有了上面的准备, 下面是\(h\)的构造, 因为我们需要把不同的特征融合起来, 作者给出了两种方案:
- Harmonic (HM):
\]
- SUM:
\]
在训练的时候, 用的是如下的损失:
\]
以及, 为了训练\(c\)(且仅用于训练c),
\]
其中\(p(a|q,v,k)=softmax(Z_{q,v, k})\).
虽然感觉可以直接通过最大化TIE来训练c比较合理, 但是正如作者在附录中给出的解释一下, 这种情况明显会导致\(c \rightarrow 0\)并导致\(Z_{q, v^*, k^*}\rightarrow -\infty\).
代码
Counterfactual VQA: A Cause-Effect Look at Language Bias的更多相关文章
- 【论文笔记】用反事实推断方法缓解标题党内容对推荐系统的影响 Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue
Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue Authors: 王文杰,冯福利 ...
- 关于《阿里巴巴Java开发规约》插件的安装与使用
一.安装 二.idea插件的安装与使用 https://github.com/alibaba/p3c/tree/master/idea-plugin#run-plugin Idea Plugin Pr ...
- OpenGL book list
From: https://www.codeproject.com/Articles/771225/Learning-Modern-OpenGL A little guide about mo ...
- 机器学习中模型泛化能力和过拟合现象(overfitting)的矛盾、以及其主要缓解方法正则化技术原理初探
1. 偏差与方差 - 机器学习算法泛化性能分析 在一个项目中,我们通过设计和训练得到了一个model,该model的泛化可能很好,也可能不尽如人意,其背后的决定因素是什么呢?或者说我们可以从哪些方面去 ...
- The 11 advantages of Java -Why you choose this language
Java is never just a language.There are lots of programming languages out there, and few of them mak ...
- The Django template language 阅读批注
The Django template language About this document This document explains the language syntax of the D ...
- The Go Programming Language. Notes.
Contents Tutorial Hello, World Command-Line Arguments Finding Duplicate Lines A Web Server Loose End ...
- A Language Modeling Approach to Predicting Reading Difficulty-paer
Volume:Proceedings of the Human Language Technology Conference of the North American Chapter of the ...
- 函数式编程语言(Fuction Program Language)
一.什么是函数式编程语言 函数式编程语言(functional progarm language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型. ...
随机推荐
- LeetCode缺失的第一个正数
LeetCode 缺失的第一个正数 题目描述 给你一个未排序的整数数组 nums,请你找出其中没有出现的最小的正整数. 进阶:你可以实现时间复杂度为 O(n)并且只使用常数级别额外空间的解决方案吗? ...
- Scala和Java的List集合互相转换
import java.util import scala.collection.mutable /** * 集合互相转换 */ object ScalaToJava { def main(args: ...
- nodejs-Child Process模块
JavaScript 标准参考教程(alpha) 草稿二:Node.js Child Process模块 GitHub TOP Child Process模块 来自<JavaScript 标准参 ...
- Sharding-JDBC 实现水平分库分表
1.需求分析
- 容器之分类与各种测试(三)——queue
queue是单端队列,但是在其实现上是使用的双端队列,所以在queue的实现上多用的是deque的方法.(只要用双端队列的一端只出数据,另一端只进数据即可从功能上实现单端队列)如下图 例程 #incl ...
- mysql与clickhouse的字段类型对应表
- Spring boot 数据源配置。
配置文件 : spring boot 配置文件 有两种形式 ,一种是properties文件.一种是yml文件.案列使用properties文件. 数据源的默认配置 : spring boot 约定 ...
- mybatis的dao层和service层的编码设计的配置
/** 书写pojo类------>dao接口------>resources下建立同路径的dao.xml------>配置applicationContext.xml文件 **/ ...
- 1945-祖安 say hello-String
1 #define _CRT_SECURE_NO_WARNINGS 1 2 #include<bits/stdc++.h> 3 char str[100][40]; 4 char s[10 ...
- 3、Linux的Redis安装
Linux下安装redis 1.Redis下载 [Redis官网下载地址](https://redis.io/download) 进入官网进行下载 wget https://download.r ...