写在前面
大规模图像-文本对的视觉语言预训练(VLP)在跨模态表征的学习方面取得了快速的进展。现有的预训练方法要么直接将特征级的图像表示和文本表示连接起来作为single-stream Transformer的输入,要么使用two-stream Transformer将图像-文本表示在高级语义空间对齐。
在真实的图像-文本数据中,一部分图像-文本对很容易在两种模态上对齐语义,而另一部分图像-文本对需要进行更高级语义上的对齐。因此,在本文中,作者提出了一种新的预训练方法SemVLP,它将图像和文本表示之间的低层和高层语义联合起来。
该模型采用两种方式进行迭代预训练:通过使用带有可插可拔的跨模态注意模块 的共享Transformer网络(去掉跨模态注意模块为single-stream Transformer;插上跨模态注意模块为two-stream Transformer),single-stream预训练用于对齐低级语义,two-stream Transformer预训练用于对齐高级语义。
作者在四个的视觉语言理解任务上进行了大量实验,证明了SemVLP在跨模态表示与不同语义粒度对齐方面的有效性。
2
论文和代码地址
SemVLP: Vision-Language Pre-training by Aligning Semantics at Multiple Levels
代码语言:javascript复制论文:https://arxiv.org/pdf/2103.07829v1.pdf
代码:未开源
3
Motivation
受各种NLP任务中预训练语言模型的成功启发,最近关于视觉语言预训练(VLP)的研究证明了能够通过利用大规模图像-文本对学习不同模态之间的语义对齐,而在各种下游视觉和语言(V L)任务上实现SOTA性能。
现有的VLP模型基本上遵循多层Transformer,并使用自注意机制学习大规模跨模态数据上的语义对齐。就跨模态对齐的粒度而言,有两种不同的模型结构来对齐跨模态表示。
单流(single-stream)Transformer架构假设两种模态背后的底层语义简单明了,因此简单地将低层语义空间中的图像区域特征和文本特征连接起来,以便以直接的方式进行融合 。
双流(two-stream)Transformer架构首先使用单模态Transformer分别学习图像和句子表示的高级抽象,然后将两种模态与跨模态Transformer结合起来 。
不同模态之间的语义差异一直被视为跨模态研究中最重要的问题之一。在真实的图像-文本数据中,作者观察到,一些图像-文本对很容易在两种模态上对齐简单语义,而其他图像-文本对可能需要在更高级别的抽象后对齐。
如上图所示,T1的标题更侧重于具有粗略语义的图像概述,而T2的标题则更侧重于关于图片细节的描述。对于相同图像的不同标题,语义粒度跨越不同的级别,在多个层次上对齐语义能够更加深入的理解现实世界的图文数据。
在本文中,作者提出了一种VLP预训练结构SemVLP,它在多个语义层次上联合对齐图像和文本表示。具体而言,与单流和双流Transformer架构不同,作者使用共享Transformer网络和可插拔的跨模态注意模块,用于低级和高级语义对齐,如上图所示。
对于低层语义对齐,可以直接将连接的图像区域特征和文本特征,输入到共享Transformer网络进行单流预训练。对于高级语义对齐,作者引入了一种新的双流Transformer网络,通过使用共享Transformer分别编码图像和文本部分来提取抽象的语义,并在跨模态交互注意模块进行多模态信息的融合。
预训练过程以迭代的方式进行,以在两个语义级别上对齐图像文本数据。在迭代预训练阶段,共享Transformer网络被迫在多个层次上对齐语义,这使得训练后的模型能够适应不同的图像-文本对。通过这种方式,作者能够同时利用单流结构和双流结构进行跨模态融合,以允许不同的预训练风格相互调节。
4
方法
4.1. 模型结构
SemVLP的结构如上图所示,作者提出了一个共享的双向Transformer编码器,其中可插拔的跨模态注意模块用于在多个层次上进行对齐语义 。通过共享模型参数,SemVLP可以灵活地在单流和双流预训练结构之间切换,使得输入文本和图像以不同的语义级别编码。
通过这种方式,作者将两种典型的预训练结构转换为一种更紧凑的结构,使之能够适用于低层和高层语义对齐。为了更好地理解现实世界中的图像-文本对,作者迭代地对这两种设置进行预训练。
4.1.1. Input Embeddings
SemVLP模型的输入是图像及其相关句子。每个图像表示为对象序列,每个句子表示为单词序列。经过多个语义层次的跨模态融合和对齐,SemVLP模型能够从图像文本输入中生成语言表示、图像表示和跨模态表示。
Sentence Embeddings
本文采用与BERT相同的方法,该方法使用WordPiece tokenizer将输入句子转换为子词token。输入标记的表示为,其中和是BERT中的特殊token。通过结合原始单词嵌入、段嵌入和位置嵌入,生成每个token的最终嵌入。
Image Embeddings
作者使用预训练的目标检测器Faster R-CNN从图像中提取对象级图像特征,其中每个对象表示为2048维特征向量。为了捕获对象的空间信息,作者还通过一个4维向量对每个对象的位置特征进行编码,其中和表示左下角和右上角的坐标,而W和H表示输入图像的宽度和高度。
然后,作者将和concat起来形成位置敏感的对象特征向量,并利用线性投影将其进一步变换为,以确保其具有与单词嵌入相同的向量维数。与句子嵌入中的token相似,作者还添加了一个token来表示整个图像的表示,并将其添加到对象序列的开头。
4.2. 共享Transformer编码器
考虑到句子嵌入和图像区域嵌入,作者使用一个带有可插拔跨模态注意模块的Transformer编码器来更好地学习多语义层次的跨模态表示。完整的编码器是一个带有L个块的模型,其中第个块由一个自注意模块、一个非线性函数和一个可插拔的交叉模式注意模块组成,其中上标表示层id。
4.2.1. 低层语义对齐
为了对齐底层语义,作者直接将图像和文本嵌入特征concat起来作为SemVLP的单流模式的输入,该模式由共享自注意模块和非线性FFN层组成。首先初始化,编码过程可表述如下:
其中和分别是第层的文本和对象表示。这样,就可以在一个低层次的嵌入空间中获得图像和文本表示之间的充分交互。最终,就得到了和,即SemVLP编码器最后一层的所有对象输出和文本输出的表示。
4.2.2. 高级语义对齐
对于高层语义对齐,作者采用SemVLP的双流模式,其中文本和图像对象首先分别编码,然后在高层语义空间融合。它由共享自注意模块、跨模态注意模块和非线性FFN层组成。
为了能够使用SemVLP模型分别对文本和图像表示进行编码,作者采用了双编码器架构,将文本编码器和图像编码器的自我注意模块和FFN层的所有参数绑定在一起,其中,跨模态注意模块用于进一步融合跨模态表示。
与以前的Transformer编码器-解码器架构不同(以前的结构将交叉注意模块引入到解码器的所有块中),本文只在上面部分的块中引入交叉模态注意模块,以便更好地融合高层语义空间中的交叉模态表示。具体来说,首先初始化和。双流模式的编码流程可以表示如下:
其中表示引入跨模态注意的层索引。最后,就可以得到图像对象和文本的输出表示,和。使用和,我们可以使用一个带有softmax层的简单网络来执行后续的预训练任务。
4.3. 联合训练
4.3.1. 预训练任务
Masked LM Prediction
任务设置与BERT中的基本相同,作者随机mask文本中15%的token,并要求模型使用输出文本表示预测这些mask词。对于不同的预训练模式,要么借助视觉通道预测mask词以解决歧义(单流模式),要么仅从文本通道预测mask词以增加任务难度(双流模式)。
Masked Object Prediction
类似地,作者通过随机掩蔽对象对视觉模态进行预训练,即用零掩蔽对象特征(object features are masked with zeros)。作者随机mask 15%的图像对象,并要求模型使用输出对象表示预测这些mask对象的属性。为了获取更多的对象级语义,作者遵循LXMERT中的对象预测任务,并执行两个子任务:ROI特征回归 和检测标签分类 。
Image-Text Matching (ITM)
该任务设置与LXMERT中的任务设置几乎相同,即随机抽取50%不匹配的图像-文本对和50%匹配的图像-文本对,并训练分类器预测图像和句子在表示(单流模式)和(双流模式)上是否相互匹配。不同之处是,在对不匹配的图像-文本对进行采样时,作者没有强制执行MLM预测和对象预测的损失。
Image Question Answering (QA)
作者还将图像问答任务视为分类问题,并使用LXMERT中的图像QA数据对模型进行预训练,从而获得更好的跨模态表示。对于单流模式,作者在表示的基础上构建分类器,对于双流模式,作者在表示的基础上构建分类器。
4.3.2. 预训练策略
对于低水平和高水平的语义对齐,SemVLP通过多个预训练任务进行预训练,并将所有这些任务损失以相等的权重相加。为了在多个级别上联合对齐语义,给定一个mini-batch的图像-文本对,50%的时间使用低级语义对齐更新模型,而50%的时间使用高级语义对齐更新模型。
这样,对于SemVLP的每一次更新,模型都在多个语义层次上进行预训练,以便更好地对不同的图像文本数据进行建模。
5
实验
5.1. 下游任务的性能
上表展示了在不同下游任务上,本文方法和其他预训练模型的对比。
5.2. 不同语义水平的预训练
Analysis on Various Pre-training Architectures
上表展示了本文方法使用不同语义级别信息进行训练的结果,可以看出,同时进行高级和低级预训的信息能够达到更好的结果。
Analysis on Different High-level Semantic Alignments
上表展示了在不同层引入高级语义对齐模块的结果,可以看出在第六层引入时候的结果较好。
6
总结
在本文中,作者提出了一种新的预训练方法SemVLP来学习视觉和语言的联合表示。与现有依赖固定级别语义对齐的VLP方法不同,作者通过以不同方式组装共享Transformer编码器和可插拔的跨模态注意模块,在多个级别上对齐跨模式语义。
在各种下游V L任务上的实验结果,证明了本文的方法对于理解真实世界图像文本数据背后的不同语义的有效性。
这篇文章的重点在于建立了一个可插拔的跨模态注意力模块,从而使得能够在不同级别的语义上进行信息的对齐。并且在训练的时候,用50%的时间用于训练高级语义,50%用于训练低级语义。
但是高级语义信息和低级语义信息在不同的数据、不同的任务中真的是同等重要的吗?会不会基于数据自适应的去判断这个用哪个分支训练能够获得更好的性能和可解释性?