【问题标题】:Improving performance for Mahout提高 Mahout 的性能
【发布时间】:2013-06-12 02:21:59
【问题描述】:

我们正在使用 Mahout 来获得基于用户和基于项目的推荐。我们使用的文件数据模型包含 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 毫秒左右。 任何建议都会很有帮助。

【问题讨论】:

    标签: mahout recommendation-engine


    【解决方案1】:

    【讨论】:

    • 我猜测 CandidateItemStrategy 将是基于项目的推荐器的一个选项,但我使用的是基于用户的推荐器,我可以使用 rescorer 过滤掉已经看到的产品。此外,我真的不希望删除用户已经查看过的产品,我希望将它们保留在推荐列表中。虽然我的问题是推荐时间,但我希望将推荐时间从 400 毫秒缩短到 100 毫秒左右。
    • 另外,如果您能建议在实时站点上使用开箱即用的 mahout 实现是否是一个好主意,或者通常是覆盖某些功能的更好做法,我将不胜感激在 mahout 内部(例如 :- 推荐、mostSimilarItems 等)以最大限度地提高性能,如果是这样,通常推荐什么样的更改或包装器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 2019-03-26
    • 2012-03-19
    • 1970-01-01
    • 2014-04-18
    • 2014-01-04
    相关资源
    最近更新 更多