用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

目录

一、文献摘要介绍

二、网络框架介绍

三、实验分析

四、结论


这是视觉问答论文阅读的系列笔记之一,本文有点长,请耐心阅读,定会有收货。如有不足,随时欢迎交流和探讨。

一、文献摘要介绍

Visual question answering (VQA) requires joint comprehension of images and natural language questions, where many questions can’t be directly or clearly answered from visual content but require reasoning from structured human knowledge with confifirmation from visual content. This paper proposes visual knowledge memory network (VKMN) to address this issue, which seamlessly incorporates structured human knowledge and deep visual features into memory networks in an end-to-end learning framework. Comparing to existing methods for leveraging external knowledge for supporting VQA, this paper stresses more on two missing mechanisms. First is the mechanism for integrating visual contents with knowledge facts. VKMN handles this issue by embedding knowledge triples (subject, relation, target) and deep visual features jointly into the visual knowledge features. Second is the mechanism for handling multiple knowledge facts expanding from question and answer pairs. VKMN stores joint embedding using key-value pair structure in the memory networks so that it is easy to handle multiple facts. Experiments show that the proposed method achieves promising results on both VQA v1.0 and v2.0 benchmarks, while outperforms state-of-the-art methods on the knowledge-reasoning related questions.

作者认为视觉问题解答(VQA)需要对图像和自然语言问题有共同的理解,在这些问题中,许多问题无法直接或清晰地从视觉内容中得到回答,但需要从结构化的人类知识中进行推理并从视觉内容中得到证实。本文提出了视觉知识记忆网络(VKMN)来解决这个问题,它在端到端学习框架中将结构化的人类知识和深层的视觉特征无缝地整合到了记忆网络中。与利用外部知识支持VQA的现有方法相比,本文重点介绍了两个缺失的机制。首先是将视觉内容与知识​​事实整合在一起的机制。 VKMN通过将知识三元组(主题,关系,目标)和深层视觉特征共同嵌入视觉知识特征中来处理此问题。第二是处理从问答对扩展的多个知识事实的机制。 VKMN使用键值对结构将联合嵌入存储在内存网络中,以便轻松处理多个事实。实验表明,该方法在VQA v1.0和v2.0基准测试中均取得了可喜的结果,而在有关知识推理的相关问题上却优于最新方法。

二、网络框架介绍

VKMN是从**值存储网络(key-value memory network)派生出来的,在QA任务中已经被证明是有效的,下面进行介绍。

  • 输入模块,使用CNN模型对输入图像进行编码,使用RNN模型对问题进行编码,并通过联合嵌入这两个模型的输出来进一步获得查询表示;
  • 知识发现模块,通过子图哈希从预先建立的视觉知识库中根据查询问题或自动图像标题检索相关知识条目;
  • 联合视觉和知识嵌入模块,它联合嵌入视觉特征和知识三元组(或三元组的一部分),以便于存储在键值存储网络中;
  • 记忆模块,它接收查询问题,读取存储的键值形成视觉知识特征,并预测答案。

图2说明了提出的VKMN模型如何在视觉问题回答上工作

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

图3给出了有关不同模块在VKMN中如何交互的详细示意图。 

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

2.1Encoding of Image/Question Inputs

输入图像 用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》和问题 用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》 在馈入记忆网络之前需要处理成特征向量。我们使用ImageNet预训练的CNN模型处理输入图像,并使用LSTM模型处理问题。可以将来自两种模态的特征向量共同嵌入到等式1中定义的单个视觉注意描述中,以进行答案预测。提出了几种方法来学习VQA的端到端多模式联合嵌入,包括VQA 2016挑战赛获奖者解决方案MCB 和最新解决方案MLB 。

        在本文中,我们直接利用MLB进行视觉问题对编码。我们将具有空间注意输出(又称MLB第一阶段输出)的MLB表示为用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》,LSTM编码的问题向量表示为用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》,其中用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》已经投影到与具有一个内部完全连接(FC)层的用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》相同的维空间,即用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》,查询表示是用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》的低秩双线性池的联合嵌入作为

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

其中用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》表示两个向量之间的Hadamard乘积(逐元素乘积),用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》是出于查询目的的视觉问题对的视觉关注描述。

2.2Knowledge Spotting with Sub-graph Hashing

        在阐述视觉知识表示的细节之前,我们介绍了如何发现与视觉问题相关的知识条目。首先,给定预构建的可视化知识库中的所有知识三元组用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》,生成实体集用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》,关系集用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》。我们称用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》为条目集,它包含知识库中所有不同的条目。然后,只要问题中的一个短语(或自动生成的标题)与条目集用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》中的一项匹配,就使用子图散列方法提取条目。为了减少视觉知识提取的不精确性,我们限制每个知识三元组至少包含两个从问题(或自动生成的标题)中提取的条目,随后创建N个知识三元组的一个小子集用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》。为了处理视觉知识库中的长尾效应,我们在知识图上执行知识三级扩展,以包括所提取的N个知识三级的直接邻域。图4说明了子图哈希和知识三元组展开的一个示例。 最后,我们建立了一个记忆网络,可以记忆M个知识条目(M> N)。 如果扩展的知识子集的大小小于M,则将附加空条目。

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

2.3Joint Embedding of Visual and Knowledge

        出发点是来自输入模块的空间注意视觉特征用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》和来自知识定位模块的知识条目用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》。我们需要学习一个联合嵌入,以结合用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》一起。由于用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》是文本表示,我们引入了一个映射函数用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》来得到实值特征向量用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》。这里的用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》可以是bagof-words(BoW)表示,word2vec transformation,甚至知识嵌入,如TransE。用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》的特征维数和用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》通常是不同的,即用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》。我们将它们投影到相同的空间,并应用MLB捕获它们的联合表示

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

其中用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》是双曲正切函数(在实验中偏于用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》函数),用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》是将用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》投影到同一维空间的矩阵。用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》之所以称为视觉知识注意描述,是因为它将视觉特征用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》与知识输入用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》集成在一起。

        作者认为用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》捕获了更多关于知识的细粒度信息,而不是来自MLB的空间注意视觉特征用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》,其中注意是基于整个问题的。

2.4Visual Knowledge Memory Network

 Key-value design. 哪一部分的设计应该是关键的,哪一部分应该是价值的,这是相当灵活的。在传统的QA问题中,给定三元组<s,r,t>,人们通常将前两个(s和r)作为键,而将后一个t作为值。但是,VQA并非如此,因为我们不知道视觉问题中缺少知识三元组的哪一部分。以剩余项为值的键有三种组合:(1)(s,r)为键;(2)(s,t)为键;(3)(r,t)为键。在实践中,我们分别为这三种情况构建了三个记忆块,如图2所示,并将其命名为三重复制。这对区分问题是有用的,如“牙刷是用来做什么的?”和“什么是用来刷牙的?”。为了简单起见,在下面的研究中只详细说明了作为(s,r)键项和t作为值项的情况。假设用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》,其中根据设计的键值映射,用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》对应于s,r,t。为确保键表示用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》和值表示用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》具有相同的维数,我们使加法假设类似于continuous bag-of-words(CBOW),并得出用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》,如下所示:

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

利用记忆在VKMN中的设计的键值对,推断包括三个步骤:寻址相关知识,读取相应值并回答问题,将在下面逐步讨论它们。

Key addressing. 给定一个查询q,我们对每个候选记忆槽进行寻址,并通过将问题与每个键进行比较来分配相关概率:

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

其中 · 表示内积,A是记忆网络的参数矩阵,将 用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》 投影到与q相同的特征空间中,并且用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

Value reading. 在值读取步骤中,通过具有寻址可能性的权重平均读取记忆插槽的值,并将返回的向量o定义为:

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

在本文中,我们只在收到o后用用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》对查询进行一步更新。

Question answering.对于VQA任务,不同答案的数量是固定的,因此问题回答被重新预测为分类问题。我们使用权重矩阵为用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》 的FC层基于用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》预测答案,如下所示

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

        VKMN中的所有参数矩阵用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》均采用基于随机梯度下降(SGD)的反向传播算法进行了端到端训练。

三、实验分析

        在输入模块中,我们遵循MLB,使用ResNet-152作为视觉特征提取的骨干网络。MLB注意特征向量用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》为2400维,问题嵌入向量用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》也投影到同一维,联合视觉和知识嵌入模块通过用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》输出300维特征。我们尝试了不同的嵌入方法,如BOW(GloVe)和TransE,最后选择TransE。在记忆模块中,我们将记忆槽号设置为8。如果提取的子图大小小于8,则用零填充空槽。

表1 在VQA1.0上面的消融研究准确率

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

表2:VQA v1.0数据集上与最先进方法的结果比较。

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

表3:VQA v2.0测试标准集的结果。

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

表4:不同对象大小组的结果。

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

图5:给定查询图像和问题的预测答案和top-5知识三元组分数的示例。

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

图6:一些失败案例与注意力图。

用于视觉问答的学习视觉知识记忆网络模型《Learning Visual Knowledge Memory Networks for Visual Question Answering》

四、结论

In this paper, we present the Visual Knowledge Memory Network (VKMN) method as an efficient way to leverage pre-built visual knowledge base for accurate visual question answering. Experiments show that VKMN achieves promising results on VQA v1.0 and v2.0 benchmarks, and outperforms state-of-the-art methods on the knowledge reasoning related questions (i.e., the “other” answer-type in both benchmarks).

在本文中,作者提出了视觉知识存储网络(VKMN)方法,将其作为一种有效的方式来利用预先建立的视觉知识库来准确地回答视觉问题。 实验表明,VKMN在VQA v1.0和v2.0基准测试中取得了可喜的结果,并且在与知识推理相关的问题(即两个基准测试中的“其他”答案类型)方面均优于最新方法。