【论文】VQA:学习可解释的可视问题解答的条件图结构
目录
五、Prediction layers and Loss function
摘 要
Visual Question answering is a challenging problem requiring a combination of concepts from Computer Vision and Natural Language Processing. Most existing approaches use a two streams strategy, computing image and question features that are consequently merged using a variety of techniques. Nonetheless, very few rely on higher level image representations, which can capture semantic and spatial relationships. In this paper, we propose a novel graph-based approach for Visual Question Answering. Our method combines a graph learner module, which learns a question specific graph representation of the input image, with the recent concept of graph convolutions, aiming to learn image representations that capture question specific interactions. We test our approach on the VQA v2 dataset using a simple baseline architecture enhanced by the proposed graph learner module. We obtain promising results with 66.18% accuracy and demonstrate the interpretability of the proposed method. Code can be found at github.com/aimbrain/vqa-project.
视觉问题回答是一个具有挑战性的问题,需要结合计算机视觉和自然语言处理。大多数现有方法使用两个流策略,计算图像和问题的特征,然后使用各种技术将其融合。然而,很少有方法使用可以捕捉语义和空间关系的更高级的图像表示。本文提出了一种新的基于图的可视化问答方法。我们的方法将图学习器模块(它学习输入图像的特定问题的图表示)与最近的图卷积概念相结合,旨在学习捕获问题相关的图表示。我们在VQA v2数据集上使用一个简单的 baseline architecture 测试我们的方法,该架构由提出的 graph learner module 增强。我们获得了令人满意的结果,准确率为66.18%,证明了该方法的可解释性。
一、模型结构图
本文将VQA问题建模为分类问题,其中训练集中的每个答案都是一类。改模型的核心是 Graph learner,它的输入是经过 Question encoder 编码得到的embedding和一组带有相应图像特征的对象边界框作为输入。图学习器模块学习以问题为条件的图像的图表示,并为场景中对象之间的相互关系建模。我们使用这种图形表示法,通过 Spatial graph convolutions,Max pool 和 Dense layer,来学习受其相邻接点影响的图像特征。
二、Computing model inputs
模型的第一阶段是计算 Graph learner module 的输入,question embedding 和 image embedding。对于 image embedding ,模型通过一个 Object detector 检测出图像中的K个对象,并对每个对象的 bounding box 生成一个embedding(是特征图中该bounding box 特征的平均值),每个边界框作为图的结点。对于question embedding,模型使用预训练的词嵌入将问题转换为可变长度的嵌入序列。然后,使用带有GRU单元的动态RNN,将单词嵌入的序列编码为单个问题嵌入。
三、Graph learner
Graph learner module 是该模型的核心,该模块生成的以问题为条件的图表示直接影响到 Spatial graph convolutions module 的训练。该模块的目标是输出一个图结构 ,其中
是需要学习的边的集合,A [N,N]是相应的邻接矩阵。每一个
(
)对应于图像中的一个对象。模型需要学习到邻接矩阵 A,以便每个边都以问题编码q为条件。因此,需要对特征向量之间的相似性及其与给定问题的相关性进行建模。首先,将 question embedding q 与 N 个视觉特征
相连接,然后计算联合嵌入:
, n=1, 2, 3,...,N
其中 是一个非线性函数。然后将联合嵌入
组成矩阵
,则可以为具有自环的无向图定义邻接矩阵为:
,从而
。这样的定义不对图稀疏度施加任何约束,因此可以产生完全连接的邻接矩阵。这不仅是计算上的问题,而且绝大多数VQA问题只需要关注图节点的一小部分。学到的图结构将是后续图卷积层的骨干,其目的是学习以最相关,特定于问题的邻居为条件的对象特征的表示。这需要一个稀疏的图形结构,关注图像最相关的方面。为了学习每个节点的邻接节点,我们采用一种排序策略,如下所示:
其中topm返回输入向量的m个最大值的索引。换句话说,给定节点的邻接节点将与它具有最强连接的节点相对应。
四、Spatial graph convolutions
改模型为每一个顶点定义了一个伪坐标(pseudo-coordinate)函数,该函数返回一个极坐标向量
,描述顶点 i, j 对应的边界框中心点的相对位置。在实验中,作者将笛卡尔坐标和极坐标都视为高斯核的输入,并观察到极坐标的效果明显更好。作者猜测这是因为极坐标将方向(θ)和距离(ρ)分开,从而提供了两个分离的因子来表示空间关系。
图CNN的一个基本步骤和挑战是定义补丁运算符,以描述对不规则邻域结构具有鲁棒性的每个相邻节点的影响。文中使用一组具有可学习均值和协方差的K个高斯核来实现,其中均值可解释为伪坐标中的方向和距离。作者为每个高斯核获得一个核权重,这样,对于结点
的第 k 个高斯核的补丁运算符定义为:
其中 ,
表示所描述的顶点的邻域,考虑一个给定的顶点
,我们可以把补丁运算符输出看作相邻特征的加权和,其中高斯核的集合描述了每个相邻特征对卷积运算输出的影响。
作者调整面片运算符,使其包含一个附加权重因子,该权重因子取决于生成的图的边:
其中,其中
是缩放函数(此处定义为所选邻接矩阵元素的softmax)。这种更一般的形式意味着顶点之间传递的消息的强度还可以通过除空间方向之外的信息来加权。对于我们的用例来说,这可以解释为网络在回答一个问题时,应该对两个节点之间的关系应该给予多少关注。因此,网络学会了以问题为条件,以成对的方式关注视觉特征。
最后,我们将顶点 处卷积运算的输出定义为K个核的连接:
其中 是可学习权重的矩阵 (the convolution filters),
是输出卷积特征的选定维数。最后得到图表示:
。
五、Prediction layers and Loss function
经过上述步骤,我们得到了卷积图表示,接下来就可以进行答案预测了。本文通过跨节点维度的max-pooling layer来计算图hmax的全局向量表示。选择这个操作是为了得到一个排列不变的输出,为了简单起见,所以重点是图结构的影响。这个图的向量表示可以被认为是图的高度非线性压缩,其中该表示已经被优化用于回答当前的问题。然后,我们通过简单的逐元素乘积合并问题q和图hmax encodings。最后,我们通过具有ReLU激活的2层MLP计算分类对数。
本文使用一个带有软目标分数的sigmoid激活函数,该函数已被证明能产生更好的预测。它允许考虑每个问题的多个正确答案,并提供关于每个答案可靠性的更多信息。假设每个问题与提供的n个有效答案相关联,我们将每个类别的软目标分数计算为,如果答案不在顶部答案中(即所考虑的类),则它在目标向量中没有相应的元素。然后,我们计算多标签软丢失,这只是目标矢量中每个元素的二进制交叉熵损耗的总和。:
其中 y 是logit vector。
六、Results
图3:参数探索的结果。报告了每种问题类型的VQA分数,其中包含内核数(K)和邻域大小(m)的各种设置。左图显示了m的变化,同时保持K = 8,右图显示了k的变化,同时保持m = 16。
表1:VQA 2.0标准测试集结果-与基线和最新技术水平的比较