Embedding模型提升效果的方法之二:SimCSE

news2024/9/24 1:22:40

0. 前言

SimCSE是通过对比学习的方式缓解预训练模型的各向异性问题,各向异性的产生原因在上一篇文章中已有介绍。SimCSE是2021年出的,后面出的 embedding 模型几乎都使用了对比学习来缓解预训练语言模型的各向异性问题。前面介绍的几篇文章无一例外使用了对比学习。

1. 介绍

SimCSE(simple contrastive sentence embedding framework),意为简单的对比句向量表征框架。SimCSE的核心就是使用了对比学习的方法,从而提升对句子的表征能力。如今的预训练语言模型都会存在各向异性的问题,所以需要通过对比学习来加以缓解。下文主要介绍对比学习SimCSE如何使用对比学习,以及为什么对比学习可以缓解各向异性的问题

2. 对比学习背景

定义

对比学习就是以拉近相似数据,推开不相似数据为目标,有效地学习数据表征。给定一个pair对样本集合 D = { ( x i , x i + ) } i = 1 m D=\{(x_i,x^+_i)\}^m_{i=1} D={(xi,xi+)}i=1m,其中 x i x_i xi x i + x^+_i xi+为相似样本,优化目标一般采用通过in-batch negatives交叉熵损失函数,如下:
在这里插入图片描述
其中, h i h_i hi h i + h^+_i hi+ x i x_i xi x i + x^+_i xi+的句向量表示, N N N 为训练过程中batch的大小, s i m ( h i , h i + ) sim(h_i, h^+_i) sim(hi,hi+)为向量 h i h_i hi h i + h^+_i hi+余弦相似度, τ \tau τ为温度系数。

在SimCSE论文中,采用BERT模型对句子进行句向量表征,即 h = f θ ( x ) h=f_{\theta}(x) h=fθ(x),其中, f θ f_{\theta} fθ为BERT模型参数,并通过对比学习损失优化网络全部参数。

构造正样本

对比学习中的一个关键问题是如何构建 ( x i , x i + ) (x_i, x^+_i) (xi,xi+)数据对。在计算机视觉中,通过对一张图片进行简单地裁剪,翻转,扭曲和旋转就可以获取质量很高的 x i + x^+_i xi+;而在自然语言处理中,构造 x i + x^+_i xi+的方法与图像类似,一般对原始句子进行转译、重排,或对部分词语删除、插入、替换等;但是由于离散性,导致NLP中的数据扩充往往会引入大量的负面噪声,使得 x i + x^+_i xi+的质量难以保证。

在SimCSE论文中,提出使用标准dropout操作构造高质量,并达到比上述数据扩充更好的效果。

对齐性和均匀性

在对比学习中,通常使用alignment(对齐性)和uniformity(均匀性)来衡量表征质量的好坏。
alignment是计算 ( x i , x i + ) (x_i, x^+_i) (xi,xi+)数据对向量表征之间的距离,表示数据之前的紧密程度:
在这里插入图片描述
uniformity是计算向量 x i x_i xi表征在整体特征分布上的均匀程度:
在这里插入图片描述
其中, p d a t a p_{data} pdata 表示数据分布。

这两个指标与对比学习的目标是一致的:正例之间应该保持紧密,而任意向量的语义特征应该尽可能地分散在超球体上。

3. SimCSE的思路

上面已说对比学习中的一个关键问题是如何构建 ( x i , x i + ) (x_i, x^+_i) (xi,xi+)数据对。论文提供了两种方法,第一种是无监督的SimCSE,第二种是有监督的SimCSE。第一种就是在原本没有 ( x i , x i + ) (x_i, x^+_i) (xi,xi+)数据对的数据上通过dropout的方式构造出来,这种方法是一种在没有理想数据的情况下拖鞋的做法,有一定效果;第二种是直接找一些有 ( x i , x i + ) (x_i, x^+_i) (xi,xi+)数据对的数据,这样的数据更真实且自然一些,效果肯定会更好,就是费数据。

4. 无监督SimCSE

方法描述

无监督SimCSE的思想非常简单,给定一个句子集合 { x i } i = 1 m \{x_i\}_{i=1}^m {xi}i=1m,将 x i x_i xi 分别输入到编码器中两次,分别得到向量 z i z_i zi z i + z_i^+ zi+,由于随机dropout masks机制存在于模型的fully-connected layers和attention probabilities上,因此相同的输入,经过模型后会得到不同的结果;训练的时候 z i + z_i^+ zi+ 即为 z i z_i zi 的正例,其他的 z j + ( j ≠ i ) z_j^+(j\neq i) zj+(j=i) z i z_i zi 的负例。SimCSE的训练目标变成:

l i = − l o g e s i m ( h i z i , h i z i + ) / τ ∑ j = 1 N e s i m ( h i z i , h j z j + ) / τ l_i=-log\frac{e^{sim(h_i^{z_i},h_i^{z_i^+})/\tau}}{\sum_{j=1}^Ne^{sim(h_i^{z_i}, h_j^{z_j^+})/\tau}} li=logj=1Nesim(hizi,hjzj+)/τesim(hizi,hizi+)/τ

注意: z z z 为Transformers中的标准dropout mask,在无监督SimCSE没有额外增加任何dropout。

为什么要用Dropout进行数据增强

除了Dropout还有裁剪,删除和替换等数据增强方法,但是效果均不如Dropout好。这一点是可以想见的,拿删除来说,图像均匀地少一半像素我们还是可以看出图片中的物体是什么,要是句子均匀地少一半字意思可能完全不一样;同样的一个句子裁剪一部分语义也会完全不同,替换也是一样的。

究其原因是自然语言的单个 item 所包含的信息量太大了,如果将其转换到高维空间里每一个 item 所包含的信息量就会大大减少,而且形式上跟图像用多维数字来表示就很像了。此时再用Dropout就能极大程度保留原来的语义了。

在这里插入图片描述
这是文章中做的实验,可以看到无监督的SimCSE在STS-B数据集上的得分为82.3,裁剪(crop)10%分数会直接降到77.8,裁剪越多分数越低;删除单词(Word deletion)也是一样的;即使只删除1个单词(Delete one word)模型的性能也会比较差;如果不用dropout,就相当于 z i = z i + z_i=z_i^+ zi=zi+,这样的模型只有74.2分;同义词替换(Synonym replacement)效果稍好,能拿77.4分;MLM 替换15%的单词结果也很差。

为什么这种方法有效

为了进一步理解dropout噪声在无监督SimCSE中的作用,论文尝试了不同的dropout率,如下表所示:
在这里插入图片描述
这里做的实验是使用不同的dropout率在STS-B开发集上做效果比较,可以看到dropout率为0.1时效果最好,同时Fixed 0.1是使用dropout率为0.1且生成 z i z_i zi z i + z_i^+ zi+ 时用相同的dropout mask,效果会很差(正确的方法是使用不同的dropout mask)

在训练过程中,每隔10步检查一次模型,并可视化alignment和uniformity在训练过程中的变化,如下图所示:

在这里插入图片描述
可以发现,在训练过程中,所有模型的均匀性都在提高,但是对于no-dropout和fixed-0.1模型来说对齐性急剧下降,而无监督SimCSE和delete-one-word模型进本持平。虽然delete-one-word模型的对齐性好于无监督SimCSE,但是均匀性相差较多,因此在整体效果上,无监督SimCSE更胜一筹。

5. 有监督SimCSE

对比学习的关键是如何构建 ( x i , x i + ) (x_i, x_i^+) (xi,xi+)数据对,在无监督SimCSE中,借助dropout mask机制,构造高质量数据,已经获得了较好的句向量表征;在有监督SimCSE中,则是收集高质量的有监督数据构造成 ( x i , x i + ) (x_i, x_i^+) (xi,xi+)数据对。

监督数据的选择

使用了四种数据集,适合构造对比学习 ( x i , x i + ) (x_i, x_i^+) (xi,xi+)数据对,分别是:

  • QQP:Quora问题对;
  • Flickr30k:每个图像都有5个人进行描述,可以认为同一图像的任意两个描述为一对 ( x i , x i + ) (x_i, x_i^+) (xi,xi+)数据对;
  • ParaNMT:大规模的回译数据集;
  • NLI datasets:自然语言推理数据集,包括:SNLI和MNLI

在四种数据集上,直接使用 ( x i , x i + ) (x_i, x_i^+) (xi,xi+)数据对进行训练的结果如下表所示:

在这里插入图片描述
为了比较各数据集的效果,这里进行了实验,其中sample是对每种数据集采样134k个样本进行训练,full是值进行全量训练。可以看到SNLI+MNLI中的entailment(蕴含)数据集效果最好;用SNLI+MNLI中的entailment数据集再加上hard negative样本效果更好。并且统计发现,语义蕴含对(SNLI + MNLI)的词汇重叠仅占比39%,而QQP和ParaNMT数据集占比60%和55%。最终,选择NLI数据集进行监督学习。

难负例的使用(hard negative)

难负例是指看起来像是正例实际上是负例的样本,作用是提升模型的分辨能力。

NLI数据集中,一个前提假设文本,具有对应的蕴含文本和矛盾文本,将矛盾文本作为难负例;即, ( x i , x i + ) (x_i, x_i^+) (xi,xi+)数据对变成 ( x i , x i + , x i − ) (x_i, x_i^+,x_i^-) (xi,xi+,xi)数据组,其中, x i + x_i^+ xi+为蕴含文本, x i − x_i^- xi为矛盾文本也就是难负例;监督学习SimCSE的训练目标变成:

在这里插入图片描述
通过上表可以发现,增加矛盾文本作为难负例后,效果有所提高。 直观上,区分难负例(矛盾文本)和Batch内其他负例可能是有益的,将监督学习SimCSE的训练目标变成:

用不同的 α \alpha α 值训练SimCSE模型,并在STS-B开发集上对训练的模型进行评价,发现当 α \alpha α 为1时效果最优,并且中性数据不会带来更多的收益,如下表所示:
在这里插入图片描述

6. 各向异性问题

最近的研究发现了语言表征中的各向异性问题,即训练后的embeddings仅占据在向量空间中狭窄的部分,严重限制了向量的表现力。 缓解这个问题的一个简单方法是后处理,可以消除主要的主成分或将embeddings映射到各向同性分布。另一种常见的解决方案是在训练过程中添加正则项。 而对比学习的优化目标可以改善缓解各向异性问题,当负例数趋近于无穷大时,对比学习目标的渐近表示为:

在这里插入图片描述
其中,第一项使正例之间更相似,第二项使将负例之间分开。而第二项在优化过程中,会压平向量空间的奇异谱,因此对比学习有望缓解表征退化问题,提高句向量表征的均匀性。并通过下图,可以发现,

虽然预训练embeddings具有良好的对齐性,但其均匀性较差;

  • 后处理方法,如BERT-flow和BERT-whitening,大大改善均匀性,但也使其对齐性变差;
  • 无监督SimCSE有效地提高了预训练embeddings的均匀性,同时保持了良好的对齐性;
  • 有监督SimCSE,可以进一步提高对齐性。
    在这里插入图片描述

参考1:SimCSE论文精读
参考2:SimCSE: Simple Contrastive Learning of Sentence Embeddings论文解读
参考3:SVD-矩阵奇异值分解 —— 原理与几何意义
参考4:SimCSE: Simple Contrastive Learning of Sentence Embeddings
参考5:Understanding Contrastive Representation Learning through
Alignment and Uniformity on the Hypersphere(论文)

推理加速

ONNX
ONNX推理加速

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

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

相关文章

1-2宿主环境

什么是宿主环境 指的是程序运行所必须的依赖环境。Android系统和ios系统是两个不同的宿主环境,安卓版的app是不能在ios系统上运行的。 小程序的宿主环境 🍕🍕🍕 -手机微信是小程序的宿主环境 通信的主体 🍔&…

使用百度飞桨PaddleOCR进行OCR识别

1、代码及文档 代码:https://github.com/PaddlePaddle/PaddleOCR?tabreadme-ov-file 介绍文档:https://paddlepaddle.github.io/PaddleOCR/ppocr/overview.html 2、依赖安装 在使用过程中需要安装库,可以依据代码运行过程中的提示安装。…

高效实用的网站ICP备案查询接口

随着互联网的日益发展,对于网站的监管变得越来越重要。为了更好地管理和监督互联网上的网站,官方要求所有在中国境内的网站都需要进行ICP备案。因此,ICP备案不仅是法律要求,也是衡量一个网站是否正规的重要标志之一。为了便于开发…

开题报告撰写的四大难点与应对策略

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 对于每个即将进入毕业论文阶段的学生来说,开题报告是一道必经的门槛。开题报告不仅决定了你的论文方向,还对后续的研究和写作起到重要的引导作用。 然而,许多学生在撰写…

什么是车端、站端、电池端换电连接器?

材料选择与导电性能 换电连接器首先需要承受大电流、高电压的传输,因此其材料选择至关重要。为了确保电力传输的高效与稳定,大多数换电连接器采用高导电性材料,如铜材或更先进的合金材料。这些材料不仅具有优异的导电性能,还能在…

pdf在线转换成word免费版,一键免费转换

在日常的学习和办公中,PDF文件和Word文档是我们离不开的两种最常见的文件,而PDF与Word文档之间的转换成为了我们日常工作中不可或缺的一部分。无论是为了编辑、修改还是共享文件,掌握多种PDF转Word的方法都显得尤为重要。很多小伙伴关心能不能…

轻量级模型解读——EfficientNet系列

EfficientNet自2019年谷歌提出以来,经历了三个版本,2019EfficientNet ——> 2020EfficientNet-Lite——> 2021EfficientNetv2 文章目录 1、EfficientNet2、EfficientNetv23、EfficientNet-Lite 对于EfficientNet和EfficientNetv2的解读可见另外两篇…

10Python的Pandas:样式Style

Pandas 提供了多种样式选项,可以让你对数据框的显示进行格式化。这些样式可以帮助突出显示数据中的某些元素、设置颜色、格式化数字等。以下是一些常用的 Pandas 样式示例: 1. 基本样式设置 要为整个数据框应用样式,可以使用 style 属性。例…

智 能 合 约

1. 智能合约的历史 智能合约最初是由 Nick Szabo 在 20 世纪 90 年代后期的一篇名为 Formalizing and Securing Relationships on Public Networks(《公共网络上关系的格式化和安全保护》)的文章中提出的,但是 20 年之后,比特币的发明和区块链…

WebAPI (一) 基本认知;querySelector选取dom对象;操作元素属性、表单属性;自定义属性;定时器之间歇函数

文章目录 Web API基本认知一、 变量声明二、 DOM1. DOM 树2. DOM对象3. 获取DOM对象(1)、选择匹配的第一个元素(2)、选择匹配多个元素 三、 操作元素1. 操作元素内容2. 操作元素属性(1)、常用属性(href之类的)(2)、通过style属性操作CSS(3)、通过类名(cl…

简单比较 http https http2,我们要如何把http升级为https

🧑‍💻 写在开头 点赞 收藏 学会🤣🤣🤣 什么是HTTP 超文本传输​​协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议。它被设计用于Web浏览器和Web服务器之间的通信,但它也…

《系统架构设计师教程(第2版)》第17章-通信系统架构设计理论与实践-02-广域网网络架构

文章目录 1. 概念和组成2. 网络架构2.1 单核心广域网3.2 双核心广域网3.3 环型广域网3.4 半冗余广域网3.5 对等子域广域网3.6 层次子域广域网 1. 概念和组成 组成(以功能看) 通信子网:将分布在不同地区的局域网或计算机系统互连起来资源子网&…

阿里P7大牛整理自动化测试高频面试题

最近好多粉丝咨询我,有没有软件测试方面的面试题,尤其是Python自动化测试相关的最新面试题,所以今天给大家整理了一份,希望能帮助到你们。 接口测试基础 1、公司接口测试流程是什么? 从开发那边获取接口设计文档、分…

vscode 使用git bash,路径分隔符缺少问题

window使用bash --login -i 使用bash时候,在系统自带的terminal里面进入,测试conda可以正常输出,但是在vscode里面输入conda发现有问题 bash: C:\Users\marswennaconda3\Scripts: No such file or directory实际路径应该要为 C:\Users\mars…

【2024数模国赛赛题思路公开】国赛C题第三套思路丨无偿自提

C题参考思路 C题是一道优化问题,目的是根据题目所给的种植限制条件以及附件数据建立目标条件优化模型,优化种植策略,有利于方便田间管理,提高生产效益,减少各种不确定因素可能造成的种植风险。整个题目最重要的问题在…

Live800:全方位客户服务:从售前到售后的无缝衔接

在现今这个瞬息万变的商业世界里,企业与客户之间的关系已经超越了简单的买卖交易,转而成为了一种更加紧密、持久的互动。全方位客户服务正是这一趋势下的产物,它如同一条温暖的纽带,将企业的关怀与客户的需求紧密相连,…

搭贝低代码平台:工程项目管理系统的智能化变革

在现代建筑工程中,项目管理的复杂性和挑战不断增加,传统的项目管理方式往往难以满足快速变化的市场需求和高效管理的要求。搭贝低代码平台的工程项目管理系统(EPM)通过智能化和自动化手段,帮助企业克服这些挑战&#x…

GitHub图床

GitHub图床 文章目录 GitHub图床图床介绍Github访问GitHub手动修改hostsgithub520 加速器创建账户创建仓库创建token PicGoTypora 图床介绍 图床 存放图片的地方 为什么设置图床呢 在我认识图床之前, 有一个问题 [^放在typora上面的图片, 其实是一个链接, 并且将图片存放在本地…

跨越技术壁垒:EasyCVR为何选择支持FMP4格式,重塑视频汇聚平台标准

随着物联网、大数据、云计算等技术的飞速发展,视频监控系统已经从传统的安防监控扩展到智慧城市、智能交通、工业制造等多个领域。视频流格式作为视频数据传输与存储的基础,其兼容性与效率直接影响到整个视频监控系统的性能。 在众多视频流格式中&#…

基于时序差分的无模型强化学习:Q-learning 算法详解

目录 一、无模型强化学习中的时序差分方法与Q-learning1.1 时序差分法1.2 Q-learning算法状态-动作值函数(Q函数)Q-learning 的更新公式Q-learning 算法流程Q-learning 的特点 1.3 总结 一、无模型强化学习中的时序差分方法与Q-learning 动态规划算法依赖…