对比学习在语义表征中的应用:SBERT/SimCSE/ConSERT/ESimCSE复现(二)

简介: 对比学习在语义表征中的应用:SBERT/SimCSE/ConSERT/ESimCSE复现(二)

4.ESimCSE



论文链接:《ESimCSE: Enhanced Sample Building Method for Contrastive Learning of Unsupervised Sentence Embedding》


去年9月份挂在arvix上的一篇论文


6bd373979e6865fcabe9de2551578b76.png


  • 论文里,首先指出Unsup-SimCSE的一个缺点,模型会倾向认为同样长度的句子对相似度更高,因此,论文提出采用repetition的方式来生成positive pair


为何采用repetition?起码它不会更改语义,如句子““I like this apple because it looks so fresh and I think it”


  • insertion:“I don’t like this apple because but it looks so not fresh and I think it should be dog delicious.”


  • deletion:“I this apple be- cause it looks so and I think it should be.”


  • repetitiion:“I like like this apple because it looks so so fresh and and I think it should be delicious.”


只有repetition没有改变语义。


  • 引入momentum contrast机制,让每个step的负样本能尽可能多,具体的,维护一个队列,这个队列会存储上几个step中出现过的sentence embedding作为当前step的负样本,此外,这个队列中的embedding都用一个momentum encoder来生成,而这个momentum encoder的参数是通过动量更新的,这样的好处是,每轮新加入队列的embedding差异都尽可能少?


  • 论文结果如下,dup_rate=0.32效果最好,队列大小也不能太大,取为batch_size的2.5倍是最好的


4bb99f0d42e0d46236f770ab2ea2cfec.png


本人复现时,batch_size=50,dup_rate=0.32,队列大小q=150


14c141b05c8d2685689cafeaccebcd0.png


5. 总结



最后,用一张表把效果罗列一起,


64144fb096df783fd72c694b08dcaf3.png


个人体会



  • 实质上,没有一种对比学习的方法能超过SBERT直接用sbs数据集做fine tuning的效果,那些说超过supervised SBERT的论文其实只是跟用NLI数据集做训练的SBERT来比较的。因此可以看到,有监督训练还是王道呢~


  • 最后,没有所谓的SOTA,要明白论文及复现里的测试集都是STS,而落到实际业务中,每一个场景都有自己的特点,应该根据场景的特点去制作positive pair和思考怎么做hard negative样本,以及选择何种训练方法,当制作的数据集和训练方法越接近任务时,模型的效果自然越好。


复现参考:


  1. https://github.com/UKPLab/sentence-transformers


  1. https://github.com/yym6472/ConSERT


 3.https://github.com/xianghuisun/nlp-basictasks/blob/main/STS-B.ipynb


实验代码全部汇总在:


https://github.com/zhoujx4/NLP-Series-sentence-embeddings


相关文章
|
数据处理 计算机视觉 Python
【目标检测】指定划分COCO数据集训练(车类,行人类,狗类...)
【目标检测】指定划分COCO数据集训练(车类,行人类,狗类...)
3288 0
|
3月前
|
机器学习/深度学习
ICML 2024:揭示非线形Transformer在上下文学习中学习和泛化的机制
【7月更文挑战第10天】Rensselaer Polytechnic Institute和IBM的研究者探讨了非线性Transformer在上下文学习的理论基础。他们展示了Transformer如何通过注意力层聚焦相关上下文,并利用MLP层进行预测,揭示了其在不需微调情况下的泛化能力。尽管研究局限于二进制分类和单层模型,它为理解复杂模型在不同任务和领域的潜在适应性提供了新视角。[论文链接:](https://arxiv.org/pdf/2402.15607)**
30 1
|
5月前
|
机器学习/深度学习 自然语言处理 计算机视觉
【大模型】小样本学习的概念及其在微调 LLM 中的应用
【5月更文挑战第5天】【大模型】小样本学习的概念及其在微调 LLM 中的应用
|
5月前
|
机器学习/深度学习 开发者
论文介绍:基于扩散神经网络生成的时空少样本学习
【2月更文挑战第28天】论文介绍:基于扩散神经网络生成的时空少样本学习
54 1
论文介绍:基于扩散神经网络生成的时空少样本学习
|
机器学习/深度学习 Web App开发 数据挖掘
经典神经网络论文超详细解读(七)——SENet(注意力机制)学习笔记(翻译+精读+代码复现)
经典神经网络论文超详细解读(七)——SENet(注意力机制)学习笔记(翻译+精读+代码复现)
2268 1
经典神经网络论文超详细解读(七)——SENet(注意力机制)学习笔记(翻译+精读+代码复现)
|
存储 算法 搜索推荐
语义检索系统:基于无监督训练SimCSE+In-batch Negatives策略有监督训练的语义索引召回
语义检索系统:基于无监督训练SimCSE+In-batch Negatives策略有监督训练的语义索引召回
语义检索系统:基于无监督训练SimCSE+In-batch Negatives策略有监督训练的语义索引召回
|
算法 搜索推荐 Ubuntu
语义检索系统:基于无监督预训练语义索引召回:SimCSE、Diffcse
语义检索系统:基于无监督预训练语义索引召回:SimCSE、Diffcse
语义检索系统:基于无监督预训练语义索引召回:SimCSE、Diffcse
|
机器学习/深度学习 自动驾驶 计算机视觉
目标检测提升技巧 | 结构化蒸馏一行代码让目标检测轻松无痛涨点
目标检测提升技巧 | 结构化蒸馏一行代码让目标检测轻松无痛涨点
197 0
|
搜索推荐 TensorFlow 数据处理
【推荐系统】TensorFlow复现论文DeepCrossing特征交叉网络结构
【推荐系统】TensorFlow复现论文DeepCrossing特征交叉网络结构
119 1
【推荐系统】TensorFlow复现论文DeepCrossing特征交叉网络结构
|
机器学习/深度学习 编解码
从单幅自然图像学习扩散模型,优于GAN,SinDiffusion实现新SOTA
从单幅自然图像学习扩散模型,优于GAN,SinDiffusion实现新SOTA
351 0
下一篇
无影云桌面