我现在在尝试实现使用基于用户的协同过滤算法( user-based collaborative filtering )来进行推荐。 输入是一些用户对一些物品的评分(一个形如 userId,itemId,rating 的 csv ),输出是为每位用户列出 N 个推荐的物品
具体的过程是,先预测每位用户对“所有他没有评分过的物品”的评分,然后找出评分最高的 N 个物品作为推荐
至于预测某个用户对某个物品的评分,我看的是这篇论文(Empirical analysis of predictive algorithms for collaborative filtering)中的算法(据说是非常经典的论文)
但现在的问题是:由于每个用户只给很小一部分物品评过分,所以“预测每位用户对‘所有他没有评分过的物品’的评分”计算量非常大。即使只用训练样本中的一小部分( 10000 行数据,包含大约 100 个用户、3000 个物品),对每位用户也都要计算很久(每位用户约 1 分钟,环境是 python+i7 笔记本)
所以就想问一下这个算法应该如何改进?
初学这些知识,请多指教,谢谢!
1
Morriaty 2018-04-11 16:11:06 +08:00 1
als 算法
|
2
laohubuchiyu 2018-04-11 16:34:25 +08:00
mark
|