【问题标题】:how to improve memory usage when using GenericItemSimilarity in mahout(taste)在 mahout(taste) 中使用 GenericItemSimilarity 时如何提高内存使用率
【发布时间】:2012-08-22 19:15:46
【问题描述】:

众所周知,在 genericItemSimilarity 中,item1 和 item2 之间的相似度是预先计算的。

当我们使用 GenericItemBasedRecommender 获得推荐时,the recommender need datamodel and similarity in memory at the same time.根据 genericItemSimilarity,它提供了这样的构造

  public GenericItemSimilarity(ItemSimilarity otherSimilarity, DataModel dataModel) throws TasteException {
        long[] itemIDs = GenericUserSimilarity.longIteratorToList(dataModel.getItemIDs());
        initSimilarityMaps(new DataModelSimilaritiesIterator(otherSimilarity, itemIDs));
  }

只需使用dataModel及时生成相似度图。

是否有必要将相似度图存储到 Db/file 中?

我发现 mahout 0.7 有一个名为 FileItemItemSimilarityIterator 的类有助于从文件中读取相似度图。

FileItemItemSimilarityIteratorAbstractJDBCInMemoryItemSimilarity(mahout 0.5)冗余还是无奈。

【问题讨论】:

    标签: mahout


    【解决方案1】:

    如果它们可以在运行中快速重新计算,您根本不必将相似之处存储在内存中。

    如果不是,我建议您简单地修剪绝对值较小的相似性。这些对计算的影响最小。

    【讨论】:

    • 对相似度图做一些过滤以修剪相似度可能会有所帮助,谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 2023-03-22
    • 2015-01-25
    • 1970-01-01
    • 2011-12-25
    • 2014-04-10
    • 2012-05-31
    相关资源
    最近更新 更多