草庐IT

SimCSE论文阅读

正负样本对构建原理正样本pair:onesentencetwodifferentembeddingsas“positivepairs”.(通过dropout作为噪声)负样本pair:Thenwetakeothersentencesinthesamemini-batchas“negatives”任务:themodelpredictsthepositiveoneamongthenegatives无监督pair构造:只有自己和自己的随机dropout后的是正样本pair自己和其他的样本都是负样本其实一个batch,比如有N个句子对,那么就有2N个句子,其中正例是1个,负样本应该是总样本数目2N减去样

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

作者|对白出品|对白的算法屋编者寄语:本文看完,相信你会掌握这个无监督语义新SOTA模型ESimCSE。从论文标题中可以看出,应该是对4月份丹琦女神发表的新作SimCSE的增强版(Enhance),并且也用到了对比学习来构建正负样本,那么效果是否优于SimCSE呢?抱着这个好奇的心态,于是完整的读了一遍该论文。好家伙!在语义文本相似性(STS)任务上效果竟然还真的优于BERTbase版的SimCSE有2个点(Spearman相关系数),并且提出了两大优化方法,解决了SimCSE遗留的两个问题:1、SimCSE通过dropout构建的正例对包含相同长度的信息(原因:Transformer的Pos

基于SimCSE和Faiss的文本向量检索实践

目录文本的向量表示1、SimCSE2、支持无监督训3、训练注意事项向量检索1、精准查找flat2、HNSWx3、IVFx4、PQx5、LSH对博客标题进行向量检索数据向量化构建索引文本检索测试检索传统的文本检索一般是建立倒排索引,对搜索词的召回结果进行打分排序返回最终结果,但是在海量的数据面前,召回结果页面临着一些挑战。于是就有了基于语义的搜索,即将文本向量化,默认向量包含了文本的语义信息,匹配最近的向量返回结果。文本的向量表示文本的向量表示有很多种方式,例如:one-hot,tf-idf,word2vec,或者基于深度学习的sentence-bert,simbert等等,这里尝试采用近年来小

文本匹配SimCSE模型代码详解以及训练自己的中文数据集

前言在上一篇博客文本匹配中的示例代码中使用到了一个SimCSE模型,用来提取短文本的特征,然后计算特征相似度,最终达到文本匹配的目的。但是该示例代码中的短文本是用的英文短句,其实SimCSE模型也可以用于中文短文本的特征提取,本篇博客就基于苏沐剑发表于科学空间的中文任务还是SOTA吗?我们给SimCSE补充了一些实验博客中使用到的代码,来记录一下代码梳理的笔记,并且使用自己的数据集在这篇代码上进行训练。另外,关于这个模型的原理细节等,可以参考别的博主写的内容,还有就是作者的论文,这些会附在最后的参考链接。代码详解数据导入部分数据导入部分的代码主要有三个步骤,(1)从txt中读取文本数据,常规操

文本匹配SimCSE模型代码详解以及训练自己的中文数据集

前言在上一篇博客文本匹配中的示例代码中使用到了一个SimCSE模型,用来提取短文本的特征,然后计算特征相似度,最终达到文本匹配的目的。但是该示例代码中的短文本是用的英文短句,其实SimCSE模型也可以用于中文短文本的特征提取,本篇博客就基于苏沐剑发表于科学空间的中文任务还是SOTA吗?我们给SimCSE补充了一些实验博客中使用到的代码,来记录一下代码梳理的笔记,并且使用自己的数据集在这篇代码上进行训练。另外,关于这个模型的原理细节等,可以参考别的博主写的内容,还有就是作者的论文,这些会附在最后的参考链接。代码详解数据导入部分数据导入部分的代码主要有三个步骤,(1)从txt中读取文本数据,常规操