专栏首页腾讯大讲堂的专栏文本+视觉,跨模态给你带来不一样的视角

文本+视觉,跨模态给你带来不一样的视角

一、简介

       随着网络的发展,多模态数据(文本、图片、语单、视频等)越来越多,如何从大数据中挖掘出知识显得越来越重要。网络存储的数据种类繁多,有文本、图片、语音、视频等,如何将这些信息关联起来,更好地理解数据并从中挖掘知识非常关键。其中,图片与文本的匹配模型,研究得越来越多[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们靠什么成为专家?

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

本文分享自微信公众号 - 腾讯大讲堂(TX_DJT),作者:杨皓

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 产品经理十类常用工具

    LOL中很经典的一句话“虽然是辅助,但我也有一颗ADC的心!”,同样,虽然一直在做运营的工作,但同样也有一颗产品经理的心,站长试水做了一个《产品经理十类常用工...

    腾讯大讲堂
  • 腾讯设计师告诉你,如何从用户体验角度将文案与视觉融合

    关于作者 刘韬,腾讯CSIG\企业产品部\企业产品设计中心\企业产品设计一组 企业产品设计一组员工 导语I在设计网站的过程中,设计师们通常将精力投入在框架结构...

    腾讯大讲堂
  • 以体验为中心的性能优化

    首先,这不是一篇讲述关于产品设计与用户体验,而是如何进行产品性能优化的文章。如果你具有一定技术背景,并且对互联网产品性能优化感兴趣,这篇文章将以QQ音乐的性能优...

    腾讯大讲堂
  • 个人如何免费注册 PowerBI 账号(终极说明)

    这本来并不是一个问题,但在实际中,却成了大问题。这里做一个统一说明。 下面分两种情况做统一说明。

    BI佐罗
  • 使用 Kind 构建离线集群安装包

    Kind(Kubernetes in Docker) 是一个 Kubernetes 孵化项目,它使用 Docker 为节点进行 Kubernetes 的快速部署...

    崔秀龙
  • 使用 Kind 构建离线集群安装包

    Kind(Kubernetes in Docker) 是一个 Kubernetes 孵化项目,它使用 Docker 为节点进行 Kubernetes 的快速部署...

    CNCF
  • Kubernetes实践踩坑系列(一).应用管理的难题

    总体而言,我们面临的挑战就是:如何基于 K8s 提供真正意义上的应用管理平台,让研发和运维只需关注到应用本身。

    yoyofx
  • 开始使用MarkDown

    mwangblog
  • 干货 | ES安全searchguard落地实践

    作者简介 江榕,携程信息安全部高级信息安全工程师,目前主要负责公司运维安全日志分析平台搭建、参与日常运维安全事件响应、参与运维安全评审。 1、背景 随着大数据技...

    携程技术
  • 币币交易系统开发,交易所开发,c2c交易平台开发

    币币交易系统主要是针对数字资产和数字资产之间的交易,以其中一种币作为计价单位去购买其他币种 。币币交易系统规则同样是按照价格优先时间优先顺序完成撮合交易。但币币...

    电微13823115027

扫码关注云+社区

领取腾讯云代金券