すでに知っているように、genericItemSimilarityでは、item1とitem2の間の類似性が事前に計算されています。
GenericItemBasedRecommenderを使用して推奨を取得すると、the recommender need datamodel and similarity in memory at the same timegenericItemSimilarityによると、次のような構造になります。
public GenericItemSimilarity(ItemSimilarity otherSimilarity, DataModel dataModel) throws TasteException {
long[] itemIDs = GenericUserSimilarity.longIteratorToList(dataModel.getItemIDs());
initSimilarityMaps(new DataModelSimilaritiesIterator(otherSimilarity, itemIDs));
}
dataModelを使用して、時間内に類似性マップを生成するだけです。
類似マップをDb/ファイルに保存する必要がありますか?
mahout 0.7には、 FileItemItemSimilarityIteratorファイルから類似性マップを読み取るのに役立つという名前のクラスがあります。
FileItemItemSimilarityIteratorまたはAbstractJDBCInMemoryItemSimilarity(mahout 0.5)冗長性または無力です。