我正在为用户创建的组件集合实现一个简单的推荐系统。
我计划用JPA和一些专用EJB来做这件事。我的实体会有额外的几个包含最新建议的列表,然后EJB会抓取数据集并定期更新此列表。该模型基于组件之间的关系,并不依赖于过去的用户行为。我希望数据集仍然相对较小。可能不超过五十万件。
我非常了解如何使用JPA和EJB执行此操作,我认为对于我的特定用例,这将非常有效。
我应该花时间学习和实施Mahout吗?我确实对hadoop有一些经验,但是,我认为我的数据集不足以证明引入大象的合理性。
另外,有人能指出我用mahout实施推荐系统的好入门书吗?
非常感谢。
答案 0 :(得分:3)
如果您正在实施推荐引擎,请注意,该部分Mahout具有基于Hadoop的完全独立的实现,而不是基于Hadoop。这很好,因为Hadoop不是那种直接连接到基于EJB的东西的东西。而且你没有大规模的问题。所以,你不必担心Hadoop。
除了org.apache.mahout.cf.taste.impl
包之外,你想查看.hadoop
中的内容;它只是纯Java,所以你可以将它嵌入到EJB中。我想你想查看Recommender
API,然后将它包装在你的会话bean中,然后根据你的喜好公开它。
(这些天你真的想使用EJB吗?单独提问......)
事实上,之前的版本0.4仍然有一个EJB绑定示例作为无状态会话bean。你可以挖掘并重用那个包装器。
此部分代码的最佳网络资源是: https://cwiki.apache.org/MAHOUT/recommender-documentation.html
我们的书Mahout in Action显然不是免费的,但肯定是该项目的最佳和唯一参考。我在这里编写了有问题的代码以及本书中有关此代码的部分内容,因此它非常直接来自源代码。