Hadoop 我应该选择哪个开源推荐系统来处理大数据集
我想建立一个推荐系统,目标是处理真正的大数据集,比如1 TB的数据 每个用户都有大量的项目,但是用户数量很少,比如数千或10000 我在谷歌上搜索过,我发现有一些基于hadoop的开源推荐引擎,比如Mahout,我猜它可能有能力处理如此大的数据,但我不确定Hadoop 我应该选择哪个开源推荐系统来处理大数据集,hadoop,recommendation-engine,Hadoop,Recommendation Engine,我想建立一个推荐系统,目标是处理真正的大数据集,比如1 TB的数据 每个用户都有大量的项目,但是用户数量很少,比如数千或10000 我在谷歌上搜索过,我发现有一些基于hadoop的开源推荐引擎,比如Mahout,我猜它可能有能力处理如此大的数据,但我不确定 我也发现一些引擎写在C++ Python中,甚至PHP,我认为脚本语言不能处理这样大的数据,因为内存不能包含整个数据集。 还是我错了?有人能给我一些建议吗?你的问题标题是: 我应该选择哪个开源推荐系统 大数据集 在第一行你说 我想建立一个推荐
我也发现一些引擎写在C++ Python中,甚至PHP,我认为脚本语言不能处理这样大的数据,因为内存不能包含整个数据集。
还是我错了?有人能给我一些建议吗?你的问题标题是: 我应该选择哪个开源推荐系统 大数据集 在第一行你说 我想建立一个推荐系统,目标是处理真正的大数据集,比如1TB的数据 你要求一个建议作为答案 首先回答你的第二个问题。根据我建立推荐系统的经验,如果你能避免的话,我建议你不要从头开始“构建”推荐系统。推荐系统非常复杂,可以使用多种技术向用户提供推荐。因此,我的建议是,除非你真的很投入,并且有一个在推荐系统、统计和软件工程方面拥有丰富经验和知识的团队,然后寻求实现现有的推荐系统,而不是构建自己的推荐系统 就您应该选择哪种开源推荐系统而言,这实际上很难精确地回答。让我试着通过分解来回答这个问题
- 基于内容
- 基于邻域/协同过滤
- 基于约束的
- 基于图形的
在你的情况下,要保持相对简单,听起来你应该考虑一个用户-用户协同过滤算法。原因是:
在基于用户的协同过滤中,你需要考虑你想要使用的评分标准化(平均定心对Z评分),相似权重计算方法(例如余弦与Pielss.相关与其他相似性度量),你要使用的邻域选择标准。(对邻居的预过滤、预测中涉及的邻居数量)和任何要实现的降维方法(SVD,SVD + +)(用像你这样的大数据集,你会想认真考虑DM)。 <>所以,实际上,不是寻找能够处理数据集的开放源代码,而是首先考虑算法选择,然后寻找一种工具,该工具具有该算法的实现,然后评估它是否可以处理数据集中涉及的卷。 综上所述,如果您选择了基于用户的协同过滤路线,那么我相信ApacheMahout将能够解决您的问题,如果不是,它肯定会帮助您理解构建自己的系统所涉及的复杂性(只需查看他们的源代码)
请注意,建议是真正考虑算法的选择。“好”推荐系统不仅仅是能够处理大型数据集,还需要考虑准确度、覆盖度、信心、新颖性、偶然性、多样性、健壮性、隐私性、风险用户信任度以及最终的可扩展性。还应该考虑如何进行实验和评估建议,记住。如果你所做的推荐都是垃圾,让你的用户感到厌烦,那么建立推荐系统就没有意义了 这是一个需要思考的大领域,可能没有一个单一的工具可以帮助您完成所有事情,所以请准备好进行大量的阅读和研究,并实现许多不同的开源工具来帮助您 说到这里,先看看ApacheMahout。回到我说过的你应该考虑的3个方面