UserCF和ItemCF是协同过滤中最为古老的两种算法,在top-N的推荐上被广泛应用。这两个算法之所以重要,是因为他们使用了两个不同的推荐系统基本假设。UserCF认为一个人会喜欢和他有相同爱好的人喜欢的东西,而ItemCF认为一个人会喜欢和他以前喜欢的东西相似的东西。这两个假设都有其合理性。根据我的测试,用UserCF和ItemCF做出的推荐列表中,只有50%是一样的,还有50%完全不同。但是这两个算法确有相似的精度。所以说,这两个算法是很互补的。
我一直认为这两个算法是推荐系统的根本,因为无论我们是用矩阵,还是用概率模型,我们都非常的依赖于前面说的两种假设。如果用户的行为不符合那两种假设,推荐系统就没必要存在了。因此我一直希望能够找出这两种算法的本质区别。他们有相似的精度,但是coverage相差很大,ItemCF coverage很大而UserCF很小。我还测试了很多其他指标,不过要从这些表象的指标差异找出这两个算法的本质区别还是非常困难。不过上周我基本发现了这两个算法推荐机理的本质区别。
我们做如下假设。每个用户兴趣爱好都是广泛的,他们可能喜欢好几个领域的东西。不过每个用户肯定也有一个主要的领域,对这个领域会比其他领域更加关心。给定一个用户,假设他喜欢3个领域A,B,C,同时A是他喜欢的主要领域。这个时候我们来看UserCF和ItemCF倾向于做出什么推荐。
结果如下,如果用UserCF, 它会将A,B,C三个领域中比较热门的东西推荐给用户。而如果用ItemCF,它会基本上只推荐A领域的东西给用户。因为UserCF只推荐热门的,所以UserCF在推荐长尾上能力不足。而ItemCF只推荐A领域给用户,这样他有限的推荐列表中就可能包含了一定数量的不热门item,所以ItemCF推荐长尾的能力比较强。不过ItemCF的推荐对某一个用户而言,显然多样性不足。但是对整个系统而言,因为不同的用户的主要兴趣点不同,所以系统的coverage会很大。
显然上面的两种推荐都有其合理性,但都不是最好的选择,因此他们的精度也会有损失。最好的选择是,如果我们给这个用户推荐30个item,我们既不是每个领域挑选10个最热门的给他,也不是推荐30个A领域的给他,而是比如推荐15个A领域的给他,剩下的15个从B,C中选择。
认识到这一点,可以给我们设计高精度的算法指明一个方向。就是当一个系统对个人推荐的多样性不足时,我们增加个人推荐的多样性可以提高精度。而当一个系统的整体多样性不足(比如只推荐popular的),我们增加整体的多样性同样可以提高精度。
转自:http://xlvector.net/blog/?p=488
分享到:
相关推荐
推荐系统教程 第2周 最流行的推荐系统:itemCF和userCF.rar
内容推荐系统,协同过滤,ItemC,UserCF,SlopeOne
MovieRecommendation 基于Python3,实现电影推荐系统,数据集是MovieLens官方数据集【见data.txt】 基于用户的协同过滤算法UserCF,UserCF的思想见博客: 基于项目的协同过滤算法ItemCF 关于推荐系统的介绍见博客:
用web的形式实现了mahout中的三种基本算法,前参考博客:http://blog.csdn.net/zeqblog/article/details/16809223
一个关于个性化推荐的项目(UserCF,itemCF,LFM,PersonalRank)_Python_Jupyter.zip
毕业设计 基于Python+Django的UserCF和ItemCF协同过滤的电影推荐系统源码+详细文档+全部数据资料 优秀项目 【备注】 1、该项目是高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目...
结合开源数据集进行电影推荐。推荐算法有:逻辑回归;UserCF ; ItemCF
- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,...
毕业设计 基于Python+Django+itemCF和userCF算法音乐推荐系统源码+详细文档+全部数据资料 高分项目 【备注】 1、该项目是高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都...
matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接...
- 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,...
包括了Pearson相似度算法,基于用户的UserCF算法,基于物品的ItemCF算法,slope one算法,TopN推荐,MAE,RMSE,topN推荐准确度,覆盖率计算等常用算法 实验代码有些是两年前写的,编写有些不太规范,且个别程序时间...
推荐算法分类: 按数据使用划分: 协同过滤算法:UserCF, ItemCF, ModelCF 基于内容的推荐: 用户内容属性和物品内容属性 社会化过滤:基于用户的社会网络关系 按模型划分: 最近邻模型:基于距离的协同过滤算法 ...
UserCF 和 ItemCF 的综合比较。 实验结果表明,K值和算法的各项评测指标也不完全成正相关或负相关,选择合适的K值获得最高精准度是非常重要的。 关键词:推荐系统;协同过滤;用户相似度; UserCF; ItemCF
内容推荐系统,协同过滤,ItemCF,UserCF,SlopeOne
recommen system ,dataset ,itemCF,userCF related code and small dataset see: https://github.com/JulseJiang/Recommend_System
推荐系统 利用MovieLens数据,Pearson相似度,分别基于User和Item构建一个简单的kNN推荐系统,并进行RMSE评价
UserCF(使用sklearn 版本和 不使用sklearn版本) LFM Graph—Based Spark 实现 特征工程 ItemCF 计划项(恩 就是挖坑的意思) 推荐算实现 基于用户行为数据的推荐算法 关联规则 LFM Graph ALS 利用用户标签数据推荐...
推荐算法协同userCF,itemCF以及权重推荐三种推荐方式推荐商品给用户 http://localhost:8082/login.html http://localhost:8082/index.html 用户介绍 普通用户 管理员 模块介绍 普通用户 登录模块 注册模块 ...
推荐算法协同userCF,itemCF以及权重推荐三种推荐方式推荐商品给用户 http://localhost:8082/login.html http://localhost:8082/index.html 用户介绍 普通用户 qqq 123456 管理员 admin 123456 模块介绍 普通用户...