【问题标题】:What is EVENT_TYPE and EVENT_VALUE in Amazon Personalize?Amazon Personalize 中的 EVENT_TYPE 和 EVENT_VALUE 是什么?
【发布时间】:2020-10-04 19:29:01
【问题描述】:

我正在使用 Amazon Personalize 创建推荐引擎。我必须为它发送以下数据,

USER_ID,ITEM_ID,EVENT_TYPE,EVENT_VALUE,TIMESTAMP

我不明白 EVENT_TYPEEVENT_VALUE 里面是什么。

【问题讨论】:

    标签: amazon-web-services amazon-personalize


    【解决方案1】:

    简短说明

    EVENT_TYPE, EVENT_VALUE 是可选的,如果您刚开始使用 AWS Personalize,您可以暂时跳过它们。

    EVENT_TYPE 是存储在数据集中的交互事件类型。交互是用户与物品的交互。

    EVENT_VALUE是交互事件的价值。

    也许例子会让它更容易理解:

    • USER_ID - YouTube 用户 ID
    • ITEM_ID - YouTube 视频
    • EVENT_TYPE - video_score,用户喜欢或不喜欢视频
    • EVENT_VALUE - 1 表示喜欢,-1 表示不喜欢
    • TIMESTAMP - 用户何时观看视频

    长解释

    让我们从头开始,在 AWS Personalize 中,您有 3 种不同类型的数据集:

    1. 用户
    2. 项目
    3. 互动

    数据集的内容取决于您的用例,例如,如果您想为使用视频共享平台的用户推荐视频,那么您的数据集可能包含如下所示的数据:

    1. 用户:USER_ID、USER_NAME、USER_LAST_LOGIN [...] 等。
    2. 项目:VIDEO_ID、VIDEO_CATEGORY、VIDEO_VIEWS [...] 等。
    3. 交互:USER_ID、VIDEO_ID、EVENT_TYPE、EVENT_VALUE、TIMESTAMP

    但要使其与 AWS Personalize 兼容,您应该转换属性名称以匹配 Personalize 要求:

    1. 用户:USER_ID、USER_NAME、USER_LAST_LOGIN [...] 等。
    2. 项目:ITEM_ID、ITEM_CATEGORY、ITEM_VIEWS [...] 等。
    3. 交互:USER_ID、ITEM_ID、EVENT_TYPE、EVENT_VALUE、TIMESTAMP

    如您所见,交互数据集包含以下信息:

    1. 谁 (USER_ID) 与谁互动过......
    2. ..什么项目(ITEM_ID)..
    3. ..在什么时间(TIMESTAMP)。

    您可以选择通过提供 EVENT_TYPEEVENT_VALUE 向此交互数据集添加更多信息。所以例如它会是这样的:

    1. 谁 (USER_ID) 与谁互动过......
    2. ..什么项目(ITEM_ID)..
    3. ..在哪个时间(TIMESTAMP)..
    4. ..这是什么类型的交互(EVENT_TYPE)..
    5. ..互动的价值是什么(EVENT_VALUE)。

    在提供视频内容的服务中,EVENT_TYPE 可以是例如 video_viewEVENT_VALUE 将是介于 0.0 和 1.0 之间的值,这将显示用户观看了多少视频。例如,0.5 表示视频的 50%。

    EVENT_TYPEEVENT_VALUE 是可选的,因此您不必提供它们,但是它不影响推荐质量。 EVENT_VALUE 仅用于 Personalize 的配置(稍后会详细介绍)。

    还有一种情况,你应该记住。如果您只提供 EVENT_TYPEEVENT_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")
    

    【讨论】:

    • 点击的事件值是多少? AWS 文档令人困惑。点击是1吗? USER_ID,ITEM_ID,EVENT_TYPE,EVENT_VALUE,TIMESTAMP 196,242,click,15,881250949 186,302,click,13,891717742 22,377,click,10,878887116
    • 嘿,我刚刚更新了我的答案,因为它有点过时并且有一个错误。这取决于您的用例,因为通常 Personalize 不会根据事件值训练模型。事件值仅用于针对您的用例调整解决方案和营销活动。如果你想在训练过程中过滤掉一些点击事件,那么为不同的点击提供不同的值,如果没有,则可以一直为1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 2019-07-21
    • 2020-10-08
    • 2010-10-21
    相关资源
    最近更新 更多