【问题标题】:Implementing a Recommendation Algorithm [closed]实施推荐算法[关闭]
【发布时间】:2012-05-22 23:50:40
【问题描述】:

好的,所以我想在 Java 中实现一个协作过滤算法,类似于 Netflix 或 StumbleUpon 的推荐算法,但是我不确定是否应该对数据库进行所有计算(Pearson 相关、预测计算等) ,或者我是否应该加载所有必要的数据并在 Java 中执行算法。

我认为在 java 中这样做的主要缺点是我必须加载所有数据,相反我认为在数据库中这样做会导致非常复杂且容易出错的查询。

每种可能性还有哪些其他优点或缺点?

我正在实现的算法可以在here找到。

【问题讨论】:

    标签: java recommendation-engine collaborative-filtering


    【解决方案1】:

    虽然我还没有阅读算法的所有细节,但出于几个原因,我倾向于在代码中进行实际的算法实现。首先,您可能会利用经过良好测试的这些算法的现有实现(或至少部分实现)。正如您所提到的,将此逻辑添加到数据库中可能会很复杂并且更难以测试。此外,如果您更改存储引擎或格式,代码可能与数据库紧密耦合,难以重用。

    如果你在java中做算法,你将不得不从数据库中读取数据,这可能会导致大量数据在内存中。您需要确保这不会成为限制因素 - 您是否需要一次读取所有数据(这意味着在某些时候 RAM 将成为限制),或者您可以分块数据并并行化操作?如果您可以并行化部分算法,那么用 Java(或您选择的任何语言)编写代码将更容易拆分数据(如果问题适合该框架,您甚至可以考虑使用 Map/Reduce 框架 - 再次在这里我没有通读算法细节)。

    一般来说,我会尽量将业务逻辑排除在数据库之外。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-12
      • 2011-01-31
      • 2017-08-19
      • 2011-09-12
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 2022-11-28
      相关资源
      最近更新 更多