链接:https://arxiv.org/pdf/2111.02358.pdf
简介
首先我们做一些背景介绍,什么是vision-language?
众所周知,目前人工智能涉及一个领域叫:多模态学习。简单而言,这个领域研究的重点在于如何将两种不同的东西联系起来,一起学习知识。比如:
- 不同媒介:图像和文字,视频和语音
- 不同语言:汉语和英语
因此 vision-language(VL)就是研究视觉与语言的联系,比如:给一张图片让计算机生成一段描述文字(图像描述生成,Image Caption);给一张图片让计算机回答问题(视觉推理,Visual Reasoning)。
由于近年来Computer Vision(计算机视觉) 和 Natural Language Processing (自然语言处理) 利用机器学习发展迅猛,因此VL作为CV+NLP的领域也收到了巨大关注。
近年来,预训练-微调 模型在CV和NLP取得了惊人的成果,在VL领域也当然有所建树。
VL预训练模型从大规模的图像-文本对中学习通用的跨模态表示。主要方法有:图像-文本匹配、图像-文本对比学习、masked region classification/feature regression、word-region/patch alignment和掩码语言建模。
这些方法都是啥呢?简单介绍一下:
- 图像-文本匹配:度量一幅图像和一段文本的相似性
- 图像-文本对比学习:将样例与与它语义相似的例子(正样例)和与它语义不相似的例子(负样例)进行对比,希望通过设计模型结构和对比损失,使语义相近的例子对应的表示在表示空间更接近,语义不相近的例子对应的表示距离更远,以达到类似聚类的效果。
- masked region classification/feature regression:将一些感兴趣区域(RoI,Region of Interest) 遮盖,让计算机预测被遮盖的RoI标签/特征。
- word-region/patch alignment:将文本的Token与图像的RoI进行匹配。
- 掩码语言建模:比如BERT。
从模型结构上来说,有两种结构占据主流:
- 双编码器结构dual-encoder:2个encoder分别对图像和文本进行编码,然后对2个embedding计算余弦相似度。优点:适合检索任务,善于检索大量的文本与图片。缺点:余弦相似度的信息量太少,不能处理复杂的VL任务,比如视觉推理。
- 特征融合编码器fusion encoder:通过对所有图像-文本对编码,将图像和文本的representation都融合起来,通常使用多层Transformer。优点:善于解决分类问题。缺点:因为要encode所有图像-文本对,时间复杂度大,不善于解决检索问题。
那么一个直觉的想法是:能不能融合这两个架构的优点呢?
本文正是出于对此的思考,提出了统一视觉语言预训练模型(VLMo)。VLMo可以作为双编码器去做检索任务,也可以作为融合编码器去做分类任务。
VLMo的核心是Mixture-of-Modality-Experts(MOME) Transformer,就是将Transformer的前馈网络替换成了针对不同任务的网络(称为模态专家),在处理具体任务时,可以切换到相应的专家。
专家处理的是每个任务特有的知识,相应的,我们还要有一个机制来处理VL的普遍知识。因此,作者引入了跨模态共享的self-attention。
具体来说,MOME Transformer包含三个模态专家,即图像编码视觉专家、文本编码语言专家和图像-文本融合视觉语言专家。
模型可以使用切换机制和共享参数机制来实现不同的目的:文本编码器、图像编码器和图像-文本融合编码器。
在预训练阶段,VLMo会在在图像-文本对比学习、图像-文本匹配和掩码语言建模三个预训练任务上共同训练。流程:
- 首先,利用BEIT中提出的遮盖图像建模,让MOME的视觉专家和self-attention只在图像数据上进行预训练;
- 然后,利用掩码语言建模,只让语言专家在文本数据上进行预训练。
- 最后,利用该模型来初始化视觉语言的预训练。
预训练结束后就可以在特定任务上微调了。
针对检索任务,VLMo可以调整成双编码器结构;针对分类任务,VLMo可以调整成特征融合编码器结构。
作者将VLMo运用于视觉语言检索和分类任务。实验结果表明;
- 在检索任务上,VLMo比融合编码器的性能更好,同时推理速度要快得多。但不如双编码器。
- 在视觉问答(VQA)和视觉推理的自然语言(NLVR2)方面,VLMo取得了SOTA的结果。
VLMo
VLMo的整体结构和训练流程如上。左边是VLMo的结构,右边是按顺序的三个预训练任务。
我们来逐一介绍。
我们注意到图片和文本要变成embedding才能输入进VLMo。所以首先是如何生成embedding。
Input Representations
我们的数据大部分都是图像-文本对,而VLMo有3个专家,因此对一个图像-文本对,我们将其分别编码为图像embedding、文本embedding和图像-文本embedding。
Image Representations
对于图像表示,将 v ∈ R H × W × C v∈R^{H×W×C} v∈RH×W×C的二维图像分割并reshape为 N = H W / P 2 N = HW /P^2 N=HW/P2个patch, v p ∈ R N × ( P 2 C ) v^p∈R^{N×(P^2C)} vp∈RN×(P