多模态预训练背景
相关公司:腾讯、百度、阿里、谷歌、微软、Facebook、UCLA等
多模态数据集
NLP和CV两个模态处理信息的方式十分不同,在涉及这两个领域信息的多模态任务,如VQA(视觉问答),VCR(视觉推理)等时,就需要让不同的模态的信息对齐和交互。多模态预训练就是通过海量数据学习这种跨模态理解能力,进而迁移到下游应用中。
多模态相关问题:
特征提取要解决的问题是怎么分别量化文字和图像,进而送到模型学习?
特征融合要解决的问题是怎么让文字和图像的表征交互?
预训练任务就是怎么去设计一些预训练任务来辅助模型学习到图文的对齐信息?
训练的数据是文本和图像pair,怎么挖掘?
训练好的预训练模型怎么压缩?
特征提取:文本端的表征标配就是bert的tokenizer,更早的可能有LSTM;图像的话就是使用一些传统经典的卷积网络,按提取的形式主要有三种Rol、Pixel、Patch三种形式。
特征融合:目前的主流的做法不外乎两种即双流two-stream或者单流single-stream;前者基本上就是双塔网络,然后在模型最后的时候设计一些layer进行交互,所以双流结构的交互发生的时间更晚。后者就是一个网络比如transformer,其从一开始就进入一个网络进行交互,所以单流结构的交互时间发生的更早且全程发生,更灵活。
预训练PreTask:这里就是最有意思的地方,也是大部分多模态paper的idea体现。
双塔预训练模型
特征提取:文本、图片都采用transformer,其中图片采用patc
预训练任务:采用对比学习。
特征提取:文本、图片都采用transformer,其中图片采用的是patch。
预训练任务:采用的也是对比学习
采用18亿张图片进行训练
相当于结合clip和simclr两个对比学习的损失,等于文本图像对比学与图像图像对比学习结合。
预训练任务:采用的是图文对比学习+图像自监督。
FILIP
引入一种新颖的细粒度对比学习目标,加上跨模态后交互机制,它能够考虑到图像patch和文本token之间的细粒度交互。
Cross-model Late Interaction
从对比损失可以看出,跨模态相互作用反映在我们如何计算第i幅图像和第j幅文本的相似性和。以前的方法,如CLIP和ALIGN只是将每个图像或文本分别编码为全局特征,即和,并计算这两个相似性,如下所示:
忽略两种模态之间的细粒度交互(例如,单词-patch对齐),作者采用了跨模态后期交互来建模token式的跨模态交互。具体而言,将n1和n2分别表示为第i个图像和第j个文本的(非填充)token数量,相应的编码特征为和。对于第k个视觉token,作者计算其与的所有文本token的相似性,并使用最大的一个:
单塔预训练模型
VILT
特征提取:文本、图片都采用transformer,其中图片采用的是patch。
预训练任务:这里采用的是I m a g e T e x t M a t c h i n g + M a s k e d L a n g u a g e M o d e l i n g。
AIBEF
一个图像编码器、一个文本编码器和一个多模态编码器组成,提出一种图像文本对比损失,在图像文本融合之前对图像文本进行统一表示建模
图文对比学习
掩码语言建模
图文匹配任务
从网络上收集的图像-文本对往往是弱相关的:文本可能包含与图像无关的词,或者图像可能包含文本中没有描述的实体。为了从嘈杂的数据中学习,我们提出了动量蒸馏法,即使用动量模型为图像-文本对比学习和掩码语言建模生成伪目标。下图显示了一个图像的伪目标文本的例子,它产生了 "年轻女人 "和 "树 "等新概念。我们还从相互信息最大化的角度提供了理论解释,表明动量提炼可以被解释为 为每个图像-文本对产生一系列新的视角。
双塔结构:视觉和文本编码器(Encoder)分开编码,然后在模型最后的时候设计一些
layer进行交互,所以双流结构的交互发生的时间更晚。
优点:速度快,下游使用方便,适合跨模态检索;缺点:缺少足够的模态交互,有些下游任务如VQA、NLVR效果不太好
代表:CLIP ,ALIGN, SLIP等
单塔结构:使用一个网络比如transformer,其从一开始就进入一个网络进行交互,所以单流结构的交互时间发生的更早且全程发生,更灵活。
优点:有足够的模态交互,在下游任务如VQA、NLVR效果更好,但是在下游任务使用时不方便,且跨膜态检索速度慢
代表:VILT ,UNITER等