论文笔记整理:陈卓,浙江大学计算机科学与技术系,博士研究生。
论文链接:https://arxiv.org/pdf/2006.09073
代码:https://github.com/astro-zihao/mucko
发表会议:IJCAI 2020
任务定义及背景
VQA(视觉问答)顾名思义,也就是结合视觉的信息来回答问题。其于15年被提出,涉及的方法从最开始的联合编码,到双线性融合,注意力机制,组合模型,场景图,再到引入外部知识,进行知识推理,以及使用图网络,近年来取得了长足发展。其中18年Qi Wu等人提出的FVQA[2],提出引入外部知识的KB-VQA问题,并贡献了这方面的重要数据集,该数据集特点是要回答问题必须依赖图片以外知识。同时,提出了一种对应解决该问题的方法与思路。
Out of the box[3]这篇文章,简称OB,则基于FVQA数据集,将视觉与外部知识信息融合后用图卷积网络来解KB-VQA问题。效果比FVQA的Sota要好。把它从58.7%提升到了69.3%。以上是本文工作的背景。
动机
作者对比了前人的工作,一个方向是将问题转化成关键词,然后在候选事实中根据关键词匹配检索出对应的支撑事实的pineline方式,比如前文所提的FVQA,但是如果视觉概念没有被问题完全提及(比如同义词和同形异义词)或者事实图中未捕获提及的信息(比如它问红色的柱子是什么,却没有提到消防栓),那这类方法就会因为匹配而产生误差。
另一个方向将视觉信息引入到知识图中,通过GCN推导出答案,就比如前文提到的out of the box模型。虽然解决了上面的问题但是每个节点都引入了相同且全部的视觉信息,而只有一部分的视觉信息和当前节点是相关的,这样会引入噪声。并且每个节点都是固定形式的的视觉-问题-实体的嵌入表示,这使得模型无法灵活地从不同模态中捕获线索
而本文则较好地解决了上述问题。
以上是模型的整体overview,大体流程是先得到三个不同模态的图,然后进行模态内知识选择,跨模态知识推理,最后将中间模态图的节点进行二分类结果判别。
文章的出发点是将图像表示成一个多模态的异构图,其中包含来自不同模态三个层次的信息(分别是视觉图、语义图和事实图),来互相补充和增强VQA任务的信息。
具体来说,视觉图包含了图像中的物体及其位置关系的表示。构造原理是通过训练好的目标检测模型比如Faster-RCNN得到图像中物体的集合,并构造全连接图。其中每个实体由一个2048维的视觉特征向量和4维空间特征向量,以及对应的label进行表示,而每一条边则用与两端节点位置相关的五维特征向量表示。
语义图包含了用于衔接视觉和知识的高层语义信息,构造原理是先使用Densecap预训练模型生成图像的细粒度caption(这既包括单个object的属性,也包括不同object的关系),然后使用Spice算法根据排名靠前的caption构造一个语义联系图。节点代表object的名字或属性,边代表关系。最后用GloVe embeddings来表示节点和关系。
事实图则包含图像对应的外部知识,它的构造思想参考了out of the box 模型。使用相似性评分技术,根据图像和问题从事实空间获得top100的相关事实三元组(这里的事实空间是Conceptnet),然后根据问题预测出的top3 Relation 类型筛选一遍。保留剩下Relations 中符合要求的三元组Facts,最后自然构成图结构。其中节点和边的信息同样用GloVe词向量进行初始化的。这样以来得到了一个多模态图。
在跨模态知识汇聚之前,首先进行的是每个模态内的知识选择:在问题的引导下确定每个节点和边在内部图卷积过程中的分数权重占比,然后进行常规的update操作。也就是说在跨模态之前,先独立选择单个模态内有价值的证据,让和问题相关性强的节点及边,在图内部卷积过程中占更大的权重。这三个模态内部的卷积操作都是相同的,只是节点和边的表示不同。
简单来说,首先通过注意力机制评估与该问题相对应的每个节点的相关性,得到每个节点i的attention weight αi。其中w是可学习的参数,vi是节点表示,q是经过LSTM的问题编码。
对于每一条边而言也是同理。得到边的attention weight βji。
在得到节点与边的attention weights后,最后使用消息传递网络更新每一层的内部的节点得到新的节点表示。
跨模态的知识推理是基于part2模态内的知识选择的结果。考虑到信息的模糊性,不同图很难显式地对齐,所以作者采用一种隐式的基于注意力机制的异构图卷积网络方法来关联不同模态的信息,从不同层的图中自适应地收集互补线索并进行汇聚。包括视觉到事实的卷积和语义到事实的卷积。
比如视觉到事实的卷积场景中,对于事实图中的每个节点vi,计算视觉图中每个节点vj和它在问题引导下的相似度注意力分数,越互补的节点它的相似度分数就越高,然后根据这个分数对视觉图加权求和,得到事实图中每个节点来自视觉图层的事实互补信息。
而来自语义的事实互补信息也是一样的操作。然后使用门控机制将图像的视觉和语义的互补信息以及fact本身节点的实体特征,进行融合得到事实图的实体表示。
最后fact graph本身使用一个Attention base 的GCN来聚合刚才得到的节点信息,以上就是跨模态的图卷积过程。
分别迭代地执行Part2模态内的知识选择和Part3跨模态的知识推理,执行多个step可以获得最终的fact实体表示,并将其传到一个二元分类器,输出概率最高的实体当做预测的答案。
模型在三个数据集上验证了实验结果。其中FVQA里面fact的是将图片中概念在知识库比如Conceptnet和Dbpedia中查询得到三元组所得到来的。其本身问题的构造就是依照fact所刻意得到的,每一个问题都会和一个三元组相关。可以看到,该模型在FVQA上表现很好,而传统的引入外部知识的VQA模型也均有不错的表现,其中本文模型外最好的就是刚才提到的OB模型。
Top1结果和Top3结果与本文模型相差为3.7%和5.7%。作者给出的解释是OB没有在图像内部进行特征选择,只是单纯地把全局信息进行了拼接操作,所以不如本文。
而另外一个数据集Visual7W KB也和FVQA类似,问题是直接根据Conceptnet生成的。不同点在于他不提供fact。可以看到结果也明显好于Sota。
第三个数据集OK-VQA比较特殊,这个数据集的QA构造是亚马逊上人工设定问题人工进行回答,没有知识库作为参考,且问题要求必须使用图片以外的数据,知识跨度大,可以说是目前而言最难的VQA数据集,sota只有30%不到。该模型在OK-VQA上表现的不太好,不过还是比Sota要高大概0.7%。原因猜测是光凭借单一的外部知识库可能不足以对ok-vqa达到较大提升,所以ok-vqa问题在未来实际上还有很大的提升空间。
本文作者基于FVQA做了消融实验,分别去掉不同模态的图以及对应的注意力加权卷积机制,还去掉了多模态图中边的信息来进行对比,最后证明以上的工作都是有意义且必要的。
该模型另外一个优点是结果具有比较好的解释性。上图是FVQA数据下测试的结果。把fact graph中最重要fact所对应的top2视觉和语义对象节点,用虚线连接,虚线上的值表示了跨模态卷积中不同层哪些节点对结果影响重要性更大,结果比较直观。
热力条根据最后特征融合时的gate值得到,密度越大则代表对应位置通道的重要性越高。可以发现,在大多数的情况下事实信息会更重要,也就是密度最大。因为FVQA中97.3%的问题都是需要额外知识才能回答的。而密度第二大的区域往往会由问题的类型决定是视觉更重要还是问题更重要。比如第二个图中问题里面的hold by这个词无法在图片中具体体现,所以所以语义信息的占比会更大一些。而第一个图的话则视觉信息占比更大。
第三张图片就是与OB模型的对比,对比了部分他们答对并且OB打错的pair。作者对于该差异的解释是前文提到的OB模型中每个节点都引入了相同且全部的视觉信息,使得部分噪声被引入。最后一张图是说当有多个合理答案的时候模型也会出错。
[1] Zhu Z, Yu J, Wang Y, et al. Mucko: Multi-Layer Cross-Modal Knowledge Reasoning for Fact-based VisualQuestion Answering[J]. arXiv.
[2] Wang P, Wu Q, Shen C, et al. Fvqa: Fact-based visual question answering. TPAMI, 2018
[3] Narasimhan M, Lazebnik S, Schwing A. Out of the box: Reasoning with graph convolution nets for factual visual question answering. NIPS. 2018
OpenKG
开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
点击阅读原文,进入 OpenKG 博客。