印度理工学院 Akshay Kumar Gupta 近日发布了一篇论文,对视觉问答方面的数据集和技术进行了盘点和比较。机器之心对本文内容进行了摘要式的编译介绍。
视觉问答(visual question answering/ VQA)是结合自然语言处理和计算机视觉技术的一种新兴任务。本文是一份视觉问答技术研究情况的调查,我们在文中列举了一些用于解决这个任务的数据集和模型。调查的第一部分详细介绍了用于 VQA 的不同数据集,并比较了各数据集的特点。调查的第二部分详细介绍了 VQA 的不同模型,分为四个类型:非深度学习模型、无注意机制(without attention)的深度学习模型、有注意机制(with attention)的深度学习模型以及其它模型。最后,我们比较这些模型的性能,并为今后的工作提供一些方向。
一、引言
视觉问答是最近几年出现的一个新任务,并引起了机器学习社区的关注(Antol 等,2015)(Wu 等,2016a)。该任务通常分为向计算机展示图像和向计算机询问有关图像的问题两个步骤。答案可以是以下任何形式:单词、短语、是/否回答、从几个可能的答案中选择或在空白处填写答案。
视觉问答任务具有重要性和吸引力,因为它结合了计算机视觉和自然语言处理领域。计算机视觉技术用来理解图像,NLP 技术用来理解问题。此外,两者必须结合起来才能有效地回答图像情境中的问题。这相当具有挑战性,因为传统上这两个领域使用不同的方法和模型来解决各自的任务。
本调查详细介绍了用于解决视觉问答任务的数据集和模型,并对这些模型在各数据集上运行的效果进行了比较。本文分为 4 个部分:第 2 部分介绍 VQA 数据集,第 3 部分介绍模型,第 4 部分讨论结果并提供一些未来的可能方向。
二、数据集
在过去 2-3 年中,出现了几个大型的面向 VQA 任务的数据集。表 1 是这些数据集的情况摘要。
表 1:VQA 数据集
三、模型
随着深度学习技术的广泛普及,VQA 任务被提出时,深度学习领域各种计算机视觉和 NLP 技术已经有了很大发展。因此,文献中几乎所有关于 VQA 的工作都涉及深度学习方法,而不是采用更经典的方法,如图模型(graphical model)。在本部分第 1 小节中,作者详细介绍了几个没有用神经网络方法的模型,以及作者在这些模型中使用的几个简单基线(baseline)算法。第 2 小节介绍了无注意机制的深度学习模型。第 3 小节详细介绍了用于 VQA 的有注意机制的深度学习模型。所有模型的结果总结在表 2 和表 3 中。
1. 非深度学习方法
(1) 回答类型预测(Answer Type Prediction/ATP)
(Kafle 和 Kanan,2016)提出了一个用于 VQA 的贝叶斯框架,他们用模型预测一个问题的答案类型,并用它来产生答案。可能的答案类型随着数据集的不同而有所不同。例如,对于 COCO-QA,他们考虑四种答案类型:对象、颜色、计数和位置。
给定图像 x 和问题 q,模型计算答案 a 和答案类型 t 的概率:
遵循贝叶斯定理。然后,计算所有答案类型边际分布概率得到 P(A=a|x,q)。对于给定的问题和答案,分母是常数可以忽略。
他们用三个独立的模型对分子中的 3 个概率进行建模。第 2 和第 3 个概率都使用 logistic 回归进行建模。问题的特征采用跳跃思维向量表征(skip-thought vector representation)(Kiros 等人,2015)(他们使用预训练的跳跃思维模型)。第 1 个概率为条件多元高斯模型,原理上与二次判别分析(Quadratic Discriminant Analysis)相似。此模型采用了原始图像特征。
作者还介绍了一些简单的基线算法,如仅将图像特征或仅将问题特征馈送到 logistic 回归,将图像和问题特征同时馈送到逻辑回归,以及将相同的特征馈送到多层感知器。他们在 DAQUAR、COCO-QA、Visual7W 和 VQA 数据集上进行了评估。
(2) 多元世界(Multi-World)问答
(Malinowski 和 Fritz,2014)这篇论文将基于问题和图像的答案概率建模为
。这里 T 为隐藏变量,它对应于从问题语义分析器(semantic parser)得到的语义树(semantic tree)。W 是世界,代表图像。它可以是原始图像或从分割块获得的附加特征。使用确定性评价(deterministic evaluation)函数来评估 P(A|T,W)。使用简单的对数线性模型得到 P(T|Q)。这个模型被称为 SWQA。
作者进一步将其扩展到多元世界的场景,用来模拟分割和分类标签的不确定性。不同的标签代表不同的 W,所以概率模型为
这里,S 是带有类标签分布的一组分割图像集。因此,从分布中抽样分割图像时将得到其对应的一个可能的 W。由于上述方程很复杂,作者仅从 S 中抽样固定数量的 W。
这个模型称为 MWQA。这些模型在 DAQUAR 数据集上进行评估。
2. 无注意机制的深度学习模型
VQA 的深度学习模型通常使用卷积神经网络(CNN)来嵌入图像与循环神经网络(RNN)的词嵌入(word embedding)来嵌入问题。这些嵌入以各种方式组合和处理以获得答案。以下模型描述假设读者熟悉 CNN(Krizhevsky 等人,2012)以及 RNN 变体,如长短时记忆(LSTM)单元(Hochreiter 和 Schmidhuber,1997)和门控循环单位(Gated Recurrent Unit/GRU)(Cho 等人,2014)。
一些方法不涉及使用 RNN。我们在开头已经讨论过这些模型。
(1) iBOWING
(Zhou 等人,2015)提出了一种叫做 iBOWING 的基线模型。他们使用预训练的 GoogLeNet 图像分类模型的层输出来提取图像特征。问题中每个词的词嵌入都被视为文本特征,因此文本特征是简单的词袋(bag-of-word)。连接图像和文本的特征,同时对答案分类使用 softmax 回归。结果表明,该模型在 VQA 数据集上表现的性能与几种 RNN 方法相当。
(2) Full-CNN
(Ma 等人,2015)提出了一种仅用 CNN 的模型,称为 Full-CNN。模型使用三种不同的 CNN:一种用于编码图像,一种用于编码问题,一种用于将图像和问题的编码结合在一起并产生联合表征。
图像 CNN 使用与 VGG 网络相同的架构,并从该网络的第二层获取长度为 4096 的向量。这通过另一个完全连接的层,以获得大小为 400 的图像表征向量。句子 CNN 涉及 3 层卷积和最大池化(max pooling)。卷积感受野(receptive field)的大小设置为 3。换句话说,核函数(kernel)会计算该词及其相邻的邻居。联合 CNN 称为多元模态 CNN(multi-modal CNN),在问题表征上的卷积感受野大小为 2。每个卷积运算都在完整的图像上进行。将多元模态 CNN 的最终表征结果传入 softmax 层以预测答案。该模型在 DAQUAR 和 COCO-QA 数据集上进行评估。
以下模型同时使用了 CNN 和 RNN 算法。
(3) 神经元询问(Ask Your Neurons/AYN)(Malinowski 等人,2016)
该模型使用 CNN 对图像 x 进行编码并获得图像的连续向量表征。问题 q 使用 LSTM 或 GRU 网络进行编码,其中在时间 t 步骤的输入是问题的第 t 个词 q_t 的词嵌入与图像向量编码。问题编码是最终时间步骤获得的隐藏向量。作者使用的一个简单的词袋基线是将问题的所有词嵌入的总和作为编码。
解码答案可以用两种不同的方式,一种是对不同答案的分类,另一种是答案的生成。分类由完全连接层生成输出并传入覆盖所有可能答案的 softmax 函数。另一方面,生成由解码器 LSTM 执行。在每个时间点的 LSTM 将前面生成的词以及问题和图像编码作为输入。下一个词使用覆盖词汇表的 softmax 函数来预测。需要注意的一点是,该模型在编码器和解码器 LSTM 之间共享一些权重。该模型在 DAQUAR 数据集上进行评估。
(4) Vis + LSTM(Ren 等人,2015)
该模型与 AYN 模型非常相似。该模型使用 VGG 网络的最终层来获得图像编码使用 LSTM 对问题进行编码。与之前的模型相反,在编码问题之前,它们将图像编码作为第一个「词」传入 LSTM 网络。该 LSTM 的输出先通过完全连接层,然后通过 softmax 层。
作者还提出了一种使用双向 LSTM 的 2Vis+BLSTM 模型。向后的 LSTM 也将图像编码作为第一个输入。两个 LSTM 的输出相连接,然后通过一个 dense 和 softmax 层。
(5) 动态参数预测(DPPnet)(Noh 等人,2016)
本论文的作者认为,设定一组固定参数并不足以满足 VQA 任务。他们采用 VGG 网络架构,删除最终 softmax 层,并添加三个全连接层,并最后使用覆盖所有可能答案的 softmax 函数。这些完全连接层的第 2 层没有固定的一组参数。相反,参数来自 GRU 网络。该 GRU 网络用于对问题进行编码,并且 GRU 网络的输出通过完全连接层给出候选参数的权重小向量。然后使用逆哈希函数(inverse hashing function)将该向量映射到第 2 完全连接层所需的参数权重大向量中。这种哈希(hashing)技术被用于避免预测全部的参数权重而带来的计算成本高昂,并避免由此导致的过拟合。或者可以将动态参数层视为将图像表征和问题表征相乘得到的联合表征,而不是传统的以线性方式组合。该模型在 DAQUAR、COCO-QA 和 VQA 数据集上进行评估。
3. 基于注意机制的深度学习技术
基于注意机制的技术是最受欢迎的技术之一,在机器翻译(Bahdanau 等人,2014)、图像描述(Xu 等人,2015)等众多任务中使用。对于 VQA 任务,注意机制模型聚焦在图像、问题或两者的重要部分,从而有效地给出答案。
(1) Where To Look(WTL)
(Shih 等人,2016)提出了以下称为 WTL 的基于注意机制的模型。他们使用 VGGnet 对图像进行编码,并连接最后两层 VGGnet 的输出,以获得图像编码。问题表征是通过对问题中每个词的词向量求平均得到的。在图像特征集上计算注意向量,以确定图像中的哪个区域重要。该向量用下面的方式计算:如果 V=(-→v1,-→v2 ... -→vK)是图像特征的集合,而-→q 是问题嵌入,则第 j 个区域的重要性被计算为 g_j=(A-→vj+bA)T(B-→q+bB)
注意向量的权重通过标准化-→g 获得。最终的图像表征是不同区域的注意值加权和。这与嵌入问题相连接,并传入 dense+softmax 层。该模型在 VQA 数据集上进行评估。损失函数是基于 VQA 评估指标的最大边际损失(margin based loss)。
(2) 循环空间注意(Recurrent Spatial Attention/R-SA)(Zhu 等人,2016)
本模型在两个方面比上一个模型超前一步。首先,它使用 LSTM 对问题进行编码,其次,在扫描问题的每个词之后,它重复地计算图像的注意值。更具体地说,在 LSTM 的每个时间步长 t,我们反复计算图像特征的注意值加权和 r_t,r_t 用作 LSTM 的下一个时间步长的附加输入。利用 LSTM 之前的隐藏状态 ht-1 和图像本身,用于得到 r_t 的注意向量的权重用 dense+softmax 层计算得出。从生理角度,当我们阅读问题时,我们会不断地决定图像的哪部分需要注意,而现在注意的部分取决于当前的词和 ht-1 状态前的注意加权图像。
该模型在 Visual7W 数据集上进行评估,该数据集用于文本回答任务以及指点任务(指出图像中的区域作为答案)。实际和预测答案之间的 softmax 交叉熵损失函数(cross entropy loss)用于文本回答任务。对于指点任务,通过采用表示该区域的特征的点积和 LSTM 的最后状态来获得候选区域的对数似然值(log likelihood)。再次使用交叉熵损失函数来训练模型。
(3) 堆叠注意网络(Stacked Attention Networks/SAN)(Yang 等人,2016)
本模型在思想上与之前的模型相似,因为它反复计算对图像的注意向量,以获得更细粒度的视觉信息来预测答案。然而,虽然之前的模型对问题逐词计算,本模型首先使用 LSTM 或 CNN 对整个问题进行编码。这里的问题编码用与之前类似的方程来注意图像。然后,连接注意加权图像与问题编码,并将其再次用于计算对原始图像的注意。这可以重复 k 次,之后使用问题和最终图像表征来预测答案。作者认为,这种「堆叠」注意有助于模型迭代地丢弃图像中不重要的区域。作者对 k=1 和 k=2 进行了实验,并在 DAQUAR、COCO-QA 和 VQA 数据集上进行评估。
(4) 层次协同注意(Hierarchical Co-attention/CoAtt)(Lu 等人,2016)
本文不同于之前基于注意的方法,它的模型除了对视觉注意外,还同时注意问题(问题的哪部分重要)。模型有两种协同注意的形式:1)并行协同注意,其中图像和问题的注意同时进行。这通过计算亲和矩阵(affinity matrix)C=tanh(Q^TWI) 来完成,其中 W 是可学习的权重矩阵,C_ij 表示问题中第 i 个词和图像中第 j 个区域的亲和值。该矩阵 C 用于获得图像和问题注意向量。2)交替协同注意,这里我们迭代地注意图像,然后查询,然后再次注意图像(类似于 SAN 的思想)。
作者使用的另外一个想法是在不同的抽象层上编码问题:词、短语和问题层面。通过 LSTM 获得问题的表征,而从 CNN 获得词和短语的表征。该模型在 VQA 和 COCOQA 数据集上进行评估。
4. 其它模型
不同于前面的模型,下面的模型使用了更多的思想,而不仅仅是在计算图像或问题的注意值方面作改变。
(1) 神经模块网络(NMN/Neural Module Network)
(Andreas 等人,2016)该模型为每个图像和问题同时不间断地生成一个神经网络。具体的实现方式为:从各种基于问题的子模块中选择,并组合它们生成神经网络。有五种模块:注意 [c](其计算给定图像和给定 c 的注意映射;c 可以是「狗」,然后注意 [狗] 将尝试找到含有狗的图像),分类 [c](对于给定的图像和注意映射,其输出属于 c 的标签的分布;c 可以是「颜色」),重新注意 [c](它使用注意映射并基于 c 重新计算这个映射;c 可以是「上面」,意味着将注意力向上移动),测量 [c](它仅通过注意映射输出标签的分布)和组合 [c](它合并由 c 确定的两个注意映射,c 可以是「与」或「或」)。
决定组合哪些模块之前,模型首先使用依存句法分析器(dependency parser)来解析问题,并使用此依存关系创建基于中心词的符号表达。本论文的一个例子是「What is standing on the field(站在运动场上的是什么)」变为「what(stand)」。然后用这些符号形式来确定要使用的模块。之后通过反向传播端到端(end-to-end)地训练整个系统。模型在 VQA 数据集与一个更具挑战性的合成数据集(由于发现 VQA 数据集不需要太多的高级推理或组合)上评估。
(2) 包含知识库
(Wu 等人,2016b)提出了「询问任何问题」(Ask Me Anything/AMA)模型,该模型试图借助外部知识库中的信息来帮助指导视觉问答。它首先基于图像的标题获得一组属性,如对象名称、属性等。图像标题模型在 MS-COCO 数据集上使用标准的图像加标题技术训练。该模型生成 256 个可能的属性,并且属性生成器使用 VGG 网络的变体在 MS-COCO 数据集上训练。前 5 个属性用于生成查询 DBpedia 数据库的语句。每次查询返回一个用 Doc2Vec 算法排序汇总的文本。该汇总文本作为附加输入传给生成回答的 LSTM 解码器。模型在 VQA 和 COCO-QA 数据集上进行评估。
表 2:不同模型在 DAQUAR(部分)、DAQUAR(全部)、COCO-QA 数据集上的表现
表 3:不同模型在 VQA 数据集上的表现
四、讨论以及未来的工作
在所有 VQA 数据集上,深度学习模型的表现比早期基于图模型的方法出色,这已经成为近年来的趋势。然而,有趣的是,我们看到 ATP 模型的表现优于非注意模型,这证明简单地引入卷积和/或循环神经网络是不够的:原则上识别相关的图像部分是重要的。ATP 甚至可以与一些注意模型(如 WTL 和 SAN)相媲美甚至表现更好。
CoAtt 的表现有显著的提升,该模型首先注意问题然后注意图像。这对于长问题可能是有帮助的,由于这些问题更难用 LSTM/GRU 编码表示为单个向量,因此首先对每个词进行编码,然后使用图像来注意重要的词,这样有助于提高模型的准确率。NMN 模型使用了为每个(图像/问题)对自动组合子模型的新颖想法,它的表现效果类似于在 VQA 数据集上的 CoAtt 模型,但是在需要更高级推理的合成数据集上优于所有模型,表明该模型在实际中可能是一种有价值的方法。然而,需要更多的测试来判断该模型的性能。
在 COCO-QA 数据集上表现最好的模型是 AMA 模型,它包含外部知识库(DBpedia)的信息。这样做的一个可能的原因是知识库帮助解决涉及常识的问题,而这些知识可能不在数据集中。该模型在 VQA 数据集上的表现不是很好,这可能是因为这个数据集没有太多的问题需要常识。自然地这种模型会为未来的工作带来两大方向。第一个方向是认识到外部知识的必要性:某种 CoAtt 和 AMA 的混合模型加上是否访问知识库的决策器可能会兼有两种模型的优点。该决策器可能是面向应用的,以实现端到端的训练。第二个方向是探索使用其它知识库,如 Freebase、NELL 或 OpenIE 的信息提取。
正如我们所看到的,在这个任务上,注意值的新颖计算方法能持续改善模型的效果。这也是在文本问答(textual question answering)任务中看到的,因此可以用文本问答的更多模型来指导 VQA 模型。对各种 VQA 数据集的性能上限估计的研究将是非常有价值的,以便找到可能的改进方法,特别是对于自动生成的 COCO-QA 数据集。最后,大多数 VQA 任务将回答视为分类任务。将回答作为生成任务将是有趣的,但数据集的收集和评估方法仍然是一个有待解决的问题。
五、结论
尽管 VQA 只有几年的发展时间,VQA 任务已经得到了跨越式发展。VQA 的深度学习方法持续收到了最多的关注并拥有最先进的结果。我们调查了这些模型中最突出的一些模型,并列出了它们在各种大型数据集上的表现。我们不断看到在许多数据集上显著的性能改进,这意味着未来在此任务上很大的创新空间。
论文原文请访问:https://arxiv.org/abs/1705.03865
【本文是51CTO专栏机构机器之心的原创译文,微信公众号“机器之心( id: almosthuman2014)”】