推荐算法中常用的几种相似度计算方法

无论在信息检索(Information retrieval,IR)或是在推荐系统(Recommendation system,RS)中,其一般思路就是先进行合理的数据处理,再计算相似度,从而得出结果.如在推荐系统中,首先需要获取用户或物品的数据,并同构合理的表示函数来构造用户或物品的Embedding,然后就是计算用户之间的相似度或者物品之间的相似性.而主要的相似性计算方法主要有以下几种:

1.余弦相似度(Cosine similarity)

余弦相似度用来衡量用户向量ij之间的向量夹角大小,夹角越小,证明余弦相似度越大,说明两个用户越相似,若把用户向量换成物品向量,则同理可得物品向量之间的相似度.

2.皮尔逊相关系数(Pearson Correlation Coefficient)

皮尔逊相关系数在对用户进行相似性计算时,与余弦相似度相比,加入了用户平均分对各独立评分进行修正,减小了用户评分偏置的影响.

其中,R_{i,p}表示用户i对物品p的评分,\overline{R_{i}}表示用户i对所有物品的平均评分, p代表所有物品的集合.这里引入了用户对所有物品的平均评分,这里也可以引入物品p的平均评分,即:

3.欧几里得距离(Euclidean Distance)

这里的欧几里得距离指的是m维空间中两点之间的距离,比如在二维空间上,两点的距离 定义为:

同理,三维的为:

n维空间的表达式为:

而我们在推荐时的相似度计算主要用于向量之间的相似度计算,也就是求n维向量之间的距离,比如同一空间内的两个向量pq,它们是同一空间内的两个点,那么欧氏距离就是衡量这两个点之间的距离:

欧氏距离是一个非负数,最大值为正无穷,通常计算相似度的结果希望是[-1,1]或[0,1]之间,故一般可以使用: 

[注]:欧氏距离不适用于布尔向量之间的计算.

4.杰卡德距离(Jaccard Distance)

(1)杰卡德相关系数

杰卡德相关系数指的是两个集合A和B的交集在其二者的并集中所占的比例

(2)杰卡德距离

与杰卡德相关系数相反,杰卡德距离使用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度:

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值