我正在使用 Amazon Personalize 创建推荐引擎。我必须为它发送以下数据,
USER_ID,ITEM_ID,EVENT_TYPE,EVENT_VALUE,TIMESTAMP
我不明白EVENT_TYPE
里面EVENT_VALUE
是什么。
我正在使用 Amazon Personalize 创建推荐引擎。我必须为它发送以下数据,
USER_ID,ITEM_ID,EVENT_TYPE,EVENT_VALUE,TIMESTAMP
我不明白EVENT_TYPE
里面EVENT_VALUE
是什么。
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")