Multi-level Attention Networks for Visual Question Answering论文笔记

Abstract

现有方法主要从抽象的低层视觉特征推断答案,而忽略了高层图像语义的建模和丰富的区域空间上下文。为了解决这一问题,作者提出了一个多层次的视觉问题回答注意网络,该网络既可以通过语义注意减少语义鸿沟,并有利于通过视觉注意进行细粒度的空间推理。首先,从卷积神经网络的高层语义中生成语义概念,并选择那些与问题相关的概念作为语义注意。其次,通过双向递归神经网络将CNN的基于区域的中层输出编码成空间嵌入的表示,并通过多层感知器进一步确定与答案相关的区域作为视觉注意。第三,我们通过softmax联合优化语义注意、视觉注意和问题嵌入来推断最终答案。

1、Introduction

目前的VQA的首先,人类语言问题传达了强有力的高级语义和明确的查询意图,而具有数万像素的真实世界图像是相对低级和抽象的,由于众所周知的语义鸿沟,这对深入理解图像提出了巨大的挑战。第二,视觉问题回答需要精细的空间推理,因为一些答案只能从“What”和“Where”问题的高度定位的图像区域中推断出来。

目前的方法是从分别对两个输入进行改进,首先,一些方法通过将语义概念、图像字幕甚至外部知识库引入典型的CNN-RNN框架来开发图像的高级语义表示。其次,其他人关注于使用基于区域的特征来发现最重要的区域来回答问题。然而,以往的研究仍然忽略了使用语义注意为自然语言问题选择最具鉴别性的概念,以及使用图像区域的显式空间编码。

为了同时从图像中学习语义和空间表征,作者提出了一个整体学习框架。同时强调与问题有关的语义信息以及跟问题有关的区域区域。模型包括以下三个部分:

  • 语义注意通过在相同的词汇集和联合嵌入空间中发现与问题语义相近的概念来关注高级图像表示。这些概念对应于问答对中的高频率单词,并且可以代表对图像内容的高级理解。具体地说,基于CNN的识别器为每个概念训练,并且在CNN的语义输出层上的分布构成图像的高级表示。
  • 空间注意力用来推断问题可以关注的区域,首先从CNN中提取局部区域,然后按照顺序输入双向RNN中,这样使得某一区域的空间信息可以从其附近的区域得到。每个区域的注意力分数进一步由多层感知器(MLP)通过上下文感知视觉表示和问题表示的输入来获得。
  • 联合学习通过元素乘法将关注的区域、关注的概念和问题特征结合起来,然后是softmax,从答案集中预测最可能的答案。

2. Related Work 

  • CNN-RNN框架:主要是利用CNN提取图片特征,利用RNN提取问题特征。受其他工作的启发,将图片和其描述作为RNN的第一个输入,或者RNN每次都将图片特征作为输入。这些模型对于新的样本或者对问题进行修改后效果就会变差。
  • Visual Attention:最开始的视觉注意力主要解决看图片中的哪一部分,利用问题的表示作为query来查询那个区域跟答案有关,一种方法是将答案与待选区域串联后输入MLP计算软注意力,另一种方法是将两种输入进行相乘。有人通过多次计算注意力,还有学者提出共同注意力,即不光要关注重要的区域,也有关注问题中重要的单词。可以多次推理得到两种注意力。作者关注从图像中提取的高级概念,而不是从问题中提取的词语。使用概念而不是问题的主要优点是概念是图像中内容的语义表示,而不局限于问题中的单词。
  • High-level Concepts:代低级或中级视觉功能,利用高级概念,图像字幕,甚至视觉故事,外部知识库。每个概念对应于从训练图像描述中挖掘出的一个词,并且代表关于图像内容的一些种类的属性。这些概念充当自然语言和视觉识别之间的语义单位,允许我们在两种模式之间交换信息。然而,在高层概念检测过程中,空间信息完全丢失,导致VQA任务的性能下降。(所以可以思考如何将空间信息加入,可以考虑多步骤)

3. Multi-level Attention Networks

成分(A)被定义为语义注意,旨在从图像中发现与问题相关的概念。成分(B)被定义为情境感知视觉注意,旨在发现问题相关区域并学习这些区域的视觉表征。成分(C)被设计成通过联合注意学习将来自不同层次的信息合并到CNN中。这三个组件是端到端联合优化的,它桥接了语言和视觉之间的语义鸿沟,并从图像区域学习细粒度的表示。

3.1. Semantic Attention

将视觉模态和语言模态结合起来的一个核心挑战是具有不同的抽象层次,其中语言通常指的是一般类别,而图像中的数百个像素可以指向一个实例。之前的已经表明从图像中提取显式高级概念有助于在语义层次内视觉内容与问题之间的关联,虽然一个图像可以传达多种语义,但并不是所有的语义都有助于回答特定的问题。因此,我们建议关注概念,这些概念不仅应该与图像相关,而且应该在语义上接近问题。我们通过两个步骤来实现这些目标。

第一步,我们用深度CNN训练一个概念检测器,它可以产生图像语义概念的概率。首先建立一个概念词汇表,其中每个概念被定义为一个单词。在停止词去除后,概念词汇中收集问答训练对中出现次数为C的最高频繁词。此外,基于这些概念的多标签图像数据集是基于用于训练概念检测器的COCO图像字幕数据集构建的。对于一个图片I可以产生一个固定长度的数组p_c^{img},通过在CNN的预测层中进行fc的激活:(总结来说,第一步就是利用COCO数据集训练一个概念检测器,输入一个图片,得到图片的概念)

第二训练一个注意力网络来测量提取的概念与问题的相关性,首先给定一个问题Q=[q_1,q_2,\dots,q_T],其中q_t单词的one-hot表示, 

Multi-level Attention Networks for Visual Question Answering论文笔记_第1张图片

 对于给定一个概念c,使用两层网络将其映射至一个空间,第一层与上述的问题映射矩阵共享参数,第二个是单独的一个矩阵,如下:

然后将上述两者点乘,然后通过sigmoid的激活函数得到两者的相关性分数,然后将分数与概念相乘得到概念的语义注意力权重:

Multi-level Attention Networks for Visual Question Answering论文笔记_第2张图片

 最后将所有的注意力权重与概念相乘得到图像I的高阶语义信息:

Multi-level Attention Networks for Visual Question Answering论文笔记_第3张图片

 3.2. Context-aware Visual Attention

目前的视觉注意力是将整个图片分割开来,而很多概念应该是互相有动作或者位置联系的,不能单独看待。比如“猫站在什么东西上?”,回答这个问题不光要找到猫,还要找到猫脚下的东西。

具体来说,首先通过双向GRU编码器将上下文信息合并到每个区域的表示中。我们使用微调后的CNN模型进行概念检测,从之前的步骤中提取局部区域的视觉特征。我们将CNN模型中最后一个卷积层的特征图作为我们的视觉表示,它可以保留每个区域的完整空间信息。

Multi-level Attention Networks for Visual Question Answering论文笔记_第4张图片

将每个图片区域的特征表示为\{v_r,r=1,2,\dots,R\},将这些特征向量输入到双向GRU中,并将每一步的正方向和反方向的输出结合起来,形成每个区域的新特征向量,新的特征向量不仅包含了相应区域的特征信息,而且还包含了周边区域的上下文信息。我们将每个GRU中的隐藏状态的维数设置为与问题向量相同。

 给每个区域分配一个注意力分数,用于建模区域和问题之间的关系。语义注意通过两个向量的点积来度量问题和概念词之间的语义相似性,与此不同,通过两个向量的元素相乘来对齐问题和每个区域,然后将它们输入到多层感知器(MLP)中。这种设计使得在MLP通过参数优化能够自动学习注意力功能。更具体地说,我们通过多步推理来搜索区域。

  • 在卷积神经网络中,使用最后一步中得到的上下文感知的视觉特征来表示局部区域,而不是使用每个区域的独立表示,因为卷积神经网络往往缺乏不同区域之间的交互。
  • 针对多模态特征池中存在的尺度不一致性问题,采用元素乘的方法代替元素加的方法对每个区域的问题特征和视觉特征进行对齐,克服了多模态特征池中存在的尺度不一致性问题。

其中\odot代表矩阵与向量之间的乘法,它是通过矩阵的每一列都乘以向量来实现的。M_r是图像区域的注意力权重。与语义注意力相似,将注意力权重与区域特征相乘。

3.3. Joint Attention Learning

使用问题作为查询来搜索不同级别的图像信息。在低层视觉特征中,通过视觉注意关注问题相关区域,而在高层语义特征中,通过语义注意关注问题相关概念。两个层次的注意力通过融合他们所关注的代表而结合在一起。

Multi-level Attention Networks for Visual Question Answering论文笔记_第5张图片

\circ 表示两个向量之间的元素相乘。p_a就是最终的预测概率,其中最大值即答案。

4. Experiment

Multi-level Attention Networks for Visual Question Answering论文笔记_第6张图片

 

Multi-level Attention Networks for Visual Question Answering论文笔记_第7张图片

 

 

你可能感兴趣的:(VQA,VQA)