论文笔记整理:窦春柳,天津大学硕士。
来源:CVPR 2020
链接:
https://openaccess.thecvf.com/content_CVPR_2020/papers/Chen_Counterfactual_Samples_Synthesizing_for_Robust_Visual_Question_Answering_CVPR_2020_paper.pdf
动机
当今的VQA模型倾向于捕获训练集中的表层语言相关性,而不能推广到具有不同QA分布的测试集中。为了减少语言偏见,最近的一些工作引入了一个辅助的仅问题模型,以规范化目标VQA模型的训练,并在VQA-CP上实现主导性能。但是,由于设计的复杂性,当前的方法无法为基于集成模型的模型配备理想VQA模型的两个必不可少的特征:1)视觉可解释的:模型在做出决策时应依赖正确的视觉区域。2)对问题敏感:该模型应对所讨论的语言变化敏感。为此,本文提出了一种与模型无关的反事实样本合成(CSS)训练方案。
亮点
作者提出了与模型无关的反事实样本合成(CSS)训练方案,可以有效提高模型的视觉可解释性和问题敏感度。为避免昂贵的人工注释,设计了一种动态答案分配机制,以近似所有合成VQ对的真实答案。
概念及模型
目前将VQA任务是当做一个多类别的分类任务,不失一般性,给定一个数据集,三元组,图片,问题和答案,VQA任务学习映射,对于给定的图片-问题对给出答案分布。
本文提出的是一个通用的方法,可以和现有的VQA方法进行融合,通过在训练过程中对数据进行mask,提高模型的效果。对于每个训练样本(I,Q,a),具体的训练步骤如下所示:
(1)以初始的三元组训练模型
(2)通过V-CSS合成反事实样本和Q-CSS反事实样本.
(3)用反事实样本训练模型
lV-CSS
根据算法2中显示,V-CSS包含个步骤:初始化对象的选择,对象局部贡献的计算,重要对象的选择,动态分配答案。
(1)初始化对象的选择:
由于图片中的对象只有一小部分跟问题是相关,所以需要选择出与图片有关系的一个小的对象集合I,想法就是首先用SpaCy POS标签给问题中每个单词一个标签,从中选择出名词,计算对象类型与名词的cosine相似度,选择出其中相似度最高的作为集合I。
(2)对象局部贡献的计算:
得到对象集合后,计算那个对象对于回答问题更有作用,利用修改的Grad-CAM来获得哪个对象的的贡献最大。
(3)重要对象的选择:
计算完集合内所有对象的贡献后,选择其中贡献最大的K个(score最高的K个),K由以下公式决定:
其中是一个常数。然后是的绝对补集。
(4)动态分配答案
对于反事实视觉输入和原始问题输入Q构成新的问题视觉对,为了分配正确的答案,首先将输入到VQA模型内,然后得到,根据选择概率值最高的K个答案为集合。然后将剩余的作为,最极端的情况就是包含所有的正确答案,则内不包含正确答案,相当于一个空集。这个方法的动机就是可以正确预测答案,则就不应该再包含原本问题中的正确答案了。
lQ-CSS
Q-CSS包含三步,计算每个单词的贡献,选择其中最重要的单词,动态地分配答案。
(1)计算每个单词的贡献:
以下公式计算每个单词的贡献率:
(2)选择其中最重要的单词:
首先提取能够代表每个问题类型的单词,然后选择K个除了问题类型单词的分数最高的单词当做最重要的单词,然后将重要的单词替换成'[mask]'后得到。而就是将除了类型单词和重要单词以外的单词替换成[mask],
(3)动态地分配答案:
与V-CSS这一步骤相同,这一步骤DA_ASS的输入是。
理论分析
实验
首先是消融实验,集合I的大小、关键字的个数、参数的大小。
在VQA-CP v2测试集上,多个模型添加本文方法得到的提升如下图所示。其中,Baseline是原文中的结果,Baseline+是本文作者重现的结果。
总结
在本文中,我们提出了一种与模型无关的反事实样本合成(CSS)训练方案,以提高模型的视觉可解释性和对问题敏感的能力。CSS通过掩盖关键对象或单词来生成反事实训练样本。同时,CSS可以持续提高不同VQA模型的性能。
OpenKG
开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
点击阅读原文,进入 OpenKG 博客。