use*_*532 7 recommendation-engine mahout apache-spark apache-spark-mllib
在Mahout中,使用API方法支持基于项目的推荐:
ItemBasedRecommender.mostSimilarItems(int productid, int maxResults, Rescorer rescorer)
Run Code Online (Sandbox Code Playgroud)
但是在Spark Mllib中,似乎ALS中的API可以获取推荐的产品,但必须通过以下方式提供userid:
MatrixFactorizationModel.recommendProducts(int user, int num)
Run Code Online (Sandbox Code Playgroud)
有没有办法获得基于类似产品的推荐产品,而无需提供用户ID信息,类似于mahout执行基于项目的推荐的方式.
Ved*_*ant 11
Spark 1.2x版本没有像Mahout中那样提供"基于项目相似性的推荐器".
但是,MLlib目前支持基于模型的协同过滤,其中用户和产品由一小组潜在因素描述{在构建用户项矩阵时理解隐式(视图,点击)和显式反馈(评级)的用例. }
MLlib使用交替最小二乘(ALS)算法[可以认为类似于SVD算法]来学习这些潜在因素.
如果您需要构建纯粹基于项目相似性的推荐器,我建议:
由于相似度矩阵不能很好地扩展,(想象一下,如果你有100个项目而不是10000个项目,你的相似性矩阵将如何增长)如果你计划在大量项目上实现它,那么在DIMSUM上读取这些内容可能会有所帮助:
https://databricks.com/blog/2014/10/20/efficient-similarity-algorithm-now-in-spark-twitter.html
| 归档时间: |
|
| 查看次数: |
6303 次 |
| 最近记录: |