首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为for应用程序构建推荐引擎(Rails + MySQL + ?) --从哪里开始

为for应用程序构建推荐引擎(Rails + MySQL + ?) --从哪里开始
EN

Stack Overflow用户
提问于 2012-07-19 15:28:59
回答 1查看 2.4K关注 0票数 0

我想建立一个推荐引擎,以支持在Rails上运行的web应用程序,并将其数据存储在MySQL中……用户点击事物和他们的反馈更新数据库,然后以某种实时的方式进行处理。在数量级上,我认为所有用户每秒可能有10次交互;每天有100万个数据点。

我的问题是,我如何组织和处理分析,以便可以快速处理事情。利用我已经知道的知识,我可以使用Ruby和R (RServe,RSRuby)的一些风格来在现有的数据集上运行奇异值分解/聚类/集成/其他任何模型,并通过偶尔采样来更新模型/公式,但这似乎是一种非常笨拙的方法。做这件事的更好的方法是什么?直接在MySQL中运行数学运算?使用一些具有强大数学函数的很酷的Ruby库?使用现成的推荐引擎包?

(尽管我看了所有建议的“相似问题”链接,但我明显缺乏对这些问题的认识。甜蜜的讽刺。:( )

PS:我的背景: numbers家伙有几年的R,但完全是静态/离线数据。Python、Rails等方面的新手程序员,但我可以在这方面工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-19 17:44:35

你真的需要实时吗?

我发现,大多数“实时”情况通常并不真正需要真正的实时,但可以在后台完成。假设有一个网上商店,你想给你的客户推荐他过去对当前所选商品(其他人用这个商品购买的相关商品)的销售额,你可以简单地以设定的间隔预先计算这些数据。

对于上面描述的情况,我建议你使用Rake任务来完成繁重的任务(对过去销售的推荐并不会在会议期间发生真正的变化-而对相关项目的推荐也是相当静态的)。

因此,我会在Cron作业或其他与Web应用程序异步的重复性任务中计算这些值,同时将得到的(预先计算的)数据提供给活动用户。通过这种方式,你还可以在计算的复杂性上获得更多的灵活性,因为你可以运行比web请求所需的最大时间更长的时间。

一个示例rake任务将如下所示:

代码语言:javascript
复制
task :calculate_recommendations => :environment do
  // do your calculation
  // you have full access to ActiveRecord here
end

(确保包含:environment,否则Rake将不会为您加载数据库连接。

如何计算取决于你,但我建议你看看像Recommendify这样的Gem,看看他们用什么库来计算推荐。也许这对你有帮助。

此外,在RubyToolbox中还有一个Recommender-Engine category,它列出了一些相似的gem,并可能为您指明正确的方向。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11555883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档