一、简介

随着网络的发展,多模态数据(文本、图片、语单、视频等)越来越多,如何从大数据中挖掘出知识显得越来越重要。网络存储的数据种类繁多,有文本、图片、语音、视频等,如何将这些信息关联起来,更好地理解数据并从中挖掘知识非常关键。其中,图片与文本的匹配模型,研究得越来越多[1-4]。图文匹配模型对于其它多模态领域(包括:Image caption、Image synthesis、VQA等,图1)有着非常大的帮助,因为它可以计算图片与文本之间的相似度。

图1【图文匹配模型对于多模态领域的重要作用】

图文匹配模型主要研究的是如何衡量图片与文本在语义层面上的相似度。在研究初期,分别对图片和文本,使用两个不同的网络来进行学习(如图2所示):对于图片特征抽取模块,可以使用CNN网络(比如:vgg,resnet,efficientnet)提取图片特征;而对于文本特征抽取模块,可以使用RNN网络或者bert等提取文本特征;最后,通过全连接网络将图片和文本特征转化至同一个语义空间,使用余弦相似度或者欧氏距离来衡量两者是否匹配。最终,网络学习的目标是将正确的图片和文本对之间的相似度打分显著高于错误的图片和文本对。

图2【简单的图文匹配模型】

二、图文匹配模型

我们知道文本(一个句子)中存在多个单词,各个单词拥有不同的语义信息,同时单词间的顺序也存在关联,不同顺序得到的句子,其语义往往不同。图片也是如此,图片包括的对象一般不止一个,如果只用CNN网络提到的特征没办法表征每个对象的信息,所以可以考虑使用Faster RCNN [5]抽取图像中不同区域的特征(每个区域代表一个对象)。比如SCAN网络[1](图3),首先使用Faster RCNN抽取图片的各区域特征(每个区域特征为2048维的向量),文本侧使用双向GRU网络得到各个单词的特征(每个单词特征为300维向量),然后通过全连接层分别将区域特征和单词特征转化至同一个语义空间。

SCAN使用attention的思路来计算图片与文本的相似度分数。如图3所示,对于区域v_1(“小猫”对应的矩形区域),计算与句子中各个单词的相似度打分(图中单词的颜色深浅代表打分的高低),从图中可以看到该区域与单词“cat"拥有最大的相似度打分。使用各个单词的相似度打分作为权重,进行加权平均得到v_1在“文本语义”上的特征向量a1_t,然后计算v_1和a1_t的相似度打分,作为该区域的得分。其余区域也是类似,最终计算所有区域分数的平均值作为图片与文本的相似度。

这种设计思想,可以一定程度上减少无效区域的干扰,因为无效区域对于所有单词的打分均非常低,最终得到的分数也会非常低。当然,反方向计算各单词的打分也是如此,可以有效地减少无效单词的干扰。

图3 【SCAN示意图】

由于SCAN只考虑了区域的视觉特征,而并没有考虑区域的位置特征。举个简单例子来说明区域位置的重要性,如图4所示,相同的足球,在球员脚下和飞在空中,表达了完全不同的含义:前者表示运球的动作,而后者表达传球或者射门的动作。类比文本方面,相同单词在不同语境环境下可以表达出完全不同的含义,是一个道理。借此,我们团队在SCAN的基础上增加了区域位置信息,来增加区域所表征的语义信息,有效地解决了此问题,在与文本计算相似度的时候,可以提升模型的正确性,图5a)是PFAN的网络结构图,在SCAN网络的基础上,增加了对于图像区域的位置特征。图5b)详细展示了抽取位置特征的过程,我们将整个图像切割成15*15个小格子,每个小格子有一个embedding向量,计算区域的视觉特征与覆盖了的小格子(重合面积大于0则称小格子被区域覆盖)之间的相似度,将所有相似度作为权重进行加权平均得到新的embedding向量,与区域的视觉特征进行拼接得到新的区域特征。

图4【相同的区域,处于不同的位置可以表达完全不同的含义】

图5 【a) PFAN网络结构图    b) 增加位置信息的attention过程】

PFAN中使用的区域位置特征,只是表征了单个区域的语义信息,并没有考虑多个区域间的相互关联,我们仍然拿文本来类比,对于一个句子,PFAN相当于只将每个单词在句子中的位置信息(或者词性)加入至网络中,但并没有考虑各个单词间的相互作用,这无疑会带来精度的损失。我们知道不同单词之间的顺序非常重要,同样对于图像中各个区域,如何设计模型,将区域之间的相互关联信息考虑进去,可以进一步提升模型效果。

比如使用GCN网络对各个区域进行关联学习,但是考虑GCN构建比较复杂,加之平方量级的模型复杂度,会导致模型结构过于复杂,并不好学习(即模型并不一定能够收敛)。为此,我们变换了思路,设计了一个更小的网络来解决。对于文本,在调用RNN时,我们不仅可以提取各个单词的特征,也可以提取完整句子的特征,句子特征已经考虑了各单词及它们之间的相互关系;同样我们也可以提取完整图像的特征,通过增加完整图像特征与完整句子特征间的相似度,来提升模型的效果,研究了PFAN++模型 [6](图6)

图6 【PFAN++网络结构图】

随着bert在文本领域取得了显著进展,最近有越来越多的文章使用bert网络结构来解决图文匹配问题,效果有显著的提升。比如(图7):ImageBERT [3]将图像的区域特征,增加位置信息,作为“第一个句子”的embedding;文本各个单词(随机mask单词)作为第二个句子的embedding,使用bert结构将这些信息输入至transformer层,进行multi-head self-attention,最后进行两分类,判断图片和文本是否相关。其实原理上非常简单,bert本来设计目标是判断两个句子是否是前后句子,ImageBERT只是将第一个句子替换为图像,bert其它地方保持不变,就可以判断图像与第二个句子是否匹配。

当然,在损失函数方面,不仅有两分类的交叉熵损失。与bert类似,也考虑了mask单词的分类损失。ImageBERT在多个公开数据集上取得了非常大的效果提升,不仅在于模型上使用了bert,我个人觉得使用了更大规模的数据集(图片数量是前面工作的100倍)进行预训练也功不可没。

图7【ImageBERT网络结构图】

上面提到的工作(SCAN、PFAN、PFAN++、ImageBERT等)均使用了Faster RCNN或者其它的区域特征提取算法,考虑到Faster RCNN所带来的损失(即提取的区域并不一定准确)。这些工作均只使用了Faster RCNN提取的区域特征,并没有在各自的数据集上重新训练Faster RCNN(训练Faster RCNN网络非常耗时),同时Faster RCNN训练目标是做目标检测的,与这里的图文匹配问题并不一致,如果直接使用Faster RCNN的网络模型来提取区域特征,借此训练图文匹配模型,必然会带来准确性的折损。更加重要的是,Faster RCNN提取的区域只能是一个矩形区域,而对象形状通常是无规则的,矩形区域必然会带来视觉上的背景干扰。由于上面提到多个原因,需要抛开Faster RCNN模块,将区域特征提取算法模块引入至整个图文匹配模型中,一块训练,实现图片和文本的端到端训练(之前工作,均依赖于Faster RCNN提取好的区域特征后,再输入相应网络计算图片与文本的相似度打分,工程实现比较繁琐且模型预测也非常耗时)。

Pixel-BERT通过直接使用CNN网络来提取图片中的多个“区域”特征(这里的“区域”并不是一个矩形区域,而是一个无规则的像素区域),来解决上述问题。文章强调使用Faster RCNN提取的区域特征是“静态”的,很难识别各个对象的动作信息,如图8所示,如果光看各个区域(不看区域在整个图像上的位置及与其它区域的联系),我们很难判断区域内对象的“动作”。Pixel-BERT强调了像素级别特征的重要性。

图8【Faster RCNN提取的区域很难表征对象的“动作”信息】

Pixel-BERT网络结构如图9所示,直接使用CNN网络来提取像素特征。其余的网络结构与ImageBERT一致,也是将图片各像素特征和文本各单词特征,接入Transformers层,进行两分类来判断图片与文本是否匹配。

图8【Pixel-BERT网络结构图】

三、模型在公开数据集上的效果

最后,总结一下,各个模型在两个公开数据集上的对比效果。在SCAN出现之前,比如VSE++对于图片与文本计算相似度打分时,并没有像SCAN那样借助attention的打分机制,所以模型效果不好。SCAN、SCG、PFAN和PFAN++借助attention打分机制,可以有效地去掉无效的区域和无效单词信息,提升模型效果。ViLBERT、Unicoder-VL、UNITER、ImageBERT、Pixel-BERT均使用了bert思路并且增加了100倍的训练样本进行预训练,显著地提升了模型效果。

表1【在Flickr30k-1k测试集上的效果】

model image to text retrieval text to image retrieval
R@1 R@5 R@10 R@1 R@5 R@10
VSE++ 52.9 80.5 87.2 39.6 70.1 79.5
SCAN 67.4 90.3 95.8 48.6 77.7 85.2
SCG 71.8 90.8 94.8 49.3 76.4 85.6
PFAN 70.0 91.8 95.0 50.4 78.7 86.1
PFAN++ 70.1 91.8 96.1 52.7 79.9 87.0
ViLBERT - - - 58.2 84.9 91.5
Unicoder-VL 86.2 96.3 99.0 71.5 90.9 94.9
UNITER 84.7 97.1 99.0 71.5 91.2 95.2
ImageBERT 87.0 97.6 99.2 73.1 92.6 96.0
Pixel-BERT 87.0 98.9 99.5 71.5 92.1 95.8

表2【在MSCOCO-1k测试集上的效果】

model image to text retrieval text to image retrieval
R@1 R@5 R@10 R@1 R@5 R@10
VSE++ 64.6 90.0 95.7 52.0 84.3 92.0
SCAN 72.7 94.8 98.4 58.8 88.4 94.8
SCG 76.6 96.3 99.2 61.4 88.9 95.1
PFAN 76.5 96.3 99.0 61.6 89.6 95.2
PFAN++ 77.1 96.5 98.3 62.5 89.9 95.4
Unicoder-VL 84.3 97.3 99.3 69.7 93.5 97.2
ImageBERT 85.4 98.7 99.8 73.6 94.3 97.2
Pixel-BERT 84.9 97.7 99.3 71.6 93.7 97.4

表3【在MSCOCO-5k测试集上的效果】

model image to text retrieval text to image retrieval
R@1 R@5 R@10 R@1 R@5 R@10
VSE++ 41.3 71.1 81.2 30.3 59.4 72.4
SCAN 50.4 82.2 90.0 38.6 69.3 80.4
SCG 56.6 84.5 92.0 39.2 68.0 81.3
PFAN 50.8 83.9 89.1 39.5 69.5 80.8
PFAN++ 51.2 84.3 89.2 41.4 70.9 79.0
Unicoder-VL 62.3 87.1 92.8 46.7 76.0 85.3
UNITER 63.3 87.0 93.1 48.4 76.7 85.9
ImageBERT 66.4 89.8 94.4 50.5 78.7 87.1
Pixel-BERT 63.6 87.5 93.6 50.1 77.6 86.2

四、文献

[1] Lee, Stacked Cross Attention for Image-Text Matching, ECCV 2018.

[2] Wang, Position Focused Attention Network for Image-Text Matching, IJCAI 2019.

[3] Qi, ImageBERT: Cross-modal Pre-training with Large-scale Weak-supervised Image-Text Data, 2020.

[4] Huang, Pixel-BERT: Aligning Image Pixels with Text by Deep Multi-Modal Transformers, 2020.

[5] Ren, Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, CVPR, 2015.

[6] Wang, PFAN++: Bi-Directional Image-Text Retrieval with Position Focused Attention Network, in second review.

如果,腾讯云的一块硬盘被抽出……

走近鹅厂专家 | Ta们靠什么成为专家?

如何通过画像洞察用户价值点

文章来源于腾讯云开发者社区,点击查看原文