Mahout を使用して、UserBased および ItemBased のレコメンデーションを取得しています。userId と itemId (いかなる形式でもソートされていない)、Tanimoto Coefficient Similarity、および GenericBooleanPrefItemBasedRecommender のマッピングを含むファイル データ モデルを使用しています。
DataModel dataModel = new FileDataModel("/FilePath");
_itemSimilarity = new TanimotoCoefficientSimilarity(dataModel);
_recommender = new CachingRecommender(new GenericBooleanPrefItemBasedRecommender(dataModel,_itemSimilarity));
また、結果の一部を除外するための rescorer もあり、recommender の組み込みの recommend メソッドを呼び出しています。
_recommender.recommend(userID, howMany, _rescorer);
約 20 万人のユーザー、5 万 5,000 の製品、およびユーザー製品の好みとして約 400 万のエントリがあります。私たちが直面している問題は、ユーザーのrecommed メソッドの最初の呼び出しで、推奨アイテムのリストを返すのに約 300 ~ 400 ミリ秒かかっていることです。これは、私たちのニーズでは実行可能なオプションではありません。誰かが mahout で使用した最適化手法を探しています。または、誰かが特定のメソッドに対して独自の推奨メソッドを実装している場合、またはデータ ファイルに何らかの並べ替えを追加した後にデータを渡す必要がある場合があります。推奨時間を約 100 ミリ秒にしようとしています。どんな提案も本当に役に立ちます。