【发布时间】:2013-04-11 12:06:00
【问题描述】:
我正在处理一个推荐问题,它涉及 300 万用户和 500,000 种产品。推荐的目的是在访问给定产品时向特定用户推荐 5-10 多个产品。
我们完成了实时推荐引擎部分,但是我们发现在1-2秒内推荐并不是那么容易。我们考虑两种策略:
以批处理模式离线运行推荐,然后将结果存储在 MySQL 数据库中。但是,表中的条目数似乎是一个巨大的数字。每个产品的每个用户应至少存储 5-10 个推荐产品。如果我创建一个以用户和产品作为表属性的表,将有 300 万 x 500,000 个条目。
即时预测推荐。我们刚试了一下,但是响应时间太长了。
谁能给我一些关于这个问题的建议?
【问题讨论】:
-
为什么要为每个用户生成每个项目? (只是好奇)
-
这取决于推荐引擎的工作方式 - 如果推荐引擎只是查看客户最近的购买(应该相对较少),并且最近购买之间存在某种(有效)索引和推荐的产品,那么实时推荐应该是相当可行的。你能告诉我们更多关于推荐引擎的工作原理吗?
标签: mysql real-time recommendation-engine collaborative-filtering large-scale