【问题标题】:Aws personalize get most buying productsAws 个性化获得最多购买产品
【发布时间】:2022-01-11 22:32:01
【问题描述】:

我想获得一个用户历史上购买次数最多的产品。我目前正在使用 USER_PERSONALIZATION 配方,但 GetRecommendations 总是返回错误的结果。请帮忙。

这是我与用户id:f5504cb0-0f0e-11e9-b513-bb78938fd0f8的交互数据,他/她购买了10次,并且他/她没有购买id为1A3DTA986EEBT的产品

这是我的代码和结果

如您所见,顶级产品不是他/她购买的产品。感谢您的帮助。

【问题讨论】:

  • 请澄清您的问题。您想确定每个用户最常购买的产品还是所有用户最常购买的产品(即受欢迎程度)?另外,GetRecommendations 总是返回错误的结果是什么意思?
  • 我要用户最常购买的产品。 GetRecommendations的输入是user_id,我想取回用户在历史上最常购买的产品,我不想获取其他用户的信息。感谢您的帮助。
  • 根据您更新的问题,您没有在 getRecommendations 调用中传递 filterArn。因此,未应用过滤器。在此处查看文档:docs.aws.amazon.com/personalize/latest/dg/…
  • 只是如果用户之前购买了100个产品,那么获取100个产品id并传递给过滤器获取结果是不好的。有没有其他方法可以做到这一点?谢谢。
  • 您目前无法在过滤器中的 itemId 字段上进行过滤,因此将购买的产品 ID 作为过滤器值将不起作用。但是,您可以使用个性化排名配方创建一个解决方案,然后在 itemList 中传递购买的产品 ID,以便为用户排名(在这种情况下不需要使用过滤器)。不过,GetPersonalizedRanking API 限制为 500 个项目。在此处查看文档:docs.aws.amazon.com/personalize/latest/dg/…

标签: amazon-web-services amazon-personalize


【解决方案1】:

Amazon Personalize 根据您的数据构建基于机器学习的推荐器。因此,它旨在根据用户过去的行为(交互)和与之交互的项目/产品的属性来预测用户现在对什么感兴趣。一些注意事项:

数据驱动方法

虽然您可以将购买历史记录导入 Personalize,但它并非设计为您可以查询的数据存储。如果您只是想要一个用户最常购买的产品列表,那么数据库可能是一个更好的工具。例如,要从关系数据库(订单存储在OrderOrderDetail 表中)获取用户someuser 购买最多的前10 个产品,SQL 可能如下所示:

SELECT od.ItemID, COUNT(*) AS PurchaseCount
FROM Order AS o, OrderDetail AS od
WHERE o.UserID = 'someuser'
AND o.OrderID = od.OrderID
GROUP BY ItemID
ORDER BY PurchaseCount DESC
LIMIT 10

推荐驱动方法

如果您的用例更像“考虑到用户最近的购买,他们可能有兴趣再次购买什么产品”,则可以使用 Personalize。以下是一般步骤。

  • 创建个性化自定义数据集组。
  • 在数据集组中创建交互数据集。您的交互数据集架构至少应包含 USER_IDITEM_IDTIMESTAMPEVENT_TYPE
  • 为上述架构中定义的列中的所有用户创建一个包含购买历史记录的 CSV。产品 ID 为ITEM_ID,购买日期为TIMESTAMP,类似“Purchase”的内容为EVENT_TYPE
  • 使用aws-user-personalization 配方创建解决方案。
  • 为解决方案创建解决方案版本。
  • 为解决方案版本创建个性化营销活动。
  • 创建一个仅包含用户最近购买的产品的过滤器。例如,INCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("Purchase")
  • 使用上面创建的过滤器为广告系列调用 GetRecommendations API。

一个重要的警告是,在过滤交互历史记录时,Personalize 当前仅考虑最近的 200 个历史交互(在批量导入中)和最近的 100 个实时事件(通过PutEvents API 发送)每个用户。

【讨论】:

  • “鉴于用户最近的购买,他们可能有兴趣再次购买”正是我想要的。我做了你提到的所有步骤,但 GetRecommendations 顶级产品结果不是用户在历史记录中购买的产品。
  • 我刚刚测试了上述方法,它按预期工作。确保在调用 GetRecommendations 时为过滤器指定 filterArn。
  • 我用结果更新了我的问题。请帮我。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-03
  • 2021-03-17
  • 1970-01-01
相关资源
最近更新 更多