Personalized-Ranking 食谱 - Amazon Personalize

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Personalized-Ranking 食谱

重要

我们建议使用个性化排名 v2 配方。它可以通过更快的训练考虑多达 500 万个项目,并以更低的延迟生成更准确的排名。

Personalized-Ranking 食谱可生成物品的个性化排名。个性化排名 是为特定用户重新排名的推荐物品的列表。如果您有一系列已订购的物品(例如搜索结果、推广或精选列表),且想要为每位用户提供个性化重新排名,则此食谱非常有用。例如,通过个性化排名,Amazon Personalize 可以对您生成的搜索结果进行重新排名。OpenSearch

为了训练模型,Personalized-Ranking 配方使用物品交互数据集中的数据,以及(如果您创建了这些数据集)数据集组中的物品数据集和用户数据集(这些数据集是可选项)。使用 Personalized-Ranking,您的物品数据集可以包含非结构化文本元数据,物品交互数据集可以包含上下文元数据。要获得个性化排名,请使用 GetPersonalizedRankingAPI.

创建解决方案版本后,确保您的解决方案版本和数据为最新状态。使用 Personalized-Ranking,您必须手动为 Amazon Personalized 创建新的解决方案版本(重新训练模型),以便考虑推荐新商品,并根据用户的最新行为更新模型。然后,您必须使用解决方案版本更新所有市场活动。有关更多信息,请参阅 维护建议相关性

注意

如果您提供的商品没有互动数据进行排名,Amazon Personalize 将在回复中没有推荐分数的情况下退 GetPersonalizedRanking API回这些商品。

该配方具有以下属性:

  • 名称aws-personalized-ranking

  • 食谱 Amazon 资源名称 (ARN)arn:aws:personalize:::recipe/aws-personalized-ranking

  • 算法 ARNarn:aws:personalize:::algorithm/aws-personalized-ranking

  • 功能转换 ARNarn:aws:personalize:::feature-transformation/JSON-percentile-filtering

  • 食谱类型 - PERSONALIZED_RANKING

超参数

下表描述了个性化排名配方的超参数。超参数 是一个算法参数,您可以调整该参数以提高模型性能。算法超参数控制模型的执行方式。特征化超参数控制如何筛选训练中使用的数据。为超参数选择最佳值的过程称为超参数优化 () HPO。有关更多信息,请参阅 超参数和 HPO

该表还为每个超参数提供以下信息:

  • 范围:[上界, 下界]

  • 值类型:Integer、Continuous(浮点数)、Categorical(布尔值、列表、字符串)

  • HPOt@@ unable:参数能否参与超参数优化 ()?HPO

名称 描述
算法超参数
hidden_dimension

模型中使用的隐藏变量的数量。隐藏变量 重新创建用户的购买历史记录和物品统计数据来生成排名分数。当物品交互数据集包含更复杂的模式时,请指定更多数量的隐藏维度。使用更多隐藏维度需要更大的数据集和更多的处理时间。要确定最佳值,请使用HPO。要使用HPO,请performHPO将其设置为true何时调用CreateSolutionCreateSolutionVersion操作。

默认值:149

范围:[32, 256]

值类型:整数

HPO可调:是

bptt

确定是否使用基于时间的反向传播技术。反向传播 是一种在基于递归神经网络的算法中更新权重的技术。将 bptt 用于长期积分以将延迟奖励与早期事件联系起来。例如,延迟奖励可以是几次点击后进行的购买。早期事件可以是初始点击。即使在相同的事件类型(例如点击)中,最好考虑长期影响并最大化总奖励。要考虑长期效果,请使用较大的 bptt 值。使用较大的 bptt 值需要更大的数据集和更多的处理时间。

默认值:32

范围:[2, 32]

值类型:整数

HPO可调:是

recency_mask

确定模型是否应考虑物品交互数据集中的最新流行趋势。最新流行趋势可能包括交互事件的基本模式的突然变化。要训练一个使最近事件具有更高权重的模型,请将 recency_mask 设置为 true。要训练一个使所有过往交互占相同权重的模型,请将 recency_mask 设置为 false。要使用相等权重获得好的建议,您可能需要较大的训练数据集。

默认值:True

范围:TrueFalse

值类型:布尔值

HPO可调:是

特征化超参数
min_user_history_length_percentile

要包含在模型训练中的用户历史记录长度的最小百分位数。历史记录长度 是有关用户的数据总量。使用 min_user_history_length_percentile 排除历史记录长度较短的一定百分比的用户。历史记录较短的用户通常会根据物品受欢迎程度而不是用户的个人需求或需要来显示模式。删除它们可以在训练模型时更多地关注数据中的基础模式。使用直方图或类似工具查看用户历史记录长度后,请选择适当的值。我们建议您设置一个值,该值将保留大多数用户,但会删除边缘案例。

例如,设置 min__user_history_length_percentile to 0.05max_user_history_length_percentile to 0.95 将包括除那些历史记录长度在最低或最高 5% 内的用户之外的所有用户。

默认值:0.0

范围:[0.0, 1.0]

值类型:浮点数

HPO可调:否

max_user_history_length_percentile

要包含在模型训练中的用户历史记录长度的最大百分位数。历史记录长度 是有关用户的数据总量。使用 max_user_history_length_percentile 排除具有较长历史记录长度的一定百分比的用户,因为这些用户的数据往往包含噪音。例如,机器人可能有很长的自动交互列表。删除这些用户可限制训练中的噪音。使用直方图或类似工具查看用户历史记录长度后,请选择适当的值。我们建议您设置一个值,该值将保留大多数用户,但会删除边缘案例。

例如,设置 min__user_history_length_percentile to 0.05max_user_history_length_percentile to 0.95 将包括除那些历史记录长度在最低或最高 5% 内的用户之外的所有用户。

默认值:0.99

范围:[0.0, 1.0]

值类型:浮点数

HPO可调:否

Personalized-Ranking 示例笔记本

有关展示如何使用 Personalized-Ranking 食谱的示例 Jupyter 笔记本,请参阅 Personalize Ranking 示例