首页 > 其他 > 详细

百万用户,八十万商品,如何计算基于物品的协同过滤

时间:2018-04-04 11:16:29      阅读:172      评论:0      收藏:0      [点我收藏+]

问题描述:

数据包含了一百四十万用户对80万商品的打分。要利用基于物品的协同过滤来计算。如果直接两两计算140万维的向量相似度,肯定不行啊。

问题分析:

每个物品的向量虽然是140万维的,但是其实给一个物品打分的用户其实不多,这个矩阵是非常稀疏的。而且根据长尾问题来说,大部分物品只有很少的用户有过评分。

总结来说就是每个物品评分的用户远远小于140万,每个用户评价过的商品远远小于80万。所以我们的问题就转换为如何处理这个稀疏的矩阵。

解决方法:

在计算相似度时,选用了夹角余弦(因为相比于杰卡德,夹角余弦考虑了评分的大小,实测效果更好)

第一步首先按商品ID进行group by,数据转换为,商品:评价过该商品用户。然后计算商品向量的长度,也就是用户评分的平方之和再开平方。

第二步,按用户id进行group by,将数据转换为,用户id :该用户评价过得商品。然后计算两个商品的相似度。得到<item_id,item_id>:评分

第三步,累加商品对的评分,除以两个商品的向量长度得到相似度。

 

 

 

 

参考资料:

https://www.jianshu.com/p/ae1fe36fdb90

百万用户,八十万商品,如何计算基于物品的协同过滤

原文:https://www.cnblogs.com/earendil/p/8714819.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!