一、 图卷积做视觉、语言特征融合

这篇文章的重点是做图像内物体和句子单词的细粒度对齐,图像中物体和句子单词被做成同维度的特征表示,假设每张图像被表示成F=d∗m,取图像中m个物体,每个被表示成d维;每个句子被表示成G=d∗n,保留n个单词,每个单词d维。
图卷积的使用关键在于邻接矩阵A怎么构造。这里采用的方法是利用以下变换:
A=[0FTGGTF0]
即将图像中每个物体、句中每个单词均视为图中的一个节点,通过矩阵相乘的方式使得图像表示和文本表示有交互,得到一个维度n+m的对称邻接矩阵。

有了邻接矩阵A之后再继续求得节点度对角阵D。之后,图卷积中需要的两部分输入分别来自原始的图文特征拼接H0=(m+n)∗d,以及矩阵adj=D−0.5AD−0.5。
MFB做视觉、文本特征融合

m维视觉特征和n维文本特征可以很容易地做以上双线性变换得到特征值zi,Wi∈Rm∗n,要得到z∈Ro的最终特征则需要o个权值矩阵Wi,即W=[W1,W2,...,Wo],进一步矩阵分解,矩阵Wi可以由两个低秩矩阵Ui∈Rm∗k和Vi∈Rn∗k来表示。微问题转化成要得到输出特征z∈Ro,需要学习到两个三阶的张量矩阵U∈Rm∗k∗o和V∈Rn∗k∗o,通过简单的reshape操作,不难将矩阵U和V形式化成二维矩阵即Uˉ∈Rm∗ko,Vˉ∈Rn∗ko,那么视觉特征x∈Rm和文本特征y∈Rn经过以下式子的双线性变换,并作sumpooling得到最终的z∈Ro:
z=SumPooling(UˉTx∘VˉTy,k)
其中∘是Hadmard product,即逐元素乘积。SumPooling使用大小为k的池化核,步长为k,做求和池化。
图示如下:
