首页
学习
活动
专区
圈层
工具
发布

基于对比学习(Contrastive Learning)的文本表示模型为什么能学到语义相似度?

最近在知乎上看到这样一个问题:基于对比学习(Contrastive Learning)的文本表示模型为什么能学到语义相似度?...为什么对比学习能学到很好的语义相似度?...因为对比学习的目标就是要从数据中学习到一个优质的语义表示空间 众所周知,直接用BERT句向量做无监督语义相似度计算效果会很差,这个问题还没搞清楚的可以看我的这篇回答:BERT模型可以使用无监督的方法做文本相似度任务吗...总结来说,由于使用了不可学习的余弦相似度作为度量,并且完全去除了编码部分的交互耦合,基于表示的方案无法进行 task-specific 式的模型学习。...我自己在实践的时候,起初比较偷懒,就是这样直接处理的。正例对的相似度为1,负例对的相似度为0。但是,学习效果很差,和以往单句场景的经验完全不一致。

1.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    TF-IDF与余弦相似度

    两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。这 结果是与向量的长度无关的,仅与向量的指向方向相关。...余弦相似度通常用于正空间,因此给出的值为0到1之间。 注意这上下界对任何维度的向量空间中都适用,而且余弦相似性最常用于高维正空间。...例如在信息检索中,每个词项被赋予不同的维度,而一个文档由一个向量表示,其各个维度上的值对应于该词项在文档中出现的频率。余弦相似度因此可以给出两篇文档在其主题方面的相似度。...,可以使用相对词频); 生成两篇文章各自的词频向量; 计算两个向量的余弦相似度,值越大就表示越相似。...“余弦相似度”是一种非常有用的算法,只要是计算两个向量的相似程度,都可以采用它。

    2.7K41

    算法金 | 欧氏距离算法、余弦相似度、汉明、曼哈顿、切比雪夫、闵可夫斯基、雅卡尔指数、半正矢、Sørensen-Dice

    (Euclidean Distance)二、余弦相似度 (Cosine Similarity)定义与公式余弦相似度是一种衡量两个向量夹角余弦值的度量,常用于评估两个向量的相似度。...公式如下:应用场景余弦相似度在许多领域有广泛应用,特别是文本和信息检索领域:文本相似度计算:在自然语言处理 (NLP) 中,余弦相似度用于计算两个文本或文档之间的相似度,通过比较它们的词频向量推荐系统:...)七、雅卡尔指数 (Jaccard Index)定义与公式雅卡尔指数用于衡量两个集合的相似度,其值为两个集合交集的大小除以并集的大小。...Sørensen-Dice 系数用于衡量两个集合的相似度,其值为两个集合交集的大小的两倍除以两个集合大小的总和。...适用于信息检索、图像处理、生态学核心要点回顾欧氏距离:计算空间中两点间的直线距离,简单易懂余弦相似度:计算两个向量间夹角的余弦值,适合文本和向量数据汉明距离:计算两个等长字符串间不同字符的个数,适合离散数据曼哈顿距离

    1.3K00

    为什么你的RAG不起作用?如何解决语义失谐

    他们的 RAG 不仅效果不佳,而且他们不知道为什么以及下一步该怎么做。 在过去的几个月里,我与数十个 AI 团队和专家进行了交谈。...(还有其他测量语义相似度的方法,但通常这不是最容易实现的方法,我们将始终使用余弦相似度)。...然而,需要强调的是,向量比较指标(如余弦相似度)的使用非常微妙,因为它们没有绝对的意义——其值完全取决于嵌入模型和所涉及文本的上下文。假设你将问题与答案进行匹配,得到的余弦相似度为 0.73。...策略 1:仅使用表架构 策略 2:表格模式+简要说明 策略 3:表格模式+简要说明+示例问题 策略 4:仅提供示例问题 4.2 发现噪声余弦相似性 为了直观地了解噪音是什么样子的,我们比较了每个问题和原始表格文本的随机文本片段的余弦相似度...我们发现垃圾输入的余弦相似度约为 0.04–0.23。以下是示例比较: 不相关文本、“愚蠢文本”和问题和 SQL 表语句的原始文本之间的余弦相似度值。这有助于制定基准,以识别何时存在弱或无语义重叠。

    72410

    从0到1,了解NLP中的文本相似度

    本文接下来将重点介绍基于余弦复杂度的文本相似度比较算法,和适用于海量数据的simhash文本相似度算法,并给予一定的工程实现方案。...S1: "为什么我的眼里常含泪水,因为我对这片土地爱得深沉" S2: "我深沉的爱着这片土地,所以我的眼里常含泪水" 第一步,分词: 我们对上述两段话分词分词并得到下面的词向量: S1: [为什么 我...通过上文介绍的余弦定理,我们知道当两条线段之间形成一个夹角,如果夹角为0度,意味着方向相同、线段重合,我们就认定这是表示两个向量代表的文本完全相等;如果夹角为90度,意味着形成直角,方向完全不相似。...因此,为了在爬取网页时用于快速去重,Google发明了一种快速衡量两个文本集相似度的算法:simhash。 简单来说,simhash中使用了一种局部敏感型的hash算法。...注意二: 另外一点需要需要注意的是,simhash的优点是适用于高维度的海量数据处理,当维度降低,如短文本的相似度比较,simhash并不合适,以我们计算余弦相似度的文本为例, S1: "为什么我的眼里常含泪水

    6.9K212

    一文详解文本语义相似度的研究脉络和最新进展

    ---- ©作者 | 崔文谦 单位 | 北京邮电大学 研究方向 | 医学自然语言处理 编辑 | PaperWeekly 本文旨在帮大家快速了解文本语义相似度领域的研究脉络和进展,其中包含了本人总结的文本语义相似度任务的处理步骤...文本相似度任务处理步骤 通过该领域的大量论文阅读,我认为处理文本相似度任务时可以分为一下三个步骤: 预处理:如数据清洗等。此步骤旨在对文本做一些规范化操作,筛选有用特征,去除噪音。...在这些数据集中,每一个文本对都有一个 0~5 分的人工打标相似度分数(也称为 gold label),代表这个文本对的相似程度。 评价指标 首先,对于每一个文本对,采用余弦相似度对其打分。...其中,Wk 是参数矩阵,可以理解为 attention 的 query 或者 key,v1 和 v2 分别是要进行交互的两个词,这样计算 l 次余弦相似度,就会得到 m 向量(一个 l 维向量)。...作者认为,直接用 BERT 句向量来做相似度计算效果较差的原因并不是 BERT 句向量中不包含语义相似度信息,而是其中包含的相似度信息在余弦相似度等简单的指标下无法很好的体现出来。

    3.1K20

    【NLP-语义匹配】详解深度语义匹配模型DSSM

    所谓语义匹配,就是在语义上衡量文本的相似度,在产业界有很多的应用需求。例如,在FAQ场景中需要计算用户输入与标问之间的相似度来寻找合适的答案。...,计算Q和D之间的余弦相似度之后,输出他们之间的相似度。...通过计算各个Q及D的特征表征,得到了一些128维的特征向量。随后在DSSM中,通过计算Q和D之间的余弦距离来评价他们之间相似度,计算公式如下图所示: ?...其中 r 为 softmax 的平滑因子,D 为 Query 下的正样本,D 为 Query 下的整个样本空间。 上述公式,计算一个样本空间内正样本的平滑概率,R(Q,D)为两个文本之间余弦距离。...在训练阶段,通过极大似然估计,最小化损失函数为: ? 总结 DSSM的优点在于能够快速的计算多个query和Doc对之间的语义相似度;相对于词向量的方式,它采用有监督的方法,准确度要高很多。

    2.9K10

    机器学习day4

    P是真实的正样本数量,N是真实的负样本数量,TP是P个真样本中被分类器预测为正样本的个数,FP是N个负样本中被分类器预测为正样本的个数。...AUC AUC是ROC曲线下的面积大小,该值可以衡量反应基于ROC曲线衡量出的模型性能。 余弦距离 余弦相似度的范围为[-1,1]。相同的两个向量相似度为1。...1减去余弦相似度即是余弦距离,因此余弦距离的取值是[0,2],相同的两个余弦距离为0。 对于两个向量A和B,其余弦相似度定义 ? 即两个向量夹角的余弦,关注两个向量之间的角度关系。...比如一对文本相似度的长度差距很大,但是表达的内容差不多,那么在空间中的欧式距离就会很大,但是余弦相似度却可能很小。...自助法不同,对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集,n次采样中,即是被重复采样,没被采集都没有关系。最后把抽到的作为训练集,没抽到的作为验证集。

    37520

    【译】向量搜索的相似度度量

    在这篇文章中,我们将涵盖: 向量相似度度量 L2 或欧几里得距离 L2 距离是如何工作的? 何时应该使用欧几里得距离? 余弦相似度 余弦相似度是如何工作的? 何时应该使用余弦相似度?...为了更容易理解,你可以将向量想象为指向特定方向的线段。 L2或欧几里得度量 是两个向量之间的“斜边”度量。它衡量了向量线条结束点之间的距离大小。 余弦相似度 是指它们相交时线之间的夹角。...余弦相似度 我们使用“余弦相似度”或“余弦距离”来表示两个向量之间的方向差异。例如,你需要转多少度才能面向前门?...我们将余弦距离的值定义为“x”除以“y”。 何时应该使用余弦相似度? 余弦相似度主要用于 NLP 应用。余弦相似度主要衡量的是语义方向的差异。如果您使用了归一化向量,余弦相似度等同于内积。...正如你所看到的,两个向量嵌入之间的汉明距离几乎总是等于向量本身的长度。每个值的可能性太多了。这就是为什么汉明距离只能应用于二进制或稀疏向量。

    36410

    余弦相似度及其生物信息学应用

    ,原因是作者使用了一个cosine similarity(余弦相似度)的概念。...最常见的应用就是计算文本相似度。将两个文本根据他们词,建立两个向量,计算这两个向量的余弦值,就可以知道两个文本在统计学方法中他们的相似度情况。实践证明,这是一个非常有效的方法。...前面我们搜索了解到,cosine similarity(余弦相似度)最常见的应用就是计算文本相似度,那么,为什么生物信息学领域里面的cosmic的signature的相似性要采用cosine similarity...(余弦相似度)而不是常见的简单的相关性系数呢?...虽然我做了探索,但是我其实并不明白为什么cosmic的signature的相似性要采用cosine similarity(余弦相似度)而不是常见的简单的相关性系数。

    1.4K10

    京东DNN Lab新品用户营销的两种技术方案

    余弦相似度的筛选方式 在实际应用中,我们为了找出相似的文章或者相似新闻,需要用到“余弦相似性”,下面我们举例说明什么是余弦相似性。为了简单起见,我们来看两个简单的句子。...句子A:我喜欢吃中餐,不喜欢吃西餐。 句子B:我不喜欢吃中餐,也不喜欢吃西餐。 我们怎样才能计算A,B句子的相似度呢? 基本思路是:如果这两句话的用词越相似,它们的内容就应该越相似。...所以,上面的句子A和句子B是很相似的,事实上它们的夹角大约为20.3度。 基于以上,我们可以得出文本相似性的一种算法。 使用关键词提取算法(例如:TF-IDF),找出两篇文章的关键词。...计算两个向量的余弦相似度,值越大就表示越相似。 基于余弦相似度的商品相似度模型 得出了余弦相似度的数值之后,如何利用它进行新品推荐呢?...将新品手机特征表示为向量: ? 新品的特征向量维度值取值为0或者1,例如新品品牌为华为,则华为这个特征为1,其他品牌特征值为0。 4. 计算余弦相似度: ? 其中simi值越大表示越相似。 5.

    76080

    一图看遍9种距离度量,图文并茂,详述应用场景!

    这些度量,如欧几里得距离或余弦相似度,经常可以在k-NN、UMAP、HDBSCAN等算法中找到。 理解距离度量比你可能比你想象中更加重要。以k-NN为例,这是一种经常用于监督学习的技术。...余弦相似度常用来抵消高维欧几里得距离问题。余弦相似度就是两个向量夹角的余弦。如果它们的长度都是1,它也有相同的内积。 两个方向完全相同的向量的余弦相似性为1,而两个完全相反的向量的相似性为-1。...以一个推荐系统为例,余弦相似度没有考虑到不同用户之间评分尺度的差异。 用例 当我们有高维数据和向量的大小不重要时,我们经常使用余弦相似度。对于文本分析,当数据以单词计数表示时,经常使用此度量。...该措施有三个要求: 0向量 —— 0向量的长度是0,而其他向量的长度都是正的。例如,如果我们从一个地方旅行到另一个地方,那么这个距离总是正的。然而,如果我们从一个地方到它自己,那么这个距离是零。...用例 用例与Jaccard index相似(如果不相同的话)。你会发现它通常用于图像分割任务或文本相似度分析。 注意:距离测量比这里提到的9个要多得多。

    3.5K11

    京东DNN Lab:基于大数据、商品相似度模型和SVM分类的用户群筛选

    本文以新品手机为例,使用商品相似度和基于分类的手段进行用户群筛选,详解了基于余弦相似度的相似度模型构建和基于SVM的分类预测方法。...句子A:我喜欢吃中餐,不喜欢吃西餐。 句子B:我不喜欢吃中餐,也不喜欢吃西餐。 我们怎样才能计算A,B句子的相似度呢? 基本思路是:如果这两句话的用词越相似,它们的内容就应该越相似。...所以,上面的句子A和句子B是很相似的,事实上它们的夹角大约为20.3度。 基于以上,我们可以得出文本相似性的一种算法。 使用关键词提取算法(例如:TF-IDF),找出两篇文章的关键词。...计算两个向量的余弦相似度,值越大就表示越相似。 基于余弦相似度的商品相似度模型 得出了余弦相似度的数值之后,如何利用它进行新品推荐呢?...将新品手机特征表示为向量: ? 新品的特征向量维度值取值为0或者1,例如新品品牌为华为,则华为这个特征为1,其他品牌特征值为0。 4. 计算余弦相似度: ? 其中simi值越大表示越相似。 5.

    2.7K20

    常见距离度量方法优缺点对比!

    这些度量方法,如欧氏距离或余弦相似度,经常可以在KNN、UMAP、HDBSCAN等算法中找到。 理解距离测量领域比你可能意识到的更重要。以KNN为例,这是一种常用于监督式学习的技术。...两个方向完全相同的向量的余弦相似度为1,而两个方向截然相反的向量的相似度为-1,请注意,它们的大小并不重要,因为这是方向的量度。...余弦相似度公式为: 缺点 余弦相似性的一个主要缺点是不考虑向量的大小,只考虑其方向。在实际应用中,这意味着值的差异没有被完全考虑。...以推荐系统为例,那么余弦相似性并没有考虑到不同用户之间的评分等级差异。 用例 当我们有高维数据且向量的大小并不重要时,我们经常使用余弦相似度。...这个度量有三个要求: 零向量:零向量的长度为零,而其它向量的长度为正。例如,如果我们从一个地方到另一个地方,那么这个距离总是正数。

    9.3K30

    使用 Python 创建一个简单的基于规则的聊天机器人

    在本文中,我们将利用余弦相似距离作为基础开发基于规则的聊天机器人。余弦相似度是向量(特别是内积空间的非零向量)之间的相似度度量,常用于度量两个文本之间的相似度。...我们将使用余弦相似度创建一个聊天机器人,通过对比查询与我们开发的语料库之间的相似性来回答查询提出的问题。这也是我们最初需要开发我们的语料库的原因。...,哪个结果产生的相似度最接近(最高余弦相似度)那么它就是我们的聊天机器人的答案。...创建一个聊天机器人 我们上面的语料库仍然是文本形式,余弦相似度不接受文本数据;所以需要将语料库转换成数字向量。通常的做法是将文本转换为词袋(单词计数)或使用TF-IDF方法(频率概率)。...在我们的例子中,我们将使用TF-IDF。 我将创建一个函数,它接收查询文本,并根据以下代码中的余弦相似性给出一个输出。让我们看一下代码。

    1.3K20

    NLP 论文领读|文本生成模型退化怎么办?SimCTG 告诉你答案

    解码中单词表示余弦相似度矩阵(a)GPT2 模型(b)SimCTG 模型 图 1 展示了单词表示的余弦相似度矩阵,显而易见,由 GPT-2 产生的单词表示(取自 Transformer 的最后一层)高度相似...具体来说,作者引入“对比学习”的思想,对于文本中的每一个单词,选取该单词作为锚点和正例,其他单词作为负例,以余弦相似度为距离度量,构建对比学习的三元损失。...对比学习的目标在于拉近锚点和正例的表示距离(由于锚点和正例为同一个单词,具有相同的表示,它们的余弦相似度恒等于 1),拉远锚点和负例的表示距离,这样就可以构造一个具有稀疏分布特性的良好表示空间啦!...对比学习的损失函数如下: 图片 其中,$|x|$表示文本长度,$\rho$为超参数。$s$ 为余弦相似度函数,有 $s(h{x_i}, h{x_i})=1$。...{x_{j}}\right): 1 \leq j \leq t-1\right}$为惩罚项,通过计算候选词$v$与前文单词的余弦相似度得到。

    1.4K20
    领券