今天给大家分享一篇商汤科技关于多模态预训练的工作“Supervision exists everywhere: A data efficient contrastive language-image pre-training paradigm”。
现如今大规模对比学习语言-图片预训练已经在零样本学习以及下游任务上取得很好的效果(如CLIP)。但是例如CLIP这样的大模型需要大量的训练数据进行训练,CLIP需要400M数据进行预训练,为了提高训练的效率,可以让模型在较少的训练数据下依然取得不错的效果,本文提出一种高效的多模态预训练模型DeCLIP。不同于CLIP仅仅使用图片文本对匹配作为自监督信号,DeCLIP提出了更多种自监督信号:1,单一模态的自监督学习;2,跨模态的多视角监督学习;3,最近邻监督信号。
近年来,预训练技术在CV领域任务以及NLP领域任务都取得了很好的效果。最初的预训练技术应用到CV领域,利用带标注的ImageNet数据集预训练一个卷积神经网络,之后利用该卷积神经网络执行下游任务。但是这类方法的缺点是需要对预训练数据集进行标注。NLP领域的预训练技术主要是使用Mask语言模型(BERT)或者语言模型(GPT)作为自监督任务。在多模态领域,学者尝试使用语言监督对图片信息进行学习,比如CLIP和ALIGN模型,都需要大量的图片-文本对进行训练,预训练任务为:将匹配的图片文本对之间的距离拉近,将未匹配的图片-文本对之间的距离拉远。以上的方法需要大量的数据以及计算资源,这对于一些企业以及公司是不友好的。
本文提出了一种数据利用效率更高的多模态预训练模型DeCLIP。提出了更多的自监督任务,从而实现对数据的高效利用。
模型方法:
首先回顾一下CLIP:
CLIP直接学习源图片所对应的文本信息,使用两个encoder分别编码文本信息和图片信息。图片encoder一般使用CNN或者VIT,文本encoder一般使用transformer。之后将文本和视觉嵌入映射到相同空间中,之后使用对比学习的思想,将匹配的图片-文本embedding的距离拉近,将不匹配的embedding拉远。假设batchsize为 ,共计 个图片-文本对 ,损失函数infoNCE公式如下:
接下来介绍DeCLIP的详细内容:
1,模态内的自监督任务。使用SimSiam作为视觉模态的自监督任务。使用掩码语言模型MLM作为文本模态的自监督任务。
视觉模态的SimSiam:
首先将一张图片经过数据增广得到两个view ,将两个数据增广后的结果经过相同的encoder得到两个嵌入向量 ,之后将其中一个嵌入向量 再经过一个预测层得到嵌入向量 ,让预测层得到的嵌入 和 无限接近。
文本模态的MLM:
本文使用掩码语言模型作为文本模态中的自监督任务,即随机MASK掉文本中15%的token,利用前后token预测被mask掉的token。
2,跨模态multi-view监督学习。原始的CLIP直接使用原始的文本和语言嵌入计算自监督InfoNCE损失。DeCLIP中使用的是数据增强后的文本和图片,进行四次InfoNCE,相比CLIP多了三倍的量。
对于原始文本对 ,原始图片经过数据增强得到 ,原始文本经过数据增强得到 。经过书增强的文本-图片对,可以彼此计算InfoNCE 损失, , , , 计算四次InfoNCE loss,相较于CLIP多计算三次。
3,最近邻监督。
因为相同的图片可能会有类似的语言描述,因此作者选择语言描述相似的图文对,进行对比学习。
最终将三个loss加权求和,得到最终的loss。
数据集:
DeCLIP数据集包括两部分开源数据集以及网络下载数据集,DeCLIP数据规模相较于CLIP小很多。
Zero-shot准确率:
下游任务表现:
消融实验:
数据规模实验: