我想获得历史上用户购买最多的产品。我目前正在使用 USER_PERSONALIZATION 配方,但 GetRecommendations 总是返回错误的结果。请帮忙。
这是我与用户 id: 的交互数据f5504cb0-0f0e-11e9-b513-bb78938fd0f8
,他/她购买了 10 次,并且他/她没有购买具有 id 的产品1A3DTA986EEBT
这是我的代码和结果
如您所见,顶级产品不是他/她购买的产品。感谢您的帮助。
我想获得历史上用户购买最多的产品。我目前正在使用 USER_PERSONALIZATION 配方,但 GetRecommendations 总是返回错误的结果。请帮忙。
这是我与用户 id: 的交互数据f5504cb0-0f0e-11e9-b513-bb78938fd0f8
,他/她购买了 10 次,并且他/她没有购买具有 id 的产品1A3DTA986EEBT
这是我的代码和结果
如您所见,顶级产品不是他/她购买的产品。感谢您的帮助。
Amazon Personalize 根据您的数据构建基于机器学习的推荐器。因此,它旨在根据用户过去的行为(交互)和与之交互的项目/产品的属性来预测用户现在对什么感兴趣。一些考虑:
尽管您可以将购买历史记录导入 Personalize,但它并非设计为您可以查询的数据存储。如果您只是想要一个用户最常购买的产品列表,那么数据库可能是一个更好的工具。例如,someuser
要从存储订单的关系数据库Order
和OrderDetail
表中获取用户购买最多的前 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_ID
、ITEM_ID
、TIMESTAMP
和EVENT_TYPE
。ITEM_ID
,购买日期是TIMESTAMP
,像“购买”这样的东西EVENT_TYPE
。aws-user-personalization
使用配方创建解决方案。INCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("Purchase")
。GetRecommendations
活动的 API。一个重要的警告是,在过滤交互历史记录时,Personalize 当前仅考虑每个用户最近的 200 个历史交互(在批量导入中)和最近的 100 个实时事件(通过PutEvents
API 发送)。