本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用事件配置优化解决方案
重要
默认情况下,所有新解决方案都使用自动训练。如果使用自动训练,则在解决方案处于活动状态时,就会产生训练费用。为避免产生不必要的费用,在完成后,可以更新解决方案以关闭自动训练。有关训练费用的信息,请参阅 Amazon Personalize 定价
如果您使用了 User-Personalization-v2 recipe 或 Personalized-Ranking-v2 配方,则可以使用事件配置优化 Amazon Personalize 解决方案。
使用项目建议配方时,Amazon Personalize 的主要目标是根据历史和实时项目交互数据,为您的用户预测最相关的项目。但是,交互可能包含其他信息,例如用户是点击还是购买了某个项目。您可以通过记录事件的类型(事件类型和事件值数据)来记录此内容。配置解决方案时,您可以让它为不同的交互事件类型赋予不同的权重。例如,您可以配置一个解决方案,为 purchase 事件赋予高于 click 事件的权重。
要让解决方案为不同的事件类型赋予不同的权重,您需要在解决方案的事件配置中指定事件类型及其对应的权重。此外,您还可以设置事件值阈值以排除事件值低于该阈值的交互。例如,如果 EVENT_TYPE 为观看 的事件的 EVENT_VALUE 数据是用户观看的视频的百分比,如果您将事件值阈值设置为 0.5,将事件类型设置为观看,则 Amazon Personalize 将仅使用 EVENT_VALUE 大于或等于 0.5 的观看 交互事件来训练模型。
与事件类型相关的权重将决定事件类型的重要性。权重较高的事件类型将使经过训练的模型更有可能推荐与该事件类型交互的项目。例如,如果您为“购买”赋予了高于“点击”的权重,并且模型得知某用户将点击项目 B 或利用自己的交互历史购买项目 C,那么模型将提高项目 C 的排名。
要使用事件配置优化解决方案,您需要使用 Personalization-v2 配方或 Personalized-Ranking-v2 配方创建一个新解决方案,并指定事件配置。您还可以使用事件配置更新现有解决方案(更新解决方案以更改其自动训练配置)。
您可以使用 Amazon Personalize 控制台、AWS Command Line Interface (AWS CLI) 或 AWS SDK。有关使用 Amazon Personalize 控制台的信息,请参阅创建解决方案(控制台)。
指南和要求
下面是事件配置的准则和要求:
-
要为不同的事件类型配置权重,您的项目交互数据集必须有一个 EVENT_TYPE 列和一个 EVENT_VALUE 列(可选)。
-
您可以在配置中指定一个事件参数列表。包含您希望在创建解决方案时考虑的所有事件类型。您可以指定最多 10 种不同的事件类型。
-
您可以为每种事件类型指定事件权重。事件权重必须介于 0.0 和 1.0 之间。只有事件类型之间的权重比率才重要。例如,将事件类型“购买”的权重设置为 0.3 并将事件类型“点击”的权重设置为 0.1,其效果与将“购买”的权重设置为 0.6 并将“点击”的权重设置为 0.2 相同。
-
您可以使用 UpdateSolution API 操作更新现有解决方案的事件配置。
使用事件权重配置来衡量性能
当您为具有事件配置的解决方案创建解决方案版本(训练模型)时,Amazon Personalize 会生成 normalized_discounted_cumulative_gain_with_event_weights_at_k 指标。normalized_discounted_cumulative_gain_with_event_weights_at_k 的分数表示在考虑为每个事件类型设置的事件权重的情况下,解决方案版本的表现情况。
它与 k 阶标准化折损累积增益(NDCG)类似,只不过对每个正确预测的奖励分数会进行加权处理。与之不同的是,在原始 K 阶 NDCG 中,每个正确预测的权重均为 1。例如,如果“购买”权重为 0.3,“点击”权重为 0.1,正确预测“购买”项目将获得 1.5 的奖励分数,而预测“点击”项目将获得 0.5 的奖励分数。
有关生成指标的更多信息,请参阅通过指标评估 Amazon Personalize 解决方案版本。
优化解决方案 (AWS CLI)
您可以将 User-Personalization-v2 或 Personalized-Ranking-v2 配方与事件配置结合使用来进行优化。
要借助 AWS CLI 使用事件配置来优化解决方案,请创建一个新解决方案,并在 solutionConfig 对象中使用 eventsConfig 键指定事件配置详细信息。eventsConfig 有一个键 eventParametersList,您可在该键下指定最多 10 个 eventParameters。每个 eventParameter 都包含以下字段:
-
eventType:指定您在创建解决方案时要考虑的事件类型。
-
eventValueThreshold:指定事件值阈值。只有事件值大于或等于此阈值的事件才会被考虑用于创建解决方案。
-
weight:为每种事件类型指定权重。权重越高意味着事件类型对创建的解决方案越重要。
以下是 create-solution AWS CLI 命令的示例。将 solution name、dataset group arn 和 recipe arn 值替换为您自己的值。
aws personalize create-solution \ --namesolution name\ --dataset-group-arndataset group arn\ --recipe-arnrecipe arn\ --solution-config "{\"eventsConfig\":{\"eventParametersList\":[{\"eventType\":\"Purchase\", \"eventValueThreshold\":0.1, \"weight\":0.3}, {\"eventType\":\"Click\", \"weight\":0.1}]}"
解决方案准备就绪后,创建一个新的解决方案版本(有关示例命令,请参阅创建解决方案 (AWS CLI))。创建解决方案版本后,可以通过解决方案版本指标查看优化性能。请参阅衡量优化性能。
优化解决方案 (AWS SDK)
您可以将 User-Personalization-v2 或 Personalized-Ranking-v2 配方与事件配置结合使用来进行优化。
要借助 AWS SDK 使用事件配置来优化解决方案,请创建一个新解决方案,并在 solutionConfig 对象中使用 eventsConfig 键指定事件配置详细信息。eventsConfig 有一个键 eventParametersList,您可在该键下指定最多 10 个 eventParameters。每个 eventParameter 都包含以下字段:
-
eventType:指定您在创建解决方案时要考虑的事件类型。
-
eventValueThreshold:指定事件值阈值。只有事件值大于或等于此阈值的事件才会被考虑用于创建解决方案。
-
weight:为每种事件类型指定权重。权重越高意味着事件类型对创建的解决方案越重要。
解决方案准备就绪后,创建一个新的解决方案版本(有关示例命令,请参阅创建解决方案 (AWS SDK))。创建解决方案版本后,可以通过解决方案版本指标查看优化性能。请参阅衡量优化性能。