使用R与SimpleDB或BigQuery或将PHP与SimpleDB一起使用的建议

sam*_*dhi 6 hadoop r amazon-simpledb mahout google-bigquery

我目前正致力于生成像亚马逊那样的产品推荐的系统:"购买此产品的人也买了这个......"

目前的情景:

  • 提取客户端的Google Analytics数据并将其插入数据库.

  • 在客户的网站上,在产品页面加载时,进行API调用以获取正在查看的产品的建议.

  • 当API收到产品ID作为请求时,它会在数据库中查找并检索(使用关联规则)推荐的产品ID并将其作为响应发送.

  • 将处理这些产品ID的列表,以在客户端获取产品详细信息(图像,价格..)并显示在网站上.

  • 目前我在AMAZON EC2上使用PHP和MYSQL与gapi包和REST api存储.

我的问题是: 现在,如果我必须选择以下内容,这将是实施上述概念的最佳选择.

  • PHP与SimpleDB或BIGQuery.

  • R语言与BIGQuery.

  • RHIPE-(R和hadoop)与SimpleDB.

  • Apache Mahout.

请帮忙!

Ite*_*tor 2

这个问题不太容易回答,因为约束条件相当专业。

不过,可以考虑以下因素:

  1. BIGQuery 尚未公开。因此,由于使用基数较小,即使您处于预览人群中,也很难获得改进建议。
  2. 您的每个答案都询问了建模系统和存储系统。Apache Mahout 不是一种存储机制,因此它不一定可以单独工作。我曾经认为它的机器学习实现是一些 Google Summer of Code 的模仿,但我根据评论者的建议更新了这一观点。看起来它对不同算法的覆盖仍然相当不均匀和参差不齐,而且还不清楚如何支持或维护这些组件。我鼓励 Mahout 的布道者解决这个问题。

结果,这消除了第一个、第二个和第四个选项。

我不太明白的是需要一个实时服务器来利用 Hadoop 和 RHIPE。这应该在开发推荐模型的批处理中完成,而不是实时完成。我想您可以使用 RHIPE 作为一个简单的一站式前端来触发查询。

我建议使用 RApache 而不是 RHIPE,因为您可以预加载包和模型。我认为在前端使用 Hadoop 没有任何优势,但它对于模型拟合来说是一个非常自然的后端系统。

(更新 1)其他界面选项包括 RServe (http://www.rforge.net/Rserve/) 以及可能的服务器模式下的 RStudio。有 R/PHP 接口(见下面的评论),但我怀疑通过 HTTP 或 TCP/IP 访问 R 会更好。

(更新 2)针对整个过程,我看到的基本想法是,您可以从 PHP 查询数据并传递给 R,或者,如果您希望从 R 内部查询,请查看注释中的链接(指向 OmegaHat 工具) )或发布有关 R 和 SimpleDB 的新问题 - 我相信 SO 上的其他人能够对这个特定的连接提供更好的见解。RApache 可以让您实例化许多已准备好的 R 进程,这些进程已加载包并在 RAM 中存储数据;因此,您只需要传递需要用于预测的任何数据。如果您的新数据是一个小向量,那么 RApache 应该没问题,而且这对于实时处理的数据来说似乎是正确的。

  • 我不明白为什么你认为 Mahout 是一堆 GSoC 项目,也不知道为什么还没有准备好使用。只要算上我自己编写的代码,我就可以告诉你我从 2005 年以来一直在维护它、改进它,并且知道它在生产中“愤怒地”使用。抱歉,您可能有一些不好的印象,但这是完全错误的。 (2认同)