一、文章概况
文章题目:《Visual Question Answering as Reading Comprehension》
二、文献导读
摘要部分:
Visual question answering (VQA) demands simultaneous comprehension of both the image visual content and natural language questions. In some cases, the reasoning needs the help of common sense or general knowledge which usually appear in the form of text. Current methods jointly embed both the visual information and the textual feature into the same space. Nevertheless, how to model the complex interactions between the two different modalities is not an easy work. In contrast to struggling on multimodal feature fusion, in this paper, we propose to unify all the input information by natural language so as to convert VQA into a machine reading comprehension problem. With this transformation, our method not only can tackle VQA datasets that focus on observation based questions, but can also be naturally extended to handle knowledge-based VQA which requires to explore large-scale external knowledge base. It is a step towards being able to exploit large volumes of text and natural language processing techniques to address VQA problem. Two types of models are proposed to deal with open-ended VQA and multiple-choice VQA respectively. We evaluate our models on three VQA benchmarks. The comparable performance with the state-of-theart demonstrates the effectiveness of the proposed method.
视觉问答VQA需要同时理解图像视觉内容和自然语言问题。有时,推理过程还需要文本中的常识或者先验知识的帮助。目前的方法主要是将视觉信息和文本特征嵌入到相同的空间中。然而,怎样建立两种不同模态的交互并不容易。不同于多模态特征融合的方式,这篇文章中,作者提出用自然语言统一所有的输入信息,将VQA转换为机器阅读理解问题。利用这种变换,我们不仅能处理VQA数据集中的目标观测问题,也能够处理需要大量外部知识的VQA数据集。提出两种不同类型的模型分别处理开放式VQA和多选式VQA。基于三种VQA基准对模型进行评估,比较结果表明该方法的有效性。
三、文章详细介绍
视觉问答VQA和文本问答TQA有着密切的关系(TQA,也被称为机器阅读理解),它需要根据机器给定的文本中的内容回答问题。
如上图所示,TQA输入的都是纯文本,而VQA需要将来图像中的视觉信息和文本问题进行整合。输入的图像具有更高的维度,并且缺乏语言结构和语法规则,使语义分析更加困难;该算法联合嵌入了来自两种不同形式的视觉信息和文本信息。相比与TQA,VQA具有更大的挑战性。
大部分VQA都是用卷积神经网络CNN表达图像,用循环神经网络RNN表达文本。将视觉特征和文本特征进行联合嵌入,最终得到答案。
与其他方法不同的是,本文使用自然语言来明确的表达图像。与特征图相比,自然语言能够表达出抽象的高层次信息和全面的语义信息。通过这种转换,所有的输入都转换成了文本,避免了图像和文本特征联合嵌入到隐藏空间。而多模态融合是在文本域中进行的,更有利于语义信息的保存,这是本文研究VQA的一个核心问题。另外,外部的先验知识能够很方便的整合到模型当中。在文本域引入了注意力机制,模型就能够提供语义层面的信息,这就使推理成为可能。
本文的贡献主要有以下三点:
1) We propose a new thought of solving VQA problem. Instead of integrating feature vectors from different
modalities, we represent image content explicitly by natural language and solve VQA as reading comprehension. Thus we can resort to the abundant research results in NLP community to handle VQA problem. Using text and NLP techniques allows convenient access to higher-level information, and enables transfer learning from TQA to VQA models. Text data is more easier to be collected than images. Our method makes it possible to exploit large volumes of text in understanding images, actions, and commands.文章提出了一种新的思路来解决VQA问题,用自然语言来表示图像内容,并将VQA作为阅读理解来解决。因此,我们可以利用自然语言领域内丰富的研究成果来处理VQA问题。使用文本和自然语言技术能够方便地访问更高级的信息,以便从TQA到VQA模型的迁移学习。文本数据比图像数据更容易收集。我们的模型能够利用大量的文本来理解图像、动作和命令。
2) Two types of VQA models are proposed to address the open-end VQA and the multiple-choice VQA respectively. Based on the converted text description and the attention mechanism used in the models, semantic level supporting facts can be retrieved from the context, which makes the answer inferring process human-readable. The proposed models show comparable performance with the state-of-the-art on three different types of VQA datasets, which demonstrates their feasibility and effectiveness.
提出了两种类型的VQA模型,分别用于解决开放式VQA和多选项VQA。在模型中引入注意力机制和转换后的文本描述,可以从上下文章检索到语义信息,使答案推理更合理。在三种不同类型的数据集上,所提出的模型与最先进的算法具有相当的性能,说明了其可行性和有效性。
3) Most VQA methods cannot handle knowledge based VQA or have poor performance because of the complicated knowledge embedding. In contrast, our method can be easily extended to address knowledge based VQA.
由于知识嵌入的复杂性,大多数VQA模型无法处理基于知识的VQA,或者表现性能较差。相反,我们的方法能够处理基于知识的VQA。
1.相关工作
(1)联合嵌入(Joint embedding)
当前的方法都需要将图像和文本进行特征融合,这是一个多模态特征融合问题。现在大多数方法都是采用简单的方式,如向量连接、点乘或者求和的方式共同嵌入视觉特征和文本特征。Fukui等人认为这种方法过于简单,提出了Multimodal Compact Bilinear pooling method(MCB)[1]多模态紧促双线性池化法;以及后面提出的Multimodal Low-rank Bilinear pooling (MLB)[2] 多模态低秩双线性池化法;and Multimodal Factorized Bilinear pooling (MFB)[3]和多模态分解双线性池化法;以及Kim et al. 等人提出的present Multimodal Residual Networks (MRN)[4] 多模态参差网络法等,都做出了一些改进。所以多模态特征融合是VQA的关键。
[1]Akira Fukui, Dong Huk Park, Daylen Yang, Anna Rohrbach,Trevor Darrell, and Marcus Rohrbach. Multimodal compact bilinear pooling for visual question answering and visual grounding. In Proc. Conf. Empirical Methods in Natural Language Processing, 2016.
[2]Jin-Hwa Kim, Kyoung-Woon On, Woosang Lim, Jeonghee Kim, Jung-Woo Ha, and Byoung-Tak Zhang.Hadamard product for low-rank bilinear pooling.In Proc. Int. Conf.Learn. Representations.
[3]Zhou Yu, Jun Yu, Jianping Fan, and Dacheng Tao. Multimodal factorized bilinear pooling with co-attention learning for visual question answering. 2017.
[4]Jin-Hwa Kim, Sang-Woo Lee, Dong-Hyun Kwak, Min-Oh Heo, Jeonghee Kim, Jung-Woo Ha, and Byoung-Tak Zhang. Multimodal residual learning for visual qa. In Proc. Adv. Neural Inf. Process. Syst., 2016.
(2)基于知识的VQA(Knowledge-based VQA)
在自然语言领域中,有些问答整合了涉及语义或者检索的外部知识,尽管这些都是文本特征,但由于输入的都是非结构化的视觉信息,想要把这些方法扩展到基于知识的VQA并非易事。本文提出了更加直接的方法处理基于知识的VQA模型。用文本表示图像视觉信息,并用自然语言中的阅读理解来处理,实现了图像-问题-答案-元组在自然语言上的统一。
(3)文本视觉问答(Textual Question Answering)
文本问答TQA(也被称为阅读理解)是根据给定的段落进行问答。它是NLP领域内的基础,这个算法评估了理解人类语言的能力。在过去的几年中,端到端的神经网络和注意力机制的应用取得了显著的进展,目前已经有的模型有DMN,r-net,DrQA,QANet以及近期的BERT等。在解决VQA问题的过程中继承了许多QA的技术,例如,将注意力机制,DMN等技术应用到VQA中。在本文中,我们尝试将VQA问题建立在QANet上解决。
2.VQA模型
文中的方法是建立在QANet上的TQA问题,本章节中,首先讲述了QANet及其模型在VQA模型中的应用,然后分别提出了两种模型来解决开放式VQA和多选项式VQA的问题。
(1)QANet
QANet是一个快速、精确的端到端的模型,主要包括以下模块:
嵌入模块(embedding block)、嵌入编码器(embedding encoder)、注意力模块(context-query attention block)、模型编码器(model encode)和输出层(output layer)。
输入嵌入模块(Input Embedding Block):该模块将上下文中的每个单词嵌入到一个向量中,每一个单词表示的是词嵌入和特征嵌入的联合,并用两层网络来获取特征。
嵌入编码器模块(Embedding Encoder Block):该模块由卷积层(convolutional layers)、自我注意力层(self-attention layers)、前向反馈层(feed forward layers )和归一化层(normalization layers)的叠加,如下图所示。为了提高模型的记忆力和泛化能力,文中提出了深度可分卷积,采用多头注意力机制来模拟全局交互作用。
文本注意力网络模块(Context-question Attention Block):该模块用来提取上下文和疑问词之间的相关特征。文本中应用了两种注意力机制:context-to-question attention and question-to-context attention。
模型编码器模块(Model Encoder Block):该模块将上下文和注意力的结果作为输入。该模块与Embedding Encoder Block的参数共享。
输出层(Output Layer):输出层根据模型编码器3次重复的输出结果,来预测开始或者结束时上下文中答案所在位置的概率。
(2)开放式VQA模型Open-ended VQA model
除了QANet中的的基本模块之外,还增加了输入预处理模块,修正了输出模块,使其适用于开放式VQA。结构图如下所示:
输入预处理模块包括图像描述模块(image description module)和先验知识检索模块(external knowledge retrieval
module),根据不同类型的任务选择不同的模块。
其中图像描述模块使用的是Dense captions模型,它能够在更加精细语义层面上表达图像内容,图像内容包括单个对象的状态(如颜色、形状、动作等)以及对象之间的关系(位置空间等)。这些内容能够满足VQA所需的大部分视觉信息。目前已经有类似的工作,有作者使用256个属性词来表述图像,在VQA中表现出了显著的效果。本文使用另一种不同的语义描述,模型结果比少量的离散属性标签更丰富,提高了工作效率。生成区域的文本作为QANet的输入,由于使用了自我注意力,模型的长期依赖性编码性能比RNN好很多。
如果需求超出了VQA的图像内容,则需要一个能够获取外部知识的检索模块,这个检索模块需要从大知识库中提取与图像内容相关知识,而过滤掉不相关内容。用关键字匹配技术(A keyword matching technique)来检索最终答案。相比于易受同义词影响的启发式匹配,我们将检索到的所有内容做为上下文。图像描述的内容都是用自然语言表达的,因此很容易连接在一起。然后,QANet对上述文本信息进行编码,找出上下文与问题之间的联系,进而预测出答案。
输出层也是基于任务的(task-specific),如果答案在上下文段落中,QANet就会预测出其位置。但有些情况下,答案一般不会在上下文中明确的显示出来。比如描述区域时通常不包括“When”和 “Why”这样的词。为了解决这个问题,本文将输出层作为多类分类层,根据三个模型编码M0,M1,M2的输出特征来预测预定义问题答案分类的概率。首先是平均池化层将,将得到的特征向量连接起来,投影到分类空间进行分类,每个类别的概率用p = softmax(W[v0; v1; v2])计算,其中W为学习参数,本文使用交叉熵损失(Cross entropy loss)训练模型。
(3)多选项式VQA模型(Multiple-choice VQA model)
多选式VQA根据开放式的问答结果,与待选项进行匹配。但这种方法没有充分利用所提供的全部信息,作者对该方法做了改进,如下图所示:
除了将问题和转换后的图像作为输入之外,还将候选答案也作为输入,并计算候选答案和上下文之间的相关性。之后用一个多层感知器(MLP)来训练联合特征,第一层之后将Dropout设置为0.5,来预测图像-问题-答案是否正确。采sigmoid函数将特征转换为概论,采用binary logistic loss对模型进行训练。
两个不同VQA模型相比有以下不同,①开放式VQA模型选择最前面的答案作为分类标签;而多选项VQA模型直接对候选答案进行编码,因而涵盖更多的答案选择。②多选项VQA模型根据嵌入和编码器来学习问题之间的相关性,而与启发式的答案归一化不同。③多选项VQA模型避免了把训练数据当成不同类。
3.实验(Experiments)
作者实验环境配置:GPU用的是NVIDIA Titan X GPU、内存12GB、代码实现PyTorch
(1)数据集(Datasets)
作者主要用了FVQA (Fact-based VQA),Visual Genome,Visual7W数据集。
FVQA(Fact-based VQA)基于事实的VQA数据集,这个数据集除了图像-问题-答案之外,还对每个视觉概念收集了大量的额外知识。FVQA数据集有2190张图片和5826个问题。该数据集被分割成5个模块的训练和测试数据,每个模块有1100张训练图像和1090张测试图像。总共有32类问题,训练问题2927个,测试问题2899个。
Visual Genome这是一个具有大量图像和语言信息的数据集。它包含108077张图像和144523个问答对。
Visual7W 是 Visual Genome的一个子集,它包含了47300张图片139 868问答对。
(2)实验细节(Implementation Details)
FVQA需要外部知识。作者在这里采用来QQ(question-toquery) 映射法,将提取的图像信息以及额外知识组合成一个段落,QANet直接直接预测答案在段落中的位置。使用QANet的默认参数,预训练使用SQuAD数据集,对训练模型进行微调,学习率为10个epoch为0.001,后10个epoch为0.0001。Visual Genome视觉基因组提供了图像的真实ground-truth。作者重新训练了这个模型,将前5000个答案作为分类标签来训练open-ended VQA模型,考虑到每个段落的长度以及训练速度,将段落词限制在500以内,在编码器模块使用4个头注意力进行快速训练。30个epoch,使用ADAM优化器进行训练。初始学习率为0.001,每3个epoch以0.8的速率直至衰减至0.0001。Visual7W数据集为每个问题提供了多个选择答案,作者训练了这个模型,从每样例中随机抽选两个负样本,并进行数据清洗。
作者使用answer accuracy来评估模型,如果字符串与相应的ground-truth答案相匹配,则预测的为正确答案。所有的答案都进行来标准化,以消除单复数、大小写、标点符号、冠词等造成的差异,计算每种模型的top-1和top-3精度。以下是五次测试的平均精度报告。
下图是在FVQA数据集上的一些例子:
上面的例子中,尽管答案包含在文本中,但最后一个出错了,主要原因是the similar expressions of “sth. belongs to the category of Food” in the paragraph语句混淆了。
模型在Visual Genome QA (VGQA)上的性能表现:
使用真实值对图片进行描述,模型将会达到最优效果,除了问题“What”之外,因为回答'what'问题很大程度上依赖于对图像的描述,而他们主要考虑的是图像的状态。
作者测试了不同长度的段落下的性能,随着段落长度的增加,精度略有提高,但是性能和速度也随之降低,权衡之后,将段落字数限制在500词以内。如下图所示:
作者在Visual7W数据集上对多选项VQA模型进行了评估。结果如下所示:
利用真是数据描述图像取得了较好的结果。具体的来说,该模型在‘Who’问题上表现更好,比‘What’和’How‘问题上的准确性高。
一些多选式VQA的例子:
结果表明,当文本描述包含相关信息时,VQA模型的性能较好,即使没有准确信息,模型也能根据相关知识进行推断。
4.结论(Conclusion)
本文试图以机器阅读理解的方式来解决VQA问题。用自然语言表示图像内容,将VQA转换为文本问答。通过这种转换,避免了多模态特征融合在隐空间中的联合嵌入。在文本域进行多模态融合,保留了更多的语义信息,在文本域使用来注意力机制,使推理更合理。可以利用大量的文本和自然语言技术来提高VQA的性能。实验还表明,如果上下文太长,就很难推断出正确答案,如何正确有效的描述图像以及如何适当的提取外部知识是下一步工作。