0

我们正在使用 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 毫秒左右。任何建议都会非常有帮助。

4

1 回答 1

0

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

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

Mahout 中 GenericUserBasedRecommender 的候选策略

于 2013-06-11T18:21:59.890 回答