SimCSE学习

75 篇文章 7 订阅
61 篇文章 2 订阅

0. 参考

  1. 中文任务还是SOTA吗?我们给SimCSE补充了一些实验:https://kexue.fm/archives/8348
  2. simcse在英文数据上显著超过了bert-flow和bert-whitening
  3. SimCSE—简单有效的对比学习:https://zhuanlan.zhihu.com/p/375659368

1. 概述

在这里插入图片描述

2. 什么是SimCse

2.1 无监督的训练方法

一个句子,encoder得到embedding,通过dropout得到的embedding作为正例,其他的句子得到的embedding作为负例,loss函数上面是正例的余弦值的函数,分子是其负例的和,-log[esim(正例)/sum(esim(负例))],正例相似度越高,loss越小,所以符合要求,训练的话就直接这么训练参数拿到embedding?
在这里插入图片描述

2.1.1 实验超参数值:

droupout:0.1,0代表不进行dropout,fixed dropout=0.1,代表dropout的位置不变,每次结果都一样,就不能学到东西。

2.1.2 注意的一些东西:

SimCSE论文超强解析:https://zhuanlan.zhihu.com/p/377612458
batchsize比较大512,所以负例为n-1个,其实可能可以为2(n-1),效果可能好一点
cosine做了scale
数据增强,每个batch不同样本的dropout不一样
loss函数:对比损失?拉近类内,扩大类间距离。
对比学习,一个batch中n个样本,自己的增强数据/非自己的增强数据,有点像求了cosine值后的交叉熵,怎么实现有个图,可以参考。

2.2 有监督的方法

数据集标签:entailment(蕴涵),neutral(中立),contradiction(相反)
分数为:斯皮尔曼相关系数
entailment蕴含作为正例
contradiction作为hard neg
添加hard neg石墨烯可以从84.9提升到86.2,提升量还是比较大的。

2.2.1 监督对比学习长啥样

在这里插入图片描述

https://blog.csdn.net/qq_16949707/article/details/117044300

2.2.2 本文

在这里插入图片描述

loss函数:跟当前的正样本,和其他的正负样本都有关系,对比学习。

在这里插入图片描述

3. 总结

有监督比无监督强,无监督利用hard neg比只用entailment正样本强,所以到底他是咋构造监督学习的正负样本的呀,正样本还需要用dropout来构造吗?估计要看下论文以及代码才能知道了。
在这里插入图片描述

4. 代码

原文代码(英文句子支持fassi):https://github.com/princeton-nlp/SimCSE
苏剑林(中文实验):https://github.com/bojone/SimCSE/blob/main/eval.py

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值