英文题目:SimCSE: Simple Contrastive Learning of Sentence Embeddings
中文题目:SimSCE:用简单的对比学习提升句嵌入的质量
论文地址:https://export.arxiv.org/pdf/2104.08821.pdf
领域:自然语言处理,对比学习
发表时间:2021.04
作者:Tianyu Gao, 普林斯顿大学,清华大学
出处:EMNLP
被引量:83
代码和数据:https://github.com/princeton-nlp/SimCSE
阅读时间:2022.09.18
(周五同事分享,简单整理笔记)

读后感

主要用于提升句嵌入的质量。方法很简单,利用BERT模型本身的dropout性质,通过同一输入输出不同嵌入作为正例对,然后取同一batch下的反例对训练模型。

介绍

自监督学习主要包含:生成式,对比式,对抗式。其中的对比学习原理是:利用无监督数据,通过巧妙的方法构造正例/反例(一般是一个正例对应多个反例),训练模型,让正例距离足够近,反例距离足够远,以利用无监督数据,进行更好地表示(表征)。
一般设计包含三部分:构造正/负例;优化损失函数;调整模型编码器。

评价对比学习的质量有两个关键指标:alignment和uniformity。其中alignment指的是正例中数据对表示的一致性:

uniformity指的是嵌入空间分布的均匀性:

其中Pdata指空间中所有实例。也就是说正例距离越近越好,而随机采样的数据对的距离应该分布在超球体表面。

方法

无监督数据训练SimCSE

之前生成近似正例的方法有:随机增删,近义词替换,交换词序等。本文利用 BERT 模型本身包含 dropout,这样同一个句子两次送入模型,由于随机dropout,最终的编码也不同。用这种方法作为数据增强,生成对比学习中的正例对,使用同一batch中的其它实例作为反例。损失函数定义如下:

表-1对比了文中方法和其它常用方法(删词,剪切),在同义句子匹配STS-B任务中的效果:

图-2把损失拆分成alignment和uniformity,位置处于左下角时效果最好(两个loss都小);可以看到随着迭代训练损失的变化(箭头方向),其中红色线为SimSCE在两个评测方向的变化相对最好。

有监督数据训练SimCSE

文中还研究了SimSCE对比学习如何利用有监督学习的数据来提升模型的表现力。具体使用自然语言推理任务(NLI)数据,NLI用以判断两个句子的关系是:蕴含、中性或矛盾。利用训练集中的标注信息产生对比学习中的正/负例。

选择标注数据
为对比 NLI 的提升效果,先探索了一些构造正例的方法:

  • 使用Kaggle比赛的QQP数据集,它的训练数据标注了两个问句语义是否相同。
  • 使用Flickr30,对每个图片人工标注了五个标题,可将其中的两两标注组成正例对。
  • 使用ParaNMT,大规模的反向翻译数据集(如:中->英->中),作为正例对。
  • 使用NLI任务数据集,最终NLI数据集效果最好,这是由于它包含高质量的众包人工标注,并且正例中词汇重合度小(同一词在两个正例对中均出现)。

将矛盾关系对作为硬负例
为了更好利用NLI数据集,利用标注为矛盾的实例,生成硬负例,并修改了损失函数,实验证明了它的有效性:

可以看到,这里硬负例被充分利用(被计入了N次),图-4展示了实验结果:

为了公正的对比,sample列只采样了134k正例来训练模型。可以看到不同任务训练的模型对 STS-B 效果的提升。

各向异性

各向异性意思是所有向量都被映射在了一个“狭窄”的高维空间。而uniformity是评价所有实例在向量空间中是否均匀分布,SimCSE在uniformity方面提升,也改善了自然语言编码的各向异性问题。

图-3对比了目前各种流行模型的alignment和uniformity:

实验

主实验使用句子相似度任务,在有监督和无监督两方面,对比了不同方法的效果:

可以看到SimSCE效果已超过了目前业界使用最为广泛SBERT(挛生网络)模型。

论文阅读_对比学习_SimCSE相关推荐

  1. [论文阅读](对比学习系列)

    文章目录 第一阶段:百花齐放 [2018] (CVPR) INstDisc [2019] (CVPR)Unsupervised Embedding Learning via Invariant and ...

  2. 论文阅读_深度学习的医疗异常检测综述

    英文题目:Deep Learning for Medical Anomaly Detection - A Survey 中文题目:深度学习的医疗异常检测综述 论文地址:https://arxiv.or ...

  3. NIPS 2017论文解读 | 基于对比学习的Image Captioning

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  4. 顶会论文看图对比学习 (GNN+CL) 研究趋势

    作者 | 侯宇蓬 单位 | 中国人民大学 来源 | RUC AI Box 随着对比学习(Contrastive Learning)在 CV.NLP 等领域大放异彩,其研究热度近年来也逐步走高.在图学习 ...

  5. 顶会论文看图对比学习(GNN+CL)研究趋势

    每天给你送来NLP技术干货! © 作者|侯宇蓬 机构|中国人民大学高瓴人工智能学院 研究方向|图机器学习与推荐系统 来自 | RUC AI Box 1. 引言 随着对比学习(Contrastive L ...

  6. 论文阅读_人脸检测:S3FD: Single Shot Scale-invariant Face Detector

    我的博客已全部迁往个人博客站点:oukohou.wang,敬请前往-- 写在前面:记录一下论文阅读的收获,不然怕久远之后,就不记得了- 1. Sum up S3FD是2017年发表在arXiv上的一篇 ...

  7. 论文阅读_图像生成文本_CLIP

    name_en: Learning Transferable Visual Models From Natural Language Supervision name_ch: 从自然语言监督中学习可迁 ...

  8. 论文阅读_基于知识的提示学习KnowPrompt

    英文题目:KnowPrompt: Knowledge-aware Prompt-tuning with Synergistic Optimizationfor Relation Extraction ...

  9. 论文阅读_基于深度学习的异常检测综述

    英文题目:Deep Learning for Anomaly Detection: A Review 中文题目:基于深度学习的异常检测综述 论文地址:https://arxiv.org/pdf/200 ...

最新文章

  1. 浙江大学数学专业考研试题参考解答
  2. Google AI 系统 DeepMind无法通过 高中数学
  3. 使用jQuery制作手风琴效果.(转)
  4. 高通、猎户机型Android典型bootloader分析
  5. 2016年Android实习岗位 腾讯二面+阿里一面
  6. quartz框架_定时任务调度框架Quartz
  7. 最早将于Q3季度发布,小米12至尊版将搭载骁龙8 Plus
  8. java border边框_简单实用的css边框属性border
  9. 视频编解码(十四):机顶盒调试编解码器显示总结
  10. AltiumDesigner绘制PCB(一)
  11. r73750h和i79750h哪个好
  12. 中兴服务器isac配置,中兴AC 配置手册V1.0.docx
  13. 【UVA 1589 --- Xiangqi】
  14. 使用springboot往数据库中插入汉字报错
  15. 利用MEGA-X选择模型及构建美化进化树
  16. echarts设置标题样式,echarts设置主标题和副标题样式
  17. 安卓手机投屏安卓ADB群控自动化脚本命令
  18. C# 数字转16进制和字符串转换16进制
  19. 用户与计算机通信的界面是什么意思,GUI是什么意思
  20. 业务流程编排设计和实现

热门文章

  1. 石化能源行业工业互联网智能工厂解决方案
  2. Linux 机器重启reboot命令
  3. HDU 6194 后缀数组+单调栈
  4. exit()和_exit()两个函数的区别
  5. Exception(一)
  6. 选择适合的Node.js授权认证策略
  7. 谷歌排名影响因素最新研究(SEM RUSH版)
  8. python实现支付宝
  9. 字符串、字符长度计算
  10. Web112~125,184~197