
公众号专栏作者@上杉翔二????????
悠闲会?·?信息检索?
整理?|?NewBeeNLP
对比学习可谓是非常之火,本篇文章想整理几篇对比学习领域比较有代表性的应用论文。首先整理基于比较早期的InfoNCE的几篇应用,然后下期继续整理基于MoCo和SimCLR等文章的模型,持续关注!
1、CLCaption
出自 NIPS 2017,做为对比学习早期的应用,它使用的是InfoNCE。先放paper和code:
论文:Contrastive Learning for Image Captioning
地址:https://arxiv.org/abs/1710.02534
代码:https://github.com/doubledaibo/clcaption_nips2017
这篇文章是做Image Caption任务,问题是很多模型所生成的Caption缺少可区分性(Distinctiveness)。即模型生成的caption都非常死板,特别是对于同类相似的图片,生成的caption非常相似,但是人类在描述的时候,是很倾向于描述图像中很特殊的,能够与其他图片区分开的特点。
博主个人觉得比较有趣的是作者做了一个self-retrieval study的实验来证明以上的问题,具体如上面的图a和图b,基本就是由图片--生成句子--再拿句子检索图片。
比较前后的图片的效果,可以看到图a左右两边相差很大,这就证明所生成的caption是没有可区分性的。同时!下面的表1,作者在当时的sota中加入对比学习(adaptive attention+CL),检索recall和caption自身质量都提高了,且两者分数呈正相关关系,这也说明提高Distinctiveness是可以提高模型performance的。
然后具体的做法比较简单,直接构建正例 pair ,和负例 pair ,其中的负例中的图片是通过随机采样得到,然后优化:
然后还有两个trick:1 分数p可能比较小容易numerical problem,所以取对数;2 负样本是随机采样的,所以不同的正负样本的D可能差别比较大,所以logistic一下来平衡。所以变成
2、C-SWM
出自ICLR 2020,这篇文章的应用领域是世界模型(World Model),还是先放paper和code:
论文:Contrastive Learning of Structured World Models
地址:https://arxiv.org/abs/1911.12247
代码:https://github.com/tkipf/c-swm
首先科普一下世界模型,World Model来自NIPS 2018 (原文:https://arxiv.org/abs/1803.10122),属于model-based的强化学习(科普传送门[1])。
大概的意思是:人类以有限的感官所能感知到的事物为基础,会逐步形成一个心理世界模型(mental model of the world),而我们所做的决定和行动都是基于这个内部模型,如我们的应激反应等等。
具体来说可以分为三个组件:
将看到的图像压缩成一个低维的表征向量作为模型的输入(如上图模型图的object extractor)。
记忆组件基于历史信息,对未来的表征向量做出预测。
决策组件基于视觉组件和记忆组件的表征向量决定采取的动作。
这篇文章应用对比学习在于,区分在探索过程中的真实体验和虚假体验,即对记忆组件的 [状态-行为-状态] 这样的三元组,即 {} 进行评分,以无监督的形式模仿人类来学习。
具体模型图如上图,首先是抽取各个物体的状态特征,然后由于理解物体之间的关系以及建模其间的交互关系不单单需要好的表示,所以利用图神经网络来建模其之间的交互,最后进一步地利用对比学习来提升性能。s是观察状态,z是抽象状态,T是转换模型,模仿TransE+对比损失可以有:
其中负样本是通过在experience buffer中对三元组进行随机实体替换得到的。其中经过图卷积后的得到的新表示为
以这样的模型可以提升后续多物体交互环境中的性能。
3、CMC
来自ECCV 2020,一般的对比都是在2个视角下,这篇文章尝试扩展到多视角。
论文:Contrastive Multiview Coding
地址:https://arxiv.org/abs/1906.05849
代码:https://github.com/HobbitLong/CMC
模型架构图上图,首先选取同一场景的不同views,或者是不同场景的views来对比,然后最大化同一场景的交互信息(让同一场景views生成的embedding的invariance部分尽可能接近),最后基于抽取embedding的相似度来判断场景的相似度。
然后扩展成多视角的直觉来自,不同角度去看信号,看到的深层次结果应该一样。然后可以考虑两种情况:
主视角+从主视角变换得到的其他视角。所以直接对比这两者:
所有视角都从某一视角得到。所以考虑所有的两两组合的对比:
对比部分都是使用的log-softmax。
4、SGL
补一篇通过辅助的自监督任务来提高推荐系统的性能,来自SIGIR 2021:
论文:Self-supervised Graph Learning for Recommendation
地址:https://arxiv.org/abs/2010.10783
代码:https://github.com/wujcan/SGL
现有Graph在推荐系统中一般都可以沿着高阶邻居来学习(如NGCF),虽然很高效但却有两个限制:
所以作者的思路是自监督图学习(SGL):
一起交流
想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 /?等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)

本文参考资料
[1]
科普传送门: https://nakaizura.blog.csdn.net/article/details/88877213
-?END?-


百度 2021 Lic 机器阅读理解比赛有感
2021-11-15
NLP中的范式迁移
2021-10-18
搜索、推荐、广告中的曝光偏差问题
2021-10-12
Knowledge Distillation | 知识蒸馏经典解读
2021-10-03
