我正在尝试使用 Mahout 向我们的电子商务网站添加推荐。我决定使用基于项目的推荐器,我有大约 60K 产品、200K 用户和 4M 用户产品偏好。我正在寻找一种通过离线计算项目相似度来提供推荐的方法,以便推荐器.recommend() 方法可以在 100 毫秒内提供结果。
DataModel dataModel = new FileDataModel("/FilePath");
_itemSimilarity = new TanimotoCoefficientSimilarity(dataModel);
_recommender = new CachingRecommender(new GenericBooleanPrefItemBasedRecommender(dataModel,_itemSimilarity));
我希望有人能指出一种方法或博客,以帮助我理解通过离线计算项目相似性的过程和挑战。另外,存储项目相似性的预先计算结果的推荐过程是什么,它们应该存储在单独的数据库中还是内存缓存中?
PS - 我计划在 10-12 小时内刷新用户-产品偏好数据。