【问题标题】:Apache mahout recommender - should I recreate the data model for every user?Apache mahout 推荐器 - 我应该为每个用户重新创建数据模型吗?
【发布时间】:2017-02-07 07:35:13
【问题描述】:

我是 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);

【问题讨论】:

    标签: java mahout mahout-recommender


    【解决方案1】:

    一般来说,要实现您的建议,您需要对数据执行一个步骤,在其中添加t_since_last_purchase 之类的功能,该功能位于整数 0 -> inf 中。例如。自上次购买后的天数。

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

    我认为您正在查看一些较旧的基于 Map-Reduce 的推荐者——它们实际上是一流的——但考虑到您的用例,您可能需要查看 coorelated cooccurence based reccomenders,它具有显着的优势,即能够查看用户的多项活动(在您的情况下是位置、以前的购买、时间)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多