码迷,mamicode.com
首页 > 编程语言 > 详细

基于邻域的推荐算法

时间:2017-07-20 10:07:31      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:alias   技术分享   topk   tac   系统   use   交集   实践   一个   

基于邻域的算法,就是最常见的CF协同过滤算法。分为 基于用户的 user based CF 和 基于物品的 item based CF.

1.user based CF

对目标用户u, 找出与之相似的用户集合 U,将U中用户感兴趣而u没见过的物品推荐给u.

用户相似度,通过将用户表示成商品的向量后计算。

如果两两用户都计算相似度,那么计算复杂度为O(|U|^2),而对每个u来说,它的向量都是稀疏的。也就是说很多用户间没有交集,相似度计算为0。所以可以先过滤掉这些用户组合后再进行计算。一个方法是建立物品到用户的倒排表,对每个物品下的用户列表,两两组合作为key,key每出现一次加一,这样计算出每种存在交集的用户组合的相似度分子,然后除以分母即得到相似度。

得到topK相似的用户后,计算目标用户u对物品i的兴趣度就表示成这个K个用户的相似度与他们对u的兴趣度的线性组合。

用户兴趣相似度的一个改进:将商品流行度考虑进去,对热门商品采取惩罚。

技术分享

2.item based CF

基于用户的CF随着用户增长,用户关系矩阵过大。基于物品的CF推荐与用户之前感兴趣过的物品有关联关系(或相似)的物品。相似度计算方式是通过用户的行为,而不是物品本身的属性来获得。

也就是将物品表示成用户的向量后计算。和user based CF同理,建立用户-物品的倒排表。

同理,会对某些属性的用户进行惩罚,来修正物品的相似度。

ItemCF的相似度矩阵归一化后能够提高精度、覆盖度。

 

参考:《推荐系统实践》

基于邻域的推荐算法

标签:alias   技术分享   topk   tac   系统   use   交集   实践   一个   

原文地址:http://www.cnblogs.com/akanecode/p/7208997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!