ESimCSE:无监督语义新SOTA,引入动量对比学习扩展负样本,效果远超SimCSE)(一)

简介: ESimCSE:无监督语义新SOTA,引入动量对比学习扩展负样本,效果远超SimCSE)(一)

大家好,我是对白。


最近工作比较忙,前两天刚好在Arxiv上刷到一篇无监督语义的新论文:


1.png


从论文标题中可以看出,应该是对4月份丹琦女神发表的新作SimCSE的增强版(Enhance),并且也用到了对比学习来构建正负样本,那么效果是否优于SimCSE呢?


抱着这个好奇的心态,于是完整的读了一遍该论文。好家伙!在语义文本相似性(STS)任务上效果竟然还真的优于BERT base版的SimCSE有2个点(Spearman相关系数),并且提出了两大优化方法,解决了SimCSE遗留的两个问题:


1、SimCSE通过dropout构建的正例对包含相同长度的信息(原因:Transformer的Position Embedding),会使模型倾向于认为相同或相似长度的句子在语义上更相似(insight很合理);


2、更大的batch size会导致SimCSE性能下降(这点确实很困扰);


所以从以上可以看出,ESimCSE并没有使用最小的数据增强方法drouput构建正例对(毕竟有利也有弊哈),并且还扩展了负例对的构建,鼓励模型进行更精细的学习。这点SimCSE并没有考虑,而是直接将一个batch内与自己不同的样本都作为负样本了。


那么ESimCSE到底是如何构建正负样本并且效果还优于SimCSE的呢?让我们接着往下看~


2.png


Unsupervised SimCSE


我们首先来回顾一下无监督版的SimCSE。


给定一组成对的句子{ x i , x i + } \left\{ x_i,x_i^+ \right\}{x i ,x i+ },其中x i x_ix i 和x i + x_i^+x i+ 是语义相关的,将被作为一个正例对。无监督SimCSE 的核心思想是使用相同的句子来构建正例对,即x i + = x ix_i^+=x_ix i+ =x i。


在 Transformer中,在Feed Forword Network全连接层和Multi-head Attention中间放置了一个dropout mask。因此,SimCSE是通过应用不同的 dropout maskz i z_iz i和z i + z_i^+z i+将相同的输入 两次输入给Transformer,并输出两个单独的句子Embeddingh i h_ih i 和h i + h_i^+h i+(h i + h^+_ih i+ 为正样本)以构建正例对,如下所示:


3.png


对于batch size大小为 N 的mini-batch中每个句子的h i h_ih i和h i + h_i^+h i+ ,对比学习的训练目标为:


4.png


其中 τ 是温度超参数,s i m ( h i , h i + ) sim(h_i,h^+_i)sim(h i ,h i+)是相似度度量,通常是余弦相似度函数,如下所示:


5.png


SimCSE的缺点(一)


在讲解ESimCSE之前,我们一定要搞清楚SimCSE的缺点以及作者的intuition是如何产生的。


使用 dropout 作为最小数据增强方法简单有效,但是预训练语言模型如BERT是建立在Transformer上,它将通过position embedding对句子的长度信息进行编码。因此,同一个句子通过BERT产生的正例对具有相同的长度,而来自两个不同句子的负例对通常包含不同长度的信息。


因此,正例对和负例对所包含的长度信息是不同的,可以作为特征来区分它们。具体来说,由于这样的差异,会导致模型训练时出现偏差,让模型自动认为相同或相似长度的两个句子在语义上更相似。


因此作者根据句子对的长度差异将 STS 任务数据集划分为组,并分别使用 Spearman相关系数计算相应的语义相似度。随着长度差异的增加,无监督SimCSE 的性能变差。无监督SimCSE在长度相似(≤3)的句子上的性能远远超过在长度差异较大(>3)的句子上的性能,如下图所示:


8.png


为了缓解这个问题,作者提出了一种简单但有效的样本增强方法。对于每个正例对,我们期望在不改变其语义的情况下改变句子的长度。现有的改变句子长度的方法一般采用随机插入和随机删除。但是,在句子中插入随机选择的词可能会引入额外的噪音,这可能会扭曲句子的含义**;从句子中删除关键字也会大大改变其语义**。因此,我们提出了一种更安全的方法,称为“Word Repetition”,它随机复制句子中的一些单词,如下图所示:


9.png


原句翻译为“我喜欢这个苹果,因为它看起来很新鲜,我认为它应该很好吃”。


随机插入可能会产生“我不喜欢这个苹果,因为它看起来很不新鲜,我认为它应该是狗的美味”;随机删除可能会产生“我这个苹果,因为它看起来如此,我认为它应该如此”。两者都偏离了原句的意思。


相反,“Word Repetition”的方法可能会得到“我喜欢这个苹果,因为它看起来很新鲜,我认为它应该很好吃。”或“我喜欢这个苹果,因为它看起来很新鲜”我认为它应该很好吃。”两者都很好地保持了原句的意思。


SimCSE的缺点(二)


由于对比学习是在正例对和负例对之间进行的,理论上更多的负例对可以导致更好的比较。因此一个潜在的优化方向是利用更多的负例对,鼓励模型进行更精细的学习。然而在SimCSE中,更大的batch size并不总是更好的选择。例如,如下图所示, 对于无监督的SimCSE-BERT_base_模型,最佳batch size大小为 64,batch size大小的其他设置会降低性能。


10.png


在计算机视觉中,为了缓解扩展batch size时GPU内存的限制,一个可行的方法是引入动量对比,这也是通过维护一个队列,重用来自前一个mini-batch的编码Embedding来扩展负例对:它总是将当前mini-batch的句子Embedding入队,同时将“最旧”的句子Embedding出队。由于入队的句子Embedding来自前面的mini-batch,我们通过取其参数的移动平均值来保持动量更新模型,并使用动量模型生成入队的句子Embedding。请注意,作者在使用动量编码器时关闭了dropout,这可以缩小训练和预测之间的差距。


上述两种优化分别是作者提出用于构建正负对的新方法。将两者与 unsup-SimCSE结合起来,就得到了ESimCSE。


相关文章
|
6月前
|
机器学习/深度学习 人工智能 运维
[ICLR2024]基于对比稀疏扰动技术的时间序列解释框架ContraLSP
《Explaining Time Series via Contrastive and Locally Sparse Perturbations》被机器学习领域顶会ICLR 2024接收。该论文提出了一种创新的基于扰动技术的时间序列解释框架ContraLSP,该框架主要包含一个学习反事实扰动的目标函数和一个平滑条件下稀疏门结构的压缩器。论文在白盒时序预测,黑盒时序分类等仿真数据,和一个真实时序数据集分类任务中进行了实验,ContraLSP在解释性能上超越了SOTA模型,显著提升了时间序列数据解释的质量。
|
6月前
|
机器学习/深度学习
【机器学习】噪声数据对贝叶斯模型有什么样的影响?
【5月更文挑战第10天】【机器学习】噪声数据对贝叶斯模型有什么样的影响?
|
6月前
|
数据采集
【大模型】大语言模型训练数据中的偏差概念及其可能的影响?
【5月更文挑战第5天】【大模型】大语言模型训练数据中的偏差概念及其可能的影响?
|
6月前
|
人工智能 搜索推荐 物联网
DoRA(权重分解低秩适应):一种新颖的模型微调方法_dora模型
DoRA(权重分解低秩适应):一种新颖的模型微调方法_dora模型
353 0
|
机器学习/深度学习 数据可视化 索引
斯坦福训练Transformer替代模型:1.7亿参数,能除偏、可控可解释性强
斯坦福训练Transformer替代模型:1.7亿参数,能除偏、可控可解释性强
139 2
|
机器学习/深度学习 数据可视化
DHVT:在小数据集上降低VIT与卷积神经网络之间差距,解决从零开始训练的问题
VIT在归纳偏置方面存在空间相关性和信道表示的多样性两大缺陷。所以论文提出了动态混合视觉变压器(DHVT)来增强这两种感应偏差。
256 0
|
机器学习/深度学习 存储 算法
优于GNN嵌入基线,阿尔伯塔大学等用RL做图关系推理:关系预测任务新SOTA
优于GNN嵌入基线,阿尔伯塔大学等用RL做图关系推理:关系预测任务新SOTA
115 0
|
机器学习/深度学习 编解码 计算机视觉
建议背诵 | 字节用4大准则教你设计一个拥有CNN的速度,Transformer精度的模型!
建议背诵 | 字节用4大准则教你设计一个拥有CNN的速度,Transformer精度的模型!
69 0
|
人工智能 数据可视化 计算机视觉
AAAI 2023 Oral | 回归元学习,基于变分特征聚合的少样本目标检测实现新SOTA
AAAI 2023 Oral | 回归元学习,基于变分特征聚合的少样本目标检测实现新SOTA
162 0
|
机器学习/深度学习 存储 算法
NeurIPS 2022 | 如何正确定义测试阶段训练?顺序推理和域适应聚类方法
NeurIPS 2022 | 如何正确定义测试阶段训练?顺序推理和域适应聚类方法
125 0