4

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

 2 years ago
source link: https://www.qbitai.com/2022/06/35355.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

量子位的朋友们量子位的朋友们 2022-06-17 13:53:06 来源:量子位

X-VLM 由一个图像编码器,一个文本编码器,一个跨模态编码器组成。

视觉语言预训练提高了许多下游视觉语言任务的性能,例如:图文检索、基于图片的问答或推理。有朋友要问了,除了在公开的学术任务上使用更大的模型/更多的数据/技巧把指标刷得很高,多模态预训练模型有什么实际应用呢?

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

为此,字节跳动 AI Lab Research 团队提出了X-VLM,首次提出学习多粒度的视觉和语言对齐。实验证明,这种预训练方法十分高效,模型规模无需很大,预训练数据无需很多, 仅216M参数量的X-VLM就能在广泛的多模态任务上获得了十分优秀的表现,例如:图像文本检索、基于图片的问答或推理、视觉定位、图片描述生成。目前,X-VLM 在字节跳动的真实应用场景上超过了业界常用的多个模型,完成了上线,服务于如今日头条等业务。相关论文已被ICML 2022接收。

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

论文:https://arxiv.org/abs/2111.08276
代码:https://github.com/zengyan-97/X-VLM

比如,X-VLM 学到了多粒度的视觉和语言对齐,能为图片生成更正确的描述物体和物体间关系的句子,这项能力被应用到了字节跳动的公益项目上。有视觉障碍的赵先生常用今日头条了解时事新闻,他一直有个期待:“希望和普通人一样‘看’到全部资讯内容。” 今日头条上超过三分之二的资讯内容带有图片,为了解决视障人士的读图难题,今日头条App最近应用了 X-VLM 的生成能力,可以自动识别图片并为它们配上描述。

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

为了让他们“看”见每张图片,我们做了个小改进。

此外,X-VLM的理解和生成能力还被使用在大力智能学习灯的自动批改功能上。下图展示了补全短语题型以及模型预测的结果:

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

搭配了自动解题功能的大力智能学习灯广受家长好评,这项能力还在持续优化中。

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐
字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

现有的多模态预训练模型大致分为两类:

1)依赖目标检测器提取基于物体(例如:车、人、树、背包)的特征来表示图片,这种方法可以学习到物体级别的视觉和语言对齐,如图1中(a)所示。这些方法要么直接利用预先训练的目标检测器,要么将目标检测过程合并到多模态预训练中;

2)用 ResNet 或者 Vision Transformer 编码整张图片,只学习图片和文本之间的对齐,如图1(b)所示。

这两种方法都存在一定的问题。首先,基于目标检测的方法会识别图片中所有可能的物体,其中不乏一些与配对文本无关的。此外,这种方法所提取的基于物体的视觉特征可能会丢失物体之间的信息(可以认为是一种上下文信息)。而且,这种方法只能识别有限种类的物体,我们很难预先定义合适的物体类别。而第二种方法则比较简单直接,但是较难学习到细粒度的视觉和语言对齐,例如:物体级别的对齐。这种细粒度的对齐关系被之前的工作证实对于视觉推理 (visual reasoning) 和视觉定位 (visual grounding) 任务很有帮助。

实际上,对于多模态预训练,有以下公开数据以供模型使用:1)图片和图片标题;2)区域标注,例如:图1中的文本 “man crossing the street” 关联到了图片中的某个具体区域。然而,之前的工作却粗略地将区域标注与整张图片对齐;3)物体标签,例如 “backpack”,这些标注被之前的工作用来训练目标检测器。

与之前的做法不同,本文中作者提出X-VLM,以统一的方式利用上述数据高效地学习多粒度的视觉和语言对齐,能够避免高开销的目标检测过程,也不局限于学习图像级别或物体级别的对齐。具体来说,作者提出可以使用基于 Vision Transformer 的 patch embeddings 来灵活表示各种粒度大小的视觉概念,如图1(c)所示:例如,视觉概念 “backpack” 由2个patch组成,而视觉概念 “man crossing the street” 由更多的patch组成。

因此,X-VLM学习多粒度视觉和语言对齐的秘诀在于:

1)使用 patch embeddings 来灵活表示各种粒度的视觉概念,然后直接拉齐不同粒度的视觉概念和对应文本,这一过程使用常用的对比学习损失、匹配损失、和MLM损失优化;

2)更进一步,在同一张图片中,给出不同的文本,要求模型能预测出对应粒度的视觉概念的坐标,以边界框坐标的回归损失和交并比损失优化。实验证明,这种预训练方法十分高效,模型规模无需很大,预训练数据无需很多,X-VLM 就能在下游多种多模态理解/生成任务上获得非常优秀的表现。

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

X-VLM 由一个图像编码器,一个文本编码器,一个跨模态编码器组成。

图2左侧给出了视觉概念 (可以是物体/区域/图片)的编码过程:该图像编码器基于Vision Transformer,将输入图片分成patch编码。然后,给出任意一个边界框,灵活地通过取框中所有patch表示的平均值获得区域的全局表示。再将该全局表示和原本框中所有的patch表示按照原本顺序整理成序列,作为该边界框所对应的视觉概念的表示。通过这样的方式获得图片本身(I)和图片中视觉概念(V1,V2,V3)的编码。与视觉概念对应的文本,则通过文本编码器一一编码获得,例如图片标题、区域描述、或物体标签。

X-VLM采用常见的模型结构,其不同之处在于预训练的方法。作者通过以下两类损失进行优化:

第一,在同一张图片中,给出不同的文本,例如:T(text)、T1(text1)、T2(text2)、T3(text3),要求模型预测图片中对应视觉概念的边界框:

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐
字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

xjcls是跨模态编码器在 [CLS] 位置的输出向量。Sigmoid 函数是为了标准化预测的边界框。Ground-truth bj对应了 ,依次是标准化后的的中心横坐标、中心纵坐标、宽、高。最后,该损失是边界框坐标的回归损失(L1)和交并比损失(GIoU)之和。作者认为在同一张图片中,给不同文字,要求模型预测出对应的视觉概念,能使模型更有效地学习到多粒度的视觉语言对齐。该损失也是首次被使用在多模态预训练中。

第二,使用patch embeddings来灵活表示各种粒度的视觉概念,然后直接优化模型去拉齐不同粒度的文本和视觉概念,包括了物体/区域/图片与文本的对齐。作者使用多模态预训练中常见的三个损失优化,依次是:

1)对比学习损失:

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

yv2t,yt2v ∈ Rbsz bsz是ground-truth相似度, 对角线为1,其余为0。

pv2t, pt2v ∈ Rbsz x bsz是模型基于文字编码器输出和图像编码器输出所计算的相似度。

2)匹配损失:

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

pmatch是基于跨模态编码器计算,预测所给 对是否匹配(换句话说,0/1分类)。对于每对正例,作者采样一对负例。

3)Masked Language Modeling损失:

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

T(估计值)中的一些词已经被随机替换成了 [MASK],pj(VT(估计值))是跨模态编码器在词tj位置的输出向量所计算的词表概率分布。

作者使用多模态预训练中常见的中等规模的4M和16M图片数据集进行实验,如下表所示:

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

其中,标注(# Ann)是区域标注和物体标签的总和。可以看出,有些数据集没有图片标题,例如Visual Genome(VG),有些数据集没有图片标注,例如CC-3M/12M。

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

表2展示了在图像文本检索任务 (MSCOCO和Flickr30K) 上的表现。即使,之前的方法在更大量的内部数据上预训练或者模型规模更大,在4M图片数据集下训练的X-VLM就已经可以超过之前的方法。

字节跳动 AI Lab 提出多模态模型:X-VLM,学习视觉和语言多粒度对齐

表3展示了在视觉推理 (VQA2.0和NLVR2)、视觉定位 (RefCOCO+) 、图片描述生成 (COCO Caption) 上的模型表现。为了公平的对比,X-VLM 沿用了之前工作的 fine-tune 方法,没有进行额外的调整。结合表2和表3,可以看出,相比之前的方法,X-VLM支持更多种类的下游任务,并且在这些常见的视觉语言任务上都取得了十分优秀的表现。

总结和讨论

在本文中,作者提出了X-VLM以学习多粒度的视觉和语言对齐,能够避免高开销的目标检测过程,也不局限于学习图像级别或物体级别的对齐。X-VLM 的秘诀在于:

1)基于 patch embeddings 灵活表示各种粒度的视觉概念,然后直接拉齐不同粒度的视觉概念和对应文本;

2)更进一步,在同一张图片中,给出不同的文本,要求模型能预测出对应视觉概念的坐标。实验证实这种预训练方法十分高效。

在实验部分,作者使用常用的4M和16M数据,训练总参数量216M的 X-VLM ,就能超过更大规模的模型或使用大量预训练数据的模型,在下游多种多模态理解/生成任务上取得非常优秀的表现。并且,字节跳动的工程师们也把 X-VLM 用在了真实的业务场景上,例如:为视障人群描述图片内容,小学生作业的自动批改。实际上,X-VLM 还十分擅长细粒度的 retrieval,visual grounding 等任务。

版权所有,未经授权不得以任何形式转载及使用,违者必究。

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK