我们正在使用 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(userID, howMany, _rescorer);
我们有大约 20 万用户、5.5 万个产品和大约 400 万个条目作为用户产品偏好。我们面临的问题是,用户第一次调用推荐方法需要大约 300-400 毫秒才能返回推荐项目列表,根据我们的需要,这不是一个可行的选择。我正在寻找有人在 mahout 上使用过的一些优化技术,或者如果有人在给定方法上实现了自己的推荐方法,或者我们是否应该在向数据文件添加某种排序后传递数据。我们试图让推荐时间在 100 毫秒左右。任何建议都会非常有帮助。