导航

余弦相似度

Posted on 2021-07-23 10:53  蝈蝈俊  阅读(500)  评论(0编辑  收藏  举报

余弦相似度计算公式看:余弦相似度Cosine Similarity相关计算公式

余弦相似度在度量各种相似度上比较常用。

案例:文本相似度

比如有下面两个句子,我们要计算这两个句子的相似度。

句子A:他不仅是一个歌手,还是一个舞者;
句子B:他既是一个歌手,也是一个舞者。

我们从词频入手,来计算其相似性。
分词后的词频数据如下:

句子A: 他(1) 不仅(1) 既(0) 是(2) 一个(2) 歌手(1) 还(1) 也(0) 舞者(1)
句子B:他(1) 不仅(0) 既(1) 是(2) 一个(2) 歌手(1) 还(0) 也(1) 舞者(1)

我们总结出来两个句子的词频向量:

句子A(1,1,0,2,2,1,1,0,1)
句子B(1,0,1,2,2,1,0,1,1)

A和B的余弦相似度计算如下:

想要利用余弦相似性公式来计算两者之间的相似性,首先要确定向量化的方法(比如本案例中,通过将连个句子通过分词的方式,计算词频来向量化),理解向量值的多维度(我们通过分词可以得出来9各维度的向量值),然后将向量化后将值带入到公式中,去计算相似度。

用户相似度

比如一个外卖平台,两个用户A和B,外卖新出了两款新品套餐,分别是a和b,用户A对这两款新品的评分是1分和2分,b对这两款新品的评分是4分和5分,我们通过余弦相似度来评价一下两个用户的相似度。

假如我们将对这新品套餐评分作为特征向量,两个产品的评分分别连个维度的向量值,是那么A和B的特征向量分别是(1,2)、(4、5),我们代入公式计算得出:0.98。

通过公式计算发现两个相似度很高,但是这跟我们直觉判断这两个应该相似度很低才是,这说明我们选定好评价的特征向量后,对于向量值的的确定出现了问题,我们对(1,2)、(4、5)进行转换,变成与平均分3的差额,的出来新的向量值(-2,-1)、(1、2)之后,重新计算得出相似度为-0.8,那么我们看这个结果比较接近事实。

通过这个案例我们可以看到:再找到特征向量后,对于向量值的取值与评价也需要灵活考虑,可以结合统计学知识。

上述两个例子来自:AI产品经理需要了解的数据知识:余弦相似度

评委打分

歌手大赛,三个评委给三个歌手打分,第一个评委的打分(10,8,9), 第二个评委的打分(4,2,3),第三个评委的打分(8,10,9)。

如果采用余弦相似度来看每个评委的差异,虽然每个评委对同一个选手的评分不一样,但第一、第二两个评委对这三位歌手实力的排序是一样的,只是第二个评委对满分有更高的评判标准,说明第一、第二个评委对音乐的品味上是一致的。

白话总结《余弦相似度vs欧式距离&缺陷》