论文小综 | Using External Knowledge on VQA

本文转载自公众号:浙大KG。


本文作者:陈卓,浙江大学在读博士,主要研究方向为图神经网络和知识图谱表示学习

我们生活在一个多模态的世界中。视觉的捕捉与理解,知识的学习与感知,语言的交流与表达,诸多方面的信息促进着我们对于世界的认知。作为多模态领域一个典型的场景,VQA(视觉问答)顾名思义,也就是结合视觉的信息来回答所提出的问题。其于15年首次被提出[1],涉及的方法从最开始的联合编码,到双线性融合,注意力机制,组合模型,场景图,再到引入外部知识,进行知识推理,以及使用图网络,近年来取得了长足发展。

传统的VQA仅凭借视觉与语言信息的组合来回答问题,而近年来许多研究者开始探索外部信息对于解决VQA任务的重要性。

如上图所示,这里的VQA pair中,要回答问题“地面上的红色物体能用来做什么”,要想做出正确的回答“灭火”,所依靠的信息不仅来源于图片上所识别出的“消防栓”,还必须考虑到来自外部的事实(知识)“消防栓能灭火”作为支撑。这就是一个典型的VQA上应用外部知识的场景。

接下来我将按时间顺序结合5篇论文简述在VQA上应用外部知识的方法,做相应的梳理。

Ask Me Anything: Free-Form Visual Question Answering Based on Knowledge From External Sources

发表会议:CVPR 2016

论文链接:https://www.cv-foundation.org/openaccess/content_cvpr_2016/html/Wu_Ask_Me_Anything_CVPR_2016_paper.html

推理与知识的实际存储进行分离是基于外部知识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

发表会议:TPAMI 2018

论文链接:https://ieeexplore.ieee.org/abstract/document/8046084

既然knowledge 和 reasoning 对 VQA 都很重要,那么就可以考虑将它们两个结合在一起,进行显示推理。和以往直接把图像加问题直接映射到答案不同,作者提出的Ahab[3]模型的答案是可追溯的,就是通过查询语句在KG中的搜索路径可以得到一个显式的逻辑链。这也是一种全新的能够进行显式推理的 VQA 模型。并且,他们提出了一种涉及外部知识的VQA任务。它首先会通过解析将问题映射到一个 KB 查询语句从而能够接入到已有知识库中。同时将提取的视觉概念(左侧)的图链接到DBpedia(右侧)里面,如下图所示。

同期发表的FVQA是对其的改进和梳理,并且贡献了这方面很重要的数据集:除了一般的图片、问题、回答以外,这个数据集还提供了支撑这一回答的事实Facts事实集合(参考数据来源于DBpedia, Conceptnet, WebChild三个数据库),共包括4216个fact。某种意义上来说,该数据集是基于fact去针对性构建的。具体如下:

在实际的数据中,fact以关系三元组的形式表示,其中的relationship使用来自于数据库中已有的定义。

模型的第一部分和ahab类似,检测图像中的视觉概念,然后将他们与知识库对齐并连接到subgraph中。第二步将自然语言式的问题映射到一个查询类型,然后相应地确定关键的关系类型,视觉概念和答案源。再根据上面的信息构建一个特殊的查询会去请求上一步当中建立好的图,找到所有满足条件的事实。最后通过关键词筛选得到对应问题的答案。

OK-VQA: A Visual Question Answering Benchmark Requiring External Knowledge

发表会议:CVPR 2019

论文链接:https://openaccess.thecvf.com/content_CVPR_2019/html/Marino_OK-VQA_A_Visual_Question_Answering_Benchmark_Requiring_External_Knowledge_CVPR_2019_paper.html

该文章[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

发表会议:NeurIPS 2020

论文链接:http://papers.nips.cc/paper/7531-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

发表会议:IJCAI 2020

论文链接:https://arxiv.org/pdf/2006.09073

作者对比了前人的工作,一个方向是将问题转化成关键词,然后在候选事实中根据关键词匹配检索出对应的支撑事实的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查询语句。

当然,未来还有许多潜在的方法和应用等待挖掘,欢迎大家补充和交流。

 

参考文献

[1] Stanislaw Antol, Aishwarya Agrawal, et al. VQA: Visual Question Answering. ICCV 2015: 2425-2433

[2] Wu Q, et al. Ask me anything: Free-form visual question answering based on knowledge from external sources. CVPR. 2016

[3] Wang P, Wu Q, Shen C, et al.Explicit Knowledge-based Reasoning for Visual Question Answering. IJCAI 2017: 1290-1296

[4] Wang P, Wu Q, Shen C, et al.FVQA: Fact-Based Visual Question Answering. IEEE Trans. Pattern Anal. Mach. Intell. 40(10): 2413-2427 (2018)

[5] Wu Q, Shen C, Liu L, et al. What value do explicit high level concepts have in vision to language problems? . CVPR. 2016

[6] Marino K, Rastegari M, Farhadi A, et al. OK-VQA: A Visual Question Answering Benchmark Requiring External Knowledge. CVPR 2019: 3195-3204

[7] Narasimhan M, Lazebnik S, Schwing A. Out of the box: Reasoning with graph convolution nets for factual visual question answering. NIPS. 2018

[8] Zhu Z, Yu J, Wang Y, et al.Mucko: Multi-Layer Cross-Modal Knowledge Reasoning for Fact-based Visual Question Answering. IJCAI. 2020


   

浙江大学知识引擎实验室

 


 

OpenKG

开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何修改TextView链接点击实现(包含链接生成与点击原理分析)

*这篇文章的主要目的是想要大家学习如何了解实现,修改实现,以达到举一反三,自行解决问题的目的。 某天遇到这么一个需求:在TextView中的文本链接要支持跳转,嗯,这个好办,TextView本身是支持的&…

LeetCode 752. 打开转盘锁(图的BFS最短路径)

1. 题目 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨…

使用TensorFlow训练WDL模型性能问题定位与调优

简介 TensorFlow是Google研发的第二代人工智能学习系统,能够处理多种深度学习算法模型,以功能强大和高可扩展性而著称。TensorFlow完全开源,所以很多公司都在使用,但是美团点评在使用分布式TensorFlow训练WDL模型时,发…

docker镜像打包save,载入load,启动run

docker镜像打包save,载入load,启动run docker打包,针对的是镜像,而不是运行中的容器。 查看当前系统的镜像文件: docker images 首先,将当前运行中的,已经自定义修改之后的容器保存为新的镜像…

会议交流 - CNCC 技术论坛 | NLP中知识和数据怎么选?当然是全都要!——第四届中文信息技术发展战略研讨会...

本文转载自公众号:中国计算机学会 。本论坛将于CNCC2020期间,10月23日下午16:00-18:00,在北京新世纪日航饭店3层南京厅举行。本论坛将邀请多位来自国内著名高校和人工智能企业的知名自然语言处理专家介绍他们在知识图谱、知识获取、预训练模型…

从我开发过的Tensorflow、飞桨、无量框架看深度学习这几年

文 | Peter潘欣知乎和深度学习框架打交道已有多年时间。从Google的TensorFlow, 到百度的PaddlePaddle,再到现在腾讯的无量。很庆幸在AI技术爆发的这些年横跨中美几家公司,站在一个比较好的视角看着世界发生巨大的变化。在这些经历中,视角在不…

探索Glide对Gif图片资源的获取、解析过程

先预祝大家汤圆节快乐!很久没写博客了。今天我们来探索一下Glide是如何支持Gif图片加载的。 本篇博客的目的 了解代码分析的基本思路与方法了解Glide是如何对Gif图片进行支持的 探索背景 为什么会有这么一个想法呢,一来一直对Glide是知其名而不知其所…

美团“猜你喜欢”深度学习排序模型实践

引言 推荐作为解决信息过载和挖掘用户潜在需求的技术手段,在美团点评这样业务丰富的生活服务电子商务平台,发挥着重要的作用。在美团App里,首页的“猜你喜欢”、运营区、酒店旅游推荐等重要的业务场景,都是推荐的用武之地。 目前&…

如何关闭docker容器里的进程

如何关闭docker容器里的进程 1、使用docker exec 容器名 ps -ef命令查看进程信息 示例: 创建名为"redis"的容器,并在容器内部和宿主机中查看容器中的进程信息: 2、然后进入该容器中,执行如下命令即可停掉进程&…

论文浅尝 | 一日看尽长安花--NLP可解释研究梳理

本文是对TACL2019《Analysis Methods in Neural Language Processing: A Survey》的翻译和整理。本文转载自知乎,文章链接:https://zhuanlan.zhihu.com/p/265815975导读NLP领域发展迅猛,其模型分析方法也正逐渐火热。为什么要研究NLP的可解释…

简明扼要的反射入门教程

反射 反射作为RTTI语言(比如Java)的基础之一被很多人所熟知,但是有些同学对反射本身还是懵懵懂懂的,不是很清楚它到底有什么用。今天这节课我们就对反射本身来一个通体的认知。 定义 反射所在的包为:java.lang.refl…

人在斯坦福,刚上CS224n

文 | Jazon大家好,我是Jazon,现在是Stanford计算机硕士项目的一只学生,非常荣幸加入小夕的大家庭!请各路大神多多指教呀。2021年1月12日,又一季Stanford CS224n——自然语言处理开课了,我和很多MSCS同学一起…

美团外卖骑手背后的AI技术

背景 随着数字化时代的到来,外卖市场近年来发展非常迅猛。对外卖物流系统而言,配送效率和用户体验至关重要。而实际配送过程是由配送员(骑手)最终完成的,因此,想要真正提升配送效率,不但要在智能…

软件设计师:下午试题类型以及问题总结+软件设计师考试下午题统计分析(06到2019年)

‘’’ 首次更新下午试题 ‘’’ 下午考试时间为150分钟(14:00–16:30) 试题一到四为必答题,试题五和六为选答一个,每题15分,总共75分,每题大概3小问 第一题为结构化分析与设计,考查数据流…

LeetCode 494. 目标和(DFS+DP)

文章目录1. 题目2. 解题2.1 递归2.2 DP1. 题目 给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 和 -。对于数组中的任意一个整数,你都可以从 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标数 S 的…

使用Kotlin开发Android应用初体验

使用Kotlin开发Android应用初体验 昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢? Kotlin的简要介绍 在开发之前,很多同学一定有很多疑问,Kotlin到底有…

论文浅尝 - ICML2020 | 基于子图推理的归纳式关系预测

论文笔记整理:陈名杨,浙江大学在读博士生,主要研究方向为知识图谱表示学习。论文来源:ICML 2020Introduction当前在知识图谱上(KnowledgeGraph,KG)进行关系预测的很多方法都依靠在对知识图谱中的…

CVPR 二十年,影响力最大的 10 篇论文!

文 | 二玖极市平台此前,极市盘点了图像分割在过去二十年中影响力最大的10篇论文,得到了许多开发者的支持。今天,我们将对计算机视觉领域三大顶会之一CVPR在近二十年来中产生的优秀论文进行一个全面的盘点与总结。CVPR是计算机视觉领域三大顶会…

DataMan-美团旅行数据质量监管平台实践

背景 数据,已经成为互联网企业非常依赖的新型重要资产。数据质量的好坏直接关系到信息的精准度,也影响到企业的生存和竞争力。Michael Hammer(《Reengineering the Corporation》一书的作者)曾说过,看起来不起眼的数据…

jupyter notebook切换到其他配置好的conda虚拟环境

1 手把手教你如何把jupyter notebook切换到其他配置好的conda虚拟环境 https://blog.csdn.net/weixin_41813895/article/details/84750990 2 Jupyter notebook切换Python环境 https://www.jianshu.com/p/8188c32a3a34