【发布时间】:2020-10-04 19:29:01
【问题描述】:
我正在使用 Amazon Personalize 创建推荐引擎。我必须为它发送以下数据,
USER_ID,ITEM_ID,EVENT_TYPE,EVENT_VALUE,TIMESTAMP
我不明白 EVENT_TYPE 和 EVENT_VALUE 里面是什么。
【问题讨论】:
标签: amazon-web-services amazon-personalize
我正在使用 Amazon Personalize 创建推荐引擎。我必须为它发送以下数据,
USER_ID,ITEM_ID,EVENT_TYPE,EVENT_VALUE,TIMESTAMP
我不明白 EVENT_TYPE 和 EVENT_VALUE 里面是什么。
【问题讨论】:
标签: amazon-web-services amazon-personalize
EVENT_TYPE, EVENT_VALUE 是可选的,如果您刚开始使用 AWS Personalize,您可以暂时跳过它们。
EVENT_TYPE 是存储在数据集中的交互事件类型。交互是用户与物品的交互。
EVENT_VALUE是交互事件的价值。
也许例子会让它更容易理解:
让我们从头开始,在 AWS Personalize 中,您有 3 种不同类型的数据集:
数据集的内容取决于您的用例,例如,如果您想为使用视频共享平台的用户推荐视频,那么您的数据集可能包含如下所示的数据:
但要使其与 AWS Personalize 兼容,您应该转换属性名称以匹配 Personalize 要求:
如您所见,交互数据集包含以下信息:
您可以选择通过提供 EVENT_TYPE 和 EVENT_VALUE 向此交互数据集添加更多信息。所以例如它会是这样的:
在提供视频内容的服务中,EVENT_TYPE 可以是例如 video_view 和 EVENT_VALUE 将是介于 0.0 和 1.0 之间的值,这将显示用户观看了多少视频。例如,0.5 表示视频的 50%。
EVENT_TYPE 和 EVENT_VALUE 是可选的,因此您不必提供它们,但是它不影响推荐质量。 EVENT_VALUE 仅用于 Personalize 的配置(稍后会详细介绍)。
还有一种情况,你应该记住。如果您只提供 EVENT_TYPE 或 EVENT_VALUE,AWS Personalize 会给您一个错误,因为您需要这两个,或者一个都没有(这是有道理的,因为存储具有未知值或类型的事件数据是没有意义的)。
EVENT_TYPE 不必只有 video_view。它也可以有不同的值,例如,如果用户想要喜欢视频,您的应用程序将像这样保存此交互:
EVENT_TYPE = '喜欢'
EVENT_VALUE = 1
不喜欢的可能是:
EVENT_TYPE = '喜欢'
EVENT_VALUE = -1
通常,Personalize 在模型训练期间不包括事件值。它只是被忽略了。
但是您可以使用它来实现您自己的逻辑。例如,您可以在解决方案创建期间提供事件值阈值:
在解决方案训练期间,此值阈值将用于确定是否应忽略给定的交互。例如,如果事件值是观看视频的百分比进度,则阈值为 0.9 将确保比训练期间包含的交互更接近完整观看视频。
同样如上图所示,您可以指定事件类型本身,因此给定的解决方案将忽略所有与事件类型不匹配的交互。在某些情况下它可能会有所帮助。
事件类型也可以在几个月前添加的过滤器选项中使用。过滤掉用户已经完全观看或购买的项目可能会有所帮助,例如:
EXCLUDE itemId WHERE INTERACTIONS.event_type in ("fully_watched")
EXCLUDE itemId WHERE INTERACTIONS.event_type in ("purchased")
【讨论】: