机器学习算法实践:推荐系统的协同过滤理论及其应用
上QQ阅读APP看书,第一时间看更新

1.3 基于近邻的协同过滤推荐算法

基于近邻的协同过滤推荐算法是一种非常流行的建立推荐系统的方式,仅仅通过收集相似用户的行为而不需要用户的人口统计学信息即可自动为目标用户进行推荐。由于简单易用,协同过滤在工业界得到了飞速发展,其推荐精度主要在于相似度的选择。下面介绍基于近邻的协同过滤中常用的相似度度量方法。

1.3.1 余弦相似度

余弦相似度定义向量a和向量bRNM中的第u行和第v行,将两个向量的夹角余弦值定义为用户u和用户v的相似度,如式(1-3)所示。

sim(uv)的值越接近1,说明用户u与用户v的相似度越高。

1.3.2 修正余弦相似度

修正的余弦相似度鉴于传统的余弦相似度考虑了用户的评分偏好。也就是说,有的用户倾向于评高分,有的用户倾向于评低分。例如,两个用户对电影《西游降魔篇》和《西游伏妖篇》分别评分为5、4和3、2,如果按照传统的余弦相似度来计算,那么这两个用户的相似度很低,其实这两个用户的偏好是一致的,即相对于电影《西游伏妖篇》,两个用户都更喜欢《西游降魔篇》。那么式(1-4)是用户u与用户v的修正余弦相似度。

1.3.3 Pearson相似度

Pearson相似度和修正余弦相似度不同的是分母为用户的共同评分项目。式(1-5)是Pearson相似度。

1.3.4 Jaccard相似度

Jaccard相似度的分子为用户评分项目的交集,分母为并集,使用该相似度能大致度量用户之间的相似度。式(1-6)是Jaccard相似度。

以基于用户的协同过滤为例,给定目标用户u,可以找出与其最相似的前n个用户记为邻居集Nu。对于用户u未进行评分的项目i可按照式(1-7)进行预测。

由式(1-7)可对任一用户未进行评分的项目进行评分预测,将所有预测结果降序排列,从中选出前n个推荐给用户。