Press "Enter" to skip to content

IJCAI 2020 | Mucko:面向视觉问答的多层次跨模态知识推理模型

本文介绍的是 IJCAI-2020论文《Mucko: Multi-LayerCross-Modal Knowledge Reasoning for Fact-based Visual Question Answering》,该论文由中科院信工所于静老师指导,由来自中科院信工所、微软亚洲研究院、阿德莱德大学的作者(朱梓豪,于静,汪瑜静,孙雅静,胡玥,吴琦)合作完成。

 

作 者 | 朱梓豪

 

编辑 | 丛 末

 

 

代码链接:https://github.com/astro-zihao/mucko

 

1

 

介绍

 

视觉问答是一个融合了计算机视觉和自然语言处理的跨领域研究方向,输入一张图像和与这个图像有关的自然语言问题,视觉问答算法的目标是生成一个自然语言答案作为输出。最近一些相关工作,仅仅通过分析图像中的视觉内容和问题,在一些数据集上就已经得到了很好的结果。但是,当一个问题不仅仅需要分析视觉内容,还需要依赖额外的知识才能回答时,这些模型就无能为力了。

 

例如在图一中,问题是“图片中红色的圆柱体可以用来做什幺”?模型首先需要在视觉上定位出“红色的圆柱体”在哪,还需要在语义上将“红色的圆柱体”识别为“消防栓”,而且还需要连接到“消防栓可以用来灭火”这条外部知识。因此,如果要建立一个通用的视觉问答模型,学习如何从视觉、语义、知识这三个方面收集问题导向以及信息互补的线索是至关重要的。

 

 

图1

 

在现实生活中如图1所示的例子还有很多,但是现在绝大多数的数据集都是不需要依赖外部知识的,为了填补这部分的空白,阿德莱德大学的吴琦老师在2018年提出了一个基于事实知识的视觉问答(FVQA)的数据集,要回答其中的问题,除了需要分析视觉和文本内容,还需要结合外部的事实知识,也就是我们所谓的常识。数据集中每个样本都附带着对应的支撑事实。

 

解决这一问题的经典做法是,根据图像中的视觉概念从知识库中检索出一系列的候选事实(三元组),然后在这些候选事实的基础上建立一个知识图,找出一个最适合作为答案的支撑事实。[Wang et al.,2018]将问题转化成关键词,然后在候选事实中根据关键词匹配检索出对应的支撑事实。这类方法会造成同义词和同形异义词的问题。[Narasimhan etal., 2018]将视觉信息引入到知识图中,通过GCN推导出答案。每个节点都引入了相同且全部的视觉信息,但是只有一部分的视觉信息和当前节点是相关的,这样会引入一部分的噪声。另外每个节点都是固定形式的的视觉-问题-实体的嵌入表示,会限制模型从不同模态中捕获线索的灵活性。

 

在本项工作中,我们将图像表示成一个多模态的异质图,其中包含来自不同模态的信息。具体的,图像被编码成多层图,图像中包含的物体及其关系表示在在视觉图中;用于衔接视觉和知识的高层语义信息表示在语义图中;对应的外部知识被包含在事实图中;我们提出一个模态感知的异质图卷积网络来从不同层的图中自适应地收集互补线索,其中可以分为两个过程。首先是模态内的知识选择过程,在问题的引导下从每层图中收集问题导向的信息。然后是跨模态的知识推理过程,在不同的层中收集互补的线索。

 

我们的贡献可以总结为以下几点:(1)我们从视觉、语义、知识三个角度将图像表示成一个多层的多模态异质图。(2)我们提出一个多模态的异质图卷积网络,可以从不同的模态内以及模态间收集问题导向的、信息互补的线索。(3)我们在基于外部知识的视觉问答数据集上取得了最好的实验结果,并且有很好的可视化效果。

 

2

 

模型方法

 

 

图2

 

给定一张图像和问题,FVQA的目标是结合外部知识库预测出答案。这个外部知识库包含从三个不同的知识库(DBPedia,WebChild,ConceptNet)中抽取到的19万条事实知识,每个知识被表示成三元组(<e1,r,e2>)的形式。e1和e2是实体,r是他们之间的关系。FVQA的关键是如何找到正确的实体,i.e.找到支撑事实中的e1或者e2作为预测的答案。

 

我们首先介绍一种新颖的图像描述方法,它通过三个层次的图来表示图像,分别是视觉图(visual graph)、语义图(semantic graph)和事实图(fact graph),模拟了对象的各种属性和关系的理解。在此基础上,我们提出了多模态异质图推理,包含两个部分:模态内知识选择,旨在通过模态内图卷积从多模态图的每一层中选择问题相关的知识;跨模态知识推理,旨在通过跨模态图卷积自适应地从不同的图中选择互补的线索。通过多次堆叠以上两个过程,我们的模型在所有模态中执行迭代推理,并通过联合分析事实图中的所有实体来获得最佳答案。图2给出了我们模型的详细框架。下面我们会详细解释模型的每个部分。

 

1、多模态图构造

 

1)视觉图构造

 

由于FVQA中的大部分问题都涉及到视觉对象及其关系,我们构建了一个全连通的视觉图,用来表示图像中物体的表层特征和关系。给定图像I,通过Faster-RCNN进行目标检测得到图像中物体的集合O,物体的数量设置成36,每个物体对应一个2048维的视觉特征v_i以及一个4维的检测框的位置信息b_i=[x_i,y_i,w_i,h_i]。在O的基础上构造视觉图G^V=(V^V,E^V), 视觉图中每个节点对应着图像中检测到物体,每条边用两个物体的相对位置信息来表示。

 

这里之所以没有用场景图来表示。是因为我们想让模型自己学到重要的节点和边的信息。如果用场景图的话就会丢失掉对这个问题有用的视觉和关系信息。节点v_i^V用物体的视觉特征表示,边用5维的物体相对位置信息表示, r_ij^V=[(x_j-x_i)/w_i,(y_j-y_i)/h_i,w_j/w_i,h_j/h_i,w_jh_j/w_ih_i]。

 

2)语义图构造

 

除了视觉信息外,自然语言对对象和关系的高级抽象还提供了高层的语义信息。这种抽象对于将图像中的视觉对象与问题和事实中提到的概念相关联是必不可少的,它将图像中的视觉对象与问题和事实中提到的概念联系起来。

 

首先使用DenseCap来生成D个图像细粒度地描述Z={z_i}。DenseCap[Johnson et al., 2016]是李飞飞组提出的一个生成图像的densecaptions的工具,它会对每张图片生成很多细粒度描述,每个描述z_i对应着图像中的一小部分区域。没有用全局的image caption模型是因为可能会损失掉一些细粒度地信息。得到了关于图像的文本描述之后,就是如何将这些文本建成图,这里使用的是SPICE。SPICE[Anderson et al., 2016]是在image caption任务中用于验证生成的caption的准确率。它会对生成的caption转化成一个graph(图3左边),然后对原来的caption也转化成graph(图3右边),然后计算图的匹配程度来对caption进行打分。

 

最近有一些工作只用了其中建图的模块将文本建模成图,因此我们也用这种方法来生成语义图G^S=(V^S,E^S),。与图3不同的是,它将关系也表示成了节点,我们将关系表示成边。节点和边的特征都使用GloVe词向量来表示。

 

 

图3

 

3)事实图构造

 

为了找到最佳的支撑事实,我们首先按照[Narasimhan et al,2018]中提出的基于评分的方法,从知识库中检索相关的候选事实。对于每一个事实<e1,r,e2>,图像的视觉概念o1,o2,…o36,我们首先计算e1,e2和o1,o2,…o36之间的余弦相似度,其中e1,e2和o1,o2,…o36都用GloVe来表示。把所有的值求平均就得到当前事实的分数,然后把所有的事实按照分数从高到底排序,取前100个事实,记做f_100。下面还需要对f_100进一步的过滤。我们训练了一个问题的类别分类器,输入问题,就会预测对应事实的关系,然后取前三个预测到的关系进一步过滤候选事实,得到f_rel。在f_rel的基础上构建事实图G^F=(V^F,E^F)。其中e1,e2是图中的节点,r是图中的边。节点和边的特征都使用GloVe词向量来表示。这样通过联合考虑事实图中的所有实体,可以有效地利用事实之间的拓扑结构。

 

2、模态内知识选择

 

由于图的每一层都包含与问题相关的特定于模态的知识,因此我们首先通过Visual-to-Visual Convolution, Semantic- to-Semantic Convolution和Fact-to-FactConvolution从视觉图,语义图和事实图中独立选择有价值的线索。这三个卷积共享相同的操作,只是在图的结构上有所不同。因此,在本节的其余部分中,我们省略了节点和边的上标。我们首先执行注意力操作,以突出与问题最相关的节点和边,然后通过模态内图卷积更新节点表示。此过程主要包括以下三个步骤:

 

1)Question-guided Node Attention

 

首先在问题的引导下对每个节点进行了attention。这样每个节点就有一个分数,与问题更相关的节点,它的值就会更高。

 

其中W_1,W_2和w_a是可学习d的参数,q是由LSTM编码的问题嵌入。

 

2)Question-guided Edge Attention

 

然后在问题的引导下对每条边进行了attention。以每个节点为中心节点,计算每个邻居节点和它以及问题的重要程度,q’包含了中心节点和问题的特征,v’_j包含了邻居节点和边的特征。

 

 

3)Intra-Modal Graph Convolution

 

得到节点和边的重要程度之后进行模态内的图卷积操作,先对邻居节点进行求和,然后再和本身的特征进行融合,根据节点和边的重要程度进行了加强。

 

 

将上述的模态内知识选择过程分别作用在三个图上,得到更新后的节点表示,分别记为:

 

 

3、跨模态知识推理

 

为了正确回答问题,需要充分考虑来自视觉,语义和事实信息之间的互补信息。由于答案来自事实图中的一个实体,因此我们通过跨模态卷积(包括visual-to-fact convolution和semantic- to-fact convolution)从视觉图和语义图到事实图收集互补信息。最后,对互补信息进行融合,应用图卷积操作形成全局决策。

 

1)Visual-to-Fact Convolution

 

对于事实图中的每个节点,计算视觉图中每个节点和它的相似度分数,越互补的节点它的相似度分数就越高,然后根据分数对视觉图加权求和得到视觉的互补信息。

 

 

2)Semantic-to-Fact Convolution

 

同理可以得到语义的互补信息。

 

分别得到语义的互补信息,视觉的互补信息后,使用Gate方式对视觉语义的互补信息和实体特征进行融合。

 

 

3)Fact-to-Fact Aggregation

 

给定事实图中的一组候选实体,我们旨在全局比较所有实体并选择一个最佳实体作为答案。现在,事实图中每个实体从三种模态中收集了问题导向以及相互互补的信息。为了联合评估每个实体的可能性,我们进行类似于3.2节中介绍的基于注意力的图卷积网络,用来汇总事实图中的信息并获得更新后的实体表示。

 

我们迭代地进行模态内的知识选择和模态间的知识推理过程,经过T步,获得了最终的实体表示。

 

4、学习

 

每个实体只有两种结果,是或不是答案。因此我们将事实图中每个实体的表示和问题的嵌入拼接,然后输入到一个二类分类器中,输出概率最高的实体当做预测的答案。

 

 

损失函数使用带权重的交叉熵损失。

 

 

3

 

实验

 

我们在三个基于外部知识的数据集上做了相关实验:FVQA,Visual7w+KB,OKVQA。FVQA前面已经介绍过了,包括2190张图像,5286个问题,193449条知识。Visual7w+KB是通过模板在Visual7w的基础上自动生成的需要使用conceptnet知识的数据集,包含8425张图像,16850个问题。OKVQA是人工生成的,但是使用到的知识没有明确的来源,没有提供相对应的事实。

 

我们做了三部分内容的实验。一是和已有最好结果的比较。二是消融实验。三是对结果的可视化。

 

1、SOTA比较

 

 

 

 

可以看到,在三个数据集上我们都取得了现阶段最好的结果。在FVQA上,我们提高了3.7%。在Visual7w+KB上,我们提高了11.5%。在okvqa只提高了0.7%,原因是因为okvqa的知识来源是开放域的,而我们的模型还是只从conceptnet中抽取相关知识。结果证明了我们提出模型的有效性。

 

2、消融实验

 

 

我们在FVQA数据集上做了四个部分的消融实验。在模型1中,我们去掉了模态内知识选择过程,结果降低了2.56%,证明了在模态内收集问题导向的信息的必要性。在模型2-4中,我们分别去掉了语义图、视觉图、语义+视觉图,结果依次降低,说明视觉图和语义图对FVQA都有很大的影响,但是视觉内容会更重要一些。模型5-7是在模型3,2,full model的基础上分别将跨模态卷积过程替换成用视觉图和语义图的特征求平均再拼接,结果都有所降低,可以看出跨模态卷积对于收集互补信息重要性。模型8去掉了多模态图中边的信息,结果有所降低,但依然比out of box高出3%,证明了关系信息的重要性以及模型结构的有效性。

 

3、可视化

 

我们模型的另一大优势在于可以很好地可视化推理的过程。节点中的值对应模态内知识选择的α,边上的值对应β,虚线上的值对应跨模态卷积的γ,热力条是通过最后融合时的gate值得到的。

 

 

通过可视化的结果我们可以发现,在大多数的情况下,事实信息会更重要,因为FVQA中97.3%的问题都是需要额外知识才能回答的。其次视觉信息比语义信息更重要,这也验证了上一部分消融实验的结果。但是如果问题涉及复杂语义关系的话,如第二个例子,hold by这个关系并不能在视觉图中体现,所以语义信息的占比会更大一些。

 

第三个例子是与out of box的对比,out of box把keyboard 和laptop弄混淆了,主要是因为不同模态的特征是直接拼接的,没有特征选择的过程,而我们的模型可以更好的收集互补的信息得到正确答案。

 

第四个是一个错误的例子,当一个问题有多个合理的答案时,模型也会出错,例如cake既可以用于party和可以用于wedding。

 

4

 

总结

 

为了解决基于外部知识的视觉问答任务,我们提出了一个多层次跨模态知识推理模型。我们将图像用三个不同模态的图来表示。提出了模态内的知识选择和模态间的知识推理模块,可以动态地收集模态内的问题导向的信息和模态间的互补信息。最后我们的结果相比较最近工作都有提升,而且有很好的可视化效果。

 

参考文献:

 

[Wang et al., 2018] Peng Wang, Qi Wu, Chunhua Shen, An- thony Dick, and Anton van den Hengel. Fvqa: Fact-based visual question answering. TPAMI, 40(10):2413–2427, 2018.

 

[Narasimhan et al., 2018] Medhini Narasimhan, Svetlana Lazebnik, and Alexander Schwing. Out of the box: Rea- soning with graph convolution nets for factual visual ques- tion answering. In NeurIPS, pages 2654–2665, 2018.

 

[Johnson et al., 2016] Justin Johnson, Andrej Karpathy, and Li Fei-Fei. Densecap: Fully convolutional localization networks for dense captioning. In CVPR, pages 4565– 4574, 2016.

 

[Anderson et al., 2016] Peter Anderson, Basura Fernando, Mark Johnson, and Stephen Gould. Spice: Semantic propositional image caption evaluation. In ECCV, pages 382–398, 2016.

 

作者简介:

 

朱梓豪:中科院信工所在读硕士研究生,在中科院信工所于静老师组开展研究,研究方向:视觉问答、视觉对话。

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注