前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅聊对比学习 (一)

浅聊对比学习 (一)

作者头像
zenRRan
发布2022-07-21 19:44:20
5120
发布2022-07-21 19:44:20
举报

每天给你送来NLP技术干货!


©作者 | 吴桐

研究方向 | 推荐系统

来自 | PaperWeekly

什么是对比学习?

Metrics learning + self-supervised learning

对比学习在解决什么问题?

● 如何学习 representation ● 解决数据稀疏的问题 ● 如何更好的利用没有label的数据

  • 未打标的数据远远多于打标的数据,不用简直太浪费了,但是要打标又是一个耗时耗力耗钱的事儿

● 有监督学习的缺点:

  • 泛化能力
  • spurious correlations(伪相关)
  • adversarial attacks(对抗攻击)

为什么现有的方法解决不了这个问题?

  • 有监督学习天然所带来的问题:泛化能力、过拟合、对抗攻击等等 
  • 有监督学习本身就无法使用无标签的数据

现有的对比学习方法

实验结果就没贴了,肯定是牛逼呗,而且因为是比较老的 paper 了,所以看这些 paper 的实验不如看 SOTA 的 paper 的实验结果,但是为什么要看老 paper——温故而知新。

4.1 Noise-contrastive estimation: A new estimation principle for unnormalized statistical models (NCE)

不重复造轮子之 paper 讲解传送门(这篇论文的证明很不错,很值得学习)

知乎:

https://zhuanlan.zhihu.com/p/58369131

CSDN:

https://blog.csdn.net/littlely_ll/article/details/79252064

One Sentence Summary:给现有的样本加上噪声,作为负样本,模型对原本真实的样本和新增的负样本进行区分,从而将 softmax 这种低效的计算转化成二分类的 logloss,计算效率更高,下面公式里的 代表真实的样本, 代表加了 noise 后的样本。

但是这里会出现一个问题,如果我们的 noise 分布选的不好,效果可能并不一定会好,所以在这篇 paper 里作者也提到了在增加 noise 的时候,尽量和现有的数据分布相似,这样能最大程度上提高训练的效果

Intuitively, the noise distribution should be close to the data distribution, because otherwise, the classification problem might be too easy and would not require the system to learn much about the structure of the data. As a consequence, one could choose a noise distribution by first estimating a preliminary model of the data, and then use this preliminary model as the noise distribution.

这个方法在推荐里的应用,个人观点是可以在召回里来尝试,毕竟现在的召回面临着很大的 selection bias 问题(有朋友在召回里尝试过,效果一般,只能说明老 paper 时间比较久了,已经被现在的 SOTA beat 掉了,不过这篇文章的 idea 很有意思,数学证明也很不错,可以学习下)。

4.2 Representation Learning with Contrastive Predictive Coding (InfoNCE)

不重复造轮子之 paper 讲解传送门:

https://zhuanlan.zhihu.com/p/317711322

One Sentence Summary:提出 CPC 框架,将 representation 的学习从一个生成模型,转换成了分类模型,用于下游的其他任务。

文章优化的目标从最大化 预测 的概率 变成优化最大化 和 之间的互信息 ,通过最大化互信息,可以抽取出输入之间的一些共性的潜变量。

由于没有办法获得到 的联合概率,因此文章通过建模两种样本的密度比的方式来绕过联合概率(两种样本:真实样本和采样出来的负样本),其中 表示 的预测和未来 的相似程度, 是将 转换到 空间,然后用内积来表示相似程度,文章也证明了 。

▲ f_k 正比于密度比的证明

本文训练的loss

从而将一个生成模型 转变成了分类模型 。

训练出来的 和 可以用于下游的任务:比如分类任务等等。

文章比较有意思的点:证明了互信息的下界和总样本数是有关的,N 越大,互信息越大。

4.3 LEARNING DEEP REPRESENTATIONS BY MUTUAL IN- FORMATION ESTIMATION AND MAXIMIZATION (Deep InfoMax)

不重复造轮子之 paper 讲解传送门:

https://zhuanlan.zhihu.com/p/277660074

One Sentence Summary:加入了更细致的 local feature 与 output 的互信息,加上了先验,让先验服从一定的分布,从而能更好的具有编码空间。

(我对这一点有点 concern,什么样的编码空间是 更好的空间呢?这个先验也只能去拍,怎么去拍,只能不断的去尝试吗,是不是可以学成一个动态的空间,如果我们的数据是多峰的,可能一个分布就不太能拟合,混合高斯分布会不会更优?感觉都是可以改进的方向)

▲ Global

▲ local

主要思想和 InfoNCE 差不多,多了 local/prior matching,和具体场景有关,感觉更像是在 bagging loss。

global MI/local MI:这俩没啥好介绍的,global 是拿输入和全局的 feature 去做MI的计算,local 是拿中间的 feature 和全局的 feature 去做 MI 的计算。

  • 多的这部分 local 的 loss,我个人的理解其实也是换了种方式来增大样本数量,进而带来了收益

Prior matching(adversarial autoencoders):拍了一个 feature 的先验分布,训练一个 discriminator,然后让这个 discriminator 和模型学到的全局 feature 进行 battle(对抗学习的 min-max 方式),编码器的输出更符合先验的分布,感觉这个就有点玄学了~

▲ Prior matching

Loss:前面两项分别对应 global 和 local,最后一项对应 Prior matching

对比学习在推荐里的应用场景 

在召回阶段: 

  • 负采样逻辑优化:现在很多推荐系统里的负采样都是随机采样的,虽然随机采样已经能拿到不错的效果了,但是一定还有优化空间,比如 InfoNce 文章中提到的增大负采样的个数能够提升互信息的下界,同时在工业界的 best practice 中,往往也能发现 batch_softmax 的效果也很不错。
  • i2i 召回:基于 item2item 召回的时候,往往是基于 item1 的 embedding 去召回与 item1 相似的 items,这时候 embedding 的相似性就显得尤为重要,但是这里有个问题,如何选择构造与 item1 相似的 item 作为正样本?(用户点击过的作为 item 作为相似的样本也不合理,毕竟用户的兴趣是多维的,点过的每个样本不可能都属于同一个类别或者相似的,虽然通过推荐的大量数据,协同过滤可能可以在全局找到一个还不错的结果,但是直接拿用户序列作为正样本来做一定是不合理的)。

一点小思考

对比学习的优势: 

  • 可以比较好的单独优化 representation,和下游任务无关,能够最大程度上的保留 meta-information,如果一旦做有监督的学习,那抽取出来的信息就是和当前目标相关的,不排除可能学到一些噪音特征。
  • 在做 data augumentation,模型见到了更多的样本,记忆的东西更全,效果好也是预期之中的。
  • 去噪

参考文献

[1] Gutmann M, Hyvärinen A. Noise-contrastive estimation: A new estimation principle for unnormalized statistical models[C]//Proceedings of the thirteenth international conference on artificial intelligence and statistics. JMLR Workshop and Conference Proceedings, 2010: 297-304.

[2] Oord A, Li Y, Vinyals O. Representation learning with contrastive predictive coding[J]. arXiv preprint arXiv:1807.03748, 2018.

[3] Hjelm R D, Fedorov A, Lavoie-Marchildon S, et al. Learning deep representations by mutual information estimation and maximization[J]. arXiv preprint arXiv:1808.06670, 2018.

[4] Hjelm R D, Fedorov A, Lavoie-Marchildon S, et al. Learning deep representations by mutual information estimation and maximization[J]. arXiv preprint arXiv:1808.06670, 2018.

[5] GitHub - asheeshcric/awesome-contrastive-self-supervised-learning: A comprehensive list of awesome contrastive self-supervised learning papers.

https://github.com/asheeshcric/awesome-contrastive-self-supervised-learning

[6] 张俊林:对比学习(Contrastive Learning):研究进展精要:

https://zhuanlan.zhihu.com/p/367290573


📝论文解读投稿,让你的文章被更多不同背景、不同方向的人看到,不被石沉大海,或许还能增加不少引用的呦~ 投稿加下面微信备注“投稿”即可。

最近文章

EMNLP 2022 和 COLING 2022,投哪个会议比较好?

一种全新易用的基于Word-Word关系的NER统一模型

阿里+北大 | 在梯度上做简单mask竟有如此的神奇效果

ACL'22 | 快手+中科院提出一种数据增强方法:Text Smoothing

代码语言:javascript
复制

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

代码语言:javascript
复制
整理不易,还望给个在看!
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么现有的方法解决不了这个问题?
  • 现有的对比学习方法
    • 4.1 Noise-contrastive estimation: A new estimation principle for unnormalized statistical models (NCE)
      • 4.2 Representation Learning with Contrastive Predictive Coding (InfoNCE)
        • 4.3 LEARNING DEEP REPRESENTATIONS BY MUTUAL IN- FORMATION ESTIMATION AND MAXIMIZATION (Deep InfoMax)
        • 对比学习在推荐里的应用场景 
        • 一点小思考
        相关产品与服务
        语音识别
        腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档