最近正在读项亮博士的《推荐系统实践》人民邮电出版社,这本书应当是目前国内为数不多的介绍推荐算法的了。目前正在学习基于用户的协同过滤算法(UserCF
该算法是推荐系统中最古老的算法,标志着推荐系统的诞生,该算法在1992年提出用于邮件过滤系统,1994年被GroupLens用于新闻过滤。
算法的主要思想是如果一个用户A需要一个个性化推荐列表,我们可以找到和用户A有着相似兴趣的其他用户,给A推荐其他用户喜欢的且A没听说过的物品集合。
基于用户的协同过滤算法主要包括包括两个步骤:
1. 找到和目标用户兴趣相似的用户集合
2. 找到集合中用户喜欢的且目标用户没有听说过的物品集合
UserCF的关键在于步骤 1如何利用用户行为计算用户之间的相似性,最简单的计算相似性有Jaccard公式和余弦相似度公式。
其中N(A) N(B)分别表示用户A,B有过正反馈的物品集合。
例如下图所示:
利用余弦公式计算 w(AB) = 1/sqrt(6)
利用上述公式得到用户兴趣相似度 w 之后, UserCF算法会给用户推荐和他兴趣最相似的 K 个用户喜欢的物品。
其中 r(vi)表示用户 v 对物品