收录情况: NeurIPS-2022
论文链接: https://arxiv.org/abs/2206.01201
代码链接: 未开源
文章目录
简介
问题
虽然
visual representation
在traditional VQA
中得到了广泛的研究应用,但在knowledge-based VQA
中却鲜有使用,尽管这两种任务都需要依赖视觉信息来输出答案。
作者观察到,在目前最先进的 knowledge-based VQA 方法中:1)从整个图像或利用滑动窗口的方式提取视觉特征来检索知识,而忽略了对象区域内部/之间
的重要关系;2)最终的预测模型没有很好地利用视觉特征,这在一定程度上是反直觉的。因此,他们只是将检索到的知识和问题融合
为一个纯自然语言处理(NLP)任务来预测答案,而在预测答案的时候忽略了视觉信息
。方案
作者提出了一种新的 knowledge-based VQA 方法,该方法在
知识检索阶段
和预测答案阶段
中都利用了对象区域的显式的视觉信息,对象区域和其内在关系对于基于知识的VQA非常重要。现有的研究主要集中在提高外部知识的融入,而本文则侧重于提高以对象为中心的视觉表示的利用,不仅利用了详细的对象区域信息进行知识检索,而且将对象区域的视觉表征融合到最终的答案预测模型中。
首先使用GLIP
模型来定位对象,然后利用对象信息检索不同类型的外部知识,最后将这些知识与对象区域视觉特征集成
到一个统一的基于Transformer的答案预测模型中,以预测答案。在标准的OK-VQA数据集上进行了广泛的实验,并以58.0%
的精度大大超过了以前的最先进的方法(+3.6%
)。主要贡献
(1)、作者系统地探讨了如何更好地利用视觉特征进行知识检索,实验表明,与基于整体图像和基于滑动窗口提取视觉特征的方法相比,
基于对象区域的方法性能最好
。
(2)、将对象区域视觉表征、检索到的外部知识和隐性知识整合到基于Transformer的问答模型中,可以有效利用这三个信息源
解决基于知识的VQA问题。
(3)、在OK-VQA数据集上达到了最先进的性能,58.0%
的准确率,大大超过了以前的方法。
相关工作
Knowledge-Based VQA
基于知识的VQA旨在利用图像内容之外的外部知识来预测答案。
OK-VQA
是第一个需要使用外部知识来回答问题的大型数据集,并且不提供固定知识库。最近的研究利用ConceptNet
,Wikipedia
等,以检索知识,解决基于知识的VQA;后来,PICa
模型将大型语言模型,如GPT-3
作为隐性知识来源,根据文本prompts进行答案预测;KAT
利用外部知识检索和语言生成模型进行开放领域问题回答,利用FiD阅读器对检索到的隐性和显性知识执行知识推理。Vision-Language Models
视觉语言预训练模型通常首先在大规模的图像-文本数据集上预训练,然后对模型进行微调,以解决特定的视觉语言任务。其中,VinVL旨在学习以对象为中心的表示;CLIP通过对比学习对模型进行大规模文本图像对的预训练;作者利用这些模型作为子模块,对基于知识的VQA任务进行以对象为中心的对象区域识别和知识检索。
方法
REVIVE
如图2,利用输入的图像检测出的对象区域获取以对象为中心的
Object-centric Regional Features
和检索的显性知识,同时通过Regional Tags
、Question
和Context
提示GPT-3检索隐性知识。之后,将这些信息融合到一个Encoder-Decoder
模块中生成答案。
a、Regional Feature Extraction Module
给定一个图像 I I I,首先采用对象检测器GLIP来生成区域提议框(和Faster-rcnn 的 region proposals 一个意思)的位置:
其中 B B B为bounding boxes
, M M M为boxes
的数量, D D D为目标检测器GLIP
,作者使用text prompt
“Detect: person, bicycle, car,…,toothbrush”作为GLIP模型的prompts,包含MSCOCO数据集的所有对象类别。这样就可以得到与这些类别相关的所有bounding boxes。从GLIP中得到对象边界框 B B B后,根据 B B B对图像 I I I进行裁剪,得到区域提议Regional Features
R = { r j } j = 1 M R=\{ r_j \}_{j=1}^M R={rj}j=1M,此外,对每一个区域提议还会引入位置编码Regional Positions
,然后从 R R R中提取以物体为中心的视觉特征Object-centric Region Features
v j = E ( r j ) v_j=E(r_j) vj=E(rj), E ( ⋅ ) E(·) E(⋅)为CLIP视觉编码器,输出[CLS] token的编码作为最终的区域提议的视觉编码。
除了对象区域的视觉编码之外,显式的获取每个对象区域文本形式的描述对知识检索也很有帮助。对于CLIP模型而言,如果图像和文本匹配,那么这两者的内积将会更大,因此,通过计算内积,可以从一组定制Tags中选择描述图像的Tag。给定一组Tags,计算区域提议与所有Tags的内积,取相似度top-P的Tag作为区域建议的描述Regional Tags
:
此外,利用caption模型Vinvl
对原始图像 I I I获取Context,提供更多的上下文关系,即对象之间的关系。至此,我们已经提取到了区域视觉和位置信息为,提取对象的文本描述和对象之间的关系,下一步即是通过这些信息检索外部知识。b、Object-Centric Knowledge Retrieval Module
和KAT一样,同时考虑了显性知识和隐性知识。
Explicit Knowledge
External Knowledge Base 从Wikidata构造一个子集来构建外部知识库 Q Q Q。提取
8
个常见类别:Role, Point of interest, Tool, Vehicle, Animal, Clothing, Company, Sport,以形成子集 Q Q Q。 Q Q Q中的每一项都由一个实体
(即上一步GLIP模型提取的Region标签)和相应的描述
组成,例如,实体“pegboard”和描述“board wall covering with regularly-spaced holes for insertion of pegs or hooks”。
Regional Knowledge Retrieval 如前所述,CLIP能够从一组文本中选择最相关匹配的文本。因此,将知识库 Q Q Q中的条目重新格式化为“{entity} is a {description}”,将所有区域提议中相关度最高的知识条目检索作为显性知识:
其中 K K K为检索到的显式知识样本的个数。Implicit Knowledge
大型语言模型,如
GPT-3
,从它的训练语料库中天然的记忆了大量的常识知识。因此,利用GPT-3作为隐性知识库,将任务重新定义为开放领域的文本问题回答。
Context-Aware Prompt with Regional Descriptions 基于问题Question、Context和Regional Tags设计为文本prompts
为“context:{caption} + {tags}”。通过这种方式,语言模型补充了区域视觉信息。
Implicit Knowledge Retrieval 最后,将上一步得到的文本prompts
作为GPT-3的输入,得到预测答案。由于有些问题Question可能有歧义,作者遵循PICa
的prompt tuning,得到候选答案集 { o u } u = 1 U \{ o_u \}^U_{u=1} {ou}u=1U。除了答案预测之外,还从GPT-3模型中获得相应的解释 e u e_u eu,以获得更多的上下文信息。具体地说,通过输入文本prompts“{question} {answer candidate} This is because”
来获得相应的解释。其中“{question}”和“{answer candidate}”分别是问题Q和GPT-3预测的答案 o u o_u ou。最终检索到的隐性知识可以表示为 I = { ( o u , e u ) } u = 1 U I=\{(o_u,e_u) \}^U_{u=1} I={(ou,eu)}u=1U。c、Encoder-Decoder Module
当检索了显性和隐性知识和区域信息,就可利用
FiD
模型对检索到的知识和区域信息进行编码和解码。
Knowledge Encoder 对于显式知识,记为 h k h_k hk,将输入文本重新格式化为“entity: {entity} description: {description}”
,其中entity和description来自检索到的显式知识中的条目。对于隐式知识,记为 s u s_u su,输入格式为“candidate: {answer} evidence: {explain}”
,其中answer为检索到的答案 o u o_u ou,explain为 e u e_u eu。用FiD的编码器将这些知识编码成文本格式,记为 F e F_e Fe:
Visual Encoder 将 v j v_j vj(Regional Features)和 b j b_j bj(Regional Positions)输入到两个全连接层,将输出再输入到一个transformer encoder F v F_v Fv:
Context-aware Question Encoder 为了更好地利用上下文信息,将输入问题Question替换为Context-Aware Prompt with Regional Descriptions
,然后用相同的transformer编码器 F e F_e Fe对其进行编码:
Generative Decoder 我们得到了知识编码 α k \alpha_k αk和 β u \beta_u βu,视觉编码 f f f和上下文感知问题编码 q q q。然后将它们输入FiD的解码器 F d F_d Fd:
采用交叉熵损失函数对模型进行训练:
Model Ensemble 在实验中,作者训练三个初始化种子不同的模型,然后从这三个模型生成的结果中选择频率最高的结果作为每个样本的最终答案预测。
实验
Dataset. OK-VQA是目前最大的基于知识的VQA数据集,、包含14055个问题,来自MSCOCO数据集的14031张图像,问题涵盖了各种各样的知识类别。
表1可以看出,之前的工作(如KRISP,Visual Retriver-Reader和MAVEx)达到了相近的性能,38.4%到39.4%的准确率。直到最近,PICa首次将预训练的语言模型GPT-3作为知识库用于基于知识的VQA任务,KAT进一步引入Wikidata作为外部知识资源,这两个方法获得了显著的性能提升。作者的方法大大优于所有现有的方法,即使使用相同的知识资源(即Wikidata和GPT-3),单模型可以达到56.6%
的准确率,当使用模型集成时,可以达到58.0%
的准确率。
总结
在本文中,作者提出了一种基于知识的VQA方法。REVIVE将以对象为中心的区域视觉特征和两种知识,即隐性知识和显性知识,纳入到答案生成模型中进行预测,在OK-VQA数据集上实现了最先进的性能。
Limitations and Broader Impact
构建的Wikidata子集和设计的文本prompts的质量会影响最终的检索知识。此外,获取区域提议的检测器也会影响检索到的知识和视觉特征,这些因素都会影响模型的性能。
本文提出了一种基于知识的VQA的新方法—REVIVE。REVIVE可以帮助模型有效地使用视觉和语言信息源来回答开放领域的问题。它也可以推广到现实生活中的产品,如对话机器人,然而,在将其作为教育技术使用的过程中,也会出现失败案例,对社会产生负面影响,也可能存在某种形式的偏见,即,如果训练数据分布不均匀,模型可能预测有偏见的答案。