众所周知,在 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
可以帮助从文件中读取相似度图。
是该FileItemItemSimilarityIterator
或AbstractJDBCInMemoryItemSimilarity(mahout 0.5)
冗余还是无奈。