Mahout推荐者没有返回任何结果

时间:2014-10-15 23:47:36

标签: mahout mahout-recommender

我的Mahout推荐人没有返回任何结果,但从评估者输出的外观来看似乎应该:

2014-10-15 18:33:36,704 INFO  GenericDataModel - Processed 90 users
2014-10-15 18:33:36,735 INFO  AbstractDifferenceRecommenderEvaluator - Beginning evaluation using 0.99 of GenericDataModel[users:1116,1117,1118...]
2014-10-15 18:33:36,767 INFO  GenericDataModel - Processed 89 users
2014-10-15 18:33:36,767 INFO  AbstractDifferenceRecommenderEvaluator - Beginning evaluation of 75 users
2014-10-15 18:33:36,767 INFO  AbstractDifferenceRecommenderEvaluator - Starting timing of 75 tasks in 8 threads
2014-10-15 18:33:36,782 INFO  StatsCallable - Average time per recommendation: 15ms
2014-10-15 18:33:36,782 INFO  StatsCallable - Approximate memory used: 876MB / 1129MB
2014-10-15 18:33:36,782 INFO  StatsCallable - Unable to recommend in 0 cases
2014-10-15 18:33:36,845 INFO  AbstractDifferenceRecommenderEvaluator - Evaluation result: 1.0599938694784354

我假设"Unable to recommend in 0 cases"表示能够所有案例中推荐

然后迭代用户ID集,只看

2014-10-15 18:33:36,923 DEBUG GenericUserBasedRecommender - Recommending items for user ID '1164'
2014-10-15 18:33:36,923 DEBUG Recommendations are: []

为每个Id。

我正在正确阅读调试日志吗?

感谢。

1 个答案:

答案 0 :(得分:0)

不完全确定该日志消息的含义,看起来每1000次迭代打印一次stat,因此它必须引用过去的1000个请求,而不是一直都是,但这只是猜测。

在任何情况下,您都很少能够向所有用户推荐。由于没有足够的使用历史记录,或者使用历史记录与其他用户不重叠,通常会有用户无法获得建议。还会有新用户没有偏好历史记录,他们也不会获得协作过滤记录。请记住,您只使用已表达的首选项,这并不意味着您已代表所有用户。

你应该总是有一些后备方法来为这个案例提出建议,即使是最近流行或推广的项目也总比没有好。