<<视觉问答AAAI>>2022:An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA

<<视觉问答AAAI>>2022:An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA_第1张图片

收录情况AAAI-2022
论文链接https://arxiv.org/abs/2109.05014
代码链接https://github.com/microsoft/PICa

文章目录

  • 简介
    • 问题
    • 方案
  • 相关工作
    • Knowledge-based VQA
  • 方法
    • GPT-3 for In-context Learning
    • GPT-3 for VQA
    • In-context Examples
    • In-context example selection
    • Multi-query ensemble
  • 实验
  • 总结


简介

问题

Knowledge-based visual question answering(VQA)是指模型不仅需要图像的视觉信息和问题的语义信息,还需要图像中的对象所蕴含的外部知识才能够正确的回答问题,例如模型在回答“图像中涉及到的八大奇迹之一全长是多少?”这一问题时,模型不仅要识别出图像中的八大奇迹之一万里长城,更需要外部知识来回答这个问题。

现有的方法首先从外部知识资源库中检索知识,然后对检索到的知识、输入图像和问题进行融合推理,进行答案预测。然而,这种两阶段方法可能会导致不匹配,从而潜在地限制VQA的性能。例如,检索到的知识可能是有噪声的,与问题含义无关;推理过程中re-embedded的知识特征可能偏离知识库中的原始含义。此外,学习一个健壮的知识-图像-问题联合表征需要足够的训练数据,因此很难迁移到新的问题类型。

方案

<<视觉问答AAAI>>2022:An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA_第2张图片
作者提出PICa,这是一种将上述知识检索推理步骤隐式的统一起来的一种简单而有效的方法,通过使用Image Captions作为GPT-3的Prompts,用于knowledge-based VQA。受GPT-3在知识检索和问答方面的强大功能的启发,PICa没有像以前的工作那样使用显式和结构化的知识库(KBs),而是通过Prompts将GPT-3视为可以同时获取和处理相关知识的隐式、非结构化的知识库(GPT-3是在大量文本数据集上训练出来的超大语言生成模型,因此,GPT-3本身就已经包含了丰富的知识,可以看作是一个超大型知识库)。如图1所示,首先将图像转换为GPT-3可以理解的captions(或labels),然后通过仅提供少量in-context VQA示例调整GPT-3,以few-shot的方式解决VQA任务。

作者进一步通过仔细研究两个问题进一步提高性能:(i)什么样的文本格式可以最好地描述图像内容;(ii)如何更好地选择和使用in-context VQA示例。PICa是GPT-3在多模态任务中的首次使用。通过仅使用16个in-context VQA示例,PICa在OK-VQA数据集中以绝对+8.6分的优势超越了有监督的最先进水平。在VQAv2上对PICa进行了基准测试,也显示了不错的few-shot性能。

相关工作

Knowledge-based VQA

Knowledge-based VQA除了图像内容外,还需要外部知识来回答问题。除了早期的KB-VQA和F-VQA数据集,最新的OK-VQA数据集建立在COCO图像上,问题涵盖了广泛的知识类别。之前的研究提出了各种检索和使用知识的方法,并认为有必要使用多种知识资源(如维基百科、ConceptNet、谷歌图像和来自语言模型的隐性知识),在外部知识检索之后,便要对获取的知识和输入图像-问题对进行答案推理。然而,这种两阶段方法可能在检索步骤中得不到最相关的知识,在推理步骤中无法对知识进行最优的编码。在本研究中,作者将这两个步骤结合起来,提出了一个通过GPT-3 prompts来共同获取和处理VQA知识的模型。

方法

GPT-3 for In-context Learning

GPT-3 in-context few-shot在推理时只需要几个示例就能快速适应新任务,而且不需要参数更新。根据给定的上下文C和新任务的输入x可以直接预测新任务的目标y,因此,在每个decoder step t
在这里插入图片描述
其中LM表示预训练的语言模型的权重,且被冻结。上下文C={h, x1, y1,···,xn, yn}由来自新任务的可选的prompt head hn个in-context示例组成,如图2所示。

GPT-3 for VQA

<<视觉问答AAAI>>2022:An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA_第3张图片
GPT-3是一个语言模型,本身并不能理解图像输入,因此需要将image转换为captions,以全文本的形式作为VQA任务的输入。图2显示了PICa如何进行推理,通过使用构造好的prompts来提示GPT-3完成VQA任务,prompts是一个由in-context C(prompt head h和n个in-context示例)和VQA输入x组成的token序列。具体来说,首先使用caption(或label)模型将VQA image翻译为captions(或labels list),如绿色框中VQA输入x是翻译后的captions(“Context: People are standing in a parking lot with some umbrellas as it snows.”)和问题字符串(“Q: What is the warmest temperature at which this weather can happen? A: ”),目标y是输出答案(“32度”),以开放式文本生成方式产生,可以包含从GPT-3的整个词表中选择的任意数量的tokens。in-context C以prompt head h开始,这是一个固定的字符串(“Please answer the question according to the above context.”),如蓝色框所示。C的其余部分是连接n个in-context示例的字符串,如红框中所示,然后,将C与绿色框中的VQA输入x连接起来,以生成prompt。GPT-3将构建的prompt文本作为输入,隐式地从GPT-3语言模型中检索和推理知识(上文说到GPT-3可以看作是一个超大型知识库,因此不需要额外的、显式的检索知识),并预测答案y

In-context Examples

从经验上看,提供更多in-context示例会带来更好的few-shot性能,然而,新任务中可用的示例数量和GPT-3模型的最大输入长度共同约束了prompt中示例的最大数量n。在实践中,作者观察到最大输入长度通常会限制可以采用的最大n,也就是说,通常可用的示例比语言模型可以采用的示例更多(例如,n = 16)。为了更好地使用这些可用的示例,作者继续探索了两种方法:(i)通过仔细的In-context example selection来提高示例质量;(ii)通过Multi-query ensemble使用更多的示例。

In-context example selection

In-context example selection从所有可用示例中为每个推理时间步输入x搜索最佳示例。如果一个in-context示例具有与x相似的问题特征,则认为它是一个较好的示例。作者采用CLIP模型进行相似度计算,即给定一个推理时间步的问题question,使用CLIP的文本编码器获得其文本特征,并计算其与所有可用的in-context示例中的问题question的余弦相似度,然后将问题文本相似度与图像视觉相似度进行平均,以指导示例的选择。选取相似度最高的前n个问题question,并用相应的示例作为in-context示例。

Multi-query ensemble

给定一个推理时间步示例x,使用n x k个in-context示例来生成k个prompts,得到k个答案预测,其中k是要集成的查询的数量。在k个答案预测中,选择每一个step生成的token概率之和最高的一个作为最终答案。

实验

Experiments on OK-VQA
<<视觉问答AAAI>>2022:An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA_第4张图片
<<视觉问答AAAI>>2022:An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA_第5张图片
表1为在OK-VQA数据集上的结果,PICa-Base是指随意的选取In-context examples,PICa-Full包含了incontext example selection和multi-query ensemble,Caption+Tags是指用开源的Microsoft Azure tagging API预测的labels以丰富captions,可以看到,PICa不需要任何额外的知识库,仅仅依靠GPT-3本身强大的文本生成能力进行答案预测。

表2为不同的in-context示例数量的结果,在仅仅提供一个in-context示例的情况下,PICa就已经达到了40.8的准确率,证明了该方法的有效性。

Experiments on VQAv2
<<视觉问答AAAI>>2022:An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA_第6张图片
表6为PICa在VQA v2数据集上few-shot设置下的性能指标。

总结

作者提出了一种基于GPT-3的few-shot knowledge-based VQA模型PICa,PICa不是使用明确的结构化知识库来检索和推理外部知识,而是通过提示GPT-3同时获取和处理相关知识。它继承了GPT-3强大的few-shot能力,并大大超越了OK-VQA上的有监督模型,分析表明,该方法隐含地获取了回答问题所需的相关知识。

你可能感兴趣的:(Visual,Question,Answering,Image,Captioning,gpt-3,人工智能,transformer,语言模型,自然语言处理)