【文献阅读】用自然语言来表达图像内容,将VQA视为阅读理解(H. Li等人,CVPR,2019)

一、文章概况

文章题目:《Visual Question Answering as Reading Comprehension》

沈春华老师[1]团队的文章,发表在CVPR2019上。

[1] Chunhua Shen老师的个人主页

文章下载地址:http://openaccess.thecvf.com/content_CVPR_2019/papers/Li_Visual_Question_Answering_as_Reading_Comprehension_CVPR_2019_paper.pdf

文章引用格式:H. Li, P. Wang, C. Shen, A. Hengel. "Visual Question Answering as Reading Comprehension." In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2019

项目地址:暂时没有

二、文章导读

感觉网上关注VQA的人不多,目前还没见到这篇文章的解读。

先放上文章的摘要部分:

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有着很好的应用前景,从某种程度上来说,VQA也是一种TQA(Textual Question Answering 也就是我们说的机器阅读理解)和视觉信息的结合。

大部分VQA都是用CNN表达图像,用RNN表达句子,然后再将两种特征嵌入到一起,最后再来推断答案。有文献[2]指出,这种简单的嵌入不能够表达出二者不同模态复杂的关联,因此提出了MCB(Multimodal Compact Bilinear pooling method);如果想要进行推理的话,则还需要额外的知识,而提出的Dynamic Memory Networks (DMN)模型[3]。

[2] 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

[3]Guohao Li, Hang Su, and Wenwu Zhu. Incorporating external knowledge to answer open-domain visual questions with dynamic memory networks. In Proc. IEEE Conf. Comp. Vis. Patt. Recogn., 2018.

这篇文章和之前方法的不同之处在于,用自然语言来清楚的表达图像,相较于图像特征,自然语言更能够表达出抽象的高层次信息和全面的语义信息。通过这一变换,所有的输入都可以变成文本,这就避免了图像和文本特征同时嵌入到隐含空间中。另外,外部的先验知识也能够很方便的整合到模型当中。在文字域中引入注意力机制,模型就能够提供语义层面的信息,这就使推理变为可能。

文章的主要贡献为以下几点:

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视为阅读理解)

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数据集)

1. 相关工作

(1)联合嵌入(Joint embedding)

目前的主要问题在于多模态融合,一些简单的方法,比如向量连接,点积或相加,有文献指出这些方法并不充分[2]而提出MCB(但是需要先将两种特征映射到高维空间,比如16000维,然后还要再进行快速傅里叶变换FFT);之后提出的一些模型,比如Multimodal Low-rank Bilinear pooling (MLB),Multimodal Factorized Bilinear pooling (MFB),Multimodal Residual Networks (MRN)等,都做了一些改进,所以多模态融合是VQA的关键。

(2)基于知识的VQA(Knowledge-based VQA)

在NLP中,有些问答整合了涉及语义或者检索的外部知识。尽管这些都是文本特征,但是由于其输入的都是非结构化的视觉信息,所以直接用于基于知识的VQA并非易事。目前也有很多这方面的研究。本文中,才用了更直接的处理基于知识的VQA(knowledge-based VQA)模型,通过将图像表达为文本信息,就可以将图像,问题,答案,知识等全部放在自然语言空间,然后用NLP的方法进行处理。

(3)文本问答TQA(Textual Question Answering)

TQA也叫阅读理解,就是对基于给定的段落进行问答。基于注意力机制和端到端的网络,目前已有模型DMN, r-net, DrQA, QANet,BERT等,本实验则基于QANet设计。

2. VQA模型

(1)QANet

前面也提到了,相关工作是基于QANet做的,所以先介绍QANet。

QANet由嵌入模块(embedding block),嵌入编码器( embedding encoder),注意力模块( context-query attention block),模型编码器(model encoder)和输出层(output layer)组成

输入嵌入模块Input Embedding Block:这个模块的目的是将文中或者问题中的单词转换为向量。每一个单词的表示是词嵌入和特征嵌入的连接,这里用了两层网络来获取嵌入特征。

嵌入编码器模块Embedding Encoder Block:这个模块是卷积层,自注意力层,前向反馈层和归一化层的叠加。如下图:

文本注意力网络模块Context-question Attention Block:用于提取上下文和问题中的文字特征。模块中用到了两种注意力机制——context-to-question attention和question-to-context attention。

模型编码器模块Model Encoder Block:该模块将上下文和注意力的作用结果作为输入。它与embedding encoder block模块的参数共享。

输出层Output Layer:输出层是3个encoder的重复,作用是在上下文中定位出答案的位置。

(2)开放式VQA模型Open-ended VQA model

模型结构如下图所示,除了QANet,作者增加了预处理模块(input pre-processing block),并修改了输出模块(modify the output block),使其适用于开放式的VQA数据集。

预处理模块(input pre-processing block)包括了图像描述模块(image description module)和外部知识检索模块(external knowledge retrieval module),根据不同的任务类型可以选择不同模块。

其中的图像描述模块用的是Dense captions模型,它能够在更精细的语义表达层面(finer level)上描述图像的内容,包括单目标状态(比如颜色,形状,动作)甚至多目标的关系(比如空间位置)。目前已有类似的工作,比如有文献中对图像用256个属性词语进行表示,在VQA中也获得了比较好的效果。但是该模型则是另一种不同的语义描述,且模型的结果比少量属性标签的描述更丰富。图像生成的文本被输入到QANet里面,这里由于使用了自注意力机制,模型的长期依存性编码的表现要比RNN好很多。

如果我们需要做超出图像知识的VQA,那么就需要外部知识检索模块。该模块需要从知识库中提取出相关知识,并过滤掉无关知识。这里采用了关键词匹配技术(A keyword matching technique)去检索最终答案。相较于易受同义词影响的启发式搜索,该方法能利用检索到的所有知识作为上下文。图像描述(image description)和外部知识(supporting facts)之后都会用自然语言来表达,然后再连接到一起。最后输入到QANet中进行编码,寻找上下文和问题的相关性,进行答案的预测。

输出层也是基于任务的(task-specific)。如果答案在上下文中,那么QANet就会找到答案的位置;但大多数情况并不在文中,比如问“when”或“why”,因此将输出层变成多类别分类层。这里对三个编码器模型的输出特征M0,M1,M2进行答案的概率预测。首先对三个特征进行平均池化,然后对特征向量进行连接,投影到答案类别的输出空间中,每一个类别的概率都可以用softmax来做,目标函数是交叉熵。

(3)多选式VQA模型Multiple-choice VQA model

多选式的VQA可以根据开放式的回答结果,来与待选项进行匹配。然而这种思路是不能充分利用信息,因此作者进行了一些改进,改进后的模型如下图所示:

除了前面提到的,将问题和图像描述同时作为QANet的输入,这里还把候选答案也作为了输入,然后再计算候选答案和上下文之间的相关性。之后在连接的特征上使用多层感知器multilayer perceptrons (MLP)训练,第一层后面用一次Dropout,值为0.5,接着再用sigmoid将特征转变为概率,最后的loss函数是二值逻辑loss函数(binary logistic loss)。

两种不同的VQA相比主要有以下几点:①开放式VQA是将前几的答案作为类别标签,而多选式VQA是直接将候选答案进行编码,因此多选式VQA的答案覆盖面更广;②多选式VQA能够通过嵌入和编码器来学习相似语句的相似性,与启发式答案归一化不同;③多选式VQA避免了将答案视为不同类别。

3. 实验

作者的GPU是NVIDIA Titan X GPU,内存12G,代码用的pytorch。

(1)数据集:

作者用到的数据集包括:FVQA(Fact-based VQA),Visual Genome,Visual7W。数据集这里不再详细介绍。

(2)实验细节:

FVQA数据集需要外部知识。这里作者使用了QQ映射法(question-toquery(QQ) mapping method),之后的QANet都使用的默认参数,预训练使用的SQuAD数据集,学习率前10个epoch为0.001,后面10个为0.0001;Visual Genome数据集提供了图像描述的真值(ground truth),作者重新训练了该模型,选择了频率top-5000的答案作为训练开放式VQA的类别标签,为了快速训练,将段落的长度限制到500词,并用4个attention head处理,用ADAM优化器训练30个epochs,初始学习率为0.001,然后以0.8为衰减率,每3个epoch衰减到0.0001;Visual7W数据集是一个多选式的VQA数据集,从每一个例子中随机采样两个负样本答案,并进行数据清洗。

评估模型使用了answer accuracy指标,如果预测答案能够与真值匹配上,那就认为这个答案正确,最后的总体精度如下图所示:

下图是文中方法在FVQA数据集上的一些例子:

上图中的最后一个例子回答错了,作者解释因为文中已经表达出“sth. belongs to the category of Food”这一句子,使得模型非常困惑。

模型在Visual Genome QA (VGQA)上的表现:

这里作者提到如果使用真值作为图片描述的话,那模型的效果是最好的。模型在5W上的表现都是不错的,除了“what”,作者解释道因为回答这个问题非常依赖于图像描述,而他们主要考虑的是图像状态。

这里作者还进行了简化实验,设置不同的单词长度以探究精度:

随着单词长度的增加,模型的运行时间仅少量增加,作为权衡之计,最后取了段落长度为500。

最后是在Visual7W数据集上的评估,实验效果如下图所示:

一些多选式VQA的例子如下所示:

结果表明,如果文本中有相关描述,那么模型就会表现很好,例子中的“when”和“why”回答错误,就是因为图像描述中没有提到。

四、小结

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全部梭哈迟早暴富

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值