您的位置:首页 > 其它

基于用户的协同过滤算法

2015-08-18 10:15 211 查看
最近正在读项亮博士的《推荐系统实践》人民邮电出版社,这本书应当是目前国内为数不多的介绍推荐算法的了。目前正在学习基于用户的协同过滤算法(UserCF :user-based collaborative filtering)。



该算法是推荐系统中最古老的算法,标志着推荐系统的诞生,该算法在1992年提出用于邮件过滤系统,1994年被GroupLens用于新闻过滤。

算法的主要思想是如果一个用户A需要一个个性化推荐列表,我们可以找到和用户A有着相似兴趣的其他用户,给A推荐其他用户喜欢的且A没听说过的物品集合。



基于用户的协同过滤算法主要包括包括两个步骤:

1. 找到和目标用户兴趣相似的用户集合

2. 找到集合中用户喜欢的且目标用户没有听说过的物品集合

UserCF的关键在于步骤 1如何利用用户行为计算用户之间的相似性,最简单的计算相似性有Jaccard公式和余弦相似度公式。



Jaccard
公式



余弦相似度

其中N(A) N(B)分别表示用户A,B有过正反馈的物品集合。

例如下图所示:





利用Jaccard公式计算 w(AB) = 1/4

利用余弦公式计算 w(AB) = 1/sqrt(6)



利用上述公式得到用户兴趣相似度 w 之后, UserCF算法会给用户推荐和他兴趣最相似的 K 个用户喜欢的物品。







其中 r(vi)表示用户 v 对物品 i 的兴趣, 通常是 有兴趣r(vi)=0, 反之 r(vi)=0. p(u,i) 则是最终用户 u 对物品 i 的感兴趣程度,就是所谓的用户 u 对物品 i 的打分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: