本文转载自公众号:浙大KG。
本文作者:陈卓,浙江大学在读博士,主要研究方向为图神经网络和知识图谱表示学习
如上图所示,这里的VQA pair中,要回答问题“地面上的红色物体能用来做什么”,要想做出正确的回答“灭火”,所依靠的信息不仅来源于图片上所识别出的“消防栓”,还必须考虑到来自外部的事实(知识)“消防栓能灭火”作为支撑。这就是一个典型的VQA上应用外部知识的场景。
接下来我将按时间顺序结合5篇论文简述在VQA上应用外部知识的方法,做相应的梳理。
推理与知识的实际存储进行分离是基于外部知识VQA相关论文所持的观点。该论文核心思想是将自动生成的图像描述与外部的Knowledge bases融合,以实现对问题的预测。其中生成图像描述的方法借鉴了同年作者发表的了一篇文章[5]:给定一张图像,先预测图像中各种属性,然后再将这些属性代替之前的 CNN 图像特征,输入到 RNN 当中生成语句。这个简单的操作使他们的图像标注模型在当年 COCO图像标注大赛上排名第一。添加中介属性减小双模态鸿沟的方法,也用在了本文中。
对于一个给定的V-Q pair,首先用CNN提取图片特征属性,然后利用这些检测到的属性,使用sparql查询语句从knowledge base比如DBpedia中提取出图像相关描述的一个段落,利用Doc2Vec对这些段落编码。同时,根据图片特征属性使用Sota的image caption方法形成图像对应的段落特征表达。
最后将上面两种信息以及编码的属性结合在一起并输入作为一个Seq2Seq模型的初始初始状态,同时将问题编码作为LSTM的输入,利用最大似然方法处理代价函数,预测答案。
该方法的可解释性相对于端到端的模型而言强了许多,这也是后续许多模型采用的思想,即各种特征融合到一起然后丢到一个递归网络例如LSTM中。最后在COCO-QA数据集上取得了Sota效果。
FVQA: Fact-Based Visual Question Answering
OK-VQA: A Visual Question Answering Benchmark Requiring External Knowledge
该文章[6]的问题背景是,对于已有的小部分需要外部知识的数据集,依赖于结构化知识(例如上文提到的FVQA)。而已有的VQA数据集,问题难度普遍不高,标准VQA数据集,超过78%的问题能够被十岁以下儿童回答。
于是,作者提出并构建了一个(最)大规模的需要外部知识的数据集( Outside Knowledge VQA ),并且在OK-VQA数据集上就目前最好的VQA模型提供了benchmark实验。与此同时,提出了一种ArticleNet的方法,可以处理互联网上的非结构化数据来辅助回答其中的问题。
数据集大小和对比如下:
因为标准VQA数据集质量不高(难度低),所以作者自行请MTurk工人,从COCO数据集中进行了数据采集、问题搜集、问题质量筛选、问题回答。同时通过过滤操作,降低了bias的影响,减少文本对于某些回答的偏差(如 Is there ...)。同时考虑了长尾效应。就数据分类而言,划分了10+1(other)个类别,保证问题类型的互斥。
图片场景覆盖了COCO总共的365个场景中的350.。保证了覆盖率和分布的合理性。
就ArticleNet模型而言,其分为三步:(1)从图片(pre-trained+ scene classifiers)和问题pair中搜集关键字,并组合成可能的query (2)使用wiki的API进行检索,获得排名最高的几个文章。(3)基于query 的单词在这几篇文章中得到最有可能的句子。(4)【可选】从句子中得到最有可能的词作为答案。
ArticleNet模型可以与许多已有的VQA模型进行拼接以提升模型在外部知识VQA场景下性能。作者进行了相应实验:
其中ArticleNet的结合方法是将sentence与具体模型中某一层的输出向量进行一个向量拼接,以捕获外部信息。ArticleNet单独作用的方法可能一般(依赖于互联网数据,比较死板),但是如何和其他模型结合e.g. mutan、ban(end-2-end),效果都会有提升。同时其并不是和VQA模型一起训练,可以单独训练。如下是ArticleNet在其中起作用的例子:
Out of the Box: Reasoning with Graph Convolution Nets for Factual Visual Question Answering
前文提出的方法大多类似于组合模型。此外,近几年也有涉及到图来解决外部知识VQA问题的方法[7]。
该文章的作者基于FVQA数据集,把之前深度网络筛选事实的这一训练过程用图卷积网络代替,成为一个端到端的推理系统,用于具有知识库的视觉问题解答。
一共分为七个步骤,给定图像和问题,首先使用相似性评分技术根据图像和问题从事实空间获得相关事实。使用LSTM模型从问题预测关系,筛选fact来进一步减少相关事实及其实体的集合。然后分别进行图像视觉概念提取,问题的LSTM嵌入,以及事实词组的的LSTM嵌入,将图像的视觉概念multi-hot向量和问题的lstm嵌入向量组合,并与每一个实体的LSTM嵌入拼接,作为一个实体的特征表示,同时也是作为GCN模型里图上的一个节点。图中的边代表实体之间的关系。最后将GCN输出的每一个实体节点特征向量作为多层感知机二元分类模型的输入,最后输出的结果通过argmax得到最终的决策结果。
模型在双层GCN以及top3 relation的设定下,超过了FVQA的方法大概10%。(58.7%->69.3),结果如下:
Mucko: Multi-Layer Cross-Modal Knowledge Reasoning for Fact-based Visual Question Answering
作者对比了前人的工作,一个方向是将问题转化成关键词,然后在候选事实中根据关键词匹配检索出对应的支撑事实的pineline方式,比如前文所提的FVQA,但是如果视觉概念没有被问题完全提及(比如同义词和同形异义词)或者事实图中未捕获提及的信息(比如它问红色的柱子是什么,却没有提到消防栓),那这类方法就会因为匹配而产生误差。另一个方向将视觉信息引入到知识图中,通过GCN推导出答案,就比如前文提到的out of the box模型。虽然解决了上面的问题但是每个节点都引入了相同且全部的视觉信息,而只有一部分的视觉信息和当前节点是相关的,这样会引入噪声。并且每个节点都是固定形式的的视觉-问题-实体的嵌入表示,这使得模型无法灵活地从不同模态中捕获线索。而本文[8]则较好地解决了上述问题。
文章的出发点是将图像表示成一个多模态的异构图,其中包含来自不同模态三个层次的信息(分别是视觉图、语义图和事实图),来互相补充和增强VQA任务的信息。具体来说,视觉图包含了图像中的物体及其位置关系的表示,语义图包含了用于衔接视觉和知识的高层语义信息,事实图则包含图像对应的外部知识,它的构造思想参考了out of the box 模型。
然后进行每个模态内的知识选择:在问题的引导下确定每个节点和边在内部图卷积过程中的分数权重占比,然后进行常规的update操作。也就是说在跨模态之前,先独立选择单个模态内有价值的证据,让和问题相关性强的节点及边,在图内部卷积过程中占更大的权重。这三个模态内部的卷积操作都是相同的,只是节点和边的表示不同。
最后,跨模态的知识推理是基于part2模态内的知识选择的结果。考虑到信息的模糊性,不同图很难显式地对齐,所以作者采用一种隐式的基于注意力机制的异构图卷积网络方法来关联不同模态的信息,从不同层的图中自适应地收集互补线索并进行汇聚。包括视觉到事实的卷积和语义到事实的卷积。比如视觉到事实的卷积场景中,对于事实图中的每个节点vi,计算视觉图中每个节点vj和它在问题引导下的相似度注意力分数,越互补的节点它的相似度分数就越高,然后根据这个分数对视觉图加权求和,得到事实图中每个节点来自视觉图层的事实互补信息。
分别迭代地执行Part2模态内的知识选择和Part3跨模态的知识推理,执行多个step可以获得最终的fact实体表示,并将其传到一个二元分类器,输出概率最高的实体当做预测的答案。
模型在三个数据集上验证了实验结果。该模型在FVQA上表现很好:
另外一个数据集Visual7W KB也和FVQA类似,问题是直接根据Conceptnet生成的。不同点在于他不提供fact。可以看到结果也明显好于Sota。
第三个数据集OK-VQA比较特殊,没有知识库作为参考,知识跨度大难度高,sota只有30%不到。该模型在其上表现的不太好,不过还是比Sota要高大概0.7%。原因猜测是光凭借单一的外部知识库可能不足以对ok-vqa达到较大提升,所以ok-vqa问题在未来实际上还有很大的提升空间。
该模型另外一个优点是结果具有比较好的解释性。上图是FVQA数据下测试的结果。把fact graph中最重要fact所对应的top2视觉和语义对象节点,用虚线连接,虚线上的值表示了跨模态卷积中不同层哪些节点对结果影响重要性更大,结果比较直观。热力条根据最后特征融合时的gate值得到,密度越大则代表对应位置通道的重要性越高。可以发现,在大多数的情况下事实信息会更重要,也就是密度最大。因为FVQA中97.3%的问题都是需要额外知识才能回答的。而密度第二大的区域往往会由问题的类型决定是视觉更重要还是问题更重要。比如第二个图中问题里面的hold by这个词无法在图片中具体体现,所以所以语义信息的占比会更大一些。而第一个图的话则视觉信息占比更大。
总而言之,形形色色的方法各有千秋。在实际应用中,可以根据不同方法的优劣和实际场景的条件选择合适的VQA模型。目前来说解决VQA问题主要方向主要是三个大方向(改善模型对于文本与图像的表达能力,可解释性与视觉推理,外部知识),其中KG而言在这三个方向中都有涉及。起到的作用分别对应于:用图网络来捕捉信息联系,通过三元组来提供与描述事实并进行解释与答案追溯,以及引入外部语料库,组织实体关系和spaql查询语句。
当然,未来还有许多潜在的方法和应用等待挖掘,欢迎大家补充和交流。
参考文献
浙江大学知识引擎实验室
OpenKG
开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
点击阅读原文,进入 OpenKG 博客。