Multi-Modal Answer Validation for Knowledge-Based VQA
Research motivation
基于知识的视觉问答问题涉及回答除了图像内容之外还需要外部知识的问题。这种知识通常以各种形式出现,包括视觉、文本和常识知识。然而,更多知识来源的使用也增加了检索更多不相关或嘈杂事实的机会,使得理解事实和找到答案变得困难。为了应对这一挑战,作者提出了使用外部知识的多模态答案验证,其思想是基于答案特定的知识检索来验证一组有前途的候选答案。
如图所示,仅使用问题中的单词和图像中的对象(上图)或错误答案(中图)检索的句子几乎对问题没有帮助,这增加了答案预测器的负担,导致对检索到的知识的使用仅带来微不足道的提升[25]。
有趣的是,有了正确的答案“温布尔登”(下图),检索到的事实的质量得到了显著提高,这使得回答问题变得有用。这一观察结果激励我们使用检索到的知识来验证答案,而不是生成答案
本文的目标是了解特定问题应该使用什么知识来源,以及如何使用该来源验证一组潜在的候选答案,作者提出了框架MAVEx,该方法在OK-VQA上实现了最先进的结果
文章贡献:
- 通过探索视觉知识和文本知识来使用多模型知识检索
- 介绍了一种新的方法,该方法使用候选答案来指导开放域VQA的知识检索
- 提出一个一致性标准来决定何时信任检索到的知识
Model
MAVEx背后的关键点是,使用重新搜索的知识来验证候选答案的有效性比使用开放的知识搜索来寻找答案更可靠。因此,作者根据检索到的事实学习一个模型来评估每个候选答案的有效性。要让这种方法发挥作用,我们首先需要一小组候选答案。VQA中的SOTA模型在生成包含正确答案的候选列表方面令人惊讶地有效。使用这些候选答案来指导知识检索所到的事实不那么嘈杂,并且通常与问题更加相关。
候选答案生成:
模型首先使用VITBERT模型生成一个Promising answer candidates,在这些答案候选的指导下检索知识,最后验证这些答案候选集,其中本文使用了Wikipedia、ConceptNet以及谷歌图像三个知识源,它们分别提供事实、常识以及视觉知识
Answer Guided Knowledge Retrieval
主要通过三个步骤来检索支持答案候选集A的外部知识:
- Query Extraction :
- 首先收集问题q中的短语、A中的每个候选答案以及图像I中表示的概念作为检索的起点;
- 使用短语分析器对问题和候选答案进行解析,得到解析树,然后提取在叶子节点上的名词以及描述此名词属于某类的单词。提取三类词语进行建模:包含wh或how的单词(如哪部电影)用nq0表示;再从剩下的问题中提取名词短语(如这个位置上的人)用nqi表示;最后用名词短语回答每一个问题,记为nai(如Forrest Gump),这些名词把提取到的问题对象和图像连接起来。
- 因为图像通常包含很多对与问题无关的内容,因此我们使用单独的VITBERT作为Object-linker,输入检测到的对象和来自问题的名词短语,输出每个检测对象的链接分数以表明名词短语引用此对象的可能性,其分数阈值设置为0.5。
- 进一步生成一组搜索查询来搜索外部知识库,对于每个名词短语从依存树中找到最内层NP来提取训练短语的头部。然后对对应的对象使用预训练的带属性对象检测器得到其视觉属性,例如:“处于该位置的人”的视觉查询基础是“人”和“坐着的人”,其中坐着是从视觉属性中推断出来的,构建的查询集合为Rni,n是对应的名词短语,K则是每个名词短语的最大查询数
- Answer Guided Knowledge Pool Construction:
- 使用上述步骤中的查询来建立知识库:使用豫训练的T5模型将问题q与候选答案a转换为自然语句Spa,这是因为在文本知识源中语句比问题出现的频率高
- 利用S1步骤中最后一部分的到的查询集合,计算检索到的文章的句子与Spa之间的BERTScore取top-15,得到的句子被添加到sentence pool并进行去语境化操作
- 作者认为纯文本知识不足以完全表达丰富的外部知识,因此利用Mask-R-CNN对常见目标进行检测并使用谷歌图像搜索并选取top-5,从而引入了视觉知识
- Matching Knowledge Pool to Queries:
- 本文将查询池中的句子与所有查询做匹配,而非将最优句子作为所检索到的知识,这是因为作者认为虽然大多数查询不能检索到有用的知识,但可以在一定程度上表示出应该包含在外部知识的某些重要方面
- 对于每个查询,来自Wikipedia和ConceptNet的句子都使用平均召回率作为分数,大于0.6被认为是检索结果。平均召回率是查询单词的Glove嵌入与句子中最相似单词之间的平均余弦相似度。为了确保知识的相关性,删除了只与单个查询匹配的句子。从语句池中提取m个句子
- 使用S1中对象链接器的结果选择top-3作为引用对象,记为M(n)
Answer Candidate Validation
答案验证模块输入候选答案ai和检索到的支持知识,输出一个表示知识支持答案ai程度的标量分数。
为了更好的聚合知识,作者先计算了每个查询的知识嵌入,再对每个名词短语计算一个嵌入,由于每个查询是基于名词短语创建的,所以此嵌入聚合了查询rni的信息,最后整个问题的嵌入聚合了所有名词信息的嵌入信息。
作者在ViLBERT的基础上构建MAVEx模型,给定一个问题q与图像I,ViLBERT的最后一层输出了文本特在U(|q|·d)、视觉特征V(|V|·d)其中|q|是q中tokens的数量,d是特征维度;|V|是图像中对象的数量加1(表示整幅图像),对于检索到的文本知识中的句子,文章使用TinyBERT提取相应特征。最后再对特征进行平均。
对于视觉知识使用Masl-RCNN提取特征,之后平均作为图像特征
**Multi-Granular Knowledge Embedding Module:**该模块学习每个名词短语的关键查询以及回答问题的关键名词短语
**Answer Prediction and Validation Module:**给定三个知识源的每一个知识嵌入k,预测答案的概率为Pk=FNN(K+Z),最终预测是拥有最大置信度的答案。
验证模块将三个来源的答案候选a和知识特征作为输入,以了解知识对候选答案的支持程度。
**Consistency Criteria:**作者认为作为最高置信分数的知识,相比于其他候选答案应该更支持a,相比其他知识对其他候选答案来说也应该更支持a。
Failures Cases Analysis
Figure 6 shows some common types of failure examples. In the left example, the model over-relies on the retrieved fact “some locomotives use diesel engines” and ignores the key visual clue in the image (the wires above the train). In the middle example, the model relies on the visual content “tennis court” and does not use the retrieved knowledge. In the example shown on the right, the model fails to realize that the key clue is the difference in displayed time on the clocks.
本文仅作个人阅读笔记使用,文章部分内容同样参考了其他文章。如有侵权,请联系删除