论文阅读:《Multimodal Graph Networks for Compositional Generalization in Visual Question Answering》
标题:视觉问答中多模态图神经网络的组合泛化 来源:NeurlPS 2020https://proceedings.neurips.cc/paper/2020/hash/1fd6c4e41e2c6a6b092eb13ee72bce95-Abstract.html 代码:https://github.com/raeidsaqur/mgn
一、提出问题
重点:
例如:自然语言,例如,人们可以学习新单词的含义,然后将其应用到其他语言环境中。如果一个人学会了新动词 ‘dax’ 意思可以立即类比 ‘sing and dax’ 的意思。” 类似地,在训练过程中,可能会出现训练集中未出现的元素组合(这些元素存在于训练集中)。比如训练中有红狗和绿猫,但测试中的数据是红猫。
问题:最近的研究表明,该模型不能推广到新的输入,而这些输入只是训练组合分布中未见的组合[6]。
一般使用卷积神经网络(CNN)构建多模态表示的神经架构,将整个图像处理成单个全局表示(如向量),但不能捕获这种细粒度相关性[29]。
基于神经符号VQA方法(比如NMNs、NS-VQA和NS-CL)虽然在CLEVR[28,29]接近完美分数。但即使视觉输入的分布保持不变(输入图像保持不变),这些模型也不能推广到新的语言结构组合(问题发生变化)[6]。关键原因之一是缺乏关于图像和文本信息的细粒度表示,允许视觉和语言空间的联合推理。
二、主要思想
作者提出了基于图表的多模态学习方法——,关键是要达到更好的泛化效果。图形结构可以捕获物理、属性和关系,从而在不同模式(如图像和文本)的概念之间建立更紧密的耦合。
:
考虑图像及相关问题:大绿色圆柱体后面有一个黄色橡胶立方体。要回答这个问题,首先要找到绿色的圆柱体,然后扫描它后面的空间,找到黄色的橡胶立方体。具体来说,1)虽然可能有其他对象(例如,另一个球),但关于它们的信息可以抽象,2)需要在代表黄色和立方体的视觉和语言输入之间建立细粒度的联系。
:将文本和图像表示为,两种模式之间的概念自然之间的概念更紧密地耦合,并为推理提供合成空间。具体来说,图像和文本首先被分析,对象实体和属性作为节点,关系作为边缘。然后,我们使用类似于图神经网络[16]中使用的图神经网络(message passing),相似因子矩阵在两种模式的节点之间导出(correspondence factor matrix)。最后,使用基于图的产生输入。
:
多模态输入实例:元组(s,t),S是源文本输入(如问题或标题),t是对应的目标图像。 输入:元组(s,t) 输出:以对象为中心的图片 G s = ( V s , A s , X s , E s ) G_s=(V_s,A_s,X_s,E_s) Gs=(Vs,As,Xs,Es)和 G t = ( V t , A t , X t , E t ) G_t=(V_t,A_t,X_t,E_t) Gt=(Vt,At,Xt,Et)。 其中,图中所有节点构成集合V,A是图的邻接矩阵,X是图G中所有节点V的特征矩阵,E是图G中所有边的特征矩阵。 具体的方法: 对输入文本s,使用实体识别模块将对象和属性捕获为图形节点V,然后使用关系匹配模块捕获节点的关系作为图 G s G_s Gs中的边。
对图像t,使用预训练的Mask RCNN和ResNet-50 FPN图像语义分割模块来获取对象、属性和位置坐标(x、y、z)。这些节点在图 G t G_t Gt中形成单独的节点。 在 G s G_s Gs和 G t G_t Gt中构造节点和边之后,通过使用预先训练的语言模型中的词向量嵌入(word embadding)(假设维度为d)作为文本图节点(对象、属性)和边(关系)的特征向量,从而获得特征矩阵X和E。对于图像场景图,我们使用从“解析场景”(来自Mask-RCNN通道)获得的对象和属性标签作为语言模型的输入,来获得特征嵌入。 输入:图 G s = ( V s , A s , X s , E s ) G_s=(V_s,A_s,X_s,E_s) Gs=(Vs,As,Xs,Es)和 G t = ( V t , A t , X t , E t ) G_t=(V_t,A_t,X_t,E_t) Gt=(Vt,At,Xt,Et) 输出:生成多模态向量表示 h ⃗ s , t {\vec{h}}_{s,t} h s,t(维度为2d)——它捕获源节点(文本)和匹配目标节点(图像)的潜在联合表示。 具体方法: 将两个图进行合并,其中节点的初始特征表示: h i ( 0 ) = x i ϵ X h_i^{\left(0\right)}=x_i\epsilon\ X hi(0)=xiϵ X。之后利用图神经网路的消息传递算法,通过聚合其邻居的表示来迭代更新向量节点表示。在信息传递的最后,每个节点都获得了来自周围邻居的信息。
消息传递算法:1. AGGREGATE(聚合)、2. MERGE(合并)。经过k次迭代后,节点的特征表示向量 h v ( k ) h_v^{\left(k\right)} hv(k)就可以捕获到图中k-hop邻域内的节点信息。
当进行图分类任务时,需要将点特征转化为全局特征;使用求和或者图池化的方法(READOUT函数),结合了最终迭代中的节点特征,从而获得整个图 G s G_s Gs或 G t G_t Gt的特征表示:
之后,为了将文本空间的特征投影到视觉空间,使用源图和目标图的向量局部节点表示 H G s H_{G_s} HGs和 H G t H_{G_t} HGt,计算得到一个soft correspondence matrix Φ \mathrm{\Phi} Φ(相似性矩阵):
Φ = H G s H G t T ∈ R ∣ V s ∣ × ∣ V t ∣ \mathrm{\Phi}=H_{G_s}{H_{G_t}}^T\in\ R^{|V_s|\times|V_t|} Φ=HGsHGtT∈ R∣Vs∣×∣Vt∣ 其中第i个行向量 Φ i ∈ R V t \mathrm{\Phi}_i\in\ R^{V_t} Φi∈ RVt表示图 G t G_t Gt的节点和 V s V_s Vs中任意节点的潜在相似性关系的概率分布(可以视为用来衡量两个不同图中节点之间的匹配度的似然分数)。为了得到源节点特征和目标节点特征之间的离散相似性分布,将“sinkhorn normalization”(一种正则化方法)应用于相似性矩阵,以满足矩形双随机矩阵约束(对于 ∑ j ∈ V t Φ i , j = 1 , ∀ i ∈ V s a n d ∑ i ∈ V s Φ i , j = 1 , ∀ j ∈ V t \sum_{j\in V_t}\mathrm{\Phi}_{i,j}=1,\forall\ i\in\ V_s\ \ \ and\ \ \ \sum_{i\in V_s}\mathrm{\Phi}_{i,j}=1,\forall\ j\in\ V_t ∑j∈VtΦi,j=1,∀ i∈ Vs and ∑i∈VsΦi,j=1,∀ j∈ Vt)。
最后,给定 Φ \mathrm{\Phi} Φ,可以获取一个从源(文本)潜空间 L ( G s ) L(G_s) L(Gs)到目标(图像)潜空间 L ( G t ) L(G_t) L(Gt)的投影函数:
最终联合多模态表示 h s , t h_{s,t} hs,t包括 [ h s , h ⃗ s ′ ] [h_s,{\vec{h}}_s^\prime] [hs,h s′]的concat拼接操作,其中 h ⃗ s ′ {\vec{h}}_s^\prime h s′是文本特征h_t到视觉空间上的投影。
在这个任务中,给定一幅图像和一个标题,模型必须预测该图像上下文中的标题是真(T)还是假(F)。用来测试模型处理图像空间成分变化的能力。
图像来自CLEVR数据集[28],字幕使用模板生成正确和错误样例。为了衡量模型的泛化性能,在测试期间,交换对象属性值,并评估模型是否能够在不降低性能的情况下检测到新的属性值组成。 模型: h s , t h_{s,t} hs,t可以被馈送到一个具有sigmoid激活函数的全连接层,以进行二分类分类0/1(匹配/不匹配)。 损失函数选择二元交叉熵损失函数:
CLOSURE数据集:基于CLEVR数据集生成,CLOSURE中的问题模板系统地使用原始语言构造,在生成的问题中创建看不见的组合。使用了七种不同的模板,针对五种广泛的CLEVR问题类型之一(计数、存在、数值比较、属性比较和查询)。
模型: h s , t h_{s,t} hs,t