【Vision-Language】VLMo: Unified Vision-Language Pre-Training with Mixture-of-Modality-Experts

链接: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 regressionword-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会在在图像-文本对比学习、图像-文本匹配和掩码语言建模三个预训练任务上共同训练。流程:

  1. 首先,利用BEIT中提出的遮盖图像建模,让MOME的视觉专家和self-attention只在图像数据上进行预训练;
  2. 然后,利用掩码语言建模,只让语言专家在文本数据上进行预训练。
  3. 最后,利用该模型来初始化视觉语言的预训练。

预训练结束后就可以在特定任务上微调了。
针对检索任务,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} vRH×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)} vpRN×(P2

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值