定期更新干货算法笔记和世间万物的学习记录~
这篇文章给大家详细梳理了Vision-Language多模态建模方法,对经典的多模态典型工作进行分类整理,包括16篇顶会论文,帮助大家快速了解多模态模型发展脉络。
1
综述
首先给大家推荐两篇多模态的综述类文章,都是2022年发表的,一篇是VLP: A Survey on Vision-Language Pre-training(2022),另一篇是An Empirical Study of Training End-to-End Vision-and-Language Transformers(CVPR 2022)。这两篇文章对多模态模型的分类基本是一致的,我曾经在之前的文章五花八门的多模态模型如何选择?中对第二篇论文进行过详细介绍。想梳理清楚多模态模型,核心需要明确不同多模态模型在模型结构、Visual Encoder方法、预训练任务3个方面的差异。
模型结构上,主要分为单流模型和双流模型。单流模型将图像侧和文本侧的embedding拼接到一起,输入到一个Transformer模型中。而双流模型让图像侧和文本侧使用两个独立的Transformer分别编码,并且可以在中间层加入两个模态之间的Attention来融合多模态信息。单流模型和双流模型的基本结构图如下。
Visual Encoder方法上,主要是如何从图像侧提取信息输入到多模态模型中。主要包括OD-based Region Features 、CNN-based Grid Features、ViT-based Patch Features三种方法。OD-based Region Features利用一个前置的目标检测模型识别图像中的目标区域(region),并提取每个region的表示,作为图像侧输入。CNN-based Grid Features直接使用如ResNet等CNN模型,在原始图像上提取信息,将CNN最终的输入特征平铺成序列输入到多模态模型中。ViT-based Patch Features则借鉴了ViT中patch embedding的方法提取图像信息。对ViT不了解的同学可以翻看我之前的文章从ViT到Swin,10篇顶会论文看Transformer在CV领域的发展历程
在预训练任务上,主要是如何对齐图像侧和文本侧的信息。常见的预训练任务主要包括以下6种:
  • MaskedLM/PrefixLM:mask部分token,同时利用剩余的text和图像token预测被mask掉的token
  • Masked Vision Modeling:mask掉图像的部分patch,然后预测,可以回归也可以分类
  • Vision-Language Matching:使用image和language的匹配任务作为预训练目标
  • Vision-Language Contrastive Learning:基于对比学习的图文任务
  • Word-Region Aligment:对齐vision patch和word
  • Visual Question Answer:用下游任务,如预测给图问问题预测答案这个任务来训练
下面,我们介绍一下近年顶会各种类型多模态模型的典型工作。
2
OD-based单流模型
VisualBERT: A simple and performant baseline for vision and language(2019)提出了VisualBERT,采用的是一种单流的模型结构,文本embedding序列和图像embedding序列拼接在一起输入到一个Transformer网络中。在输入方面,主要包括图片/文本embedding、标识每个位置的embedding是来自图片侧还是文本侧(segment)以及position embedding。在图像侧的输入,采用的是OD-based Region Features,即利用object detection模型(一般为Faster R-CNN)识别图像中的目标区域,并生成每个目标区域的特征表示作为输入。
VisualBERT分为预训练和finetune两个阶段。在预训练阶段采用了两个任务,第一个任务是MLM,对部分文本侧token进行mask,然后利用其他文本信息以及图像信息对被mask掉的文本进行预测。第二个任务是预测图像和文本是否匹配。
Unicoder-VL: A Universal Encoder for Vision and Language by Cross-modal Pre-training(AAAI 2020)提出了Unicoder-VL,基本结构采用的也是单流结构,图像侧使用OD-based Region Features。在图像侧的position embedding中,为了描述每个region的位置,会为每个region生成一个如下的5维的向量,前4维代表了region的和图片整体的相对位置,最后一维代表了region相对于原图的尺寸比例,比较全面的描述了每个region的位置信息。
在预训练任务上,除了VisualBERT中的MLM和图文匹配任务外,引入了Masked Object Classifation。Masked Object Classifation任务会对图像中的部分object进行mask,然后在模型中预测被mask部分object的label,这个label来源于目标检测识别的结果。
VL-BERT: Pretraining of Generic Visual-Linguistic Representations(ICLR 2020)相比前两个模型的区别是输入上,增加了Visual Feature Embedding这个模块。在文本侧,这一维信息输入原始图像的整图。在图像侧,使用OD-based Region Features解析出的region embedding。预训练任务也是MLM和Masked Object Classifation。由于VL-BERT中会将全图作为输入,在Masked Object Classifation任务中会存在数据泄露问题。为了防止该问题,会在图片先进行被mask掉部分的zero-out,将被mask掉部分置为0,然后再利用Faster-RCNN提取特征。
ImageBERT: Cross-modal pre-training with large-scale weak-supervised image-text data(2020)的模型结构和之前都一样,单流模型+OD提取图像特征,主要的区别在于引入了更多弱监督数据提升学习效果。本文采用了基于弱监督的大规模数据构造方法:从网站上获取image和text,然后用一个已经使用少量数据训练好的打分模型打分,筛选大于某个阈值的样本对作为正image-text样本对,并且进行了去重等操作,构造了海量数据。
ImageBERT在预训练任务中增加了一个Masked Region Feature Regression (MRFR),通过回归的方法预测被mask掉的embedding feature的具体值,相比实体分类任务更加精细化。在预训练中采用了多阶段预训练,从out-of-domain的海量数据到in-domain的少量数据逐级进行预训练,充分发挥不同阶段收集到数据的作用。
UNITER: Universal image-text representation learning(ECCV 2020)这篇文章模型结构同上,主要是预训练任务增加了Word Region Alignment(WRA)任务,利用optimal transport计算image和text的embedding之间的对应关系。在mask类任务中,一个样本只会mask掉某一个模态,而不会同时mask两个模态的信息,防止防止正好mask掉了另一个模态能够预测当前模态的关键信息。
Oscar: Object-semantics aligned pre-training for vision-language tasks(ECCV 2020)提出了Oscar模型,在之前的单流+OD图文模型架构基础上,在文本、image region feature外引入了object tags,输入数据为3元组。其中object tags指的是每个object的文本embedding,这个object是从图像中识别出来的,并将其转换为文本。引入object tag的主要目的是为了作为一个桥梁来更好的对齐文本和图像。
训练的优化目标有两种,一种是mask掉tag或文本的某些token做MLM;另一种是把region feature和object tag放到一起表征图像,然后使用对比学习作为优化目标。
VinVL: Revisiting visual representations in vision-language models(CVPR 2021)模型的核心backbone基于上面提到的Oscar架构,主要是对object detection部分进行了优化,核心是希望在图像侧能够通过OD识别出更多样的图像实体,得到更多的object tag和region feature,进而提升后续Oscar图文模型效果。本文的目标检测采用了C4模型,预训练数据使用了4个开源数据集。通过上述优化实现了更丰富的OD信息提取,下面是新旧模型提取的object信息对比,新的OD模型提取的信息更加丰富。为下游的Oscar模型提供更丰富的region feature和object tag
3
OD-based双流模型
LXMERT: Learning crossmodality encoder representations from transformers(EMNLP 2019)基于双流模型+OD的方式,在图像侧和文本侧使用两个单模态的Encoder进行图文分别编码。图像侧仍然是基于OD提取region feature。在两个单模态Encoder之后,会增加多层的图文模态交互Transformer,用来进行图像侧特征到文本侧特征,以及文本侧特征到图像侧特征的信息融合。
在预训练任务上,采用了MLM、 Masked Object Prediction、图文匹配等任务。
4
Grid-based方法
In Defense of Grid Features for Visual Question Answering(CVPR 2020)这篇文章探索了使用region based feature和直接使用grid feature的差别。作者发现,region based feature的效果主要来源于object detection使用了比较好的训练数据,以及图像的分辨率较高,而并非来源于目标检测提前把实体识别出来。因此文中将底层的目标检测模块直接替换成ResNet提取grid feature,取得了比较好的效果并且大大简化了图文模型的复杂度。
Pixel-BERT: Aligning image pixels with text by deep multi-modal transformers(2020)提出的Pixel-BERT基于OD的visual encoder方法往往需要使用一个提前训练好的目标检测模型识别图像中的region作为模型输入,这种方法在图文模型中的问题是,预训练的OD模型和下游的图文任务存在一定的gap,OD并不是针对图文模型训练的,最终通过OD提取的region feature包含背景信息等因素,直接输入图文模型可能影响效果。并且OD能够提取出的信息也受限于提前定义的对象类别。
Pixel-BERT直接使用CNN对原始图像进行特征提取,不再使用OD方法生成图像特征。使用CNN backbone生成图像embedding,并沿着空间维度进行平铺,作为图像测的信息输入。模型仍然采用单流的形式,将图像侧embedding和文本侧embedding拼接到一起输入模型中。预训练任务为MLM和图文匹配。

5
基于Patch的方法
在单流模型中,根据Text Encoder和Visual Encoder的尺寸,可以分为以下4种类型,前3种类型中,图像侧Encoder尺寸很大。Vision-and-language transformer without convolution or region supervision(ICML 2021)提出的是第4种单流模式,将图像侧的Encoder进行尺寸的缩减,不依赖卷积采用浅层网络进行图像侧信息提取,实现了多模态模型运行效率上的提升。
文中在图像侧采用了ViT中的patch projection方法提取图像信息,利用ViT中的patch embedding思路,取代了前置的OD部分,提升了图像侧的特征提取效率。
在预训练任务上,文中指出whole word masking,即把一个word完整mask掉非常重要,更能帮助模型学习利用另一种模态的信息进行预测。因为word在文本侧会被分割成更细粒度的token,如果只mask掉部分token,word信息不完整,无法有效建立图文两种模态的关系。文中还提出了word patch aligment预训练任务。此外,在finetune阶段采用了RandAugment对图像进行数据增强。
6
CLIP系列方法
Learning Transferable Visual Models From Natural Language Supervision(2021)提出了基于对比学习的图文预训练框架CLIP。首先,作者构建了海量的图片-文本对,从多个数据集中筛选出图像和对应的图像标注为自然语言的数据,构造了image-text pair。这些数据会作为预训练的输入,用来学习文本和图片的匹配任务。模型采用了ResNet、ViT两种模型作为图像端的encoder,采用Transformer作为文本端的encoder。在预训练阶段采用对比学习的思路,给定一个batch的N条图像-文本的pair对,它们可以组成一个矩阵,对角线上的元素为正样本,其他组合为负样本。通过这种方式每个batch的数据生成N个正样本,以及N*(N-1)个负样本。在Finetune阶段,文本端采用了prompt的方式,例如分类任务,构造分类模板,并将各个类别填入模板空缺处,预测每个模板实体和当前图像的匹配得分,得分最高的即为图像的分类结果。
文中最开始也尝试了基于预测的方法,根据image的信息预测对应的文本的每个词是什么。然而由于对于一个图像的描述可以有很多种,因此预测一个图像具体的描述词是一个非常困难的任务,导致模型收敛存在问题。因此,CLIP使用对比学习的方法,将任务简单化,只去判断图文pair是否匹配,极大提升了模型收敛速度。
CLIP中需要使用高质量的图文数据,而Scaling Up Visual and Vision-Language Representation Learning With Noisy Text Supervision(ICML 2021)这篇文章中减少了严格的数据清洗步骤,构造了噪声大、数量更庞大的图文预训练数据。本文仍然基于CLIP架构,为了通过提升负样本量提升对比学习效果,模型在训练的时候汇聚了多个worker上的负样本,扩大了负样本规模。
How Much Can CLIP Benefit Vision-and-Language Tasks?(2021)提出了CLIP-ViL方法,主要探究了基于CLIP的图文对比学习模型作为Visual Encoder部分,对于图文任务效果会有多大提升。VL模型训练的3个阶段,在以往的图文任务预训练和finetune之前增加了一个图文CLIP任务对visual encoder进行一步前置预训练:首先利用CLIP进行visuak encoder预训练,然后进行VL预训练,最后在特定任务上finetune,整个过程如下图。
在CLIP之前,visual encoder一般采用region-based和grid-based两种。region-based需要在数据上训练一个实体检测模型;而grid-based一般在图像数据上预训练一个图像分类模型。两者都需要大量的标注数据。而CLIP使用自然语言处理来监督图像预训练,这种数据可以从多种途径获取,不需要大量的人工标注工作。下面展示了3种visual encoder预训练方法示意图。
7
总结
本文详细全面梳理了多模态模型的经典工作,主要从模型结构和训练方式的角度入手,包括OD-based、Grid-based、Patch-based等不同方式的图像侧信息提取方法,以及单流、双流模型结构。最后又对基于对比学习的CLIP图文模型进行了介绍。希望可以对初入多模态领域的同学有所帮助。
END
***想微信交流的同学请后台留言”交流“或发微信号/二维码,欢迎来撩~***
【历史干货算法笔记】
如果觉得有帮助麻烦分享在看点赞~
继续阅读
阅读原文