具有隐式反馈的协同过滤,如何设置首选项?

时间:2015-06-01 14:25:34

标签: recommendation-engine apache-spark-mllib mahout-recommender collaborative-filtering

我有一个只有两个字段itemId,productid的数据集,我想尝试使用mahout ALS或mllib进行隐式反馈,是在数据集中创建所有1的首选项列的最佳方法吗?阅读koren paper(隐式反馈数据集的协同过滤)我看到所有置信区间在相同偏好下都是相同的,可以吗?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您计划为您的推荐尝试ALS,我会鼓励您直接尝试Spark中的mllib / ML。它阻止了ALS的实施 - 它真的很快。就在创建RDD [评级]时,给出评级值1.0。记得学习ALS参数说你给了隐式反馈(implicitPrefs = True)。

您可以在此处查看示例: https://github.com/apache/spark/blob/v1.3.1/examples/src/main/scala/org/apache/spark/examples/mllib/MovieLensALS.scala#L113

如果你足够勇敢使用DataFrames的新ML包: https://github.com/apache/spark/blob/v1.3.1/examples/src/main/scala/org/apache/spark/examples/ml/MovieLensALS.scala

对于使用新管道的参数进行实验可能更好。 但我发现很难使用我的代码,因为我必须从学习模型中访问分解矩阵。

祝你好运,玩得开心!