©作者 | 吉雅太
单位 | 清华大学
研究方向 | 多模态研究
CLIP
最近 NLP 中第四范式 prompt 比较火,就是不再是生硬地从预训练直接过渡到微调任务,而是用 prompt(提示)的方式,把微调任务做一个转换,接近预训练任务。比如用 MLM 预训练一个语言模型,后续要做一个文本情感分类,不再是提取出全句的表征后做分类,而是在这段文本后面加一个 prompt(提示),比如说 it is __,然后要补全空缺,相当于还是 MLM。看着很麻烦,但在预训练数据充足、微调数据不足情况下,是比较有效的。多模态作为一个大杂烩的领域,NLP、CV 中的创新都可以用进来,所以多模态的 prompt 文章就也出现了。本文先介绍 clip: Learning Transferable Visual Models From Natural Language Supervision。
论文标题:
Learning Transferable Visual Models From Natural Language Supervision
论文链接:
https://arxiv.org/pdf/2103.00020.pdf
代码链接:
https://github.com/OpenAI/CLIP
作者先指明 motivation,现在的视觉模型只能在预定义好的物体类别范围内进行预测,而在推理时遇到未标注过的数据,泛化性能较弱。而从带有描述的图片进行训练可以让模型有更广泛的监督,从而在下游的小样本学习、零样本学习中获得好的表现。作者提出 CLIP:Contrastive Language-Image Pre-training。通过对比学习用文本监督图片表征,在零样本学习上的表现可以与有监督的模型相媲美。
1.1 具体方法
将语言作为监督信息训练图片的表征,与用于图像分类的众包生成标签相比,扩展自然语言监督要容易得多,可以方便从互联网上的大量文本中学习。从自然语言中学习还有一个重要的优势,因为它不仅学习表征,而且还将表征与语言连接起来,从而实现灵活的零样本迁移。创建一个有效的大数据集,结合 MSCOCO、VG、YFCC100M,清理,生成大量图片-文本对,并从网上也抓取了大量数据,生成一个数据集 webimagetext。预训练方法的选择:先使用一种类似 image caption 的预训练任务,如蓝线,学习效率很低,达到同样精度要使用很多图片数据。黄线是基本的训练方法,即预测图片的描述文本的单词。这两种方法试图预测每幅图片所附文字的准确单词,但由于种类繁多,这么做是很困难的。而对比学习能较好地学习表征,以文本整体和图片的配对作为一个目标,进一步提高了效率。
对比学习:一个 batch 有 N 个图片文本对,计算相似度矩阵,对角线上的 N 对为正样本,另外 对为负样本。最大化正样本相似度,最小化负样本相似度,使用一个对称交叉熵损失优化。
模型选择和训练:图像编码器使用了两种:resnet(用带有注意力的池化得到整张图的全局表征),ViT。文本编码器使用 transformer,在文本编码器中使用了掩蔽自我注意,以保留使用预训练的语言模型进行初始化的能力。在零样本学习中,以分类任务为例,使用 prompt 的方法,将分类任务转换为图片、文本的匹配问题。即将标签单词和提示语构成候选句子,再把图片编码成特征向量,分别计算相似度,找到可能性最高的类别。实验先和其他的零样本学习模型对比,在 Visual N-Grams 相比,CLIP 在三个图片分类数据集上的准确率都有很大提升。作者用实验证明 prompt 的必要性,一个词经常会具有多义性,而将词带入到特定的上下文提示语中,就可以有更清晰的意义,有助于分类。另一方面可以减小和预训练任务之间的 gap。实验证明使用 prompt 要更有效。
实验部分这些是比较好懂的,arxiv上原文光实验部分就有大概二十页,不过 dblp 上有简约版的。
CoOp
模型 CoOp,主要的思想是自动设计提示文本,先保持预训练参数不变,然后利用少量数据去学习合适的 prompt,这样的 prompt 比人工设计的提示文本在测试时更有效。值得注意的是,学习合适的 prompt,只是学到适合这个任务的一组词向量,并不一定是找到了一组真实的词(意思是说学到的词向量可能映射到乱七八糟的词上去,但就是这些词最适合做这个任务的提示语,这和语义空间的连续性有关)。
论文标题:
Learning to Prompt for Vision-Language Models
论文链接:
https://arxiv.org/pdf/2109.01134.pdf
代码链接:
https://github.com/KaiyangZhou/CoOp
作者的 motivation 在于观察到 prompt 的选择对测试结果影响很大。
预训练过程和 CLIP 相同,也是使用对比学习。CLIP 在预训练之后,会直接进行 zero-shot inference(零样本推理),使用 prompt 的方法,把 K 个 label 分别结合到提示语句,然后得到对应的 K 个表征,分别和图像计算相似度。本文的方法 CoOp(context optimization),可以避免人为地设计提示语,把输入 prompt 设计成如下格式:
其中 是随机初始化的词向量,也是 512 维。注意这里上下文词向量对于不同类别是共享的。在训练阶段,把 t 前向传播,和图像特征计算相似度,计算出对应每一类的概率 ,再用交叉熵优化,学到合适的 (这个上下文提示是 task-relevant)。prompt 有一些其他的变种,一种是改变 CLASS 的位置,把 [CLASS] 放在句子中间,这样可以学习到更灵活的上下文;另一种是每种 CLASS 学习一组上下文提示语句,即不同类别对应的语句不同,作者发现这样的方法对一些细粒度的分类很有效。使用 11 个分类数据集做小样本学习,涉及到的分类有物体、动作、场景等。
从平均结果看,coop 在小样本学习中效果更好,并且当增加用 16 个样本训练时,准确率可以提高 17 个点。对于数据分布变化的鲁棒性,如表 1,target 数据集是一些 imagenet 数据集变体,在 source 上做小样本训练,在 target 测试,发现 M 越小鲁棒性、泛化性能越好。表 2 表示 coop 比 clip 里 prompt ensemble 效果还要好。表 3 对比了随机初始化和人为设定 prompt 两种情况直接测试的准确率,表明即便随机初始化一个 prompt,测试效果与人为设定也差不多,当然,如果再使用小样本微调一下随机的 prompt,效果就更好了。
上图,左边是 prompt 长度 M 和 class 位置的消融实验;右边是不同视觉 backbone 的影响。下表就是把学到的词向量通过欧氏距离找到的词表中最近的词,可以看到可解释性很差,但对于模型来说就是有效。这就是“隐式学习”吧,不知道模型学了个啥。
虽然效果上看 coop 使用自动生成 prompt 要好过 clip,但一个主要的区别在于 coop 也需要少量的数据学习 prompt,即少样本学习,而 clip 由于直接使用人为设计的提示语句,可以进行零样本学习(不过实验部分也看到 coop 直接用随机的 prompt 也能做零样本学习,就是差点)。
CLIP-adapter
CLIP 和 COOP 分别在今年 3 月份、9 月份挂载 arxiv 上,十月份又挂了一篇:CLIP-adapter。coop 和 CLIP-adapter 都是在 clip 基础上增量式的工作,clip 使用一个人为设定好的 prompt 直接进行零样本推理,而 coop 和 CLIP-adapter 都是使用小样本学习,coop 是初始化一个随机的 prompt,在小样本中学习合适的 prompt,从而更适应这个任务;adapter 是在模型中间插入一个随机的可学习的模块,通过更新这个模块来更适应下游任务。
论文标题:
CLIP-Adapter: Better Vision-Language Models with Feature Adapters
论文链接:
https://arxiv.org/abs/2110.04544
代码链接:
https://github.com/gaopengcuhk/clip-adapter
最下面就是 adapter 的结构,在小样本学习时,在两个分支上各加入一个可学习的层。小样本训练时,其他部分冻结参数(如果更新整个大模型,由于数据太少很容易过拟合)。并且为了更好地结合微调的知识和原始的知识,又加入一个残差连接结构,见图。
在 11 个数据集上进行小样本学习,可以看到 clip 零样本推理的结果,clip 小样本微调的结果,coop 小样本学习的结果,adapter 小样本学习的结果。从左上角平均结果的图可以看出,adpater 小样本学习的效果最好。对于 clip,小样本学习的初始阶段甚至弱于零样本学习,所以人为设定的 prompt 只是我们看上去合理的提示语句,对于模型来说可能并不是一个好的初始化。感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧