我正在hadoop上构建一个推荐系统,你能给我一个关于如何构建这个推荐系统的建议吗。我想使用apache pig或apache mahout。在我的数据集中
book_id,name,publisher user_id,username book_id,user_id,rating
我有c.s.v格式的数据所以,你能建议我使用哪种技术来生产基于项目和基于用户的推荐系统。
nhn9ugyo1#
我知道这不是你喜欢的方法之一,但是另一个可以在hadoop上创建推荐引擎的产品是oryx。oryx是由sean owen(mahout in action一书的合著者,也是mahout代码库的主要贡献者)创建的。目前它只有3种算法(交替最小二乘法、k均值聚类和随机决策林),但是als算法提供了一个相当容易使用的协作过滤引擎,它位于hadoop基础设施之上。从您的数据集的简要描述来看,它听起来像是完美的。它有一个模型生成引擎(计算层),可以根据以下三个标准之一生成新模型:1) 年龄(模型世代之间的时间)2) 添加的记录数3) 添加的数据量一旦生成了一代数据,就会有另一个java守护进程运行(服务层),它将通过restfulapi提供建议(用户到项目、项目到项目、盲建议等)。当新一代的模型被创建时,它将自动地接收这一代并为其服务。在模型生成中也有一些不错的特性,比如老化的历史数据,这有助于解决诸如季节性之类的问题(不过,如果你说的是书籍,可能没什么大不了的)。计算层(模型生成)使用hdfs存储/查找数据,并使用mapreduce或yarn进行作业控制。服务层是一个可以在每个数据节点上运行的守护进程,它访问hdfs文件系统,以便通过api显示计算出的模型数据。
yfjy0ee72#
apachemahout将为您提供一个基于协作过滤算法的现成推荐引擎。使用pig,你必须自己实现这些算法-用pig拉丁语,这可能是一个相当复杂的任务。
2条答案
按热度按时间nhn9ugyo1#
我知道这不是你喜欢的方法之一,但是另一个可以在hadoop上创建推荐引擎的产品是oryx。
oryx是由sean owen(mahout in action一书的合著者,也是mahout代码库的主要贡献者)创建的。目前它只有3种算法(交替最小二乘法、k均值聚类和随机决策林),但是als算法提供了一个相当容易使用的协作过滤引擎,它位于hadoop基础设施之上。
从您的数据集的简要描述来看,它听起来像是完美的。它有一个模型生成引擎(计算层),可以根据以下三个标准之一生成新模型:
1) 年龄(模型世代之间的时间)
2) 添加的记录数
3) 添加的数据量
一旦生成了一代数据,就会有另一个java守护进程运行(服务层),它将通过restfulapi提供建议(用户到项目、项目到项目、盲建议等)。当新一代的模型被创建时,它将自动地接收这一代并为其服务。
在模型生成中也有一些不错的特性,比如老化的历史数据,这有助于解决诸如季节性之类的问题(不过,如果你说的是书籍,可能没什么大不了的)。
计算层(模型生成)使用hdfs存储/查找数据,并使用mapreduce或yarn进行作业控制。服务层是一个可以在每个数据节点上运行的守护进程,它访问hdfs文件系统,以便通过api显示计算出的模型数据。
yfjy0ee72#
apachemahout将为您提供一个基于协作过滤算法的现成推荐引擎。
使用pig,你必须自己实现这些算法-用pig拉丁语,这可能是一个相当复杂的任务。