多模态预训练模型选用指南(Vision-Language Pre-traning)

关于预训练的诸多模型,博主已经在以往的文章中整理过:

本篇整理一下最近几篇关于Vision-Language Pre-traning(VLP)的综述文章,以及一篇很不错的,关于各个组件的选用指南文章。

VLP: A Survey on Vision-Language Pre-training

  • paper:https://arxiv.org/abs/2202.09061

VLP 主要通过基于大规模数据进行预训练来学习不同模态之间的语义对应关系。一共包括以下方面的话题,特征提取、模型架构、预训练目标、预训练数据集和下游任务。

1)特征提取:包括 VLP 模型中图像、视频和文本的预处理和表示方法。

  • 图像特征:基于目标检测的区域特征,基于 CNN 的网格特征以及基于 ViT 的 patch 特征。
  • 视频特征:先分帧,再按照上述图像特征预处理方式进行处理。
  • 文本特征:主要遵循 BERT 的预处理方式。

在这里插入图片描述
2)模型架构:从两个不同的角度,一是从多模态融合的角度分为单流与双流,二是从整体架构设计的角度分为 Encoder-only 与 Encoder-decoder 。

  • 其中单流架构是指将文本和视觉特征连接在一起,然后输入单个 Transformer 模块,如上图(a)。
  • 双流架构是指文本和视觉特征没有连接在一起,而是独立发送到两个不同的 Transformer 块,如上图(b)。

3)预训练目标:分为典型和特殊的预训练目标,可分为补全、匹配、时序和特殊类型:

  • 补全:是通过利用未掩码的剩余部分来重建掩码元素从而理解模态,包括 Masked Language Modeling,Prefix Language Modeling,Masked Vision Modeling 等;
  • 匹配:是将视觉和语言统一到一个共享的隐藏空间中,以生成通用的视觉-语言表示,包括 Vision-Language Matching,Vision-Language Contrastive Learning,Word-Region Alignment等;
  • 时序:是通过对中断的输入序列重新排序来学习良好的表示,主要针对视频相关的预训练,如 Frame Order Modeling 等;
  • 特殊:由其他预训练目标组成,例如视觉问答和视觉描述等。

4)预训练数据集,如下图。
在这里插入图片描述

5)下游任务。分为五类:分类、回归、检索、生成和其他任务。

  • 分类任务:Visual Question Answering(VQA)、Visual Question Answering(VQA)、Natural Language for Visual Reasoning(NLVR).、Visual Commonsense Reasoning(VCR)等;
  • 回归任务: Multi-modal Sentiment Analysis(MSA);
  • 检索任务:一些视觉-语言检索任务;
  • 生成任务:Visual Dialogue(VD)、Visual Captioning(VC)等;
  • 其他任务:Multi-modal Machine Translation(MMT)、Vision-Language Navigation(VLN)等。

在这里插入图片描述
Survey: Transformer based Video-Language Pre-training

  • paper:https://www.aminer.cn/pub/614a9eca5244ab9dcbc38b21

这篇综述跟上篇差不太多,更为偏向与video一点。因此对于video特征编码上,有一些细化结论,即如何同时编码video的时间和空间信息。如ViViT 提出了四种将 ViT 扩展至视频处理的方法:

  • 从三维视频数据中提取不重叠的时空 token,直接输入原始的 ViT;
  • 首先对从同一时间索引中提取的图像 token 之间的交互作用进行建模,然后根据每个时间索引生成一个潜在表征;
  • 在一个单独的自注意力模块中叠加空间和时间转换器,并交替编码空间和时间维度;
  • 通过只在空间维度或时间维度上计算点积注意力,将多头注意力分为空间头和时间头。考虑到计算成本,视频时空编码的工作主要关注将图像预训练中的知识迁移到视频相关任务中。

在这里插入图片描述
在目标任务上,这篇文章将其分为三类:填空任务、匹配任务和排序任务。

  • 填空任务。旨在重建输入的被屏蔽的 token。如Masked Token 建模(MLM)、Masked Frame 建模(MFM)、Masked Token 建模(MTM)、Masked Modal 建模(MMM)和语言重建(LR)。
  • 匹配任务。旨在学习如何对齐不同的模态。如视频语言匹配(Video-Language Matching,VLM)是一种典型的匹配任务,旨在匹配视频和文本模态。
  • 排序任务。是打乱输入序列的顺序,迫使模型识别出原始的序列顺序。如Frame Ordering 建模(FOM)是专门为利用视频序列的时序特性而设计的,Sentence Ordering 建模(SOM)是为文本模态而设计的。

模型架构上,也是分单流和双流,一些典型模型的框架如下:

在这里插入图片描述

  • 单流 Transformer。将不同模态的特征/嵌入输入到同一个 Transformer 中,捕获模态内核模态间的信息。
  • 多流 Transformer。将每个模态输入到独立的 Transformer 中捕获模态内的信息,通过其它方式(如另一个 Transformer)来构建跨模态关系。

然后看一篇选用指南的文章。

在这里插入图片描述
An Empirical Study of Training End-to-End Vision-and-Language Transformers
VLP模型大多数都遵循同一个框架,包含五大模块,分别为Vision Encoder、Text Encoder、Multimodal Fusion、是否包含Decoder以及预训练任务,如上图。

  • Visual Encoder:和前面的综述文章一样,分为三种。1目标检测再融入到主模型Bert中。2CNN作为图像侧输入。3ViT将图像分解成patch。
  • Text Encoder:包括BERT、RoBERTa、ELECTRA、ALBERT、DeBERTa等。
  • Multimodel Fusion:如何融合图像和文本的表示。主流方法包括2种。一种被称为co-attention,图像和文本分别使用Transformer编码,在每个Transformer模块中间加入图像和文本之间的cross attention。另一种方式被称为merged attention model,图像和文本的信息在最开始就被拼接到一起,输入到Transformer模型中。其中,merged attention model方法的参数量相对更少。
    在这里插入图片描述
    模型结构上,也是主要包括Encoder-only和Encoder-Decoder两种类型,这篇文章的图画得更为清晰一点,如下图。
    在这里插入图片描述

这篇文章做了大量的实验,给出了一些在选用预训练模型的经验结论。

  • 实验1 :不同的Encoder。
    1:各个Text Encoder效果差距不大,RoBERTa效果最稳定;对于Vision Encoder来说,Swin Transformer取得了最好的效果。
    2:两个训练技巧。随机初始化的参数和使用预训练初始化的参数要使用不同的学习率,前者的学习率设置的大一些更好。finetune阶段增大图像分辨率会带来效果显著提升。

  • 实验2 :不同的Multimodal Fusion。
    1:co-attention要比merged attention效果更好。因此最好对于不同模态使用一套独立的参数。

  • 实验3 :不同的框架j结构,即Encoder-only和Encoder-Decoder对比。
    1:Encoder-only模型的效果更好。
    2:但是Encoder-Decoder模型更灵活,可以解决文本生成有关的任务。

  • 实验4 :不同的预训练任务。
    1:MLM任务和ITM任务都对模型效果有显著提升,其中MLM带来的提升更大。
    2:而MIM任务,即mask部分图像再预测,加入预训练后效果反而出现下降。

paper:https://arxiv.org/pdf/2111.02387.pdf

猜你喜欢

转载自blog.csdn.net/qq_39388410/article/details/124558876
今日推荐