对比学习在微博内容表示的应用

一、什么是对比学习

1. 渊源与谱系

目前,对比学习并没有一个非常明确的定义。综合来看,对比学习跟以下两个目前比较流行的技术关联较深。

  • Bert采用的自监督学习。Bert采用自监督学习,节约了大量的人工标注成本,可以有效发挥海量数据的潜力。对比学习借鉴了自监督学习的思路,旨在充分利用海量的无标注数据;
  • 度量学习。度量学习的基本思路是让正例特征编码内容距离拉近,负例编码结果距离推远。其中的正例一般是源自有监督数据。对比学习主体思路跟度量学习接近,最大的区别在于其正例是由自监督方式得来。

综上,可以认为对比学习是一种自监督版本的度量学习。

2. 一个抽象的对比学习系统

一个抽象的对比学习系统的构造方式如下:首先,利用自监督方式,构造好一些正例,一些负例(即正样本,负样本);之后,将样本输入encoder进行编码;然后,将样本编码之后的结果投影到一个单位超球面。
对比学习系统的优化目标是:如果输入样本为正例,则希望在投影空间中样本之间的embedding越近越好,反之,为负例时两者距离越远越好。
为实现优化目标,常见做法是利用损失函数来达成。损失函数是机器学习的驱动力,它决定系统的学习方向。对比学习系统中最常用的损失函数为InfoNCE函数,如图所示,InfoNCE的分子部分表征正例,分母部分表征负例,由此可以达成优化目标。

3. 典型例子-SimCLR

SimCLR是facebook提出的对比学习模型。 接下来,我们利用SimCLR模型,对照上面说的对比学习系统三要素来进行具体解释。SimCLR本身是一个双塔结构,分为上下两部分。第一个问题:如何构造正例负例?取一个batch图像,对其中每个图像利用多种变换方式组合进行变换,形成正例,这是自动化构造的方式,所以说是自监督模式的;负例则是在该batch中通过随机抽取方式形成。第二个问题:特征映射函数如何构造?SimCLR的映射函数f包括两个子结构,分别为encoderprojector,** **。第三个问题:损失函数。SimCLR用损失函数InfoNCE来度量不同输入经过编码和映射之后在单位超球面中的距离,如果是正例则希望在空间中相似性越高越好,即距离越近越好,负例则反之。

4. 怎样是一个不好的对比学习系统?

当对比学习系统不好的时候,容易出现模型坍塌问题。模型坍塌指映射函数在将输入映射到单位超球面时,无论是正例还是负例,都无差别映射至球面上同一个点。 即:映射函数f对所有输入进行无差别编码,如此一来,模型无法学到任何有用信息。

5. 怎样是一个好的对比学习系统?

好的对比学习系统实际上包含两方面要素:AlignmentUniformity。Alignment指相似实例有相近的特征,在映射之后,距离相近;Uniformity指的是模型应该保留尽可能多的信息,输入数据在经过映射之后,在单位超球面上的分布尽可能均匀。模型坍塌是一种极度的分布不均匀,所以使得样本在投影空间分布均匀可以解决模型坍塌问题,这可以理解为:分布均匀使得每个个体例子保留了自己的个体信息,均匀的本质是促使样例在经过编码和投影之后尽可能保留更多个性信息。

好的对比学习系统可以用一个线性平面把不同类别的数据全部区分开。线性可分证明经过对比学习后,分类难度比直接对原始数据进行分类更为容易。

6. SimCLR怎么防止坍塌的?

防止坍塌是对比学习最关键的一个出发点,SimCLR通过InfoNCE和负例来防止坍塌:通过正例来保证Alignment原则,正例相似度越高,在单位超球面中距离越近;通过负例实现均匀Uniformity,在单位超球面之中负例之间互斥,距离越远越好,由此实现防止坍塌。所以,SimCLR是通过负例来解决模型坍塌的,这是一种典型做法。目前得到的一个共识是:负例越多,学习效果越好。

02 典型对比学习模型(图像/NLP/多模态)

1. NLP领域的对比学习

关于NLP领域的对比学习,此处介绍两个模型:SimCSE和Self-Guided模型。
SimCSE可以理解为NLP版本的SimCLR,其结构与SimCLR一致,区别在于正例的构造方法。SimCSE将同一个输入样例放进模型两次,在Encoder中设置不同的Dropout,因此同一个输入会产生两个有差异的输出,将其作为正例,batch内其他样例作为负例。SimCSE最大的特点就是这个简洁的正例构造方式,而且效果很好。
而Self-Guided则从模型结构上可以理解为SimCLR+动量更新,时间原因不展开介绍了。

借鉴网址:Click Here

对比学习在微博内容表示的应用相关推荐

  1. 张俊林:对比学习在微博内容表示的应用

    点击下面卡片,关注我呀,每天给你送来AI技术干货! 分享嘉宾:张俊林博士 新浪微博 编辑整理:李桂荣 中南财经政法大学 出品平台:DataFunTalk 点这里:当知识图谱遇上预训练语言模型 -- 留 ...

  2. 深度学习核心技术精讲100篇(三十七)-利用Contrastive Learning对抗数据噪声:对比学习在微博场景的实践

    前言 对比学习最近一年比较火,它的应用范围,已经从最初的图像领域,逐步拓展到了自然语言处理以及多模态等很多其它领域.本文介绍微博在自然语言处理以及多模态方面,应用对比学习的经验. 后文将要介绍的两个模 ...

  3. 对比学习的一个原则3个关键点

    参考张俊林老师的文章对比学习(Contrastive Learning):研究进展精要,这篇文章读完后对对比学习基本概念.模型结构有了深刻的理解.再次感谢,遂据此整理成了笔记,以便帮助学习(主要是俊林 ...

  4. Ernie-SimCSE对比学习在内容反作弊上应用

    作者 | ANTI 导读 AI技术在不同行业和业务被广泛的应用,本文介绍了反作弊团队在与spammer对抗愈演愈烈的趋势下,不断探索前沿技术,将百度NLP预训练模型结合对比学习用于解决spam内容中知 ...

  5. 从对比学习(Contrastive Learning)到对比聚类(Contrastive Clustering)

    从对比学习(Contrastive Learning)到对比聚类(Contrastive Clustering) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailug ...

  6. 73岁Hinton老爷子构思下一代神经网络:属于无监督对比学习

    来源:机器之心 本文约2700字,建议阅读7分钟. 在近期举行的第 43 届国际信息检索年会 (ACM SIGIR2020) 上,Geoffrey Hinton 做了主题为<The Next G ...

  7. 再发力!Facebook AI何恺明等最新研究MoCo(动量对比学习)第二版,超越Hinton的SimCLR,刷新SOTA准确率...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]无监督学习再发力!Facebook AI 研究团队的陈鑫磊.樊昊棋.Ros ...

  8. Hinton构思下一代神经网络:属于无监督对比学习

    本文由机器之心报道 Geoffrey Hinton 是谷歌副总裁.工程研究员,也是 Vector Institute 的首席科学顾问.多伦多大学 Emeritus 荣誉教授.2018 年,他与 Yos ...

  9. 对比学习系列论文CPCforHAR(一):Contrastive Predictive Coding for Human Activity Recognition

    0.Abusurt 0.1逐句翻译 Feature extraction is crucial for human activity recognition (HAR) using body-worn ...

最新文章

  1. linux下卸载自带jdk,重新安装jre运行环境
  2. windows7下vs2008常见错误解决方法汇总
  3. mkfs.ext4 /dev/sdb 与 mkfs.ext4 /dev/sdb1
  4. ADO.NET Entity Framework Beta2(五)/快速入门(实体框架)
  5. 想成为程序员的话,这些书单必不可少——算法篇
  6. 小创业项目组的管理和实践:快速迭代的思考
  7. matlab FAQ
  8. 【机器学习基础】数学推导+纯Python实现机器学习算法8-9:线性可分支持向量机和线性支持向量机...
  9. 数据科学 IPython 笔记本 9.3 理解 Python 中的数据类型
  10. Pandas 文本数据方法 partition( )
  11. DAMA数据管理知识体系指南-读书笔记9
  12. 【Active Learning - 12】一种基于生成对抗网络的二阶段主动学习方法
  13. 云硬盘(Elastic Volume Service,EVS)
  14. 【网络编程实践】2.4.2 muduo库安装与 procmon 编译
  15. jquery mobile_jQuery Mobile课程1
  16. 根域名服务器性能,根服务器和根域名服务器的区别
  17. 文件夹选择框 文件选择框
  18. python实现图书管理系统——通过excel文件或者TXT文件存放数据
  19. BOW 原理及代码解析
  20. 2022年中式烹调师(中级)最新解析及中式烹调师(中级)找解析

热门文章

  1. 用MATLAB给图片打马赛克
  2. python爬虫代码房-Python爬虫实战(3):安居客房产经纪人信息采集
  3. 20230525下载youtube的字幕的方法
  4. 蜗牛学院卿老师:Python中几个比较容易混淆的概念解释
  5. 力扣(LeetCode)官网首发!史上首本Java语言实现LeetCode题解手册
  6. 学生宿舍智能电表规格型号选择的标准
  7. landsat5数据下载及其格式介绍
  8. windows server 2008 系统安装
  9. phpStudy 80端口被进程占用无法启动Apache
  10. hmi触摸屏将数据存入sd卡_如何将HMI数据记录保存至单个文件?