CLIP:Learning Transferable Visual Models From Natural Language Supervision
论文:https://arxiv.org/abs/2103.00020
代码:https://github.com/openai/CLIP
官博:https://openai.com/index/clip/
复现:https://github.com/mlfoundations/open_clip

基础知识
InfoNCE loss:https://zhuanlan.zhihu.com/p/506544456
clip 原理的极简版:
用图像编码器把图像编码成向量 a;
用文本编码器把文本编码成向量 b;
计算 a·b,
如果 a 和 b 来自一对配对的图和文字,则让 a·b 向 1 靠近;
如果 a 和 b 来自不配对的图和文字,则让 a·b 向 0 靠近;


1. Introduction and Motivating Work
直接从原始文本中学习的预训练方法在过去几年中彻底改变了自然语言处理。诸如自回归和掩码语言建模等与任务无关的目标已经在计算、模型容量和数据量上跨越了许多数量级,稳步提升了能力。“文本到文本”作为标准化的输入输出接口的发展,使得与任务无关的架构能够零样本迁移到下游数据集,消除了对专门输出头或数据集特定定制的需求。像GPT-3这样的旗舰系统现在在许多任务上与定制模型竞争,同时几乎不需要特定数据集的训练数据。
这些结果表明,现代预训练方法在网络规模文本集合中可获得的聚合监督超过了高质量众包标注的自然语言处理数据集。然而,在其他领域,如计算机视觉,仍然标准做法是在众包标注的数据集(如ImageNet)上预训练模型(Deng et al., 2009)。直接从网络文本中学习的可扩展预训练方法是否会在计算机视觉中带来类似的突破?先前的工作令人鼓舞。
2. Approach
2.2. Creating a Sufficiently Large Dataset
现有工作主要使用了三个数据集:MS-COCO(Lin等人,2014)、Visual Genome(Krishna等人,2017)和YFCC100M(Thomee等人,2016)。虽然MS-COCO和Visual Genome是高质量的众包标注数据集,但它们按现代标准来说很小,每个数据集大约有10万张训练照片。相比之下,其他计算机视觉系统训练的数据量高达35亿张Instagram照片(Mahajan等人,2018)。YFCC100M有1亿张照片,是一个可能的替代方案,但每张图像的元数据稀疏且质量参差不齐。许多图像使用自动生成的文件名,如20160716 113957.JPG作为“标题”,或包含相机曝光设置的“描述”。经过过滤,只保留带有自然语言标题和/或描述的英文图像,数据集缩小了6倍,仅剩1500万张照片。这大约与ImageNet的大小相同。
自然语言监督的一个主要动机是互联网上公开的大量此类数据。由于现有数据集不能充分反映这种可能性,仅考虑它们的结果会低估这一研究方向的潜力。为了解决这个问题,我们从互联网上的各种公开来源收集了4亿(图像,文本)对,构建了一个新数据集。为了尽可能广泛地涵盖视觉概念,我们在构建过程中搜索(图像,文本)对,其文本包含一组50万查询中的一个。1我们通过每个查询最多包含20,000个(图像,文本)对来近似类别平衡结果。最终的数据集总词数与用于训练GPT-2的WebText数据集相似。我们将这个数据集称为WIT,即WebImageText。
2.3. Selecting an Efficient Pre-Training Method
我们最初的类似VirTex的方法是从头开始联合训练一个图像CNN和文本Transformer来预测图像的标题。然而,我们遇到了扩展这种方法的困难。在图2中,我们展示了6300万个参数的Transformer语言模型,其计算量已经是ResNet-50图像编码器的两倍,学习识别ImageNet类别比一个简单得多的基线慢三倍,该基线预测相同文本的词袋编码。

给定一批N个(图像,文本)对,CLIP被训练来预测批次中实际发生的N × N个可能的(图像,文本)配对中的哪一个。为此,CLIP通过联合训练图像编码器和文本编码器来学习一个多模态嵌入空间,以最大化批次中N个真实对的图像和文本嵌入的余弦相似度,同时最小化N*N − N个不正确配对的嵌入的余弦相似度。

参考
1:代码复现:https://zhuanlan.zhihu.com/p/676480190 GitHub - RustamyF/clip-multimodal-ml
