【问题标题】:Apache Mahout, to use or not to useApache Mahout,使用或不使用
【发布时间】:2012-01-18 17:44:30
【问题描述】:

我正在为一组用户创建的组件实现一个简单的推荐系统。

我打算用 JPA 和一些专用的 EJB 来做这件事。我的实体会有额外的几个列表,其中包含最新的建议,然后 EJB 会爬取数据集并定期更新此列表。该模型基于组件之间的关系,不依赖于过去的用户行为。我预计数据集将保持相对较小。可能不超过 50 万件。

我非常了解如何使用 JPA 和 EJB 来实现这一点,而且我认为对于我的特定用例来说,这将非常有效。

我应该花时间学习和实施 Mahout 吗?我确实有一点使用 hadoop 的经验,不过,我认为我的数据集不会大到足以证明引入大象是合理的。

另外,谁能给我推荐一本关于使用 mahout 实现推荐系统的好入门书?

非常感谢。

【问题讨论】:

    标签: jpa hadoop ejb mahout recommendation-engine


    【解决方案1】:

    如果您正在实施推荐引擎,请注意 Mahout 的部分基于 Hadoop 的完全独立的实施,而不是基于 Hadoop。这很好,因为 Hadoop 不是那种可以直接连接到任何基于 EJB 的东西。而且你没有大规模的问题。因此,您无需担心 Hadoop。

    除了.hadoop 包之外,您还想查看org.apache.mahout.cf.taste.impl 中的内容;这一切都只是纯Java,因此您可以将其嵌入EJB。我认为您想查看Recommender API,然后将其包装在您的会话 bean 中并根据需要公开它。

    (这些天你真的想使用 EJB 吗?单独的问题...)

    事实上,之前的版本 0.4 仍然有一个 EJB 绑定示例作为无状态会话 bean。您可以挖掘并重用该包装器。

    这部分代码的最佳网络资源是: https://cwiki.apache.org/MAHOUT/recommender-documentation.html

    我们的书Mahout in Action 显然不是免费的,但肯定是该项目的最佳和唯一参考。我在这里编写了有问题的代码以及本书中关于此代码的部分,因此它非常直接来自源代码。

    【讨论】:

    • 太棒了,Mahout in Action 已经在我的亚马逊购物车中了。对于多层应用程序,您会推荐哪些其他技术来代替 EJB?
    • 如果您将其作为服务公开,老实说,一个简单的 servlet 是有效的。 HTTP 上的文本或 XML。这就是我一直在做的事情。推荐器 API 是如此简单,以至于任何更多的东西都让人觉得有点矫枉过正。 integration/ 中有一个这样的 servlet 示例
    • 我去看看。顺便说一句,我认为我可以在 stackoverflow 上提出这个问题并让技术的副总裁和主要作者回复这真是太棒了......软件工程师在互联网之前做了什么?再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2014-02-14
    • 2011-03-14
    • 1970-01-01
    • 2011-05-07
    • 2017-08-17
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    相关资源
    最近更新 更多