我一直在寻找一种方法来使用 MLlib 的 ALS 矩阵分解为所有用户生成前 n 条建议,但仍然没有成功。谁能告诉我这种方法存在吗?
问问题
972 次
3 回答
0
这是我目前的方法,似乎非常慢:
Iterator<Rating> it = ratings.toLocalIterator();
while (it.hasNext()) {
int user = it.next().user();
if (!userList.contains(user)) {
Rating[] rat = model.recommendProducts(user, 10);
for (Rating r : rat) {
list.add(user + "," + r.product() + "," + r.rating());
}
userList.add(user);
}
}
任何有效的方法将不胜感激。
于 2015-01-20T03:38:55.590 回答
0
您上面的结构是使用 Spark ALS 的正确结构。但是您要求为所有用户推荐很多集群 - 如果您有一个较小的集群要处理。
您应该首先确定:ONE 用户需要多长时间?然后将其乘以 # 个用户 - 您可能会发现您的要求太多了。
可能存在集群问题/次优配置设置和/或一般来说集群动力不足而不符合您的要求。
于 2015-02-26T21:33:47.707 回答
0
您可以使用:
model.recommendProductsForUsers(int num)
于 2015-09-09T21:52:04.010 回答