

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

# 旧版 HRNN 配方
<a name="legacy-user-personalization-recipes"></a>

旧版 HRNN 食谱不再可用。此文档仅供参考。

 我们建议使用 aws-user-personalizaton（用户个性化）配方，而不是传统的 HRNN 配方。User-Personalization 改进并统一了 HRNN 食谱提供的功能。有关更多信息，请参阅 [User-Personalization 食谱](native-recipe-new-item-USER_PERSONALIZATION.md)。

Amazon Personalize 可以根据其输入数据的分析自动选择最合适的分层递归神经网络 (HRNN) 食谱。该选项称为 AutoML。有关更多信息，请参阅 [使用 AutoML 选择 HRNN 食谱（仅限 API）](training-solution-auto-ml.md)。

**Topics**
+ [使用 AutoML 选择 HRNN 食谱（仅限 API）](training-solution-auto-ml.md)
+ [HRNN 食谱（旧版）](native-recipe-hrnn.md)
+ [HRNN-Metadata 食谱（旧版）](native-recipe-hrnn-metadata.md)
+ [HRNN-Coldstart 食谱（旧版）](native-recipe-hrnn-coldstart.md)

# 使用 AutoML 选择 HRNN 食谱（仅限 API）
<a name="training-solution-auto-ml"></a>

Amazon Personalize 可以根据其输入数据的分析自动选择最合适的分层递归神经网络 (HRNN) 食谱。该选项称为 AutoML。要执行 AutoML，请在调用 [CreateSolution](API_CreateSolution.md) API 时将 `performAutoML` 参数设置为 `true`。

您还可以指定 Amazon Personalize 检查的食谱列表，以根据您指定的指标决定最佳食谱。在这种情况下，您调用 `CreateSolution` 操作，为 `performAutoML` 参数指定 `true`，忽略 `recipeArn` 参数，包含 `solutionConfig` 参数，并指定 `metricName` 和 `recipeList` 作为 `autoMLConfig` 对象的一部分。

下表显示了选择配方的方式。必须指定 `performAutoML` 或 `recipeArn`，但不能同时指定二者。仅使用 HRNN 配方执行 AutoML。


| performAutoML | recipeArn | solutionConfig | 结果 | 
| --- | --- | --- | --- | 
| true | 忽略 | 已忽略 | Amazon Personalize 选择食谱 | 
| true | 忽略 | autoMLConfig：指定了 metricName 和 recipeList | Amazon Personalize 从列表中选择优化指标的食谱 | 
| 忽略 | 满足指定 | 已忽略 | 您指定配方 | 
| 忽略 | 满足指定 | 满足指定 | 您指定配方并覆盖默认训练属性 | 

**注意**  
当 `performAutoML` 为 `true` 时，将忽略 `solutionConfig` 对象的所有参数，`autoMLConfig` 除外。

# HRNN 食谱（旧版）
<a name="native-recipe-hrnn"></a>

**注意**  
旧版 HRNN 食谱不再可用。此文档仅供参考。  
 我们建议使用 aws-user-personalization (User-Personalization) 食谱，而不是旧版 HRNN 食谱。User-Personalization 改进并统一了 HRNN 食谱提供的功能。有关更多信息，请参阅 [User-Personalization 食谱](native-recipe-new-item-USER_PERSONALIZATION.md)。

Amazon Personalize 分层递归神经网络 (HRNN) 食谱模型改变用户行为以在会话期间提供建议。会话是给定时间范围内的一组用户交互，例如，其目标是找到满足需求的特定物品。通过将用户最近交互的权重提高，您可以在会话期间提供更相关的建议。

HRNN 适用于可随时间变化的用户意图和兴趣。它获取有序的用户历史记录并自动对它们进行加权以做出更好的推论。HRNN 使用门控机制将折扣权重建模为物品和时间戳的可学习函数。

Amazon Personalize 从数据集中为每个用户派生特征。如果您已完成实时数据集成，则会根据用户活动实时更新这些特征。要获取建议，您只需提供 `USER_ID`。如果您还提供了 `ITEM_ID`，则 Amazon Personalize 会将其忽略。

HRNN 配方具有以下属性：
+  **名称** – `aws-hrnn`
+  **食谱 Amazon 资源名称 (ARN)** - `arn:aws:personalize:::recipe/aws-hrnn`
+  **算法 ARN** - `arn:aws:personalize:::algorithm/aws-hrnn`
+  **特征转换 ARN** - `arn:aws:personalize:::feature-transformation/JSON-percentile-filtering`
+  **食谱类型** - `USER_PERSONALIZATION`

下表描述 HRNN 配方的超参数。*超参数* 是一个算法参数，您可以调整该参数以提高模型性能。算法超参数控制模型的执行方式。特征化超参数控制如何筛选训练中使用的数据。为超参数选择最佳值的过程称为超参数优化 (HPO)。有关更多信息，请参阅 [超级参数和 HPO](customizing-solution-config-hpo.md)。

该表还为每个超参数提供以下信息：
+ **范围**：[上界, 下界]
+ **值类型**：Integer、Continuous（浮点数）、Categorical（布尔值、列表、字符串）
+ **可调 HPO**：该参数是否可以参与 HPO？


| 名称 | 描述 | 
| --- | --- | 
| 算法超参数 | 
| hidden\$1dimension |  模型中使用的隐藏变量的数量。*隐藏变量* 重新创建用户的购买历史记录和物品统计数据来生成排名分数。当物品交互数据集包含更复杂的模式时，请指定更多数量的隐藏维度。使用更多隐藏维度需要更大的数据集和更多的处理时间。要确定最佳值，请使用 HPO。要使用 HPO，当您调用 `performHPO` 和 `true` 操作时，请将 [CreateSolution](API_CreateSolution.md) 设置为 [CreateSolutionVersion](API_CreateSolutionVersion.md)。 默认值：43 范围：[32, 256] 值类型：整数 HPO 可调：是  | 
| bptt |  确定是否使用基于时间的反向传播技术。*反向传播* 是一种在基于递归神经网络的算法中更新权重的技术。将 `bptt` 用于长期积分以将延迟奖励与早期事件联系起来。例如，延迟奖励可以是几次点击后进行的购买。早期事件可以是初始点击。即使在相同的事件类型（例如点击）中，最好考虑长期影响并最大化总奖励。要考虑长期效果，请使用较大的 `bptt` 值。使用较大的 `bptt` 值需要更大的数据集和更多的处理时间。 默认值：32 范围：[2, 32] 值类型：整数 HPO 可调：是  | 
| recency\$1mask |  确定模型是否应考虑物品交互数据集中的最新流行趋势。最新流行趋势可能包括交互事件的基本模式的突然变化。要训练一个使最近事件具有更高权重的模型，请将 `recency_mask` 设置为 `true`。要训练一个使所有过往交互占相同权重的模型，请将 `recency_mask` 设置为 `false`。要使用相等权重获得好的建议，您可能需要较大的训练数据集。 默认值：`True` 范围：`True` 或 `False` 值类型：布尔值 HPO 可调：是  | 
| 特征化超参数 | 
| min\$1user\$1history\$1length\$1percentile |  要包含在模型训练中的用户历史记录长度的最小百分位数。*历史记录长度* 是有关用户的数据总量。使用 `min_user_history_length_percentile` 排除历史记录长度较短的一定百分比的用户。历史记录较短的用户通常会根据物品受欢迎程度而不是用户的个人需求或需要来显示模式。删除它们可以在训练模型时更多地关注数据中的基础模式。使用直方图或类似工具查看用户历史记录长度后，请选择适当的值。我们建议您设置一个值，该值将保留大多数用户，但会删除边缘案例。  例如，设置 `min__user_history_length_percentile to 0.05` 和 `max_user_history_length_percentile to 0.95` 将包括除那些历史记录长度在最低或最高 5% 内的用户之外的所有用户。 默认值：0.0 范围：[0.0, 1.0] 值类型：浮点数 HPO 可调：否  | 
| max\$1user\$1history\$1length\$1percentile |  要包含在模型训练中的用户历史记录长度的最大百分位数。*历史记录长度* 是有关用户的数据总量。使用 `max_user_history_length_percentile` 排除具有较长历史记录长度的一定百分比的用户，因为这些用户的数据往往包含噪音。例如，机器人可能有很长的自动交互列表。删除这些用户可限制训练中的噪音。使用直方图或类似工具查看用户历史记录长度后，请选择适当的值。我们建议您设置一个值，该值将保留大多数用户，但会删除边缘案例。 例如，设置 `min__user_history_length_percentile to 0.05` 和 `max_user_history_length_percentile to 0.95` 将包括除那些历史记录长度在最低或最高 5% 内的用户之外的所有用户。 默认值：0.99 范围：[0.0, 1.0] 值类型：浮点数 HPO 可调：否  | 

# HRNN-Metadata 食谱（旧版）
<a name="native-recipe-hrnn-metadata"></a>

**注意**  
旧版 HRNN 食谱不再可用。此文档仅供参考。  
 我们建议使用 aws-user-personalization (User-Personalization) 食谱，而不是旧版 HRNN 食谱。User-Personalization 改进并统一了 HRNN 食谱提供的功能。有关更多信息，请参阅 [User-Personalization 食谱](native-recipe-new-item-USER_PERSONALIZATION.md)。

HRNN 元数据配方可预测用户将与之交互的物品。它与具有从上下文、用户和物品元数据派生的附加功能（分别来自交互、用户和物品数据集）的 [HRNN](native-recipe-hrnn.md) 配方相似。当有高质量的元数据可用时，HRNN 元数据可提供高于非元数据模型的准确性。使用该配方可能需要更长的训练时间。

HRNN 元数据配方具有以下属性：
+  **名称** – `aws-hrnn-metadata`
+  **食谱 Amazon 资源名称 (ARN)** - `arn:aws:personalize:::recipe/aws-hrnn-metadata`
+  **算法 ARN** - `arn:aws:personalize:::algorithm/aws-hrnn-metadata`
+  **特征转换 ARN** - `arn:aws:personalize:::feature-transformation/featurize_metadata`
+  **食谱类型** - `USER_PERSONALIZATION`

下表描述 HRNN 元数据配方的超参数。*超参数* 是一个算法参数，您可以调整该参数以提高模型性能。算法超参数控制模型的执行方式。特征化超参数控制如何筛选训练中使用的数据。为超参数选择最佳值的过程称为超参数优化 (HPO)。有关更多信息，请参阅 [超级参数和 HPO](customizing-solution-config-hpo.md)。

该表还为每个超参数提供以下信息：
+ **范围**：[上界, 下界]
+ **值类型**：Integer、Continuous（浮点数）、Categorical（布尔值、列表、字符串）
+ **可调 HPO**：该参数是否可以参与超级参数优化 (HPO)？


| 名称 | 描述 | 
| --- | --- | 
| 算法超参数 | 
| hidden\$1dimension |  模型中使用的隐藏变量的数量。*隐藏变量* 重新创建用户的购买历史记录和物品统计数据来生成排名分数。当物品交互数据集包含更复杂的模式时，请指定更多数量的隐藏维度。使用更多隐藏维度需要更大的数据集和更多的处理时间。要确定最佳值，请使用 HPO。要使用 HPO，当您调用 `performHPO` 和 `true` 操作时，请将 [CreateSolution](API_CreateSolution.md) 设置为 [CreateSolutionVersion](API_CreateSolutionVersion.md)。 默认值：43 范围：[32, 256] 值类型：整数 HPO 可调：是  | 
| bptt |  确定是否使用基于时间的反向传播技术。*反向传播* 是一种在基于递归神经网络的算法中更新权重的技术。将 `bptt` 用于长期积分以将延迟奖励与早期事件联系起来。例如，延迟奖励可以是几次点击后进行的购买。早期事件可以是初始点击。即使在相同的事件类型（例如点击）中，最好考虑长期影响并最大化总奖励。要考虑长期效果，请使用较大的 `bptt` 值。使用较大的 `bptt` 值需要更大的数据集和更多的处理时间。 默认值：32 范围：[2, 32] 值类型：整数 HPO 可调：是  | 
| recency\$1mask |  确定模型是否应考虑物品交互数据集中的最新流行趋势。最新流行趋势可能包括交互事件的基本模式的突然变化。要训练一个使最近事件具有更高权重的模型，请将 `recency_mask` 设置为 `true`。要训练一个使所有过往交互占相同权重的模型，请将 `recency_mask` 设置为 `false`。要使用相等权重获得好的建议，您可能需要较大的训练数据集。 默认值：`True` 范围：`True` 或 `False` 值类型：布尔值 HPO 可调：是  | 
| 特征化超参数 | 
| min\$1user\$1history\$1length\$1percentile |  要包含在模型训练中的用户历史记录长度的最小百分位数。*历史记录长度* 是有关用户的数据总量。使用 `min_user_history_length_percentile` 排除历史记录长度较短的一定百分比的用户。历史记录较短的用户通常会根据物品受欢迎程度而不是用户的个人需求或需要来显示模式。删除它们可以在训练模型时更多地关注数据中的基础模式。使用直方图或类似工具查看用户历史记录长度后，请选择适当的值。我们建议您设置一个值，该值将保留大多数用户，但会删除边缘案例。  例如，设置 `min__user_history_length_percentile to 0.05` 和 `max_user_history_length_percentile to 0.95` 将包括除那些历史记录长度在最低或最高 5% 内的用户之外的所有用户。 默认值：0.0 范围：[0.0, 1.0] 值类型：浮点数 HPO 可调：否  | 
| max\$1user\$1history\$1length\$1percentile |  要包含在模型训练中的用户历史记录长度的最大百分位数。*历史记录长度* 是有关用户的数据总量。使用 `max_user_history_length_percentile` 排除具有较长历史记录长度的一定百分比的用户，因为这些用户的数据往往包含噪音。例如，机器人可能有很长的自动交互列表。删除这些用户可限制训练中的噪音。使用直方图或类似工具查看用户历史记录长度后，请选择适当的值。我们建议您设置一个值，该值将保留大多数用户，但会删除边缘案例。 例如，设置 `min__user_history_length_percentile to 0.05` 和 `max_user_history_length_percentile to 0.95` 将包括除那些历史记录长度在最低或最高 5% 内的用户之外的所有用户。 默认值：0.99 范围：[0.0, 1.0] 值类型：浮点数 HPO 可调：否  | 

# HRNN-Coldstart 食谱（旧版）
<a name="native-recipe-hrnn-coldstart"></a>

**注意**  
旧版 HRNN 食谱不再可用。此文档仅供参考。  
 我们建议使用 aws-user-personalization (User-Personalization) 食谱，而不是旧版 HRNN 食谱。User-Personalization 改进并统一了 HRNN 食谱提供的功能。有关更多信息，请参阅 [User-Personalization 食谱](native-recipe-new-item-USER_PERSONALIZATION.md)。

当您经常添加新物品和交互并希望立即获得有关这些物品的建议时，可以使用 HRNN-Coldstart 食谱来预测用户将与之交互的物品。HRNN 冷启动配方类似于 [HRNN 元数据](native-recipe-hrnn-metadata.md)配方，但它允许您获取有关新物品的建议。

此外，当您由于最近的流行趋势或由于交互可能极不寻常并且在训练中引入噪音而希望从训练物品中排除具有长交互列表的物品时，也可以使用 HRNN 冷启动配方。使用 HRNN 冷启动，您可以筛选掉相关性较弱的物品以创建用于训练的子集。该物品子集称为*冷物品*，是在物品交互数据集中具有相关交互事件的物品。如果物品符合以下条件，则该物品被视为冷物品：
+ 交互数量少于指定的最大交互数量。您在配方的 `cold_start_max_interactions` 超参数中指定此值。
+ 相对持续时间短于最大持续时间。您在配方的 `cold_start_max_duration` 超参数中指定此值。

要减少冷物品的数量，请为 `cold_start_max_interactions` 或 `cold_start_max_duration` 设置较低的值。要增加冷物品的数量，请为 `cold_start_max_interactions` 或 `cold_start_max_duration` 设置较大的值。



HRNN-Coldstart 具有以下冷物品限制：
+ `Maximum cold start items`：80,000
+ `Minimum cold start items`：100

如果冷物品的数量超出此范围，则尝试创建解决方案将失败。

HRNN-Coldstart 配方具有以下属性：
+  **名称** – `aws-hrnn-coldstart`
+  **食谱 Amazon 资源名称 (ARN)** - `arn:aws:personalize:::recipe/aws-hrnn-coldstart`
+  **算法 ARN** - `arn:aws:personalize:::algorithm/aws-hrnn-coldstart`
+  **特征转换 ARN** - `arn:aws:personalize:::feature-transformation/featurize_coldstart`
+  **食谱类型** - `USER_PERSONALIZATION`

有关更多信息，请参阅 [选择食谱](working-with-predefined-recipes.md)。

下表描述 HRNN-Coldstart 配方的超参数。*超参数* 是一个算法参数，您可以调整该参数以提高模型性能。算法超参数控制模型的执行方式。特征化超参数控制如何筛选训练中使用的数据。为超参数选择最佳值的过程称为超参数优化 (HPO)。有关更多信息，请参阅 [超级参数和 HPO](customizing-solution-config-hpo.md)。

该表还为每个超参数提供以下信息：
+ **范围**：[上界, 下界]
+ **值类型**：Integer、Continuous（浮点数）、Categorical（布尔值、列表、字符串）
+ **可调 HPO**：该参数是否可以参与 HPO？


| 名称 | 描述 | 
| --- | --- | 
| 算法超参数 | 
| hidden\$1dimension | 模型中使用的隐藏变量的数量。*隐藏变量* 重新创建用户的购买历史记录和物品统计数据来生成排名分数。当物品交互数据集包含更复杂的模式时，请指定更多数量的隐藏维度。使用更多隐藏维度需要更大的数据集和更多的处理时间。要确定最佳值，请使用 HPO。要使用 HPO，当您调用 `performHPO` 和 `true` 操作时，请将 [CreateSolution](API_CreateSolution.md) 设置为 [CreateSolutionVersion](API_CreateSolutionVersion.md)。 默认值：149 范围：[32, 256] 值类型：整数 HPO 可调：是  | 
| bptt | 确定是否使用基于时间的反向传播技术。*反向传播* 是一种在基于递归神经网络的算法中更新权重的技术。将 `bptt` 用于长期积分以将延迟奖励与早期事件联系起来。例如，延迟奖励可以是几次点击后进行的购买。早期事件可以是初始点击。即使在相同的事件类型（例如点击）中，最好考虑长期影响并最大化总奖励。要考虑长期效果，请使用较大的 `bptt` 值。使用较大的 `bptt` 值需要更大的数据集和更多的处理时间。 默认值：32 范围：[2, 32] 值类型：整数 HPO 可调：是  | 
| recency\$1mask |  确定模型是否应考虑物品交互数据集中的最新流行趋势。最新流行趋势可能包括交互事件的基本模式的突然变化。要训练一个使最近事件具有更高权重的模型，请将 `recency_mask` 设置为 `true`。要训练一个使所有过往交互占相同权重的模型，请将 `recency_mask` 设置为 `false`。要使用相等权重获得好的建议，您可能需要较大的训练数据集。 默认值：`True` 范围：`True` 或 `False` 值类型：布尔值 HPO 可调：是  | 
| 特征化超参数 | 
| cold\$1start\$1max\$1interactions |  物品可能必须被视为冷物品的最大用户-物品交互次数。 默认值：15 范围：正整数 值类型：整数 HPO 可调：否  | 
| cold\$1start\$1max\$1duration | 用户-物品交互被视为冷启动物品的相对于起点的最大持续时间（以天为单位）。要设置用户-物品交互的起点，请设置 `cold_start_relative_from` 超参数。 默认值：5.0 范围：正浮点数 值类型：浮点数 HPO 可调：否  | 
| cold\$1start\$1relative\$1from |  确定 HRNN 冷启动配方计算 `cold_start_max_duration` 的起点。要从当前时间计算，请选择 `currentTime`。 要从物品交互数据集中最新物品的时间戳计算 `cold_start_max_duration`，请选择 `latestItem`。如果您经常添加新物品，该设置将非常有用。 默认值：`latestItem` 范围：`currentTime`、`latestItem` 值类型：字符串 HPO 可调：否  | 
| min\$1user\$1history\$1length\$1percentile |  要包含在模型训练中的用户历史记录长度的最小百分位数。*历史记录长度* 是有关用户的数据总量。使用 `min_user_history_length_percentile` 排除历史记录长度较短的一定百分比的用户。历史记录较短的用户通常会根据物品受欢迎程度而不是用户的个人需求或需要来显示模式。删除它们可以在训练模型时更多地关注数据中的基础模式。使用直方图或类似工具查看用户历史记录长度后，请选择适当的值。我们建议您设置一个值，该值将保留大多数用户，但会删除边缘案例。  例如，设置 `min__user_history_length_percentile to 0.05` 和 `max_user_history_length_percentile to 0.95` 将包括除那些历史记录长度在最低或最高 5% 内的用户之外的所有用户。 默认值：0.0 范围：[0.0, 1.0] 值类型：浮点数 HPO 可调：否  | 
| max\$1user\$1history\$1length\$1percentile |  要包含在模型训练中的用户历史记录长度的最大百分位数。*历史记录长度* 是有关用户的数据总量。使用 `max_user_history_length_percentile` 排除具有较长历史记录长度的一定百分比的用户，因为这些用户的数据往往包含噪音。例如，机器人可能有很长的自动交互列表。删除这些用户可限制训练中的噪音。使用直方图或类似工具查看用户历史记录长度后，请选择适当的值。我们建议您设置一个值，该值将保留大多数用户，但会删除边缘案例。 例如，设置 `min__user_history_length_percentile to 0.05` 和 `max_user_history_length_percentile to 0.95` 将包括除那些历史记录长度在最低或最高 5% 内的用户之外的所有用户。 默认值：0.99 范围：[0.0, 1.0] 值类型：浮点数 HPO 可调：否  | 