Datawhale干货
作者:张义杰 单位:中国移动云能力中心
视觉-语言 (Vision-Language, VL) 是计算机视觉和自然语言处理这两个研究领域之间形成的交叉领域,旨在赋予 AI 系统从多模态数据中学习有效信息的能力。受 NLP 预训练语言模型(如BERT\GPT等)的启发,视觉-语言预训练 (Vision-Language Pre-training, VLP) 逐渐受到关注,成为如今 VL 任务的核心训练范式。本文对 VLP 领域近期的综述文章进行整理,回顾其最新的研究进展,旨在提供一份 VLP 入门指南。
首先,我们需要知道视觉-语言任务是什么?顾名思义,视觉-语言任务指的是处理视觉和语言这两种多模态信号输入的任务,根据历史工作主要可以分为三类:
图像-文本任务。这一类任务在 VL 研究中最重要并且也最广泛,包含视觉问答、图像描述、图像-文本检索等任务(如图 1 中橙色部分)。另外围绕这些任务,若干其它的相关任务被提出。例如文本-图像生成,它被看作是图像描述的孪生任务,模型需要根据输入的文本生成高保真图像。本文后续介绍的 VLP 模型主要以图像-文本任务为主。
视作 VL 问题的 CV 任务。传统的 CV 领域中的图像分类、目标检测和分割任务等(如图 1 中粉色部分)被看作是单纯的计算机视觉问题。而随着 CLIP 和 ALIGN 等多模态大模型的出现,研究人员意识到语言监督信号也可以在 CV 任务中发挥重要作用。具体做法是,首先利用从网络上抓取的带噪声的大规模图像-文本对数据,从头开始对视觉编码器进行预训练。其次,不再将监督信号(例如类别标签)用作独热编码向量,而是考虑标签中所蕴含的语义信息,并将这些 CV 任务视作 VL 问题来解决。
视频-文本任务。除了静态的图像,视频也是一种重要的视觉表现形式。那么自然,上述所有图像-文本任务都有相应的视频-文本任务,例如视频字幕、视频检索和视频问答任务等(如图 1 中绿色部分)。与图像相比,视频输入的特殊性要求系统不仅要捕获单个视频帧中的空间信息,还要捕获视频帧之间固有的时序依赖性。
图 1:视觉-语言任务图示
受预训练语言模型 (PLM) 的启发,以及 NLP 和 CV 领域越来越多地使用基于 Transformer 的统一架构的趋势,关于视觉-语言预训练的研究也受到越来越多的关注。VLP 主要通过在大规模数据上进行预训练来学习不同模态之间的语义对应关系。例如,在图像-文本预训练中,我们希望模型将文本中的“狗”与图像中“狗”的样子相关联。在视频-文本预训练中,我们期望模型将文本中的对象/动作映射到视频中的对象/动作。为了实现这一目标,需要巧妙地设计 VLP 的模型架构,使模型有能力挖掘不同模态之间的关联。
具体来讲,给定图像-文本对,VL 模型首先分别通过视觉编码器和文本编码器提取视觉特征 = {1, ··· , M} 和文本特征 = {1, ··· , N}。这里,M 是图像的视觉特征数量,它可以是图像区域/网格/图像块的数量,具体取决于所使用的特定的视觉编码器,N 则是句子中子词的数量。然后将视觉和文本特征送入多模态融合模块来产生跨模态表示,然后在生成最终输出之前可选择地将其送入至解码器。图 2 展示了这个通用框架的结构。在许多情况下,图像/文本主干、多模态融合模块和解码器之间没有明确的界限。一般将模型中仅以图像/文本特征作为输入的部分称为相应的视觉/文本编码器,将模型中同时以图像和文本特征作为输入的部分称为多模态融合模块。除此之外,如果有额外的模块将多模态特征作为输入来生成输出,则称之为解码器。
图 2:基于Transformer的VL模型的通用框架
视觉编码器主要分为三种类型:(i) 对象检测器 (OD),(ii) 卷积神经网络 (CNN),以及 (iii) Vision Transformer (ViT):
基于OD区域特征:使用 Object Detectors(例如 Faster R-CNN)识别图像中的目标区域,获取每个目标区域的特征表示。例如在图 3 中,ViLBERT 通过提取边界框及其视觉特征来生成图像的区域特征,并与文本特征拼接输入到主模型中。虽然区域特征是对象级的且语义丰富,但是提取区域特征往往十分耗时,并且训练好的 OD 通常在预训练期间被冻结,这可能会限制 VLP 模型的容量。
基于CNN网格特征:为了解决上述两个问题,研究人员尝试了不同的方法来以端到端的方式预训练 VL 模型。其中,PixelBERT 和 CLIP-ViL 提出将卷积神经网络的网格特征和文本一起直接输入到到后续的 Transformer 中。此外,SOHO 首先使用已学习的视觉字典离散化网格特征,然后将离散化特征输入到它们的跨模态模块中。虽然直接使用网格特征会很有效,但 CNN 和 Transformer 所使用地优化器通常不一致。例如,PixelBERT 和 CLIP-ViL 在 Transformer 使用 AdamW,而在 CNN 中使用 SGD。
基于ViT 图像块特征:第三种编码器类型来源于 Vision-Transformer,它首先将图像切分成图像块,然后将其展平为向量并线性投影以获得图像块的嵌入序列。同时,一个可学习的特殊标记 [CLS] 嵌入也被添加到序列中。这些图像块嵌入,与可学习的 1D 位置嵌入和潜在的图像类型嵌入相加后,被馈送到多层的 Transformer 块中以获得最终的输出图像特征。随着 ViT 的发展,这种视觉特征编码方式逐渐成为主流,与前两种方式相比它运行效率更高,不需要依赖预先训练好的 Object Detection 模型或前置的 CNN 特征提取模块。
总之,无论使用什么视觉编码器,输入图像都被表示为一组特征向量 = {1, ··· , M}。
图 3:ViLBERT中的OD区域特征
文本编码器的处理方式遵循 BERT 和 RoBERTa 等预训练语言模型。如图 4 所示,首先将输入句子分割成子词序列。然后在句子的开头和结尾插入两个特殊标记以生成输入文本序列。在获得文本嵌入之后,现有的工作要么将它们直接输入给多模态融合模块,要么在融合之前输入给若干个文本信息处理层。对于前者,融合模块通常使用 BERT 进行初始化,文本编码器和多模态融合也因此作用在单个 BERT 模型中,在这种情况下,我们将文本编码器视为词嵌入层。在历史的工作中,研究人员研究了使用 BERT、RoBERTa、ELECTRA、ALBERT 和 DeBERTa 等多种不同的模型进行文本编码。简而言之,无论使用什么文本编码器,输入文本都表示为一组特征向量 = {1, ··· , N}。
图 4:文本编码器输入表示
多模态融合模块旨在将编码自不同模态的信息整合成一个稳定的多模态表征。对于像 CLIP 和 ALIGN 这样的双编码器模型,融合是通过两个全局图像和文本特征向量之间的点积来执行的。对于融合编码器,它以 = {1, ··· , M} 和 = {1, ··· , N} 作为输入,并学习表示为 = {1, ··· , M} 和 = {1, ··· , N}。多模态融合模块主要有两类,即单流模式和双流模式,也称作 merged attention 和 co-attention,如图 5 所示。
单流模式指的是将视觉和文本编码特征组合在一起,然后输入单个 Transformer 块中,如图 5(a) 所示。单流架构通过合并注意力来融合多模态输入,通常也被叫做 merged attention。单流架构的参数效率更高,因为两种模式都使用相同的参数集。
双流模式是指视觉和文本编码特征没有组合在一起,而是独立输入到两个不同的 Transformer 块,如图 5(b) 所示。这两个 Transformer 块不共享参数,而是通过交叉注意力实现跨模态交互,因此也被叫做 co-attention。
图 5:多模态融合图示
大多数 VLP 模型仅包含编码器,其中跨模态表示直接输入到基于 MLP 的输出层来生成最终输出。这种设计自然适合 VL 理解任务,例如 VQA 和视觉推理。当用于图像描述时,结构类似的编码器充当解码器,通过使用因果掩码逐个标记地生成输出图像描述文本。
最近,受到 NLP 领域中 T5 和 BART 的启发,VL-T5\SimVLM\OFA 等提出使用基于 Transformer 的编码器-解码器架构,其中跨模态表示首先被送入解码器,然后送入输出层。在这些模型中,解码器同时关注编码器表示和先前生成的标记,以自回归地方式产生输出。使用编码器-解码器架构可以实现各种图像-文本任务的统一和 VLP 模型的零样本/少样本学习,并且也很自然地适合生成类的任务。图 6 展示了仅编码器和编码器-解码器架构之间的说明性比较。
图 6:仅编码器 vs. 编码器-解码器
预训练目标指导模型如何学习视觉-语言的关联信息。历史工作中的主流预训练目标主要可以分为三大类:Masked Language Modeling (MLM)、Masked Vision Modeling (MVM) 和 Vision-Language Matching (VLM)。
MLM 源自于 NLP 领域,由于 BERT 将其改编为一种新颖的预训练任务而广为人知。为了以视觉信息为条件对语言进行建模,VLP 模型中的 MLM 与预训练语言模型中的 MLM 类似,但它不仅通过剩下的未遮蔽文本标记,而且还通过视觉标记来预测被遮蔽的文本标记。根据经验,遵循 BERT 的 VLP 模型以 15% 的概率随机遮蔽每个文本输入标记,并在遮蔽的过程中 80% 的时间里使用特殊标记 [MASK] 替换被遮蔽的标记,10% 的时间使用随机文本标记,还有 10% 的时间使用原始标记来进行遮蔽操作。其公式定义如下:
其中, 表示视觉输入, 表示文本标记, 表示未遮蔽文本标记, 表示训练数据集。
与 MLM 类似,MVM 它对视觉区域或图像块进行采样,通常以 15% 的概率遮蔽它们的视觉特征。VLP 模型需要在给定剩余的视觉特征和所有文本特征的情况下重建被遮蔽的视觉特征,其中被遮蔽的视觉特征设置为零。例如 LXMERT 和 UNITER 中,遮蔽了一些输入区域,并且训练模型来回归预测原始区域特征。形式上,给定一个视觉特征序列 v =〈v1,· · ·,vM〉,其中 vi 一般是区域特征表示。在随机遮蔽一些区域特征后,模型通过剩下的视觉特征和未遮蔽的标记 t 输出重构的视觉特征 ov,其回损失函数旨在最小化均方误差损失。部分研究工作还尝试先使用预训练的对象检测器为每个区域生成对象标签,该对象检测器可以包含高级的语义信息,并且训练该模型来预测遮蔽区域的对象标签,而不是原来的区域特征。由于视觉特征是高维和连续的,VLP 模型为 MVM 提出了两种变体:Masked Features Regression (MFR) 和 Masked Feature Classification (MFC)。
MFR 学习将掩码特征的模型输出回归至其原始视觉特征。VLP 模型首先将掩码特征的模型输出转换为与原始视觉特征相同维度的向量,并在原始视觉特征和该向量之间应用 L2 回归。MRC 学习预测掩码特征的对象语义类别。VLP 模型首先将掩码特征的输出输入到 FC 层来预测对象类别的分数,然后通过 softmax 函数将其转换为归一化分布。注意这里没有真实标签。有两种训练 VLP 模型的方法,一种是 VLP 模型将对象检测模型中最有可能的对象类作为硬标签,假设检测到的对象类是掩码特征的真实标签,并应用交叉熵损失来最小化预测结果和伪标签之间的差距。另一个是 VLP 模型利用软标签作为监督信号,它是检测器的原始输出(即对象类别的分布),并最小化两个分布之间的 KL 散度。
VLM 是最常用的视觉和文本对齐的预训练目标,旨在将视觉和文本投射到同一个表示空间中。在单流 VLP 模型中,它们使用特殊标记 [CLS] 的表示作为两种模式的融合表示。在双流 VLP 模型中,他们将表征视觉信息的特殊视觉标记 [CLSV] 和表征文本信息的特殊文本标记 [CLST] 拼接起来,作为两种模态输入的融合表示。VLP 模型将两种模态输入的融合表示提供给 FC 层和 sigmoid 函数来预测 0 到 1 之间的分数,其中 0 表示视觉和文本不匹配,1 则反之。在训练过程中,VLP 模型在每一步都从数据集中采样正负对,其中负样本对是通过用从其它样本中随机选择的样本替换配对样本中的视觉或文本数据来创建的。
值得一提的是,在视觉和文本对齐任务中,基于对比学习的预训练目标也经常被用到,例如 Image-Text Contrastive Learning (ITC)。与 VLM 不同,ITC 在给定一个批次大小为 N 的视觉-文本对的情况下,从 N × N 个构造的视觉-文本对中预测真实匹配的视觉-文本对。在一个训练批次中有 N2 − N 个视觉-语言对负样本。VLP 模型使用特殊视觉标记 [CLSV] 和特殊文本标记 [CLST] 来聚合视觉和语言表示。VLP 模型计算通过 softmax 归一化的视觉-文本相似度和文本-视觉相似度,并利用视觉-文本和文本-视觉相似度的交叉熵损失来更新自身。相似度计算一般通过由点积运算来得到。其公式定义如下:
其中,. 表示图像和文本, 表示相似度计算函数, 是温度系数。
为了更好地适应下游任务,VLP 模型有时会使用一些下游任务的训练目标,例如视觉问答(VQA)和视觉描述(VC),作为预训练目标。对于 VQA,VLP 模型采用上述融合表示,应用 FC 层,并使用转换后的表示来预测预定义的候选答案的类别。除此之外,VLP 模型还可以直接生成原始文本格式的答案。对于 VC,为了赋予 VLP 模型生成的能力来重构输入语句,VLP 模型使用自回归解码器来生成图像或视频的相应文本描述。由于篇幅限制,这里只介绍一些流行的预训练目标。
预训练数据集对于 VLP 模型至关重要。预训练数据集的质量和大小有时会超过训练策略和算法的重要性。由于 VLP 包括图像-语言预训练和视频-语言预训练,可以大致将预训练数据集分为两大类。在大多数工作中,VLP 的预训练数据集是通过组合多模态任务或跨场景的公共数据集来构建的。然而,也有一些工作如 ALIGN 和 CLIP,使用自建数据集进行预训练。这些自建数据集通常比大多数公共数据集大,但包含的噪声可能也更多。表 1 展示了一些主流 VLP 预训练数据集的统计数据。
表 1:VLP 数据集
对于图像-语言预训练,使用最广泛的数据形式是图像-文本对。大多数图像-语言预训练数据集由大量的图像-文本对组成。SBU 和Flickr30k 从 Flickr 收集而来,并进行人工标注。COCO 由带有五个人工生成标题的图像组成,并通过特殊程序进行过滤来保证图像和标注的质量。CC3M 和 CC12M 是通过从互联网抓取图像及其 HTML 属性中的 alt 标签,并使用经过滤的描述文本来标注这些图片而构建的。由于过滤策略相对宽松,CC12M 比 CC3M 包含更多的噪声。另一个数据源是视觉问答任务 (VQA)。许多图像-语言数据集在 VQA 的上下文中被组织成结构化数据。代表性的大规模数据集是 VG。VG 以其结构化数据形式包含丰富的信息。在图像-语言预训练研究中,其区域级描述和问答对被广泛使用。除了 VG 之外,VQA 和 GQA 也是流行的视觉问答对数据集。与 VGA 相比,GQA 进一步减轻了系统性偏差。
上述数据集适用于大多数常见场景。还有一些数据集是为特殊场景设计的。例如,Matterport3D 由建筑规模场景的 RGB-D 图像组成,并标注了分类和分割标签。Fashion-Gen 包含由专业设计师生成的带有物品描述的时尚图片。
与图像-语言预训练数据集相比,视频-语言预训练数据集通常更耗时,且更难收集和处理。这些不便也制约了该领域发展和预训练的规模。用于视频-语言预训练的数据集涵盖不同的场景和来源。其中大多数数据集,例如 Kinetics-400、HowTo100M、WebVid-2M 都是从网上收集的,并采用了不同的处理流程。这些类型的视频通常伴随有字幕信息,从而在视频片段和文本之间提供了或弱或强的对齐关系。尽管这些字幕有时可能太弱而无法对齐,但它们仍然提供了有用的信息,特别是对于大规模数据集上的预训练。视频-文本对的另一个来源是电视节目。TVQA 是从电视节目生成的视频-语言预训练数据集。这些电视节目被收集并转换成包括许多对话的数据集,用于理解视频和识别视频中的语义概念。
考虑到这些数据集的来源和形成的多样性,研究人员应用了不同的标注和处理程序。例如,Kinetics-400 包含许多带有动作类标注的动作相关视频。对于其它的一些数据集,视频剪辑的附带描述/字幕或视频中的概念类别通常被处理并用作标注信息。
19年提出的 VisualBERT 被称为第一个图像-文本预训练模型,它使用 Faster R-CNN 提取视觉特征,并将视觉特征和文本嵌入拼接起来,然后输入到单个由 BERT 初始化的 transformer 中。后续许多 VLP 模型在调整预训练目标和预训练数据集时遵循与 VisualBERT 相似的特征提取方式和架构设计。
最近,VLMo 将图像的块嵌入和文本的词嵌入进行拼接组合,输入到混合模态专家的 transformer (MoME) 中。METER 则探索了如何使用单模态的预训练模型,并提出一种双流架构模型来处理多模态融合的问题。
表 2 介绍了一些目前具有代表性的 VLP 模型,并且对这些模型各个模块的配置进行了汇总。
表 2:主流 VLP 模型
(OD: object detector. Xformer: transformer. Emb.: embedding. WRA: word-region alginment. TP: token prediction. CA:contrastive alignment. GC: grounding+captioning.)
在本篇文章中,笔者通过整理多篇研究综述,从多个方面梳理了视觉-语言训练的技术路线:任务描述、模型结构、预训练目标以及预训练数据集等,旨在帮助对该领域有兴趣的小伙伴快速入门。随着 VLP 研究的发展,还涌现出许多其它有趣的研究课题,例如大模型、小样本学习、统一建模、鲁棒性评估等。后续,笔者将会进一步探讨这些更高层次的研究课题。
[1] An Empirical Study of Training End-to-End Vision-and-Language Transformers. https://arxiv.org/abs/2111.02387
[2] VLP: A Survey on Vision-Language Pre-training. https://arxiv.org/abs/2202.09061
[3] Vision-Language Pre-training: Basics, Recent Advances, and Future Trends. https://arxiv.org/abs/2210.09263
往期精彩回顾
适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码