LPF: A Language-Prior Feedback Objective Function for De-biased Visual Question Answering 论文笔记
- 一、摘要
- 二、引言
- 三、方法
-
- 3.1 An arbitrary VQA model
- 3.2 Determining Language Biases with a Question-only Branch
- 3.3 Reducing Language Biases by Reshaping the VQA Objective Function
- 四、实验
-
- 4.1 Datasets and implementation details
- 4.2 Results and Analysis
-
- 4.2.1 Comparison with the SOTAs
- 4.2.2 Results on biased VQA dataset
- 4.2.3 LPF is model-agnostic
- 4.2.4 Diffenrent Varients of LPF
- 4.2.5 LPF Results in Less Biased Answer Distributions
- 4.3 Qualitative Analysis
- 五、结论
- 结语
写在前面
??这是一篇关于VQA中bias的文章,由于我之前看过一遍,这里点一下核心创新点在于将question-only分支加上了一个动态的权重阈值来再次平衡损失。代码也有,应该可以撸懂,嘿嘿。
- 文章链接:LPF: A Language-Prior Feedback Objective Function for De-biased Visual Question Answering
- 代码:Github
- 收录于 SIGIR 2021。
一、摘要
??之前的VQA模型未能根据视觉线索来推理问题,因此提出了一种新颖的语言-先验目标函数(Language-Prior Feedback Objective Function, LPF)再平衡每个答案损失值在整体VQA模型损失中的比例。首先,LPF采用一个question-only的分支来计算一个模态因子(权重)来决定语言的bias程度,之后在训练过程给每一个训练样本赋一个自适应的权重。通过这种再次赋值的方法,LPF能够确保VQA模型的整体损失会更加平衡到每一个样本上。基于此,训练过程中样本会被要求根据视觉信息来进行预测。优点有:简单易行,模型无关,端到端可训练,性能非常高。
二、引言
??VQA性能很高→文献指出存在Bias→VQA-CP数据集→目前的解决方法
- 基于标注的方法:对齐VQA模型的视觉注意力和人类注意力,需要大量的手工标注,同时这种提升可能来源于归一化的影响而非图像中的视觉信息;另外基于反事实数据增强的方法用于增强模型的泛化性,但是在这种不平衡的数据集下的效果还有待验证?
- 基于无标注的方法:主要是训练一个question-only的模型来归一化VQA模型的训练。其大致可分为两种类型:1、基于对抗的:让问题编码器不能捕捉到unwanted的视觉先验,但是带来了噪声使得训练不稳定;2、基于嵌入的方法(ensemble),采用嵌入策略联合两个模型的预测结果,使得梯度的下降是基于融合后的答案分布进行的,其缺点在于仅仅是单独地增加或者减少了样本的损失值,不同答案的全局训练目标仍然不平衡。这对于VQA-CP这类数据集来说,每种问题类型极其不平衡,性能不佳。
??根据上图,一些损失值较小但却数量众多的样本主导了损失,因此本文提出的解决办法是再平衡每个答案损失值的比例,而不是简单的增加或者减少损失值。从这里引出LPF:
??LPF首先根据问题分支的输出分布来计算一个决定语言bias的模态因子,之后在训练过程赋值给每一个训练样本一个动态权重。需要注意的地方就在于这里,不同于基于ensemble的方法,例如RUBi,本文采用的是再赋值权重的方式确保总体损失的平衡。最后再描述一下优点。
??本文贡献如下: - 引入一种Language-Prior Feedback objective function(LPF)来自动平衡训练损失,重点在于利用question-only分支来计算不同类型答案的动态权重;
- 效果很好;
三、方法
??模型结构图如上所示,主要由三个模块构成:一个任意的Base VQA模型;一个Question-Only分支;一个LPF目标函数。
3.1 An arbitrary VQA model
??传统的双流模型描述一遍,最传统的VQA训练目的都是为了最小化标准的cross-entropy loss,即LVQA=?1N∑i=1Nlog?(softmax?(fVQA(vi,qi)))[ai]\mathcal{L}_{V Q A}=-\frac{1}{N} \sum_{i=1}^{N} \log \left(\operatorname{softmax}\left(f_{V Q A}\left(\mathrm{v}_{\mathbf{i}}, \mathrm{q}_{i}\right)\right)\right)\left[a_{i}\right]LVQA?=?N1?i=1∑N?log(softmax(fVQA?(vi?,qi?)))[ai?]
3.2 Determining Language Biases with a Question-only Branch
??为了衡量语言bias在VQA模型中的强度,其中一个有效的办法是仅采用问题模态来训练一个简单的模型。由于在语言模态中,大量的统计规则可以被利用,因此从技术上来说,采用question-only的模型能够作为比较的对象。其目标同样是最小化标准cross entropy loss:LQO=?1N∑i=1Nlog?(softmax?(fQO(qi)))[ai]\mathcal{L}_{Q O}=-\frac{1}{N} \sum_{i=1}^{N} \log \left(\operatorname{softmax}\left(f_{QO}\left(\mathrm{q}_{i}\right)\right)\right)\left[a_{i}\right]LQO?=?N1?i=1∑N?log(softmax(fQO?(qi?)))[ai?]其中,fQOf_{QO}fQO?表示问题分支的输出映射。由于question-only的分支同时也用于预测正确的答案,因此fQOf_{QO}fQO?的分布也能够表示语言bias的强度。
3.3 Reducing Language Biases by Reshaping the VQA Objective Function
??首先计算question-only分支的softmax可能性,然后根据gt_answer来产生对应的αi\alpha_{i}αi?分布,用于表示所给问题的语言bias,用公式表示如下:
αi=softmax?(fQO(qi))[ai]=exp?(fQO(qi))[ai]∑j=1∣A∣exp?(fQO(qi))[aj]\alpha_{i}=\operatorname{softmax}\left(f_{Q O}\left(\mathrm{q}_{i}\right)\right)\left[a_{i}\right]=\frac{\exp \left(f_{Q O}\left(\mathrm{q}_{i}\right)\right)\left[a_{i}\right]}{\sum_{j=1}^{|\mathcal{A}|} \exp \left(f_{Q O}\left(\mathrm{q}_{i}\right)\right)\left[a_{j}\right]}αi?=softmax(fQO?(qi?))[ai?]=∑j=1∣A∣?exp(fQO?(qi?))[aj?]exp(fQO?(qi?))[ai?]?随着αi\alpha_{i}αi?的增加,模型的bias越大。因此采用αi\alpha_{i}αi?去构成模态因子βi\beta_{i}βi?,能够动态的调整每个训练样本的损失权重,用公式表示为:
βi=(1?αi)γ,γ≥0\beta_{i}=\left(1-\alpha_{i}\right)^{\gamma}, \gamma \geq 0βi?=(1?αi?)γ,γ≥0其中γ\gammaγ为超参数,γ\gammaγ增大时,βi\beta_{i}βi?减小。因此βi\beta_{i}βi?的减小,即损失函数的减小,也即对损失函数影响的作用增大。之后联合βi\beta_{i}βi?和损失函数可表示为:
LLPF=?1N∑i=1N(1?αi)γ?=βilog?(softmax?(fVQA(vi,qi)))[ai]\mathcal{L}_{L P F}=-\frac{1}{N} \sum_{i=1}^{N} \underbrace{\left(1-\alpha_{i}\right)^{\gamma}}_{=\beta_{i}} \log \left(\operatorname{softmax}\left(f_{V Q A}\left(\mathbf{v}_{\mathrm{i}}, \mathrm{q}_{i}\right)\right)\right)\left[a_{i}\right]LLPF?=?N1?i=1∑N?=βi?
(1?αi?)γ??log(softmax(fVQA?(vi?,qi?)))[ai?]
??LPF的两个属性:当问题未被问题分支正确回答时,αi\alpha_{i}αi?是很小的,此时βi\beta_{i}βi?接近1,所以很难被影响;随着αi\alpha_{i}αi?增大至1,βi\beta_{i}βi?接近于0,对应该bias样本的损失值显著地被降权了,上图中的数值表明了这种影响。最终,总损失为:Ltotal =LLPF+LQO\mathcal{L}_{\text {total }}=\mathcal{L}_{L P F}+\mathcal{L}_{Q O}Ltotal ?=LLPF?+LQO?注意,为了防止模型直接学习到bias,从LQO\mathcal{L}_{Q O}LQO?计算的梯度并不会反向传播回去,因此question-only分支的作用欲强,VQA模型中的bias被捕捉和移除的可能性也就越大。
四、实验
4.1 Datasets and implementation details
??VQA-CP v2数据集,VQAv2的结果也拿来比较,采用UpDn模型,3层MLP的question-only,21 epoch,256 batch。
4.2 Results and Analysis
4.2.1 Comparison with the SOTAs
??所采用的模型:1、基础模型:GQA,UpDn;2、外部标注的模型:HINT、SCR;3、数据增强的模型:SSL(CE)、CSS;4、无标注的方法:AdvPeg、GRL、RUBi、VGQE、DLR、LMH。从上表中可以看到,尽管基于数据增强的方法超出了其他,但是改变了训练先验使得其很难去评估模型是否仍然由记忆先验所驱动,因此这些仅作为参考。由于RUBi仍然受到了不平衡训练的影响,因此性能比不过。
4.2.2 Results on biased VQA dataset
??同样在上表。由于LPF可以在参数γ\gammaγ进行权衡,因此LPF的性能还看得上(γ\gammaγ=1),但是打不过VGQE,确实?。
4.2.3 LPF is model-agnostic
4.2.4 Diffenrent Varients of LPF
??原来的αi\alpha_{i}αi?是根据question-only分支来动态学习到的softmax PfQO(ai∣Qi)P_{f_{\mathcal Q O}}(a_{i}\mid{\mathcal Q_{i}})PfQO??(ai?∣Qi?),现在采用两种变体:
- UpDn+Precomputing:从训练集中预先计算每种问题类型P(ai∣Qtype)P(a_{i}\mid {\mathcal Q_{type}})P(ai?∣Qtype?)的答案分布αi\alpha_{i}αi?,记为αi=P(ai∣Qtype)\alpha_{i}=P(a_{i}\mid {\mathcal Q_{type}})αi?=P(ai?∣Qtype?)
- UpDn+Focal:为了表明LPF超过一般使用的再平衡权重的方法,例如focal loss,因此将focal loss拓展到VQA上进行对比。
??在实验中,αi=softmax?(fVQA(vi,qi))[ai]\alpha_{i} = \operatorname{softmax}\left(f_{V Q A}\left(\mathrm{v}_{\mathbf{i}}, \mathrm{q}_{i}\right)\right)\left[a_{i}\right]αi?=softmax(fVQA?(vi?,qi?))[ai?],βi\beta_{i}βi?随着αi\alpha_{i}αi?的变化而变化(βi=1?αi\beta_{i} = 1- \alpha_{i}βi?=1?αi?),γ\gammaγ设为1,结果如下:
??主要注意focal loss的引入使得性能下降,原因可能是VQA模型本身的视觉信息可能就是一个干扰因子,因此不能很好的表示语言bias。
4.2.5 LPF Results in Less Biased Answer Distributions
4.3 Qualitative Analysis
五、结论
??本文提出了LPF,给每一个训练样本赋值一个动态权重并再平衡整体的VQA损失。
结语
??本文不长,4页论文加1页参考文献,但里面包含的信息量很大。首先吊打了RUBi,这一点就值得佩服,另外本文的表达方式比较地道,简单说就是通俗易懂,值得一看。