常用的推荐任务分为两种,一种是评分预测,而另一种是 Top-N 推 荐。评分预测就是给那些没有评分的项目进行评分,主要依据目标用户的历史评 分行为以及相似度计算来预测目标项目的分数。 Top-N 推荐就是根据用户的偏好给 目标用户推荐其可能喜欢的 N 件物品。
1.协同过滤算法
协同过滤算法可分为基于用户的协同过滤(User-based CF)、基于物品的系统 过滤(Item-based CF)
User-based CF 在推荐时首先会根据用户的行为记录找到相似的用户。例如,在电影推荐方面,如果 A 和 B 在对电影类型的喜好相同或 是相近,那么把 A 喜欢的电影推荐给 B 是有意义的。
首先需要计算两个用户的相似度 ,对于评分预测往往采用皮尔逊积矩相关系数来计算。
用户之间的相似度计算还可以采用 Jaccard 公式
给定两个集合A,B jaccard 系数定义为A与B交集的大小与并集大小的比值,jaccard值越大说明相似度越高
计算相似度在工程应用中这个公式还比较粗糙,例如,小时候我 们每个人基本都会购买《新华字典》,但并不能说明他们的购买兴趣相似,但是如 果两个人都购买了《推荐系统》,那么可以确定他们的购买兴趣是比较相似的,应 为只有研究推荐系统的人才会购买这本书,换句话说,两个用户对冷门物品采取 过相同的行为更能说明他们购买兴趣的相似度。
缩减了用户u和用户v共同兴趣列表中热门物品对他们相似度的影响。
基于项目的(Item-based CF)协同过滤算法的推荐
计算物品与物品之间的相似度