改进Mahout的性能



我们正在使用Mahout来获取UserBased和ItemBased推荐。我们使用的文件数据模型包含userId和itemId的映射(没有以任何形式排序),Tanimoto系数相似度和genericboolean prefitbaseedrecommender,

DataModel dataModel = new FileDataModel("/FilePath");

_itemSimilarity = new TanimotoCoefficientSimilarity(dataModel);

_recommender = new CachingRecommender(new GenericBooleanPrefItemBasedRecommender(dataModel,_itemSimilarity));

我们也有一个恢复器来过滤掉一些结果,我们调用推荐器的内置推荐方法,

_recommender.recommend(userID, howMany, _rescorer);

我们有大约20万用户,5.5万产品和大约400万个用户-产品偏好条目。我们面临的问题是,用户第一次调用推荐方法需要大约300-400ms才能返回推荐的项目列表,根据我们的需求,这不是一个可行的选择。我正在寻找一些优化技术,有人在mahout上使用,或者可能是如果有人在给定的方法上实现了自己的推荐方法,或者如果我们应该在向数据文件添加某种排序后传递数据。我们试图将推荐时间控制在100ms左右。任何建议都会很有帮助的。

您最好的选择是查看CandidateItemStrategy,以进一步限制考虑的可能性。看到:

https://builds.apache.org/job/Mahout-Quality/javadoc/org/apache/mahout/cf/taste/recommender/CandidateItemsStrategy.html

GenericUserBasedRecommender在Mahout中的候选策略

相关内容

  • 没有找到相关文章

最新更新