Mahout 0.13.0 / java 8
我是Mahout的新手,并试图了解如何使用Mahout实现推荐引擎。到目前为止我知道..
Mahout提供3种类型的过滤 -…
1)Map Reduce在0.10.0中完全弃用。 “新Mahout”是一个数学上富有表现力的Scala DSL,它从引擎中抽象出来 - 例如相同的Scala代码应该能够为Flink / Spark / Other Engines编译。是的,这是基于表现。
2)Java API没有做过很多工作,但是我听说有一些人正在研究它。
3.)我想你是否可以用Java编写Spark推荐引擎。答案是肯定的。但实际上,我的意思是,我没有在scala / Java之间进行大量移植,但理论上你应该能够将Scala函数/类导入到Java代码中? 这个链接 显示了一些关于从头开始编写reccomender的更多信息 - 虽然它是在Scala中,但您需要将其移植到Java(如果您这样做,请随意打开PR,我们将其作为示例包含在内)。
4.)是的,它可以。 这个链接 描述了如何在Zeppelin中使用Mahout设置Spark,但是任何设置的主体都保持不变(例如,你需要哪些罐子和什么 SparkConf 你需要调整) iirc,你需要mahout-spark,mahout-math,mahout-math-scala。 (火花依赖性降低,你只需要使用本地shell程序,例如Zeppelin或Mahout Spark Shell)。
SparkConf
5.)是的,Mahout是一个在Spark或其他分布式引擎上运行的库。
实际上,新的推荐算法@rawkintrevo谈论了存在于基于Apache PredictionIO的端到端交钥匙系统,称为Universal Recommender。 PIO附带一个Java SDK。一些链接:
Apache Mahout,Apache PredictionIO,Spark和Universal Recommender都是用Scala编写的。 UR有一个Java端口,但是没有维护,并且实际上并不需要它,因为您可能需要的所有选项都作为配置参数公开,并且有很好的文档记录。
通过实时发送数据和进行实时查询来进行通信的方式是通过简单的REST调用或使用包含Java的PIO SDK。
UR支持基于用户的,基于项目的购物车(基于项目集),基于多模态数据的推荐(使用许多不同的用户指示符或事件)。它还支持丰富的业务规则。
除了输入数据并决定配置外,无需编写任何内容,其余的是安装和设置。