学习视觉知识记忆网络进行视觉问答CVPR2018
Learning Visual Knowledge Memory Networks for Visual Question Answering
摘要
视觉问题回答(VQA)需要联合图像和自然语言问题,其中许多问题不能直接或清楚地从视觉内容中得到,而是需要从结构化人类知识推理并从视觉内容中得到证实。该论文提出了视觉知识记忆网络(VKMN)来解决这个问题,它将结构化的人类知识和深层视觉特征无缝融入端到端学习框架中的记忆网络中。与现有的利用外部知识支持VQA的方法相比,本文更多地强调了两种缺失的机制。首先是将视觉内容与知识事实相结合的机制。 VKMN通过将知识三元组(主体,关系,目标)和深层视觉特征联合嵌入到视觉知识特征中来处理这个问题。其次是处理从问题和答案对中扩展出多个知识事实的机制。VKMN使用键值对结构在记忆网络中存储联合嵌入,以便易于处理多个事实。实验表明,该方法在VQA v1.0和v2.0基准测试中取得了可喜的成果,同时在知识推理相关问题上优于最先进的方法。
介绍
视觉问答(VQA)是近几年来一个新兴的跨学科研究领域,它吸引了计算机视觉和自然语言处理(NLP)社区的广泛关注。 VQA旨在帮助计算机自动回答有关图像的自然语言问题。问题答案可以分为以下几种类型:是/否,多项选择,数字答案和开放式单词/短语答案(关于是什么,在哪里,谁......的问题) VQA需要理解图像和语言,这构成了一个真正的完全AI任务,具有与图灵测试相似的精神[15,27,28]。
基本上,VQA在大多数研究中被阐述为是分类问题,其中输入是图像和问题,答案是输出类别(因为可能的答案数量有限)。由于在深度学习方法已经获得广泛普及之后提出VQA任务,几乎所有当前的VQA解决方案都使用CNN来应对图像,用递归神经网络(RNN)来处理问题[49]。 VQA对注意机制进行了大量的研究。这包括视觉注意[46,44,35],其侧重于处理“看哪里”的问题,还有问题注意[33,47,11,26],侧重于解决“读哪里”的问题。由于图像和问题是两种不同的形式,因此可以直接将两种模态联合在一起以便对图像/问题对进行单一描述。一些论文[14,19,20,50,48]甚至考虑将注意机制和多模态联合嵌入放在一个统一的框架中。
然而,VQA明显比其他视觉和语言任务(如图像标注image caption)更复杂,因为显式信息(中间层识别结果如对象,属性,甚至图像标注等)对于精准的VQA来说是不够的。例如,我们调查了VQA v1.0数据集[2],该数据集基于COCO数据集[24]。由于每个图像都有5个手动标注,我们将问题答案与图像标注中的单词匹配,后者仅生成2,907个完全匹配,而剩余的近50K答案不会出现在标注中。基本上,我们可以将VQA的问题目标划分为三个类别:(a)目标明显的:答案可以直接从图像识别结果(对象,属性,字幕等)中获得; (b)目标难识别的:图像中的目标太小或不清楚使得难以分辨,因此需要支撑的事实来获得正确的答案; (c)目标不可见的:无形的目标,要求推论和图像内容相关的常识(主题特定甚至百科知识)。有关这三种情况的一些示例,请参阅图1。外部知识信息至少对(b)(c)两个类别的VQA有用。一个有力的支撑是我们在VQA v1.0数据集中找到超过49,866个答案出现在视觉基因组的知识基础中[22]。一些开创性的著作[39,40,42]研究了如何用VQA任务的先验知识信息进行推理的问题。它们仅涉及一个支持事实以帮助决策,这可能由于不准确的知识提取过程而引入知识模糊/不准确,并且进一步产生错误的问答。
在VQA任务出现之前,NLP社区已经大量研究了仅文本问答(QA)问题[38,21]。经典方法直接读取文档并使用信息检索方法来找到答案[21]。此后,诸如Freebase [7]之类的知识库(KB)将信息组织成结构化三元组:<s,r,t>,其中s是主语,t是目标,r是s和t之间的关系。然后,问题回答被转换为数据库查询问题[6,12]。最近,已经提出记忆网络将文档读取和知识库检索[41,29,36]组合以用于准确的QA。
受基于记忆网络的文本QA方法的发展启发,本文提出了视觉知识记忆网络(VKMN),用于通过预先构建的视觉知识库进行精确推理。图2说明了所提出的VKMN模型如何在视觉问题转换上工作。VKMN从问题中提取多个相关知识事实,将知识事实与视觉知识注意力特征相结合,并将其存储在键值对中,以便从记忆中轻松有效地阅读。记忆阅读将使视觉问题加入高度相关/相关的知识事实,从而提供更准确的问题回答。本文的主要贡献是:(1)我们提出了VKMN,一个简单而有效的端到端可训练框架,它继承了基于注意力的方法和基于联合嵌入的方法的优点,同时避免了当前基于知识的解决方案的知识的不准确限制。(2)我们建立了一个视觉问题特定的知识库,它不包含像Freebase这样的通用知识库的无关知识条目[7]。(3)我们对VQA v1进行了大量的实验.0和v2.0基准数据集,并表明所提出的方法可以达到竞争准确性,同时在知识推理相关问题上优于最先进的方法。
上图说明了所提出的VKMN模型如何在视觉问答中起作用
相关工作
VQA中的注意机制。神经网络中的注意机制基于人脑中的视觉注意机制。它首次提出并成功应用于机器翻译[5],图像标注[45]等任务,然后在VQA中变得流行。主要思想是输入的特定部分(图像和/或问题)在回答特定问题时比其他部分更具信息性/有效性。许多VQA方法[44,35,26,46,3]已经结合空间注意力来根据输入问题学习特定的CNN特征,而不是使用整个图像的整体全局特征。有些人还将注意力集中在文本表示中。例如,最近的作品[26]侧重于共同注意模型,这些模型通过一个单一的层次结构共同利用视觉注意力和问题注意力。此外,还有一些研究通过联合嵌入视觉注意特征和文本问题特征将注意机制与多模态表示相结合。这包括一些最先进的VQA方法:多模式紧凑双线性池(MCB)[14],多模式低阶双线性池(MLB)[20],多模式分解双线性池(MFB)[48]和结构化视觉注意(SVA)[50]。
本文没有研究空间注意机制,而是直接利用现有的多模态注意方法作为我们方法的一个组成部分。
知识库和VQA。知识库(KB)是一种用于存储三重形式<s,r,t>的结构化事实条目的技术,其中s是主语,t是目标,r是s和t之间的关系。NLP社区中对使用KB进行问题转换越来越感兴趣[6,12]。但是,利用KBs解决VQA问题的工作仍然有限。众所周知,VQA是视觉和语言中的跨学科任务,就像图像/视频字幕[45,13,34]一样,但是又超越了深入的图像理解,因为它通常需要图像本身不包含的信息,其中包括“常识”知识和某些特定主题知识。例如,理解图像内容不足以回答图1(c)中的问题。 VQA系统必须首先认识到“水果”实体是“香蕉”,并且基于关于“动物爱香蕉”的知识进行推断以获得答案“猴子”。我们还认为,对于某些情况,如图1(b),即使目标内容是可见的,也可能太小和/或不清楚会产生错误的识别结果。然后,KB将充当概率先验或调整候选列表上的决策分数并输出正确的结果。我们将在实验中用一些定性的例子验证这两个案例。
大量研究侧重于为QA构建大规模结构化知识库(KB),如DBpe-dia [4],Freebase [7],ConcepNet [25]等.Zhu等。[51]甚至为VQA目的建立了大规模的多模态知识库。一些论文[39,40,42]也试图在VQA任务中引入KB。王等人[39]提出“Ahab”方法来推断图像的内容,首先检测查询图像中的概念,然后将它们链接到DBpedia KB的相关部分。它通过构建的知识图学习图像/问题到查询的映射,以便进行最终的问答。这种方法局限于用手工设计的模板解析问题。[40,42]通过引入长期短期记忆(LSTM)和数据驱动的方法来改进“Ahab”,以学习图像/问题到满足KB中搜索条件的知识事实的查询映射。
所有这些方法仅涉及一个支持的知识事实来帮助决策,因此由于不准确的提取过程而使它们受到知识不准确性问题的极大影响。本文试图用记忆网络机制来缓解这个问题,以处理从问题扩展的多个知识事实。
记忆网络。在[41]中首先提出了用于现代大规模问答系统的记忆网络,其引入了用于在QA任务中使用推理组件进行推理时读/写简单事实的长期记忆块。Sukhbaatar等[36]改进了具有端到端学习能力的记忆网络,在训练阶段需要更少的监督信号,并且更实用。为了缩小KB查询/推理与文档阅读之间的差距,Miller等人。[29]提出了键值记忆网络(KV-MemNN),它可以读取文档并回答更可行和有效的问题。KV-MemNN通过首先将事实存储在键值结构化记忆块中来执行QA,然后再对其进行推理以获得答案。
随后,记忆网络以动态记忆网络的形式被引入VQA任务[43],它由四个模块组成:用于将带有一组“事实”的输入编码为向量的输入模块,用于提取问题向量表示的问题模块,用于检索问题的注意事实的情景记忆模块,以及用于组合最终记忆状态和问题向量以预测输出的答案模块。类似地,空间记忆网络[44]还将CNN特征从图像网格区域/补丁存储到存储器中,并且利用用于问答的显式注意机制来选择信息的某些部分。
我们还尝试利用记忆网络进行VQA。我们与[43,44]至少存在两个不同之处。首先,我们设计了一个用于视觉知识注意力特征的键值存储网络,而不是像[43,44]中那样的简单动态记忆网络。其次,我们使用的记忆网络更侧重于多种视觉知识编码,而[44]更侧重于空间补丁编码。
3.方法
3.1方法概览
我们提出了视觉知识记忆网络(VKMN),旨在通过辅助视觉知识库更准确地回答视觉问题。VKMN源自键值记忆网络[29],已被证明在QA任务中有效。VKMN提前构建了与视觉问题相关的知识库,这使得基于视觉特征和(部分)知识三元组设计键值对具有很大的灵活性。基本上,我们的VKMN模型包含四个模块:
(1)输入模块,用CNN模型编码输入图像,用RNN模型编码问题,并通过联合嵌入这两个模型的输出进一步获得查询表示
(2)知识识别模块,通过子图哈希从预先构建的视觉知识库中检索基于查询问题或自动图像标注的相关知识条目;
(3)联合视觉和知识嵌入模块,它共同嵌入视觉特征和知识三元组(或三元组的一部分),以便于存储在键值记忆网络中;
(4)内存模块,接收查询问题,读取存储的键值形成视觉知识特征,并预测答案。
上图给出了不同模块在VKMN中如何相互作用的详细图表。我们将在下面单独详细说明每个模块。
3.2 图像/问题输入的编码
输入图像I和问题q需要在馈入存储器网络之前被处理成特征向量。我们使用ImageNet预训练的CNN模型处理输入图像,并使用LSTM模型处理问题。来自两个模态的特征向量可以共同嵌入到如等式1定义的单个视觉注意描述中用于答案预测。几种方法被提出用于学习VQA中的端到端方式的多模式联合嵌入,包括VQA 2016挑战获胜者解决方案MCB [14],以及最先进的解决方案MLB [20]。
在本文中,我们直接利用MLB进行视觉问题对编码。我们将带有空间注意力的MLB输出(也就是第一个MLB阶段输出)表示为u,并且将LSTM编码的问题向量表示为t,其中t经过一个内部全连接层被投射到与u相同的维度空间,i.e., t, u ∈ Rd. 查询表示是t和u的联合嵌入经过低阶双线性池[20]
q =t⊙u,(1)
其中⊙表示两个载体之间的Hadamard积。q是用于查询目的的视觉问题对的视觉注意描述。
3.3 利用子图哈希进行知识识别
在详细阐述视觉知识表示的细节之前,我们将介绍如何发现与视觉问题相关的知识条目。首先,给出预先构建的视觉知识中的所有知识三元组<si,ri,ti>。我们生成实体集E = {si,ti}和关系集R = {ri}。我们将S = E∪R称为条目集,其中包含知识库中的所有不同条目。每当问题中的一个短语(或自动生成的标注)使用子图散列方法[8]匹配到条目集S中的一项时,我们就会提取条目。为了减轻提取的视觉知识的不准确性,我们限制每个知识三元组应该包含从问题(或自动生成的标题)中提取的至少两个条目,这比MemNN [41,36]和KV-MemNN[29]更严格。 N个知识三元组的一个小子集{<s1,r1,t1>,…,<sN,rN,tN>}随后被创建。要处理视觉知识库中的长尾效应,我们在知识图上执行知识三元组扩展,以包括那些提取的N个知识三元组的直接邻域。图4展示了子图散列和知识三元组扩展的一个例子。最后,我们建立了一个记忆网络,可以存储M个知识条目(M> N)。如果扩展知识子集的大小小于M,则追加空条目。
3.4 视觉与知识的联合嵌入
在QA任务[29]中,人们只需要知识三元组或部分知识三元组组成键值记忆网络中的键值对。在VQA中,视觉内容对于回答视觉问题至关重要。我们的起点是来自输入模块的空间注意力视觉特征u和来自知识识别模块的知识输入e。我们需要学习联合嵌入将u∈Rd和e组合在一起。因为e是文本表示,我们利用映射函数Φ(·)来得到实值特征向量Φ(e)∈Rde。这里Φ(·)可以是bag-of-words表示,word2vec转换,甚至如TransE[9]的知识嵌入。u和Φ(e)的特征维度通常是不同的,我们将它们投射到相同的空间,并应用MLB[20]捕获他们的联合表示:
x = Ψ(e,u)=σ(WeΦ(e))⊙σ(Wuu),(2)
其中σ(·)是双曲正切函数(在我们实验中比sigmoid函数表现更好),Wu和We是将u和Φ(e)投射到相同的维度空间中的矩阵。x被称为视觉知识注意描述,因为它将视觉特征u与知识输入e相结合。
我们认为x比MLB的空间注意力视觉特征能捕捉到知识更细粒度的信息,其中注意力基于整个问题。我们在消融研究中证实了这一点(见表1第4和6行)。
3.5视觉知识记忆网络
我们在前一小节中介绍了视觉特征和知识条目的一般联合嵌入。由于VKMN将记忆槽定义为键值向量对,如(k1,v1),…,(kM,vM),在本小节中,我们首先讨论键值对设计,然后讨论记忆网络的推理过程。 。
键值设计。哪个部分作为key,哪个部分作为vlaue的设计是非常灵活的。在传统的QA问题中,给定知识三重<s,r,t>,人们通常将前两个(s和r)视为key,而将最后一个t视为value。但是,对于VQA来说并非如此,因为我们不知道视觉问题中缺少知识三元组的哪一部分。在将剩余项作为value时,有三种键组合:(1)(s,r)作为键; (2)(s,t)为键;(3)(r,t)为键。实际上,我们分别为这三种情况构建了三个记忆块,如图2所示,并将其命名为三重复制。这有助于区分诸如“牙刷是用于做什么的?”和“什么可以用于刷牙?”这样的问题。为简单起见,我们仅详细描述(s,r)作为key项,并将t作为后续研究中的值项。我们可以使用等式2来获得键和值的嵌入。假设e=(e1,e2,e3),其中e1,e2和e3根据设计的键值映射对应于s,r,t。确保key的表示ki和值的表示vi具有相同的维数,我们使加法假设类似于连续词袋(CBOW),并获得ki和vi如下:
ki =Ψ(e1,ui)+Ψ(e2, ui); (3)
vi =Ψ(e3,ui) (4)
这个加法假设也适用于TransE编码[9],因为它采用共享权重对知识三元组<s,r,t>进行整体编码,并分别为s,r和t输出相同的维数特征向量。 。
利用存储在VKMN中的设计键值对,推理包括三个步骤:寻址相关知识,读取相应值并回答问题。我们一步一步地讨论它们。
key寻址。给定查询q,我们通过将问题与每个键进行比较来解决每个可以执行的记忆槽并分配相关概率:
pi= Softmax(q · Aki), (5)
其中·表示内积,A是记忆网络的参数矩阵,它将ki投影到与q相同的特征空间,而
读取value。在值读取步骤中,记忆槽的值通过平均权重寻址概率,并且返回的向量o被定义为:
o =ipiAvi (6)
原始的键值记忆网络[29]支持它实现查询和读取存储器。在本文中,我们只用在接收到o之后,使用q’=q+o对查询进行一步更新。
问题回答。针对VQA任务固定不同答案的数量,以便将问题回答重新转换为分类问题。我们基于q'使用具有权重矩阵Wo的FC层来预测答案
a^ = argmax Softmax(Woq′) (7)
VKMN中的所有参数矩阵Wu,We,A和Wo均采用基于随机梯度下降(SGD)的反向传播算法进行端到端训练。
4.实验
我们在VQA v1.0 [2]和v2.0 [16]数据集上评估了所提出的模型。我们将详细阐述数据集的细节,构建视觉知识库的过程,不同配置的消融研究以及下面的基准测试结果。
4.1 数据集
VQA v1.0数据集[2]由204,721个MS-COCO图像[24]组成,其中614,163个关联的问答对。数据划分为3种:训练(248,349个问题),验证(121,512个问题)和测试(244,302个问题)。此外,25%的测试分区子集被拆分为test-dev集。
VQA v2.0数据集[16]通过收集互补图像进一步平衡v1.0数据集,使得平衡数据集中的每个问题都有一对相似的图像,但问题的答案不同。它最终包含来自204,721张图像的1,105,904个问题,大约是v1.0数据集的两倍。
为简单起见,我们将目标答案限制在train+ val集中前2000个最常出现的答案,和大多数现有的工作[20,14]一样。因此,我们的训练数据包含train+value集中前2,000个答案的数据,其中涵盖了train+ val集中约90%的问答对。
Visual Genome数据集[22]包含108,249个带有问答对、对象和属性的标注图像。每张图像平均收集了17个问答对。此外,还有可用的视觉基因组关系(VGR)注释。 VGR以三元组形式<s,r,t>提供图像上不同对象的关系描述,完全符合我们视觉知识库的需求。详细的使用设置见4.2节。
4.2 构建视觉知识库
由于像Freebase这样的通用知识库包含数十亿的知识事实,而大多数知识条目与视觉问题无关,我们为VQA建立了自己的知识库,其中每个条目的结构都是<s,r, T>。知识库中的条目(命名为视觉知识库)来自两个来源:(i)从VQA v1.0 train+ val集[2]中的问答对中提取的知识条目; (ii)来自VGR数据集的知识三元组[22]。
首先,我们从问答对中将信息提取到VQA v1.0 train + val集中,以获得一堆结构化知识条目。与DBpedia [4]和Concept-Net [25]等现有知识库相比,我们提取的知识条目与其图像相关的问题更紧密地联系起来,并且表达比原始VQA数据集[2]中的问答对更精确,更紧凑。知识条目提取过程的工作原理如下。我们首先用Stanford Parser [10]解析每个问题的词性(POS)标签和依赖树。然后我们使用问题标签,依赖关系和答案从QA对中提取三元组。三元组中的所有单词都被词形化,以便相同单词的屈折变体明确地共享相同的表示。最后,我们构建了一个关系集R = {r},其中r是VGR数据集[22]中所有可能的关系短语。对于来自VQA数据集的每个提取的三元组<s,r,t>,我们将r替换为集合R中最相似/闭合的一个。Lemmatisation和关系替换可以帮助减少数据稀疏性,尤其是捕获“长尾”条目。
其次,VGR数据集[22]由描述对象关系的1,531,448个知识三元组组成,每个图像大约有14个三元组。我们通过去除出现频率(s,r或t)小于3的三元组来过滤VGR数据集,以获得40,480个独有的三元组。
将这两个部分组合在一起后,我们获得了大约159,970个独特三元组的视觉知识库。
4.3 实施细节
我们使用来自[23]的带有RNN包的Torch框架实现我们的模型。在输入模块中,我们遵循MLB[20]并使用ResNet-152 [17]作为视觉特征提取的骨干网络。MLB注意特征向量u为2,400维,问题嵌入向量t也投影到相同维度。联合视觉和知识嵌入模块通过Φ(e)输出300维特征。我们尝试了不同的嵌入方法,如BOW(GloVe)[32]和TransE [9],最后选择了TransE [9]。在记忆模块中,我们将记忆槽的数量设置为8。如果提取的子图大小小于8,我们用零填充空槽。
4.4 消融研究
有几种VKMN的配置可能会影响最终的准确性,包括知识编码方法Φ(·),仅具有文本特征的盲模型,以及三重复制记忆块等。我们使用VQA v1.0数据集的test-dev划分来检查这些配置的影响并在真实图像的开放式任务上进行评估。为了避免这些因素之间的相互作用,我们采用控制变量法来简化我们的研究。我们将我们设计的模型作为基线,使用TransE作为知识编码,视觉注意特征u加知识嵌入e来构建VKMN中的key和value,以及三重记忆块,如第3.5节所述,以避免从问题中提取的知识不明确。
我们通过移除或替换其他常用组件来评估每个组件的贡献,并固定所有其他组件。
(1)我们用BOW编码[32]替换了我们设计中基于TransE的知识编码。结果表明,TransE的表现优于BOW,尤其是“其他”答案类型(57.0 vs 56.1)。
(2)我们删除了视觉输入并设计了一个没有任何视觉线索的盲模型,因此key/value只是文本特征,即用下式取代等式2:
x =Ψ(e,t)=σ(WeΦ(e))⊙σ(Wtt),
并直接使用t作为查询。该比较验证了VKMN中视觉注意的重要性。
(3)我们直接使用联合嵌入q =t⊙u而不使用记忆块进行答案预测。这实际上是MLB的结果。很明显,VKMN优于MLB,尤其是“其他”答案类型(57.0 vs 54.9)。根据配对t-test,差异很大。本研究验证了所提出的记忆网络模块的有效性。
(4)我们在记忆网络中禁用三重复制机制,而只使用s和r来构建key,并使用t作为value。这项研究表明,三重复制机制对于避免视觉-问题对的模糊性非常重要,特别是对于“其他”答案类型(57.0 vs 53.9)。
表1列出了四种情况的详细结果,与我们针对不同问题类别设计的模型(基线)进行了比较。这项消融研究验证了我们的设计选择的有效性。
4.5 基准测试结果
![](https://i-blog.csdnimg.cn/blog_migrate/ed874b8d55418ee266252887d767fa96.png)
我们进一步列出了表2中VQA v1.0数据集的test-dev和test-standard数据集的完整基准测试结果。为了便于公平比较,我们还通过最先进的方法列出了单个结果模型。它表明VKMN在开放式和多选择任务上都优于最先进的结果,特别是对于“其他”答案类型,这证明了VKMN在结合外部知识回答6W问题(什么,何地,何时,谁,为什么以及如何)方面是有效的。图5进一步说明了一些例子,与最先进的MLB方法相比较。在每个例子下面,我们还根据等式5显示了前5个知识三元组的置信度得分。很明显,VKMN模型可以处理高度相关的知识三元组。请注意,虽然一些top-1的三元组相关但不太准确(由于训练集中的出现频率),最终的决定是基于softmax分类(等式7)和权重平均知识表示(等式6),往往会产生正确的答案。此外,我们在图6中显示了一些失败案例和它们的MLB注意图。这些例子与空间关系推理有关,其中MLB没有得到正确的注意区域。如果采用一些先进的注意机制如结构注意时,问题可能会得到缓解[50]。
我们在VQA v2.0数据集上进一步评估了我们的方法,该问题数量大约是VQA v1.0的两倍,并且比VQA v1.0困难得多。表3列出了test-standard集的比较结果。单个VKMN模型的总体准确率达到64.36,远远优于MCB和MLB(我们的再训练模型和DCD-ZJU团队提交的结果),尤其是在“其他”答案类型中的表现。我们的集合结果基于我们的VKMN模型的最简单的快照集合[18]和SVA模型[50],因为我们观察到VKMN和SVA在不同的答案类型上是互补的。尽管VQA v2.0挑战中的前三大解决方案比我们的VKMN具有更高的准确性,但它们严重依赖于模型集合,而它们的最佳结果是通过集合数十甚至数百个模型获得的。即使对于排第一的解决方案[37],他们最好的单一模型结果仍然比我们的单一VKMN模型差得多,特别是在“其他”答案类型上,当忽略了自下而上的注意力物体检测结果。
5.结论
在本文中,我们将视觉知识存储网络(VKMN)方法作为一种有效的方式来利用预先构建的视觉知识库来实现准确的视觉问题解答。实验表明,VKMN在VQA v1.0和v2.0基准测试中取得了令人满意的结果,并且在知识推理相关问题(即两个基准测试中的“其他”答案类型)上优于最先进的方法。