0

我使用 Apache Mahout 作为推荐引擎。太好了,但是我遇到了一个我不确定如何解决的问题,并且可能甚至可能无法解决......

所有推荐数据都被计算并存储在内存中。当我重新启动我的机器时,我会丢失所有数据并且必须重新计算它。有没有办法保存内存中的内容,然后在机器重新启动时将其放回内存中?我意识到我可能没有使用正确的术语提出这个问题,甚至没有正确描述工作机制,但本质上我只是希望能够重新启动我的机器而不会丢失所有数据,因为计算需要很长时间才能完成.

任何帮助我找到正确的方向来解决这个问题都会有所帮助。我不是专门寻找特定于 Mahout 的解决方案,只是帮助理解一般问题......我在这里处于新的领域。

谢谢,

标记

4

1 回答 1

1

对于推荐,您可以存储 item-item 的相似性并在初始化期间加载它们。我不知道 Mahout 发行版中的现有实现。但是引用邮件列表上2011 年 12 月的讨论:

基于项目的协同过滤模型仅由预先计算的项目相似性组成。

我们目前仅支持 hadoop 作业这样的预计算,但创建一个使用 ItemBasedRecommender 按顺序预先计算项目相似性的类应该是一个小时的事情。

您可以将这些相似性存储在数据库中并通过 MySQLJDBCInMemoryItemSimilarity/SQL92JDBCInMemoryItemSimilarity 加载它们,也可以将它们写入 .csv 文件并通过 FileItemSimilarity 加载它们。

于 2013-09-25T09:45:52.933 回答