Roses are Red, Violets are Blue… But Should VQA expect Them To?
一句话总结
提出新的benchmark GQA-OOD,旨在划分高频及低频(OOD)样本并测量模型在不同条件(in-distribution、out-of-distribution)下的性能
一点题外话
本文的题目改编自英文中一首脍炙人口的打油诗:
”Roses are red,violets are blue,sugar is sweet and so are you.“
文章作者均来自于法国的Orange Labs,不愧是法国人,就连起题目都这么浪漫。
学习一下这种别具心裁的起名方式也不错。
导论
Motivation:
在VQA领域,总体准确率(overall accuracy) 仍然是用于评价模型和方法的 主要且很多时候唯一的 评价指标,显然这是不够的。
因此,作者提出了一个与准确率互补(complementary)的新benchmark,包括新的GQA细粒度重组数据集、一组评价指标以及新的评估图用于说明VQA模型在不同操作点上的泛化行为。
这一benchmark可以被视为VQA-CP数据集的替代。
选择GQA的原因是,GQA将问题按照问题组(question groups)分类,使得我们可以更精确地捕捉偏置,选择带有强烈偏置的groups,并创建针对每个问题本质的分布变化。
Contribution:
- 提出并公布了一个新的GQA数据集的细粒度重组,以及一组评价指标,各自允许精确地评价VQA模型的推理行为,并特征化和可视化它们在关于分布变化的不同操作点上的泛化行为
- 在验证集和测试集中引入分布变化,允许在OOD条件下验证模型
- 通过实验来评估所提出的评价标准的有效性,以显示其在模型上的行为,或多或少地利用了偏置。
- 评估了最近的几个VQA模型并表明它们在OOD条件下难以泛化;还测试了几种抑制SOTA偏置的方法,表明在VQA解决偏置方面仍有改进的空间。
作者在描述偏置问题的时候提到,偏置倾向于阻止模型学习“推理”,导致它们转而进行“有根据的猜测”。
也就是说,如今的大多VQA模型是在"有根据的猜测",而非"推理"。
GQA-OOD: a benchmark for OOD settings
OOD表示out of distribution,故GQA-OOD这一benchmark专门用于OOD条件下评估模型和算法。
GQA-OOD包含一个数据集和一组评价指标。
数据集及评价指标
由上图所示,GQA-OOD数据集与GQA共享同一训练集,但是在验证和测试集中引入细粒度的变化。
变化子集的构造方法为:
- 根据上下文将问题分成组;
- 根据答案分布提取最不平衡的问题组;
- 选择其余问题中的OOD样本。
问题组
为了构造分布变化,作者使用GQA中的local groups概念,这些local groups准确定义了问题的类型,比如以“what color”,“where is”开头的,还同时依赖于与问题相关的概念,比如“zebra”,“violet”。
GQA验证集*有大约132K个问题,37K个local groups。
使用平滑过问题分布的平衡版本GQA数据集,但这并不影响数据集的不平衡性质,这种不平衡通常是由于现实世界的趋势,例如“玫瑰是红色的”。
衡量问题组的不平衡程度
我们想要在最不平衡的上下文中检验预测误差,因为这种情况下的分布变化是有意义且强烈的。
使用香农信息熵衡量平衡程度, p ( x i ) p(x_i) p(xi)表示类别 i i i的概率:
e ( x ) = − ∑ i = 0 d p ( x i ) log p ( x i ) e(x) = -\sum_{i=0}^dp(x_i)\log{p(x_i)} e(x)=−i=0∑dp(xi)logp(xi)
由于熵取决于答案类的数量,不同的问题组之间的差异很大,所以将熵归一化(normalize),公式如下:
e ˉ ( x ) = e ( x ) log d \bar{e}(x) = \frac{e(x)}{\log{d}} eˉ(x)=logde(x)
log d \log{d} logd也等价于大小为d的均匀分布的熵,因此其衡量的是分布 p ( x ) p(x) p(x)与同维度的均匀分布有多接近。
最后,将熵小于阈值 T = 0.9 T=0.9 T=0.9的的问题组保留, T T T的值根据经验设定。这步将选择这些组所有问题,下一步将会为每个问题组选择特定的答案类别。
OOD条件及评价指标
根据答案的频率,为每个问题组选择答案类的子集,从而引入分布变化。
根据用于评估的类别 引入三个不同的指标:
- Acc-tail
对OOD样本的准确率,即答案类分布尾部(tail)的低频样本
将尾部类别定义为满足 ∣ a i ∣ ≤ α μ ( a ) |a_i| \leq \alpha\mu(a) ∣ai∣≤αμ(a)的类别 i i i,其中 ∣ a i ∣ |a_i| ∣ai∣表示属于类别 i i i的样本数, μ ( a ) \mu(a) μ(a)表示组内的平均样本数,参数 α \alpha α一般设为1.2
- Acc-head
每个local groups的分布头部(head) 高频样本 的准确率
- Acc-all
所有GQA-OOD样本的总体准确率
个人理解:也就是说,将最不平衡的几个问题组提取出来,再在其中根据答案频率挑选高频样本以及低频的OOD样本,从而划分出head和tail。
而这一挑选过程中,其实就引入了分布变化。
根据定义也可知,Acc-tail将会是测量模型OOD条件下性能的关键指标。
与VQA-CP2的区别
- 基本数据集不同
VQA-CP2基于VQA2数据集,而GQA-OOD基于GQA数据集
- 关键设计选择不同
VQA-CP2的基础数据集VQA2缺乏对组结构的标注,问题根据第一个词和GT答案分组,根据问题类型拆分来创造分布变化。
GQA-OOD可以通过以下三个方面进行模型泛化行为的细粒度分析:问题组、对应不同的分布变化量的不同指标(acc-tail vs. acc-head)、对不同操作点的连续评估。
- 是否包含验证集?
VQA-CP2只包含训练和测试集,无法验证模型的超参数。GQA-OOD包含验证集,可以在OOD条件下验证超参数。
- 是否在原训练集上训练?
与VQA-CP不同,GQA-OOD数据集要求模型在原GQA训练集上进行训练。
这迫使模型在暴露于训练语料库中捕获的自然倾向和偏置的情况下减少测试结果中的偏置,将会更倾向于那些通过方法学而不是通过清理训练数据来减少偏置的工作。
作者鼓励VQA领域使用本文所提出的benchmark来研究OOD条件下的鲁棒性。
实验
用几种SOTA的VQA模型在GQA-OOD、VQA2、GQA、VQA-CP2等benchmark上进行实验。
参与实验的模型包括:Question Prior、LSTM、BUTD、BAN、MCAN、LXMERT、MMN、VIS-ORACLE
参与实验的偏置抑制方法包括:RUBi、BP、LM
均在GQA平衡版本训练集上训练,在GQA-OOD验证集上验证
对提出的评估指标的验证
一个好的评估指标至少满足两个属性:容易解释;提供了评估所针对的质量的估计。
实验模型使用BUTD+bal,在GQA的平衡版训练集上训练,BUTD+all,在GQA的原始未平衡训练集上训练。
实验目的在于,验证所提出的评估指标是否有能力检测出bias的存在。
可以看到,两者的准确率相差不大,然而在提出的acc-tail指标上平衡的BUTD+bal超出了不平衡的BUTD+all一大截。而且, α \alpha α越小两者的差距越大,因为评估指标专注于越来越稀有的问题答案对,因此足以证明acc-tail确实非常适合在不受偏置依赖干扰的情况下测量VQA性能。
对VQA模型错误分布的分析
通过衡量差值 Δ ( t a i l , h e a d ) = a c c — h e a d − a c c — t a i l a c c — t a i l \Delta(tail, head) = \frac{acc—head - acc—tail}{acc—tail} Δ(tail,head)=acc—tailacc—head−acc—tail说明常见答案和稀有答案之间预测错误的不平衡程度。
作者主要有以下几个发现:
- 模型在稀有的问题答案对上表现糟糕
然而,基于Transformer结构及大规模BERT预训练的LXMERT则在acc-tail指标上胜过其他所有模型,这也证实了预训练Transformer模型确实提升了NLP中的OOD鲁棒性。
与传统的准确率相近的acc-all无法反映模型的真实性能,因为在最常见的问题答案对上拿到高分会机械性地增加这一指标。
故而作者进一步强调,测量out-of-distribution和in-distribution两种情况下的模型性能——这种二合一评估的必要性。
- 可视化泛化行为
(a)图实验:
几乎所有模型符合同一动态,从大约占问题答案对一半的tail size开始,acc-tail开始线性下降,直到达到一个极低的分数。
只有VIS-ORACLE曲线动态接近水平,预测错误几乎与答案稀缺性无关,证明了使用完美视觉输入的模型能够学习推理,显著降低对数据集偏置的依赖。
(b)图实验:
(b)图为(a)图中观察到的泛化失败的原因提供了一些见解
confusion困惑度对应于模型预测head头部答案与tail尾部GT答案的问题比例。
LXMERT在 α = 1.2 \alpha=1.2 α=1.2时困惑度为25%,而 α = 0.3 \alpha=0.3 α=0.3时提升到了42%,其他模型也可观察到类似的行为。
然而VIS-ORACLE曲线依旧接近水平,再次证明了其对训练集中统计偏置的依赖性很低。
- 利用偏置 vs. 推理
在VQA的背景下,推理可以定义为“用代数方法处理文本和视觉对象来回答一个新问题”。
在这样的定义下,使用统计偏置不能被认为是推理,而应该被表示为“有根据的猜测”。
作者进一步探索,对于给定输入,为模型使用的操作模式打上三个标签并进行估计,分别是bias,reason,other/unknown。
由于缺乏标注信息,所以直接使用规则:
当VQA模型正确预测一个答案,且答案在GT中稀有,在预测中稀有,则估计为reason。
当VQA模型错误预测一个答案,且答案在GT中稀有,在预测中常见,则估计为biased。
重新评估抑制偏置方法
RUBi、BP、LM三种方法均未成功在acc-tail指标上获得提升,甚至让acc-head变得更差。
RUBi+QB表示验证时不移除question-only分支,其在acc-tail与acc-head均好于RUBi,不仅表明它能更好地捕捉常见模式,还表明不让模型学习常见模式未必会提升模型在稀有样本上的表现。
从(a)图中我们可以观察到,与BUTD相比,这些方法的曲线右侧变得平缓,表明由常见问答对所主导的总体准确率因偏置被抑制而降低。曲线左侧,对应着稀有样本,几乎没有变化,表明这些方法在一定程度上成功地防止了基础模型学习数据集偏置。
参考
【文献阅读】GQA-OOD–测试低频样本问答的数据集和评估方法(Corentin Kervadec等人,ArXiv,2020,有代码)_QQ704630835的博客-CSDN博客