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