我正在阅读用于协同过滤的ALS算法文件,但不确定如何在Hadoop中实现该算法。 有没有人可以解决一些问题?非常感谢。
答案 0 :(得分:1)
我认为如何在分布式环境中自行实现ALS的最佳描述您可以在此网络文章中找到 - https://spark.apache.org/docs/latest/mllib-collaborative-filtering.html。 Apache Flink的实现,但它显示了一切:从基本理解,天真的方法,然后使用广播矩阵和阻止实现。
对于已经实现的ALS解决方案,我建议使用Spark MLlib - https://spark.apache.org/docs/latest/mllib-collaborative-filtering.html。此实现可以直接在YARN群集上运行,并从HDFS / Hive收集数据。
如果您需要使您的矩阵分解潜在模型保持最近在线状态或为匿名用户提供在线推荐,那么您应该查看新的Oryx项目 - https://github.com/OryxProject/oryx。这实际上被称为Oryx 2,这是前一个Oryx的再生,但是在lambda架构中。很好的推荐引擎很好你应该为你的研究找到有趣的部分。
最后但并非最不重要的是,我建议为单机进行ALS的简单PoC实现。然后去分布式实现。