对比学习在语义表征中的应用: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


相关文章
|
8天前
|
人工智能 机器人
LeCun 的世界模型初步实现!基于预训练视觉特征,看一眼任务就能零样本规划
纽约大学Gaoyue Zhou等人提出DINO World Model(DINO-WM),利用预训练视觉特征构建世界模型,实现零样本规划。该方法具备离线训练、测试时行为优化和任务无关性三大特性,通过预测未来补丁特征学习离线行为轨迹。实验表明,DINO-WM在迷宫导航、桌面推动等任务中表现出强大的泛化能力,无需依赖专家演示或奖励建模。论文地址:https://arxiv.org/pdf/2411.04983v1。
32 21
|
3月前
|
机器学习/深度学习 人工智能 编解码
[大语言模型-论文精读] 词性对抗性攻击:文本到图像生成的实证研究
[大语言模型-论文精读] 词性对抗性攻击:文本到图像生成的实证研究
63 0
|
6月前
|
机器学习/深度学习
ICML 2024:揭示非线形Transformer在上下文学习中学习和泛化的机制
【7月更文挑战第10天】Rensselaer Polytechnic Institute和IBM的研究者探讨了非线性Transformer在上下文学习的理论基础。他们展示了Transformer如何通过注意力层聚焦相关上下文,并利用MLP层进行预测,揭示了其在不需微调情况下的泛化能力。尽管研究局限于二进制分类和单层模型,它为理解复杂模型在不同任务和领域的潜在适应性提供了新视角。[论文链接:](https://arxiv.org/pdf/2402.15607)**
56 1
|
6月前
|
机器学习/深度学习 自然语言处理
预训练语义模型作为特征提取器的方法
预训练语义模型作为特征提取器的方法
|
8月前
|
机器学习/深度学习 编解码 自然语言处理
一文综述 | 万字文总结,近几年都有哪些语义分割模型用了Transformer方法呢?
一文综述 | 万字文总结,近几年都有哪些语义分割模型用了Transformer方法呢?
649 0
|
8月前
|
编解码 算法 测试技术
【论文精读】ICLR2022 - 语言驱动的语义分割
【论文精读】ICLR2022 - 语言驱动的语义分割
|
机器学习/深度学习 编解码 自然语言处理
基于EasyCV复现ViTDet:单层特征超越FPN
ViTDet其实是恺明团队MAE和ViT-based Mask R-CNN两个工作的延续。MAE提出了ViT的无监督训练方法,而ViT-based Mask R-CNN给出了用ViT作为backbone的Mask R-CNN的训练技巧,并证明了MAE预训练对下游检测任务的重要性。而ViTDet进一步改进了一些设计,证明了ViT作为backone的检测模型可以匹敌基于FPN的backbone(如SwinT和MViT)检测模型。
|
算法 搜索推荐 Ubuntu
语义检索系统:基于无监督预训练语义索引召回:SimCSE、Diffcse
语义检索系统:基于无监督预训练语义索引召回:SimCSE、Diffcse
语义检索系统:基于无监督预训练语义索引召回:SimCSE、Diffcse
|
机器学习/深度学习 编解码 自然语言处理
DAFormer | 使用Transformer进行语义分割无监督域自适应的开篇之作(一)
DAFormer | 使用Transformer进行语义分割无监督域自适应的开篇之作(一)
432 0
|
机器学习/深度学习 计算机视觉
论文推荐:基于联合损失函数的多任务肿瘤分割
以FFANet为主干,加入分类的分支,将模型扩展为多任务图像分割框架,设计了用于分类和分割的联合损失函数。
151 0