文献阅读笔记 # SimCSE: Simple Contrastive Learning of Sentence Embeddings

news2024/12/29 10:13:37
  • 《SimCSE: Simple Contrastive Learning of Sentence Embeddings》EMNLP 2021 (CCF-B) Tianyu Gao†∗ Xingcheng Yao‡∗ Danqi Chen†
  • 作者来自普林斯顿计算机系和清华大学交叉信息研究院
  • Code & Pre-trained Models

【研究对象】:Sentence Embedding;
【研究方法】:对比学习;
【评估任务】:STS Task(语义文本相似度);
【研究问题】:语言 embedding 表示中的各向异性问题;

@inproceedings{gao2021simcse,
title={{SimCSE}: Simple Contrastive Learning of Sentence Embeddings},
author={Gao, Tianyu and Yao, Xingcheng and Chen, Danqi},
booktitle={Empirical Methods in Natural Language Processing (EMNLP)},
year={2021}
}

Abstract

本文介绍了 SimCSE,一个简单的对比学习框架,极大地推进了 state-of-the-art sentence embedding。首先介绍了一种无监督学习方法,takes an input sentence and predicts itself in a contrastive objective, with only standard dropout used as noise.这种简单的方法效果出奇地好,与以前的监督方法相当. We find that dropout acts as minimal data augmentation, and removing it leads to a representation collapse.然后我们提出了一种监督方法,which incorporates annotated pairs from natural language inference datasets into our contrastive learning framework by using “entailment” pairs as positives and “contradiction” pairs as hard negatives。

在 standard semantic textual similarity (STS) tasks 上评估了 SimCSE,our unsupervised and supervised models using B E R T b a s e BERT_{base} BERTbase achieve an average of 76.3% and 81.6% Spearman’s correlation respectively, a 4.2% and 2.2% improvement compared to the previous best results. 本文还从理论上和经验上证明,contrastive learning objective regularizes pre-trained embeddings’ anisotropic space to be more uniform,and it better aligns positive pairs when supervised signals are available

1 Introduction

学习通用的句子嵌入是NLP中的一个基本问题。本文推进了当前最前沿的方法,并证明与 BERT、RoBERTa 等预训练模型结合时对比目标可能非常有效。

无监督 SimCSE 只在把 dropout 作为噪声的情况下预测输入的句子自身,换句话说,将同一个句子传递给预训练编码器两次:也即利用标准的 dropout 两次,然后我们可以获得两个不同的 embeddings 作为正例对。然后我们采用 mini-batch 中的其他句子作为负例,模型需要在其中预测出正例。尽管看起来很简单,但这种方法大幅优于如 predicting next sentences、discrete data augmentation 这类的训练目标,甚至与监督的方法相当。我们认为这里的 dropout 实际上相当于最小形式的数据增强,删除它会导致模型的表示崩溃。

监督 SimCSE 在 natural language inference (NLI) datasets for sentence embeddings 的基础上,在对比学习中加入了 annotated sentence pairs。Unlike previous work that casts it as a 3-way classification task (entailment, neutral, and contradiction), we leverage the fact that entailment pairs can be naturally used as positive instances.We also find that adding corresponding contradiction pairs as hard negatives further improves performance. 这里也用了别的 labeled sentence-pair 数据集实验,但 NLI datasets 效果最好。

为了更好的理解 SimCSE,使用了 Wang and Isola (2020) 的分析工具,which takes alignment between semantically-related positive pairs and uniformityof the whole representation space to measure the quality of learned embeddings.【alignment 和 uniformity 是对比学习中比较重要的两种属性,可用于衡量对比学习的效果】Through empirical analysis, we find that our unsupervised SimCSE essentially improves uniformity while avoiding degenerated alignment via dropout noise, thus improving the expressiveness of the representations.并且 NLI 数据中的监督信号可以进一步提高正例之间的对齐,产生更好的句子嵌入。We also draw a connection to the recent findings that pre-trained word embeddings suffer from anisotropy【各向异性】 (Ethayarajh, 2019; Li et al., 2020) and prove that—through a spectrum perspective—the contrastive learning objective “flattens” the singular value distribution【奇异值分布】 of the sentence embedding space, hence improving uniformity.

本文在 7 个 STS 任务和 7 个迁移任务上对 SimCSE 进行了全面评估,均取得不错的效果。

2 Background: Contrastive Learning

Contrastive learning aims to learn effective representation by pulling semantically close neighbors together and pushing apart non-neighbors (Hadsell et al., 2006).

本文 follow the contrastive framework in Chen et al. (2020),对 in-batch negatives 采用交叉熵目标,下面的 h 是 x 的 embedding,一个带有 N pairs 的 mini-batch 的训练目标是:


τ τ τ是温度超参数,本文使用 BERT 或者 RoBERTa 来对输入进行编码。

Positive instances:关键问题是如何构建正例对,由于自然语言的离散性质,NLP 上的数据增强相对困难。本文的发现是在中间表示上简单地使用 dropout 比这些离散运算的数据增强效果更好。

在监督数据上, ( x i , x i + ) (x_i,x_i^+) (xi,xi+) 通常是类似 question-passage pairs 这样的具有不同性质的文本,因此通常用双编码器(dual-encoder)来处理。在 Sentence Embedding 场景,一种做法是把当前句子和下一句作为 ( x i , x i + ) (x_i,x_i^+) (xi,xi+),然后用 dual-encoder 处理。

Alignment and uniformity

  • alignment 计算所有正样本对之间的距离,如果 alignment 越小,则正样本的向量越接近,对比学习效果越好,计算公式如下:

  • uniformity 表示所有句子向量分布的均匀程度,越小表示向量分布越均匀,对比学习效果越好,计算公式如下:

p d a t a p_{data} pdata 代表数据分布,这俩指标与对比学习的目标很好的契合,正例应该尽可能接近,随机实例的embedding应该尽可能分散在超球面上。

3 Unsupervised SimCSE

关键点上面其实已经提到了,就是自我对照,但用了独立的 dropout masks 采样。本文和标准的 Transformer 结构中 dropout masks 放置于全连接层中且 p=0.1 的设置相同。定义 z 表示 dropout 的随机 mask,把一句话在不同的 dropout mask 的情况下喂进两次:

Dropout noise as data augmentation:将本文的方法与 STS-B development set 上的其他训练目标对比,证明 dropout 效果最好。还将自我预测这种方法与预测下一句的目标进行比较,也证明本文方法更好。


Why does it work? take the checkpoints of these models every 10 steps during training and visualize the alignment and uniformity metrics in Figure 2,along with a simple data augmentation model “delete one word”。预训练的起点也很重要,提供了一个良好的初始对齐。

4 Supervised SimCSE

此处研究利用监督数据集来提供更好的对齐。
Choices of labeled data:探索了哪些数据集比较合适用来构造正例,1)QQP:Quora question pairs;2)Flickr30k:each image is annotated with 5 human-written captions and we consider any two captions of the same image as a positive pair;3)ParaNMT:a large-scale back-translation paraphrase dataset;4)NLI datasets: SNLI and MNLI;
为了公平,训练数据量保持相同。NLI 数据集标注质量更高。

Contradiction as hard negatives:使用 NLI 数据集中的 contradiction pairs 作为 hard negatives。In NLI datasets, given one premise, annotators are required to manually write one sentence that is absolutely true (entailment), one that might be true (neutral), and one that is definitely false (contradiction).

其他做过的实验:在有监督数据上增加 ANLI dataset 或者将 ANLI dataset 与无监督结合,或者使用DualEncoder,但结果没有明显改进或更差。

5 Connection to Anisotropy

最近的工作确定了语言表示中的各向异性问题,即学习的嵌入在向量空间中占据一个狭窄的圆锥体,这严重限制了它们的表达能力。Gao et al. (2019) 证明 language models trained with tied input/output embeddings lead to anisotropic word embeddings。缓解该问题的一个简单方法是后处理,either to eliminate the dominant principal components、or to map embeddings to an isotropic distribution。另一个常见措施是添加正则化,但本文证明,对比目标也可以解决该问题(并且效果更好)。
各向异性问题自然与均匀性有关,两者都强调嵌入应该均匀分布在空间中。直观地说,优化对比学习目标可以提高一致性(或缓解各向异性问题),因为目标让负例更远。这里以 singular spectrum perspective 的视角来看,结果表明,对比目标可以“扁平化”句子嵌入的奇异值分布,使表示趋于各向同性。【下面的证明感兴趣的可以自己看】



6 Experiment

略。

6.1 Evaluation Setup

对 7 个语义文本相似性 (STS) 任务(无监督)和 7 个迁移学习任务进行了实验。

6.2 Main Results

6.3 Ablation Studies

7 Analysis

略。

8 Related Work

略。

9 Conclusion

  • 提出了 SimCSE 并在 STS 任务上评估;提出一种无监督方法,该方法在带有 dropout 噪声的情况下预测自身的输入,以及一种利用 NLI 数据集的监督方法。
  • We further justify the inner workings of our approach by analyzing alignment and uniformity of SimCSE along with other baseline models.
  • 本文中的 contrastive objective 尤其是无监督下的,具有广泛应用前景,It provides a new perspective on data augmentation with text input, and can be extended to other continuous representations and integrated in language model pre-training。

A Training Details

B Different Settings for STS Evaluation

C Baseline Models

D Ablation Studies

E Transfer Tasks

F Distribution of Singular Values

G Cosine-similarity Distribution

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/736847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu RPM should not be used directly install RPM packages, use Alien instead!

ubuntu RPM should not be used directly install RPM packages, use Alien instead! 所以我们最好下载deb版本的安装包 安装 参考文章

科技资讯|三星智能戒指资料曝光,智能穿戴发展新机遇

根据 Reddit 社区网友反馈,在 Beta 版三星 Health 应用中,发现了全新的“Ring Support”选项,暗示三星未来将会推出智能戒指产品。 三星内部正在开发健康追踪设备 Galaxy Ring,这款智能戒指配备 PPG(光电容积脉搏波&…

【视觉SLAM入门】3. 相机模型,内外参,畸变推导

"瑾瑜匿瑕" 1. 相机模型和内参1.1 内参推导1.2 外参推导 2. 畸变2.1 径向畸变2.2 切向畸变 3. 深度信息3.1 算法测距3.2 物理测距 本节讨论围绕这个问题展开 机器人如何观测外部世界? \quad\large\textcolor{red}{机器人如何观测外部世界?} 机…

音频转文字怎么操作?这几个好用的音频转文字方法分享给你

想象一下,你在公交车上听到了一个超搞笑的笑话,想要记下来和朋友分享,但是又怕自己记漏或者记错了关键的部分。这时候,音频转文字的软件就能帮上大忙了!你只需将录音导入到软件中,它就会像一位超级厉害的听…

4. Springboot快速回顾(@Mapper和@MapperScan)

springboot最重要的注解之一,因为有了Mapper注解,省去了在xml文件繁琐的配置 本文将对比介绍有无注解的区别,加深认识 目录 1 初次使用Mapper1.1 创建实体类Stu1.2 创建dao层接口1.3 创建service层接口和实现1.5 创建StuMapper.xml文件1.4 创…

岛屿数量 (力扣) dfs + bfs JAVA

给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的…

【Linux】进程间通信 -- 命名管道 | mkfifo调用

小实验1.我们首先创建两个文件2.我们使用创建命名管道的命令mkfifo3.开始执行 在语言层面使用命名管道实现通信1.创建命名管道-函数mkfifo2.写入端代码3.读取端代码小细节&#xff1a; 小实验 1.我们首先创建两个文件 client.cpp: #include <iostream> using namespac…

《向量数据库指南》——什么是比较 Embedding?

目录 比较 Embedding 准备工作 示例 0:Marlon Brando 示例 1:国王与王后 示例 2:Apple,水果还是公司 欢迎回到向量数据库 101 系列教程。 之前的教程中,我们介绍了非结构化数据、向量数据库和 Milvus——全球最受欢迎的开源向量数据库。我们还简单介绍了 Embedding …

windows提权总结

文章目录 windows基础知识提权总结基础知识提权思路metasplit 提权反弹shell提权windows系统配置错误提权系统服务权限配置错误不带引号的服务路径提权注册键 AlwaysInstallElevated 本地dll劫持提权第三方提权sqlserver提权mysql提权MOF提权G6FTP提权 绕过UAC bypassuac远程终…

前端|HTML

参考视频&#xff1a;黑马程序员前端Html5教程&#xff0c;前端必备基础 目录 &#x1f4da;web标准 &#x1f4da;HTML认识 &#x1f407;HTML的概念 &#x1f407;开发工具 &#x1f407;HTML标签基础 ⭐️HTML骨架标签 ⭐️HTML元素标签分类 ⭐️HTML标签关系&#…

一款可源码交付的Java可视化建模规则引擎

规则引擎是一种根据规则中包含的指定过滤条件&#xff0c;判断其能否匹配运行时刻的实时条件来执行规则中所规定的动作的引擎。 规则引擎由推理引擎发展而来&#xff0c;是一种嵌入在应用程序中的组件&#xff0c;实现了将业务决策从应用程序代码中分离出来&#xff0c;并使用预…

FPGA纯verilog实现10G UDP协议栈,XGMII接口UltraScale GTY驱动,提供工程源码和技术支持

目录 1、前言2、我这里已有的UDP方案3、该UDP协议栈性能4、详细设计方案SFPSGMII收发接口模块AXIS FIFOUDP协议栈UltraScale FPGAs Transceivers Wizard GTY 5、vivado工程6、上板调试验证并演示准备工作查看ARPUDP数据回环测试 7、福利&#xff1a;工程代码的获取 1、前言 目…

SpringBoot原理分析 | 安全框架:Security

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Security Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架&#xff1b;提供一组可以在Spring应用上下文中配置的Be…

使用作用域函数简化您的 Kotlin 代码:释放对象的力量

使用作用域函数简化您的 Kotlin 代码&#xff1a;释放对象的力量 欢迎&#xff0c;亲爱的 Kotlin 爱好者&#xff01;厌倦了在处理对象时反复书写相同的代码吗&#xff1f;别担心&#xff01;Kotlin 的作用域函数来拯救你&#xff0c;为你的编码之旅增添优雅的色彩。在这篇有趣…

华为认证 | 7月底这门HCIA认证即将发布!

华为认证HCIA-Cloud Service V3.5&#xff08;中文版&#xff09;预计将于2023年7月31日正式对外发布。 为了帮助您做好学习、培训和考试计划&#xff0c;现进行预发布通知&#xff0c;请您关注。 01 发布概述 基于“平台生态”战略&#xff0c;围绕“云-管-端”协同的新ICT技…

小程序学习(三):小程序的宿主环境

1.什么是宿主环境 宿主环境指的是程序运行所必须的依赖环境。例如:Android系统和IOS系统是两个不同的宿主环境。安卓版的微信App是不能在IOS环境下运行的,所以Android是暗转软件的宿主环境,脱离宿主环境的软件是没有任何意义的! 2.小程序的宿主环境 小程序借助宿主环境提供的能…

(4)【轨迹优化篇】线性加权轨迹代价损失评分,轨迹多选一方法--DWA_planner、Open_Planner、lexicographic_planner

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言1、设计代价损失函数进行评分、线性加权法、迹评分轨迹多选一的轨迹优化设计思想&#xff08;1&#xff09;设计代价函数进行…

适用于企业级工作负载的混合闪存存储

NetApp FAS9500、FAS8700、FAS8300&#xff1a;适用于企业级工作负载的 FAS 拥有企业级应用程序和私有云的客户通常部署这些系统来作为架构基础。通过与主要超大规模云提供商的简单集成创建统一的混合云 借助 NetApp FAS 按需扩展性能 客户将这些平台描述为“重型”&#xff0…

2023年开源社执行委员会介绍

总起 开源社的各项工作主要分为内部事务、对外事务与专项工作三大类。整体而言&#xff0c;基础设施、财务、法律与成员发展等工作较为偏向于内部事务&#xff0c;而活动、媒体、社区合作、顾问委员会服务、国际接轨等工作偏向于对外联络与展现&#xff0c;而教育、公益、硬件、…

基于Tensorflow来重现GPT v1模型

OpenAI推出的ChatGPT模型让我们看到了通用人工智能的发展潜力&#xff0c;我也找了GPT的相关论文来进行研究。OpenAI在2017年的论文Improving Language Understanding by Generative Pre-Training提出了GPT的第一个版本&#xff0c;我也基于这个论文来用Tensorflow进行了复现。…