问一个关于推荐系统的问题

2018-04-11 15:51:36 +08:00
 starvedcat

我现在在尝试实现使用基于用户的协同过滤算法( user-based collaborative filtering )来进行推荐。 输入是一些用户对一些物品的评分(一个形如 userId,itemId,rating 的 csv ),输出是为每位用户列出 N 个推荐的物品

具体的过程是,先预测每位用户对“所有他没有评分过的物品”的评分,然后找出评分最高的 N 个物品作为推荐

至于预测某个用户对某个物品的评分,我看的是这篇论文(Empirical analysis of predictive algorithms for collaborative filtering)中的算法(据说是非常经典的论文)

但现在的问题是:由于每个用户只给很小一部分物品评过分,所以“预测每位用户对‘所有他没有评分过的物品’的评分”计算量非常大。即使只用训练样本中的一小部分( 10000 行数据,包含大约 100 个用户、3000 个物品),对每位用户也都要计算很久(每位用户约 1 分钟,环境是 python+i7 笔记本)

所以就想问一下这个算法应该如何改进?

初学这些知识,请多指教,谢谢!

2661 次点击
所在节点    编程
2 条回复
Morriaty
2018-04-11 16:11:06 +08:00
als 算法
laohubuchiyu
2018-04-11 16:34:25 +08:00
mark

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/445956

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX