作者信息
王军杰
粤港澳大湾区数字经济研究院(IDEA研究院)实习研究博士生
清华大学2021级客座学生、早稻田大学博士生(指导老师:杨余久、酒井哲也)
总体结构
● VQA任务是什么
● 介绍之前的模型和方法
● 欢迎来到Transformer的时代
2019:尝试多模态表征
2020:拥抱多模态表征
2021:统一构架的探索
● 下游任务(VQA等)
● 更多其他有趣的论文
本Part 2主要介绍:
● 欢迎来到Transformer的时代
2019:尝试多模态表征
2020:拥抱多模态表征
欢迎来到Transformer的时代:2019至今
Transformer Based Models
2018 年,BERT 腾空出世之后,我们见识到了 transformer 的强大。所以,最近的工作都是基于 transformer 的模型构造而来。从此之后,多模态模型的模型基本上都开始抛弃单一任务了。大家的研究方向也从单一任务,迈向了 pretrain+finetune,VQA 也从一个特定的任务变成了众多下游任务中的一个。
Ref:
https://mp.weixin.qq.com/s/gyGeFHV2jlgCQaGmWBKMVQ
https://zhuanlan.zhihu.com/p/427323610
尽管我做这个 survey 是在 2020 年,但是,对很多文章都有所借鉴,根据了一些后来者的叙述缝缝补补。
单流模型的定义:只使用 self-attention 来学习模态内和模态间的联系。
双流模型的定义:专注于学习模态之间的联系,比如 cross-attention,co-attention。基本上,transformer 时代到来之前,都是双流模型。
对于 Transformer-based 模型来说,单流模型和双流模型是有共通之处的。
上图的(a)为基于 self-attention 的 block,(b)为基于通常的 attention 的组合而来的 co-attention 的 block。
对于 image 端的输入的 length 是 M 的话,对于 Text 端的输入的 length 是 N 的话。
那么对于单流模型来说,通常只需要用纯 self-attention 的 block,其计算复杂度为 。
对于双流模型来说,通常由两个 encoder 分别提取两个模态的信息,并且输入到一个特征融合模块中。两个 encoder 的计算复杂度分别为 和 ,co-attention 的计算复杂度为 ,其实合起来也就是 。
从这个角度来看,我们的单流和双流模型,也许本质上是一样的,只不过双流模型把单流模型中的一些操作解耦了,使得我们的结果更加容易分析。
3.1 2019的工作:尝试多模态表征
之前的工作都是在探索如何直接在视觉和语言之间建立联系,也就是用 attention 来直接计算。自从 transformer 起来了之后,不仅仅的整个多模态领域的构架发生了改变。也开始逐渐使用通用的多模态表征来做各种各样的下游任务了。而这下游任务也不只局限于 VQA 了。
说是全部改成了 transformer 的结构,但是实际上,仅仅是融合的部分以及文本的部分使用了 transformer 的架构,cv 端的特征依然来自于 fast rcnn。
3.1.1 ViLBERT
■ 双流模型
ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks
https://readpaper.com/paper/2970608575
https://arxiv.org/abs/1908.02265
Github:
https://github.com/jiasenlu/vilbert_beta
Motivation / Contribution
自然语言处理(NLP)领域在 2018 年提出的 BERT 模型(双向 Transformer 结构,利用了 self-attention 来增加上下文的相关性)逐渐成为了语言任务中首选的预训练模型。但在视觉与语言交叉的领域还没有出现一个通用的预训练模型,提出视觉与语言统一建模。该模型在 Conceptual Captions 数据集上进行预训练,再将其迁移应用到多个视觉-语言任务:视觉问答,视觉常识推理,指示表达(referring expressions)和基于字幕的图像检索。ViLBERT 应用到下游任务时仅需对基础架构进行少量增加。实验结果表明本文的 ViLBERT 在 4 个下游任务中显著优于面向特定任务的 sota。
简介
(Jiasen Lu, 2019)提出 ViLBERT(Vision-and-Language BERT),该模型学习图像内容和自然语言的无任务偏好的联合表征。
首先,在 Conceptual Captions 数据集进行 Pre-train,然后再迁移到视觉问答,视觉常识推理,指示表达(referring expressions)和基于字幕的图像检索这四个视觉-语言任务。在下游任务中使用 ViLBERT 时,只需要对基础架构进行略微修改即可。
ViLBERT 修改 BERT 中 query 条件下的 key-value 注意力机制,将其发展成一个多模态共注意 transformer 模块。在多头注意力中交换的 key-value 对,该结构使得 vision-attended 语言特征能够融入入视觉表征(反之亦然)。
ViLBERT 学习的是静态图像及其对应描述文本的联合表征,分别对两种模态进行建模,然后通过一组 attention-based 的 interaction 将它们 merge 在一起。
该模型由分别作用于图像块和文本段的 2 个平行 BERT 模型组成。每个流都是由一系列的 transformer blocks 和注意力 transformer 层组成。其 attention 层是用以两个模态之间特征融合。需要注意的是,流之间的信息交换是被限制于特定层的,所以,文本流在与视觉特征进行交流之前有更多的处理。这也符合我们的直觉,所选择的视觉特征已经相对高级,与句子中的单词相比,视觉特征需要有限的上下文聚合。
预训练任务
训练 ViLBERT 时采用了 2 个预训练的任务:
(1)遮蔽多模态建模
Masked Language Modeling(MLM):15%
Masked Object Classifation(MOC)
与标准 BERT 一样,对词和图像 rpn 输入大约 15% 进行 mask,通过余下的输入序列对 mask 掉的元素进行预测。对图像进行 mask 时,0.9 的概率是直接遮挡,另外 0.1 的概率保持不变。文本的 mask 与 bert 的一致。vilbert 并不直接预测被 mask 的图像区域特征值,而是预测对应区域在语义类别上的分布,使用 pretrain 的 object-detection 模型的输出作为 ground-truth,以最小化这两个分布的 KL 散度为目标。
(2)预测多模态对齐
Visual-linguistic Matching(VLM)
其目标是预测图像-文本对是否匹配对齐,即本文是否正确的描述了图像。以图像特征序列的起始 IMG token 和文本序列的起始 CLS token 的输出作为视觉和语言输入的整体表征。借用 vision-and-language 模型中另一种常见结构,将 IMG token 的输出和 CLS token 的输出进行 element-wise product 作为最终的总体表征。再利用一个线性层预测图像和文本是否匹配。
3.1.2 VisualBERT
■ 单流模型
VisualBERT: A Simple and Performant Baseline for Vision and Language
https://readpaper.com/paper/2968124245
https://arxiv.org/abs/1908.03557
Github:
https://github.com/uclanlp/visualbert
Motivation / Contribution
文字和图片统一进行语义学习,提出单流的方法。提出了两种预训练任务。
简介
(LH Li, 2019)提出的模型的结构和 Video BERT 类似,均将 text feature 和 visual feature 串联。不同的是,本文的 visual feature 使用的是 region feature,但是没有对其进行 mask。
其文字部分的输入为原始的 BERT 文字输入(词向量+位置编码+片段编码)加上 Token/Image 编码来表示其是图片或文字,而图片部分的输入则是采用通过 Faster-RCNN 提取的图片区域特征加上相应的位置编码,片段编码和 Token/Image 编码。
VisualBERT 遵循 BERT 一样的流程,先进行预训练然后在相应的任务上进行微调,其采用了两个预训练任务:第一个是和 BERT 一样的语言掩码,第二个则是句子-图像预测(即判断输入的句子是否为相应图片的描述)。
3.1.3 Unicoder-VL
■ 单流模型
Unicoder-VL: A Universal Encoder for Vision and Language by Cross-modal Pre-training
https://readpaper.com/paper/2998356391
https://arxiv.org/abs/1908.06066
Github:
https://github.com/microsoft/Unicoder
Motivation
利用多层转换器对跨模态语义表示进行建模。
提出了三个预训练任务。
在图像捕获、场景图生成、视频分类和视频问答上 finetune。
简介
如图所示,本文模型中以图像的特征匹配文本中的特定短语共同输入到编码器中进行嵌入,随后使用多层的 Transformer 进行跨模态的表征学习。其中,图像嵌入使用了 Fast-RCNN 进行特征提取,并使用 [IMG] 进行标记。
预训练任务
MaskedLanguage Modeling(MLM):将一部分的词语进行 mask,任务是根据上下文推断该单词。
Masked Object Classification(MOC):对图像的一部分内容进行 mask,任务是对图像进行分类,此处的分类使用的依然是目标检测技术,只是单纯的将目标检测中置信度最高的一项作为分类类别。
Visual-linguistic Matching(VLM):利用 [CLS] 的最终隐藏状态来预测语言句子是否与视觉内容语义匹配,并增加了一个 FC 层。
其中前两个任务视为了基于语言和视觉内容学习输入内容的上下文感知表示,而第三个任务是为了预测语言和视觉是否可以互相描述。
3.1.4 LXMERT
■ 双流模型
LXMERT: Learning Cross-Modality Encoder Representations from Transformers
https://readpaper.com/paper/2970231061
https://arxiv.org/abs/1908.07490
Motivation / Contribution
本文要解决的问题:多模态深度学习中,缺少特征之间的联系,两个特征提取分支在提取特征过程中没有进行交互,导致视觉和语言信息并没有得到充分联系。
本文提出了一种跨模态模型,该模型有两个输入,分别为图片与文本,其中图片为对象序列,文本为单词序列,具有针对语言,视觉和跨模态的三个输出。模型使用双路的 Transformer 结构,使用三种 Encoder(对象关系编码器、语言编码器、跨模态编码器)通过五种预训练方式来赋予模型的跨模态能力。
简介
(H Tan, 2019)提出了 LXMERT 框架来学习这些语言和视觉的联系,它含有三个编码器&