繁体   English   中英

Apache Mahout 推荐器 - 我应该为每个用户重新创建数据模型吗?

[英]Apache mahout recommender - should I recreate the data model for every user?

我是 Apache Mahout 推荐器的新手。 用例涉及根据用户的购买历史向用户提供建议。 我打算使用以下信息:

  • 采购类别
  • 采购量
  • 购买时间(例如 - 在购买第一条牛仔裤 6 个月后推荐一条牛仔裤)
  • 用户所在地

为了识别具有相似购买模式/购买时间的用户并给予他们更多的偏好,我是否必须为每个用户制作自定义数据模型? 我计划定期从数据库导入以重新创建数据模型。 有没有办法像下面提到的那样动态地给予优先权:

  1. 地点+购买类别+时间匹配
  2. 购买类别+时间匹配
  3. 位置 + 时间匹配(例如冬装)

目前我正在使用提供的示例代码。 (需要大量修改)

UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
        UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
        UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
        List<RecommendedItem> recommendations = recommender.recommend(74, 10);

一般来说,要实现您的建议,您需要对数据执行一个步骤,在其中添加一个像t_since_last_purchase这样的特性,它是一个整数 0 -> inf。 例如,自上次购买以来的天数。

这个特征,时间,将是另一个相关的用户特征。

我认为您正在查看一些较旧的基于 Map-Reduce 的 reccomenders-实际上是一流的-但鉴于您的用例,您可能想要查看基于 coorelated cooccurence 的 reccomenders ,它具有能够查看的显着好处用户的多个活动(在您的情况下,位置,以前的购买,时间)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM