【推荐系统】协同过滤

一、协同过滤:找到与某用户有相同偏好的其它用户,具体步骤:

1 收集用户偏好(比如电影推荐时,某用户对某电影的的打分,评论、转发等)

2 找到相似的用户或者物品

3 计算推荐

基于用户的协同过滤:计算用户之间的相似度

 

用户A与用户C很相似,但是A没有买物品D,所以给A推荐物品D

存在问题:

1 对于一个新用户,很难找到与他相近的用户

2 对于一个物品(本来想推荐给A的),所有最近的邻居很少在上打分,导致物品A不会推荐给A

3 稀疏问题,维护的表(行为用户,列是所有物品),那这个表非常稀疏,因为可能有100W个物品,用户只买其中几个,所以维护这个表不方便

4 当用户数量非常大时,比较用户的计算量也特别大,因为每2个用户都要算相似度

5 用户的喜好容易改变

基于物品的协同过滤(更常用):计算物品之间的相似度

物品A与C更相似,用户C买了A,故把物品C推荐给用户C

注意:这里的物体之间的相似度不是看物体本身的相似度,是看物体与用户联系的相似度

相比基于用户的协同过滤,优势:

1 计算性能高,通常用户数量远大于物品数量

2 可预先计算保留,物品不善变

实例:

 

目标:求出第5个用户对电影1的评分,根据某一阈值,得出要不要给5用户推荐电影1,具体方法如下:

第一步:想要预测某一用户对某一电影的评分,首先要找到与这一电影相似的电影,根据如下的相似度计算得出,结果是上图右边绿色字体,这里用的是皮尔逊相关系数。

如何找相似的用户呢?通过相似度计算

 

在推荐系统中常用的是第二种:

第二步:根据皮尔逊相关系数的某一阈值,这里假设是0.4,筛选出与电影1最相近的2个电影,这里是电影3和6,根据此用户对3、6电影的评分,算出得分值,这里是r_51=2.6,最后根据某一阈值,比如是4,若超出阈值则给此用户推荐,明显这个例子并没有超出阈值,所以不推荐

 

协同过滤总结

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值