Java 实现一种推荐算法

Java 实现一种推荐算法,java,recommendation-engine,collaborative-filtering,Java,Recommendation Engine,Collaborative Filtering,好的,我想用Java实现一个协作过滤算法,类似于Netflix或StumbleUpon的推荐算法,但是我不确定我是否应该在数据库上进行所有计算(皮尔逊相关、预测计算等),或者是否应该加载所有必要的数据并用Java进行算法 我认为在java中这样做的主要缺点是我必须加载所有数据,相反,我认为在数据库中这样做会导致非常复杂、容易出错的查询 每种可能性还有哪些优点或缺点 我正在实现的算法可以找到。虽然我还没有阅读算法的所有细节,但出于几个原因,我倾向于用代码实现实际的算法。首先,您可能可以利用经过良好

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

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

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


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

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

如果使用java执行算法,则必须从数据库中读取数据,这可能会导致内存中出现大量数据。不过,您需要确保这不会成为一个限制因素-您需要一次读取所有数据(这意味着在某个时候RAM将成为一个限制),还是可以将数据分块并并行化操作?如果你可以并行化算法的部分,用java编写代码(或者你选择的任何语言)将使数据更容易拆分(如果问题符合框架,你甚至可以考虑使用Map /Read框架——这里我还没有读过算法细节)。 一般来说,我会尝试将业务逻辑排除在数据库之外