在 Amazon Personalize 中创建域名推荐器 - Amazon Personalize

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

在 Amazon Personalize 中创建域名推荐器

您可以使用 Amazon Personalize 控制台创建推荐人, AWS Command Line Interface (AWS CLI),或 AWS SDKs。以下内容包括使用 Amazon Personalize 控制台创建推荐人的详细步骤,以及演示如何仅使用必填字段创建推荐人的代码示例。

创建推荐器(控制台)

重要

minRecommendationRequestsPerSecond 会增加您的账单费用。我们建议从 1 开始设置 minRecommendationRequestsPerSecond(默认值)。使用 Amazon CloudWatch 指标跟踪您的使用情况,并在必要minRecommendationRequestsPerSecond时增加使用量。有关更多信息,请参阅 每秒最低建议请求数和自动扩缩

使用 Amazon Personalize 控制台为您的每个使用案例创建推荐器,如下所示。如果您刚刚创建了域数据集组,且已经进入了概述页面,请跳至步骤 3。

创建推荐器
  1. https://console.aws.amazon.com/personalize/家中打开 Amazon Personalize 控制台并登录您的账户。

  2. 数据集组页面上,选择您的域数据集组。

  3. 步骤 3 中,选择使用 <域名> 推荐器,然后选择创建推荐器

  4. 选择使用案例页面上,选择要创建推荐器的使用案例,并分别提供推荐器名称。Amazon Personalize 会为您选择的每个使用案例创建一个推荐器。可用的使用案例取决于您的域。有关选择使用案例的信息,请参阅选择使用案例

  5. 选择下一步

  6. 高级配置页面上,根据您的业务需求配置每个推荐器:

    • 对于推荐器使用案例使用的每个数据集,您可以选择 Amazon Personalize 在训练支持推荐器的模型时考虑的列。默认情况下,Amazon Personalize 使用可在训练时采用的所有列。有关更多信息,请参阅 配置创建 Amazon Personalize 域名推荐器时使用的列

    • 您可以修改每秒最低建议请求数,为推荐器指定新的最低请求容量。高 minRecommendationRequestsPerSecond 会增加您的账单费用。我们建议从 1 开始设置(默认值)。使用 Amazon CloudWatch 指标跟踪您的使用情况,并在必要minRecommendationRequestsPerSecond时增加使用量。有关更多信息,请参阅每秒最低建议请求数和自动扩缩

    • 如果您希望能够在建议中包含物品数据集元数据,请选择在建议结果中返回物品元数据。如果启用,则可以在建议或个性化排名请求中指定物品数据集中的列。Amazon Personalize 会在建议响应中返回每个物品的这些数据。

      要启用元数据,必须拥有包含一列元数据的物品数据集。

    • 对于 Top picks for yourRecommended for you 使用案例,可以选择更改浏览配置。浏览包括测试不同的物品建议,以了解用户如何对交互数据很少的物品做出响应。使用以下字段来配置浏览:

      • 重点浏览不太相关的物品(浏览权重)- 配置要浏览的程度。指定 0 到 1 之间的十进制值。默认值为 0.3。值越接近 1,浏览次数就越多。浏览次数越多,建议包括的物品就越多,这些物品具有的物品交互数据更少或基于先前行为的相关性更低。如果值为零,则表示没有浏览,建议基于当前数据(相关性)。

      • 浏览物品使用期限截止时间 - 指定自物品交互数据集中所有物品最近一次交互以来的最大物品使用期限(以天为单位)。这会根据物品使用期限定义物品浏览的范围。Amazon Personalize 根据物品的创建时间戳或物品交互数据(如果缺少创建时间戳数据)来确定物品使用期限。有关 Amazon Personalize 如何确定物品使用期限的更多信息,请参阅创建时间戳数据

        要增加 Amazon Personalize 在浏览期间考虑的物品数量,请输入更大的值。最小值为 1 天,默认值为 30 天。建议可能包括比您指定的物品使用期限截止时间更早的物品。这是因为这些物品与用户相关,而浏览并未识别出它们。

    • 对于标签,可以选择添加任何标签。有关标记 Amazon Personalize 资源的更多信息,请参阅为 Amazon Personalize 资源添加标签

  7. 要为您的每个使用案例创建推荐器,请选择创建推荐器

    您可以在推荐器页面上,监控每个推荐器的状态。当推荐器状态为“活动”时,您可以在应用程序中使用它来获取建议。

创建推荐人 (AWS CLI)

使用以下内容 AWS CLI 用于为域名用例创建推荐器的代码。针对您的每个域使用案例运行此代码。对于recipeArn,请为您的使用案例提供亚马逊资源名称 (ARN)。可用的使用案例取决于您的域。有关用例及其列表,ARNs请参阅选择使用案例

aws personalize create-recommender \ --name recommender name \ --dataset-group-arn dataset group ARN \ --recipe-arn recipe ARN

创建推荐人 (AWS SDKs)

使用以下代码为域使用案例创建推荐器。为推荐者命名,并提供您的域数据集组的 Amazon 资源名称 (ARN)。对于recipeArn,请ARN为您的用例提供。针对您的每个域使用案例运行此代码。可用的使用案例取决于您的域。有关用例、用例及其ARNs要求的列表,请参阅选择使用案例

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') create_recommender_response = personalize.create_recommender( name = 'recommender name', recipeArn = 'recipe ARN', datasetGroupArn = 'dataset group ARN' ) recommender_arn = create_recommender_response['recommenderArn'] print('Recommender ARN:' + recommender_arn)
SDK for Java 2.x
public static String createRecommender(PersonalizeClient personalizeClient, String name, String datasetGroupArn, String recipeArn) { long maxTime = 0; long waitInMilliseconds = 30 * 1000; // 30 seconds String recommenderStatus = ""; try { CreateRecommenderRequest createRecommenderRequest = CreateRecommenderRequest.builder() .datasetGroupArn(datasetGroupArn) .name(name) .recipeArn(recipeArn) .build(); CreateRecommenderResponse recommenderResponse = personalizeClient .createRecommender(createRecommenderRequest); String recommenderArn = recommenderResponse.recommenderArn(); System.out.println("The recommender ARN is " + recommenderArn); DescribeRecommenderRequest describeRecommenderRequest = DescribeRecommenderRequest.builder() .recommenderArn(recommenderArn) .build(); maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60; while (Instant.now().getEpochSecond() < maxTime) { recommenderStatus = personalizeClient.describeRecommender(describeRecommenderRequest).recommender() .status(); System.out.println("Recommender status: " + recommenderStatus); if (recommenderStatus.equals("ACTIVE") || recommenderStatus.equals("CREATE FAILED")) { break; } try { Thread.sleep(waitInMilliseconds); } catch (InterruptedException e) { System.out.println(e.getMessage()); } } return recommenderArn; } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { CreateRecommenderCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the recommender's parameters export const createRecommenderParam = { name: "RECOMMENDER_NAME", /* required */ recipeArn: "RECIPE_ARN", /* required */ datasetGroupArn: "DATASET_GROUP_ARN" /* required */ } export const run = async () => { try { const response = await personalizeClient.send(new CreateRecommenderCommand(createRecommenderParam)); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();