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

时间:2017-02-07 07:35:13

标签: java mahout mahout-recommender

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

  • 购买类别
  • 购买金额
  • 购买时间(例如 - 购买第一对后6个月推荐一双牛仔布)
  • 用户位置

要识别具有相似购买模式/购买时间的用户并给予他们更多偏好,我是否必须为每个用户制作自定义数据模型? 我计划定期从数据库导入以重新创建数据模型。 有没有办法动态给出如下所述的偏好:

  1. 位置+购买类别+时间匹配
  2. 购买类别+时间匹配
  3. 位置+时间匹配(例如冬季服装)
  4. 目前我正在使用提供的示例代码。 (需要进行大量修改)

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

1 个答案:

答案 0 :(得分:1)

一般来说,为了实现您的目标,您需要对数据进行一步,在其中添加t_since_last_purchase等功能,其中包含整数0 - > INF。例如。自上次购买以来的几天

此功能,时间,将是另一个相关的用户功能。

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