论文笔记整理:吴杨,浙江大学计算机学院,知识图谱、NLP方向。
在视觉问题回答中,较为复杂的问题经常需要多步骤的推理才能够回答,比如说“What isplaced next to the bus on the right of the picture?”这样的问题,我们需要先根据(bus, on theright of, picture)这组关系找到bus on the right这个复合物体,然后继续去寻找next to [buson the right]这个物体最终来解决这个问题。而本文则提出了一个VQA的推理链(Chain of Reasoning, CoR),能够充分利用图片和问句的信息对复杂问题中的关系和复合物体的寻找,并取得了非常好的效果。本文的主要贡献在于:
提出了 VQA 推理链方法,能够动态的产生新的关系和复合物体以对问题进行推理
在 4 中主要的数据集上都产生了state-of-art的效果。
对CoR的中间过程产生的复合物体进行了可视化
(1) 概述
VQA 的一种通用解法是将图片和问题映射到同一个向量空间后使用element-wise 乘法或者 MLP 等等转化成分类问题。本文的过程也是这样。图片经过RCNN转化为m个初始物体的向量表示之后,我们将这些物体两两组合起来,就可以获得m*m个关系的向量表示,然后利用问题的embedding从这m*m个关系向量中,产生出新一轮的m个复合物体,这样一直循环下去最终得到问题的答案表示的那个复合物体。也就是说,本文和常规的想办法将问题解构成简单问题的思路不同,反而是将已有的可能是答案的物体进行组合,再用问题去挑选和进一步组合这些物体。
(2) Data Embedding 部分:
将问题通过GRU转化成为维度的向量。将图片通过RCNN转化为维度的向量,其中V中保存着m个初始物体的向量表示
(3) CoR 部分:
第一步:产生Attention和本轮输出:
将图片转成的向量V作为第一轮CoR的复合物体(橘黄色部分),将其向量映射到Ds维度,将问题向量映射到Dp维度,然后分别采用2个变换矩阵将他们映射到同一维度Df,并使用element-wise乘法乘起来产生m维Df的向量(紫红色部分),上述过程重复K次,(Mutan方法)对得到的紫红色向量加到一起,经过MLP最终产生m维的attention(黑白灰3维部分)。总的来说,本步骤的目的是计算问题对复合物体的Attention。并准备产生m*m个关系embedding。最后,用这个Attention对复合物体进行操作就可以产生本轮的输出了。其中各部分的公式表示如下:
其中,Pt,St表示初步把问题和复合物体转化到的embedding。Ft表示将他们映射到同一维度并进行element-wise产生紫红色节点的部分。At表示获得的Attention,Ot表示本轮的输出。
第二步:产生m*m个关系的embedding:
这一步中,我们首先将问题转化成为两个向量(黑白灰很长的向量),然后分别用该向量对m个复合物体进行element-wise相乘,并将第一个作为关系向量的m*1维行向量,第二个作为1*m维列向量,将这两个向量对应项相加合并成为m*m维向量作为关系向量(金黄色的部分)。涉及的公式如下:
其中Gl为第一个问题向量,Gr为第二个问题向量,Rij为最终的m*m维关系向量。
第三步:产生新的m个复合物体embedding:
利用第一步得到的Attention,对产生的m*m维关系向量进行操作得到新的m个复合物体(这里论文原本打算直接保留m*m个向量送到下一轮,但是这样会导致复杂度成指数级上升)涉及到的公式为:
(4) 决策部分:
对于CoR部分产生的T个输出向量Ot,我们将之连接起来成为新的长向量,再将之和问题映射到同一维度,进行Element-wise乘法,最后经过矩阵变换+softmax成为最终每个类别的概率。涉及的公式如下:
这里的O*表示长向量,H表示Element-Wise得到的向量,a表示最终的概率向量。
(4) 训练部分:
训练的时候,主要是确定训练集的概率向量。如果对于一个Q对应一个A的训练集,显然我们取A那一维度的值为1,其它都取0即可。但VQA数据集的答案是由多个人标记的。标记的结果可能不同。因此需要平均一下:
对于最终的loss我们用K-L散度计算:
(1) 在各数据集上取得的成果:
从上表中可以看出,在几乎所有的数据集上,模型都有提升,有些问题类型的提升不是很明显,但在Color和Num这两类问题的提升较大,有将近6个百分点。
(2) 可视化:
这一部分中,本文对CoR过程中产生的复合物体进行了可视化,可视化的方法是遍历1105904×36个方框,并对方框中图片的内容计算其与复合物体的相似度。其中红色方框和蓝色方框分别是Attention中权重最大的两个复合物体
其中前三个问题都得到了很好的回答,而且复合物体寻找也是正确的,最后一个判断错误的原因可能是因为该问题太复杂,而CoR的跳数在本文中取了3跳。可能无法解决该问题。
本文提出了VQA系统中利用推理链CoR解决多跳推理问题的方法,通过将图片中的物体进行多步的组合形成复杂的物体,并利用问题对这些物体进行选择和重新组合,最终取得答案需要的那些物体从而解决问题的方法。
OpenKG
开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。
点击阅读原文,进入 OpenKG 博客。