KNN 已被弃用,因为它正在被基于项目和基于用户的共现推荐器和 ALS-WR 推荐器所取代,这些推荐器更好、更现代。
- 是的,但并非所有代码都有 CLI 界面。Mahout 中的 CLI 作业大部分是 Hadoop/分布式作业,它们在 HDFS 中生成文件以供输出。这些可以使用您自己的代码包装它们的 jar 文件运行,就像您必须使用没有 CLI 的本地/非分布式/非 Hadoop 版本一样。内存推荐器要求您传递用户 ID 以获取 recs,因此您必须编写代码来执行此操作。Hadoop 版本确实有一个 CLI,因为它们预先计算了所有用户的所有记录并将它们放入文件中。您可能会将它们插入您的数据库或以其他方式提供它们。
- 不,据我所知,命令行仅支持基于用户、基于项目和 ALS-WR 的推荐器。这会运行推荐器的 Hadoop/分布式版本。这可以在单台机器上工作,当然甚至可以使用本地文件系统,因为 Hadoop 可以这样设置。
- 对于内存推荐器,只需编写驱动程序代码并在 eclipse 中运行它们,因为不涉及 Hadoop,它可以正常工作。如果您想使用 Hadoop 版本,请在您的开发机器上设置 Hadoop 以使用本地文件系统在本地运行,并且在 eclipse 中一切正常。调试好东西后,将其移至 Hadoop 集群。您也可以在集群上远程调试,但这完全是另一个问题。
Mahout 推荐器中的最新功能是使用 Hadoop 在后台进行训练,然后由 Solr 对输出进行索引。然后,您使用用户表达了偏好的项目查询 Solr,无需预先计算所有用户的所有记录,因为它们是近乎实时地从 Solr 查询返回的。这是在 Mahout 1.0-SNAPSHOT 的 mahout/examples/ 或这里https://github.com/pferrel/solr-recommender
顺便说一句,这段代码正在与 Mahout 1.0 集成,并转移到 Spark 而不是 Hadoop 上运行,因此即使是训练步骤也会快得多。
更新:我已经澄清了可以从上面的 CLI 运行的内容。