多模态 | 从顶会论文看多模态预训练研究进展
每天给你送来NLP技术干货!作者|都一凡方向 | 多模态学习来自 | RUC AI Box凭借着强大的泛化能力,预训练模型在CV和NLP领域的一系列任务上取得巨大成功。尤其是自以Trans...
每天给你送来NLP技术干货!
作者|都一凡
方向 | 多模态学习
凭借着强大的泛化能力,预训练模型在CV和NLP领域的一系列任务上取得巨大成功。尤其是自以Transformer为架构的预训练模型在NLP领域大放异彩之后,多模态领域也尝试引入Transformer融合不同模态之间的交互,从而走上了预训练模型的这条道路。笔者对ICML2021, ACL2021, NIPS2021, EMNLP2021, ACL2022 ARR, 以及近期挂在arXiv上的一些工作进行了分类与解读。
本文主要从以下几个方面对近期多模态预训练模型的工作进行介绍:预训练模型、多模态prompt、多模态预训练分析、知识迁移和知识蒸馏。
预训练模型:
[ICML 2021] ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision
本文简化了多模态预训练模型图片编码器,提出一种很简单的多模态模型,在保证效果的前提下大大减小了模型复杂度和运行时间。
目前大部分的Vision-and-Language Pre-training(VLP)在表达图片特征的时候都使用了区域监督(例如目标检测)和卷积操作(例如ResNet),这种方法存在一定缺陷:(1)速度慢;(2)表达能力有限。因此本文提出了一种最简单的VLP模型——ViLT,主要对视觉特征提取进行了改进,使用简单的线性映射大大减少了视觉编码器的参数量。具体而言,视觉和文本编码器的表达如下:
其中T和V分别表示文本和图片的线性层。
在建模文本和图片交互时,ViLT采用了单流架构,Transformers用预训练的ViT-B/32初始化(文中说也实验了BERT初始化但是不work)。模型结构如下:
预训练任务:
Image Text Matching
Masked Language Modeling
最终ViLT在VQA, NLVR, text2image retrieval, image2text retrieval下游任务上微调,运行效率比之前的预训练模型都有显著提升。
[ICML 2021] Learning transferable visual models from natural language supervision
本文用400M的图文对进行跨模态对比学习,近期受到比较多关注的CLIP就是该工作提出的。
文章的出发点是考虑到:CV中现有的SOTA模型都是在有限的类别的数据集上训练的,要想让模型识别更多的视觉概念就必须用更多的有标签数据,这就大大限制了模型的泛化能力。而由于(image, text) pairs数据非常多,因此文章考虑用文本数据作为监督信号,取代标签,训练一个泛化能力更强的视觉模型。
具体而言,文章收集了4M的图文对数据,进行跨模态的对比学习,方法非常简单:
模型比较强大的地方在于其zero-shot的能力,尤其是在图文检索任务上,CLIP zero-shot的表现甚至超过了finetune的多模态预训练模型,一个重要原因是:检索任务本身和预训练任务高度契合。
[ICML 2021] Unifying Vision-And-Language Tasks Via Text Generation
本文将多个视觉-语言任务统一成了多模态条件文本生成任务,类似于NLP领域中的T5[1]。
本文指出目前的vision-and-language的学习都是对特定的任务设计特定的框架和目标,这就比较繁琐。因此文章提出用一个统一的框架和一个语言模型的目标(多模态条件文本生成)来解决多个下游任务,同时也测试了多任务学习的效果。具体而言,文章直接对T5和BART进行改进,赋予其视觉理解的能力。模型结构如下:
预训练任务:
Multimodal language modeling: T5和BART各自沿用了其预训练的语言模型任务,只是在encoder输入的时候不止输入文本,还输入图片;
Visual question answering: 给定图片和问题,直接生成答案;
Image-text matching
Visual grounding: 输入一个object的描述以及一张图片,输出图中正确object所对应的visual token;
Grounded captioning: 与上一个任务相反,输入图片和一个object的visual token,输出对这个object的描述。
[ACL 2021] UNIMO: Towards Unified-Modal Understanding and Generation via Cross-Modal Contrastive Learning
本文的亮点是在预训练阶段通过检索的方式,在一个统一的Transformer架构下同时使用单模态和多模态数据,进行跨模态的对比学习,并通过一系列增强方式产生各种粒度的正负样本,从而使得图文的向量表示不仅有粗粒度特征,也有细粒度的特征。模型结构如下:
最终在微调场景下,UNIMO除了在多模态任务上超越了所对比的模型之外,也在GLUE benchmark上超过了其text encoder——BERT。这同时说明了两方面的问题:
纯文本语料上的预训练能够帮助模型提升多模态任务上的性能;
图片和多模态数据上的预训练能够帮助模型更好地完成NLU任务。
其他多模态预训练的相关工作:
VLMO: Unified Vision-Language Pre-Training with Mixture-of-Modality-Experts
提出了一个Mixture-of-Modality-Experts(MoME)的Transformer,能够根据输入数据的模态选择不同的"expert"。并采用了“vision-text-multimodal”的分阶段的预训练方式,即后一阶段预训练时冻结前一部分编码器的参数。最终模型在VQA等多模态任务上进行微调,达到了SOTA。
UniT: Multimodal Multitask Learning with a Unified Transformer
本文的主要贡献在于用一个统一的Transformer架构,通过多任务学习,使得模型能够做NLP, CV, Multi-Modal的各种任务,即希望打造一个通用智能体。
Towards a Unified Foundation Model: Jointly Pre-Training Transformers on Unpaired Images and Text
本文是12月挂在arXiv上的一篇工作,也是希望通过多任务学习打造一个统一的基础模型,能够胜任纯CV和NLP任务。它和UniT的区别在于:UniT的视觉和文本编码器都是根据各自模态设计的,只有decoder是共享的;而该模型只有tokenizer和task-specific output head是与模态或者任务相关的,中间的Transformer encoder是与模态无关的。文章用BERT和ViT作为teacher model对Transformer encoder进行知识蒸馏,并提出了一种新的gradient masking策略平衡来自视觉和文本预训练损失函数带来的参数更新。
多模态prompt:
[NIPS 2021] Multimodal Few-Shot Learning with Frozen Language Models
PLM在prompt的提示下可以在一个新任务进行few-shot learning[2],受此启发,本文将prompt的方法用到了多模态上,提出了一个多模态few-shot learner——Frozen。Frozen可以被看作是一种image-conditional prefix tuning,与prefix tuning[3]的不同之处在于连续的prompt不再是随机初始化的参数,而是一种image-conditional的激活向量。模型的结构非常简单:
整个模型类似于多模态模型中的双流架构,其中text embedder和self attention layers的参数都是固定不动的,只有vision encoder的参数会进行更新。每一张图片经过NF-ResNet-50编码之后再经过一个线性层映射称为D*n维的向量,然后拆散成n个embeddings,上图展示了n=2的情形。模型在conceptual captions数据集上进行训练,输入image,自回归地输出captions,相当于是一个conditional text generation任务。
vision encoder训练好之后,Frozen在VQA任务上进行了zero-shot和few-shot的实验。也测试了Frozen的Fast Concept Binding的能力。
[ACL ARR] Prompting as Multimodal Fusing
本文是对上一篇文章中的image-conditional prefix tuning的改进工作。Frozen中的image encoder同时完成了两个目标:提取视觉特征、对齐图文空间的表示。本文将这两个目标解耦,image encoder只负责编码图像特征,而对齐图文空间表示的任务交给prompt向量来做。这样视觉编码器的参数也变成固定的了,只有prompt向量的参数是可训练的。这样做有两个好处:(1) 整个架构更加模块化,可以灵活调整视觉编码器,也可以灵活地加入其他模态;(2) 实现了更高的参数效率,视觉编码器中的大量参数都可以冻结,只需要调整prompt向量即可。模型结构如下:
另外,本文还提出了一种特殊的attention mask,它迫使prompt对所有输入数据都是不可见的,称为BlindPrompt,如下图所示:
文章说这使得prompt向量关注模态之间的对齐,而不是模态中特定的内容(有一定道理,但是并没有做ablation study)。
多模态预训练分析:
[EMNLP 2021] Effect of Visual Extensions on Natural Language Understanding in Vision-and-Language Models
本文是一篇实验分析性的工作,对一系列多模态预训练模型在GLUE上进行微调,探讨现有的多模态预训练模型在NLU方面的能力。
在实验部分,文章首先对5个多模态预训练模型的视觉编码进行了统一,使得结果对比较为公平。5个模型的文本编码器都采用了BERT-base,视觉编码器随机初始化。在微调时,由于GLUE中没有图片数据,因此视觉编码器的输入都采用了全黑的图片。
文章做了一系列实验,得出如下一些结论:
不管是单流还是双流,多模态的预训练模型都比预训练语言模型在NLU任务上表现更差,单流模型比双流模型略好;
上述NLU任务上性能的下降主要是由预训练任务造成的,而不是模型结构;
论文研究了多模态预训练模型的参数是如何在预训练语言模型的基础上变动的,并研究了每一个预训练模型能解决的任务;
多模态的任务最好采用单流的架构,并精心设计预训练任务来保持预训练语言模型的知识。
知识迁移和知识蒸馏:
[ACL ARR] Leveraging Visual Knowledge in Language Tasks An Empirical Study on Intermediate Pre-training for Cross-Modal Knowledge Transfer
目前的大规模语言模型在理解日常物品属性方面的能力还很缺乏,因为它们的预训练语料中很少有这样的事实性知识,即所谓的reporting bias,下图即是一个例子:
因此本文尝试通过以下两种方法来弥补PLM在这方面的缺陷:
(1) text knowledge transfer: 即使用image caption进行知识迁移,设计了如下两个训练目标:
MLM:在image caption上进行MLM,相当于进行了domain adaptive的预训练;
Text Contrastive Learning (TCL): 采用和SimCSE一样的方式,进行对比学习。
(2) cross-modal knowledge transfer: 即使用图片和文本以及V&L的训练来进行知识迁移,设计了如下几个训练目标:
Voken Classification: voken[4]采用token层面的text2image检索来迁移视觉知识,它假设每一个token都有一个视觉域的voken与其对应,训练目标就是在所有预先设定好的voken中将正确的voken检索出来;
Masked Language Modeling with Visual Clues: 给定图片作为线索,预测mask掉的token,比MLM多了图片作为输入,目标函数是一样的;
Cross-Modal Contrastive Learning (CMCL): 和CLIP一样,是跨模态的对比学习;
Cross-Modal Knowledge Distillation (CMKD): 将在MSCOCO数据集上进行对比学习的多模态模型作为teacher model,将一个语言模型作为student,在纯文本语料Wiki103上进行知识蒸馏。
[ACL ARR] Enabling Multimodal Generation on CLIP via Vision-Language Knowledge Distillation
目前大部分大规模的多模态预训练模型(如CLIP, ALIGN[5])等文本编码器较弱,而大规模的NLG模型(如BART, T5)具有很强的生成能力,因此考虑用NLG模型弥补VLP模型生成能力的不足。本文将CLIP的知识蒸馏到BART中,得到的模型在多模态生成任务以及纯NLP任务上具有很强的zero-shot性能。
具体而言,本文使用了三个目标函数进行蒸馏:
Text-Text Distance Minimization (TTDM): 最小化BART编码器和CLIP文本编码器得到的text embedding之间的距离;
Image-Text Contrastive Learning (ITCL): 在BART编码的文本和CLIP编码的图片表示之间进行跨模态的对比学习;
Image-Conditioned Text Infilling (ITCL): 上面两个目标只是对BART的编码器进行了更新,没有动解码器。此处在(image, text) pair数据集上将CLIP的视觉表示和BART编码器的文本表示投影到与BART解码器相同的维度上,然后进行conditional text generation,使得BART的编码器也能理解视觉表示。
文章测试了蒸馏后的BART在VQA和image caption上的微调和zero-shot能力,以及在GLUE和XSUM上微调的表现。
参考文献
[1] Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
[2] Language Models are Few-shot Learners
[3] Prefix-Tuning: Optimizing Continuous Prompts for Generation
[4] Vokenization: Improving Language Understanding with Contextualized, Visual-Grounded Supervision
[5] Scaling Up Visual and Vision-Language Representation Learning With Noisy Text Supervision
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
整理不易,还望给个在看!
更多推荐
所有评论(0)