Graph Structured Network for Image-Text Matching
1 Introduction
图像文本匹配往往只是学习了图像文本对中具有较为粗糙的一致性的内容而忽视了细粒度的细节。本文提出的GSMN网络结构基于节点级别的匹配能够通过融合邻居节点的关联来推到细粒度的一致性。实验显示本方法在Flickr30K和MSCOCO上的Recall@1提升了分别7%和2%。
![image-20211010195533553](https://gitee.com/govvc/images/raw/master/image-20211010195533553.png)
2 Method
![image-20211010195649122](https://gitee.com/govvc/images/raw/master/image-20211010195649122.png)
如上图所示,先提取image和text的特征,然后构建visual和textual图,随后学习节点的相关性在传递到另据节点推导细粒度的关联。
2.1 构图
本文直接使用现成的CoreNLP,它不仅能够解析句子中的物体,关联和属性,还能够解析它们的语义独立性,比如:“A brown dog bite a gray
dog ear”, “A”, “brown”是第一个物体“dog”的属性,“bite”是关联。因为它们都描述了同一个物体,所以它们是语义相关的。将每一个单词都看作一个图结点。如果它们之间语义不独立,则认为他们之间有边,然后计算相似度矩阵
![image-20211010200600899](https://gitee.com/govvc/images/raw/master/image-20211010200600899.png)
类似的,visual graph的node由Fash-RNN检测的突出的图像区域构成。
2.2 多模态图匹配
对于texttual graph G 1 = ( V 1 , E 1 ) G_1=(V_1,E_1) G1=(V1,E1) 和visual graph G 2 = ( V 2 , E 2 ) G_2=(V_2,E_2) G2=(V2,E2) ,目的是匹配两个图,计算它们的全局相似度作为image-text对的全局相似度。灵textual graph为 U a ∈ R m x d U_a\in{R^{mxd}} Ua∈Rmxd ,visual graph V β ∈ R n x d V_\beta\in{R^{nxd}} Vβ∈Rnxd ,m,n表示节点数量,d为维度。
2.2.1 Node-level Matching
先计算 U α V β T U_\alpha V_\beta^{T} UαVβT ,随后接一个softmax函数,再整合所有的visual node作为权重,
![image-20211010201730464](https://gitee.com/govvc/images/raw/master/image-20211010201730464.png)
![image-20211010202028042](https://gitee.com/govvc/images/raw/master/image-20211010202028042.png)
2.2.2 Structure-level Matching
使用GCN整合邻居的匹配vector来更新每个节点的匹配的vector。
![image-20211010202508722](https://gitee.com/govvc/images/raw/master/image-20211010202508722.png)
N i N_i Ni为第i个邻居节点, W e W_e We为边的权重。
短语匹配可以通过传播相邻节点对应来推断,这可以用于推理图像-文本对的总体匹配得分,于是本文将卷积向量输入MLP,考虑所有短语的一=已学习到的对应关系,并推断全局匹配分数。
![image-20211010202839432](https://gitee.com/govvc/images/raw/master/image-20211010202839432.png)
![image-20211010202956627](https://gitee.com/govvc/images/raw/master/image-20211010202956627.png)
2.2.3 Objective Function
典型的triplet loss
![image-20211010203247995](https://gitee.com/govvc/images/raw/master/image-20211010203247995.png)
3 Conclusion
![image-20211010203455721](https://gitee.com/govvc/images/raw/master/image-20211010203455721.png)
Flicker30K
![image-20211010203354904](https://gitee.com/govvc/images/raw/master/image-20211010203354904.png)
MSCOCO
![image-20211010203439603](https://gitee.com/govvc/images/raw/master/image-20211010203439603.png)
有结果可发现,在构图时采用稀疏图和稠密图互补,能提高精度。通过GCN来挖掘具有语义关联性的短语和图块的细粒度信息,能够在一定程度上提升网络的性能和精确度。
近来一直在研究代码,拟采用同样的GCN模块来进行研究,立足点:以往的工作往往忽视了句子和图像内部相邻词语和region的细粒度信息。
本文在提取文本和图像特征时未采用Self-Attention来进行优化,可以参考SGRAF一文的特征提取结构进行工作。