Paper Reading  | Visual Question Answering

[读论文]Ask Me Anything: Free-form Visual Question Answering Based on Knowledge from External Sources

Metadata

文章标题:Ask Me Anything: Free-form Visual Question Answering Based on Knowledge from External Sources
作者:Qi Wu, Peng Wang, Chunhua Shen, Anthony Dick, Anton van den Hengel
发表于:CVPR 2015
下载链接:https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Wu_Ask_Me_Anything_CVPR_2016_paper.pdf

Intro

这篇文章提出了一种VQA的方法: 结合图片内部的内容表示(原文:internal representation of the content of an image)信息,和外部的Knowledge Base来回答broad range的image-based questions。

上面加粗说的“内容表示”。是说,做这个任务并不是直接把图片的特征encode到系统中。而是首先从图片抽取representation of the content of an image。

下图是一个case:

Fpw3uu_AAaX6HbmMnCtPNkgNOQ43

传统的Vision-to-Language有使用CNN encode image然后用RNN encode并generate text的(文章中列举了很多这样的例子)。比如说可以用CNN训练一个object recognition,然后用word embedding在大规模text corpora上训练的。

而VQA要比图像标注难的多,因为它需要的很多信息本身并没有呈现在图片上,而是出自common sence,或者对图像本身的knowledge。

所以这篇文章提出了用从外部知识库中抽取的information来自动生成图像的description,继而生成答案。下图是整个流程框架:

FoAn9y7zbxlL-vP-3BeQ_l3qiZHJ

整个pipeline首先处理图像的特征信息。然后输入到一个encoder-decoder模型中。其中图像信息处理部分使用一组生成的caption作为图像描述,将每一个caption编码之后取average pooling,作为输入的第一部分。然后用一份CNN模型来预测这张图片的的一组attributes。这些attributes包含了很多high-level的concepts,包括objects,scenes,actions,modifiers等等。这部分数据经过要给attention之后作为输入的第二部分。然后取attention后的top5个attributes作为query从knowledge base中做query,然后能得到与这五个attributes相关的一些document(例如dog,query得到dog的description)。将这些document进行encode,作为输入的第三部分。

将这三部分输入encode到一起,然后整体作为encoder-decoder的第一个输入。然后将问题连续输入进模型进行encode。然后在最后一个输入(通常为问号)之后,开始decode答案。

Details

下面讲讲各个部分的细节

Attribute-based Image Representation

这个模块的任务是输入图像,输出一组attributes。这里用的数据是MS-COCO,attributes可以是任意的一个POS,包括object names(名词),motions(动词),或者properties(形容词)。

作者将这个attribute prediction任务formalize成一个multi-label classification问题。作者follow了Wei et al[1]的工作,设计了一个region-based multi-label classification框架。它使用特定数量的sub-region proposal作为输入,然后使用一个shared CNN与各个proposal相连接,然后CNN从不同proposal的输出被aggregate在一起,然后通过一个max pooling,最终从attribute vocabulary中产生一个final prediction。

论文中的prediction model是经过pre-trained的(VGGNet-16 on ImageNet),然后又在MS COCO的image-attribute training data上做了一个fine-tune。最终,这个model产生一个\(V_{att}(I)\)的prediction vector。

Caption-based Image Representation

这部分是通过直接将图像的caption转化成为特征数据的模块。文章使用的是Wu et al[2]提出的使用LSTM利用high-level attribute生成caption的model。这个model可以使用上一个模块产生的\(V_{att}(I)\)作为输入,然后输出Caption。这篇文章中使用了beam search算法,产生了5个不同的caption。

然后在产生caption的过程中,当生成最后一个caption字符后,将此时的LSTM的hidden-state作为其内容的representation。然后将这5个hidden-state vector进行average-pooling,最终获得了一个512-d的vector \(V_{cap}(I)\)来表示这张图片caption的信息。

Relating to the Knowledge Base

这里使用的外部信息源是DBpedia。DBpedia使用RDF三元组表示,其中的数据可以通过SPARQL查询。

给定一张图片和它对应的predicted attributes(top-5 most strongly predicted attribuges)来产生DBpedia queries。然后从数据库中取检索“comment”字段。下图是一个query和结果的样例:

FlxvHkNS_z2XBmu2-5OpseRRCvtb

在得到Comment的文本之后,使用Doc2Vec来抽取其中的semantic meanings,最后会产生一个fixed-length feature representations。文章使用了100,000个document,然后将这5个返回的paragraphs拼成一个paragraph,并训练了一个500维的向量\(V_{know}(I)\)。

A VQA Model with Multiple Inputs

在处理好所有的输入数据之后,将所有数据通过下面的公式拼在一起,然后送入到后续的encoder-decoder模型来将question编码,同时产生answer:

\begin{align}
x_{initial}=[W_{ea}V_{att}(I),W_{ec}V_{cap}(I),W_{ek}V_{know}(I)]
\end{align}

其中\(W_{ea}, W_{ec}, W_{ek}\)是三个trainable的embedding weights。

而整个model的cost function:

\begin{align}
C&=-\frac{1}{n}\sum_{i=1}^N\log P(A^{(i)}|I,Q)+\lambda_{\theta}\cdot \Vert\boldsymbol{\theta}\Vert_2^2 \\
&=-\frac{1}{n}\sum_{i=1}^N\sum_{j=1}^{l^{(i)}+1}\log p_j(a_j^{(i)})+\lambda_{\theta}\cdot \Vert\boldsymbol{\theta}\Vert_2^2
\end{align}

其中\(N\)是training sample数量,\(n^{(i)}\)和\(l^{(i)}\)分别是第\(i\)个问题和答案的长度。\(p_t(a_t^{(i)})\)是LSTM Softmax层在输入第\(i\)个输入样本之后的的激活值。后面的\(\lambda_{\theta}\cdot \Vert\boldsymbol{\theta}\Vert_2^2\)则是正则项

Experiments

实验使用了两个基于MS-COCO的VQA数据集。

第一个Toronto COCO-QA数据集包含了78,736个training sample和38,948个testing sample,这些数据是从117,6984张图片中产生的。其中包括了四类问题:relating to the object, number, color和location。答案都是single-word的。所有QA pairs都是自动从人为标注的image description中转换来的。

另一个数据集则是VQA,这个数据集比前面的大得多,它包含了614,163个question和6,141,630个answer(来自于204,721 MS-COCO的图片)。下面是数据集的对比:

Fsg4TmGzN3t7noPLvJSZDJKuyYuw

下面则是和baseline对比的性能测试:

FprbTwAmij9X0yWXQv2AtMwiRd2S

下面是在各个问题类别上的性能测试(Toronto COCO数据集):

FsKTIPhWYOOEQ42N96i2MXfwjBGu

下面是在各种问题类型上的测试(VQA数据集):

FoWIYLIMtDRWluGp1C4JUQggiPCB

References

[1] Y. Wei, W. Xia, J. Huang, B. Ni, J. Dong, Y. Zhao, and S. Yan. CNN: Single-label to multi-label. arXiv:1406.5726, 2014. 3