本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
针对其他目标优化解决方案
重要
默认情况下,所有新解决方案都使用自动训练。如果使用自动训练,则在解决方案处于活动状态时,就会产生训练费用。为避免产生不必要的费用,在完成后,可以更新解决方案以关闭自动训练。有关训练费用的信息,请参阅 Amazon Personalize 定价
如果您使用 User-Personalization 配方或 Personalized-Ranking 配方,则除了最大相关性(例如更大限度地提高收入)之外,您还可以针对目标优化 Amazon Personalize 解决方案。
使用物品建议配方时,Amazon Personalize 的主要目标是根据历史和实时物品交互数据,为您的用户预测最相关的物品。这些是您的用户最有可能与之交互的物品(例如,他们最有可能单击的物品)。如果您还有其他目标,例如最大限度地提高流时长或增加收入,则可以创建一个解决方案,根据相关性和目标生成建议。
要针对其他目标优化解决方案,请使用 User-Personalization 食谱或 Personalized-Ranking 食谱创建一个新的解决方案,然后在物品数据集中选择与您的目标相关的数值元数据列。在生成建议时,Amazon Personalize 会更加重视此列数据中具有更高值的物品。例如,你可以选择一个 VIDEO _ LENGTH 列来最大限度地提高直播时间,或者选择一PRICE列来最大限度地提高收入。
您可以使用 Amazon Personalize 控制台、 Amazon Command Line Interface (Amazon CLI) 或 Amazon SDKs。有关使用 Amazon Personalize 控制台的信息,请参阅创建解决方案(控制台)。
指南和要求
目标要求如下:
-
您只能为目标选择一列。
-
列在架构中必须具有数字类型。
-
列在架构中不能有
null
类型。
有关架构和数据类型的更多信息,请参阅为 Amazon Personalize 架构创建架构 JSON 文件。
平衡目标重点和相关性
当更多地根据目标(而不是相关性)来推荐物品时,可能会进行权衡取舍。例如,如果您想通过建议来增加收入,则仅针对昂贵物品的建议可能会降低物品与用户的相关性,并降低用户参与度和转化率。
要配置相关性和目标之间的平衡,请在创建解决方案时选择以下一个目标敏感度级别:
-
关闭:Amazon Personalize 主要使用物品交互数据为用户预测最相关的物品。
-
低:Amazon Personalize 不太重视您的目标。通过物品交互数据实现的相关性更为重要。
-
中等:Amazon Personalize 通过物品交互数据对您的目标和相关性给予同等重视。
-
高:Amazon Personalize 更加重视您的目标。通过物品交互数据实现的相关性不太重要。
衡量优化性能
当您为具有优化目标的解决方案创建解决方案版本(训练模型)时,Amazon Personalize 会生成 average_rewards_at_k
指标。average_rewards_at_k
的分数可指明,解决方案版本在实现目标方面的性能如何。为了计算该指标,Amazon Personalize 按如下方式计算每位用户的奖励:
rewards_per_user = total rewards from the user's interactions with their top 25 reward generating recommendations / total rewards from the user's interactions with recommendations
最终 average_rewards_at_k
是所有 rewards_per_user
的平均值,即标准化为小于或等于 1 且大于 0 的十进制值。该值越接近 1,表示您期望从建议中获得的每个用户平均收益就越多。
例如,如果您的目标是最大限度地提高单击收入,则 Amazon Personalize 将按以下方法计算每个用户分数:将用户单击的前 25 个最昂贵建议物品产生的总收入除以用户单击的所有推荐物品产生的总收入。然后,Amazon Personalize 会返回所有用户分数的标准化平均值。average_rewards_at_k
越接近 1,表示您期望从建议中获得的每个用户平均收入就越多。
有关生成指标的更多信息,请参阅通过指标评估 Amazon Personalize 解决方案版本。
优化解决方案 (Amazon CLI)
您只能使用 User-Personalization 或 Personalized-Ranking 食谱针对目标进行优化。要使用针对其他目标优化解决方案 Amazon CLI,请创建一个新的解决方案并使用solutionConfig
对象中的optimizationObjective
密钥指定您的目标细节。optimizationObjective
包含以下字段:
-
itemAttribute
:指定物品数据集中与您的目标相关的数值元数据列的名称。 -
objectiveSensitivity
:指定解决方案在生成建议时对您的目标的重视程度。目标敏感度级别配置了 Amazon Personalize 如何通过物品交互数据根据目标和相关性来平衡建议的物品。objectiveSensitivity
可以是OFF
、LOW、MEDIUM
或HIGH
。有关更多信息,请参阅 平衡目标重点和相关性。
以下是 create-solution
Amazon CLI 命令的示例。将 solution name
、dataset group arn
和 recipe
arn
值替换为您自己的值。
对于 optimizationObjective
,将 COLUMN_NAME
替换为物品数据集中与您的目标相关的数值元数据列名称。对于objectiveSensitivity
、指定OFFLOW、MEDIUM、或HIGH。
aws personalize create-solution \ --name
solution name
\ --dataset-group-arndataset group arn
\ --recipe-arnrecipe arn
\ --solution-config "{\"optimizationObjective\":{\"itemAttribute\":\"COLUMN_NAME
\",\"objectiveSensitivity\":\"MEDIUM
\"}}"
解决方案准备就绪后,创建一个新的解决方案版本(有关示例命令,请参阅创建解决方案 (Amazon CLI))。创建解决方案版本后,可以通过解决方案版本指标查看优化性能。请参阅 衡量优化性能。
优化解决方案 (Amazon SDKs)
您只能使用 User-Personalization 或 Personalized-Ranking 食谱针对目标进行优化。
要使用针对其他目标优化解决方案 Amazon SDKs,请创建一个新的解决方案并使用解决方案solutionConfig
对象中的optimizationObjective
密钥指定您的目标细节。optimizationObjective
包含以下字段:
-
itemAttribute
:指定数据集组物品数据集中与您的目标相关的数值元数据列的名称。 -
objectiveSensitivity
:指定解决方案在生成建议时对您的目标的重视程度。目标敏感度级别配置了 Amazon Personalize 如何通过物品交互数据根据目标和相关性来平衡建议的物品。objectiveSensitivity
可以是OFF
、LOW
、MEDIUM
或HIGH
。有关更多信息,请参阅 平衡目标重点和相关性。
使用以下代码通过 Amazon SDK for Python (Boto3) 或 Amazon SDK for Java 2.x创建具有其他目标的解决方案。
解决方案准备就绪后,创建一个新的解决方案版本(有关示例代码,请参阅创建解决方案版本 (Amazon SDKs))。创建解决方案版本后,可以通过解决方案版本指标查看优化性能。请参阅 衡量优化性能。
示例 Jupyter 笔记本
有关演示如何创建针对其他基于目标的项目元数据进行优化的解决方案的 Jupyter 笔记本示例,请参阅 Amazon Personalize 示例存储库的 objective_