©PaperWeekly 原创 · 作者|李磊
学校|西安电子科技大学本科生
研究方向|自然语言处理
最近深度学习两巨头 Bengio 和 LeCun 在 ICLR 2020 上点名 Self-Supervised Learning(SSL,自监督学习) 是 AI 的未来,而其的代表的 Framework 便是 Contrastive Learning(CL,对比学习)。
另一巨头 Hinton 和 Kaiming 两尊大神也在这问题上隔空过招,MoCo、SimCLR、MoCo V2 打得火热,这和 BERT 之后,各大公司出 XL-Net、RoBerta 刷榜的场景何其相似。
本篇文章,将会从对比学习的背后的直觉原理出发,介绍其框架,并且对目前的一些相关的工作进行简要介绍,希望能够为感兴趣的同学提供一些帮助。
Motivation & Framework
很多研究者认为,深度学习的本质就是做两件事情:Representation Learning(表示学习)和 Inductive Bias Learning(归纳偏好学习)。目前的一个趋势就是,学好了样本的表示,在一些不涉及逻辑、推理等的问题上。
例如判断句子的情感极性、识别图像中有哪些东西,AI 系统都可以完成非常不错;而涉及到更高层的语义、组合逻辑,则需要设计一些过程来辅助 AI 系统去分解复杂的任务,ICLR 19 [1] 的一篇 oral 就是做的类似的事情。
因为归纳偏好的设计更多的是任务相关的,复杂的过程需要非常精心的设计,所以很多工作都开始关注到表示学习上,NLP 最近大火的预训练模型,例如 BERT,就是利用大规模的语料预训练得到文本的好的表示。那么,CV 领域的 BERT 是什么呢?答案已经呼之欲出,就是对比学习。
1.1 Illustrative Example
▲ 当你被要求画一张美元,左边是没有钞票在你面前,右边是面前摆着一张钞票画出来的结果
上面这个例子来自于 Contrastive Self-supervised Learning [2] 这篇 Blog,表达的一个核心思想就是:尽管我们已经见过很多次钞票长什么样子,但我们很少能一模一样的画出钞票;虽然我们画不出栩栩如生的钞票,但我们依旧可以轻易地辨别出钞票。
基于此,也就意味着表示学习算法并不一定要关注到样本的每一个细节,只要学到的特征能够使其和其他样本区别开来就行,这就是对比学习和对抗生成网络(GAN)的一个主要不同所在。
1.2 Contrastive Learning Framework
既然是表示学习,那么我们的核心就是要学习一个映射函数 ,把样本 编码成其表示 ,对比学习的核心就是使得这个 满足下面这个式子:
这里的 就是和 类似的样本, 就是和 不相似的样本, 这是一个度量样本之间相似程度的函数,一个比较典型的 score 函数就是就是向量内积,即优化下面这一期望:
如果对于一个 ,我们有 个正例和