创建市场活动 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

创建市场活动

要获取包含自定义资源的实时建议,完成创建解决方案版本后,您就可以通过市场活动部署解决方案版本了。

市场活动 部署的解决方案版本(经过训练的模型)具有预调配的事务容量,用于生成实时建议。创建市场活动后,您可以使用 GetRecommendationsGetPersonalizedRanking API 操作来获取建议。如果您收到批量建议,则无需创建市场活动。有关更多信息,请参阅批量建议和用户细分(自定义资源)

创建市场活动时,可以在建议中启用物品元数据。有关更多信息,请参阅在建议中启用元数据

您可以使用 Amazon Personalize 控制台、Amazon Command Line Interface (Amazon CLI) 或 Amazon SDK 创建市场活动。

重要

如果您手动重新训练解决方案版本或想要更改现有市场活动的设置,例如在建议中启用元数据,则必须更新您的市场活动。有关更多信息,请参阅更新市场活动

预调配的最低每秒事务数和自动扩缩

重要

minProvisionedTPS 会增加您的成本。我们建议从 1 开始设置 minProvisionedTPS(默认值)。使用 Amazon CloudWatch 指标跟踪您的使用情况,并在必要时增加 minProvisionedTPS

在创建 Amazon Personalize 市场活动时,您可以为该市场活动指定预置的每秒最低事务数 (minProvisionedTPS)。这是 Amazon Personalize 为该市场活动预置的基准事务吞吐量。它会设置市场活动处于活动状态时的最低账单费用。事务是单个 GetRecommendationsGetPersonalizedRanking 请求。默认 minProvisionedTPS 为 1。

如果您的 TPS 增加到超过 minProvisionedTPS,则 Amazon Personalize 会自动纵向扩展和缩减预置容量,但从不会低于 minProvisionedTPS。增加容量时会有短时间延迟,这可能会导致事务丢失。当您的流量减少时,容量将恢复到 minProvisionedTPS

您需要为预置的最低 TPS 付费,或者,如果您的请求超过 minProvisionedTPS,则需要为实际 TPS 付费。实际 TPS 是您发出的建议请求的总数。我们建议从低 minProvisionedTPS 开始,使用 Amazon CloudWatch 指标跟踪您的使用情况,然后根据需要增加 minProvisionedTPS

有关市场活动成本的更多信息,请参阅 Amazon Personalize 定价

在建议中启用元数据

重要

在建议中启用元数据时,会产生额外成本。有关更多信息,请参阅 Amazon Personalize 定价

创建市场活动时,您可以启用该选项,以将物品数据集中的物品元数据与建议结果一起包括在内。然后,您可以从物品数据集中选择要包含在建议或个性化排名请求中的列。Amazon Personalize 会在建议响应中返回每个物品的这些数据。

您可以使用元数据来丰富用户界面中的建议,例如将电影的类型添加到轮播中。或者,您可以用它来直观地评测建议质量。如果您在应用程序中使用生成式人工智能,则可以将元数据插入人工智能提示中,以生成相关性更高的内容。有关 Amazon Personalize 与生成式人工智能结合使用的更多信息,请参阅Amazon Personalize 和生成式人工智能

要向建议添加元数据,您必须拥有包含一列元数据的物品数据集。您不一定要在训练中使用元数据。有关创建数据集的信息,请参阅创建数据集和架构。有关管理和更新数据的信息,请参阅管理数据

创建市场活动(控制台)

在您的解决方案版本状态变为“活动”后,您就可以通过 Amazon Personalize 市场活动进行部署了。

创建市场活动(控制台)
  1. 打开 Amazon Personalize 控制台(网址为 https://console.aws.amazon.com/personalize/home),并登录您的账户。

  2. 选择包含要部署的解决方案版本的数据集组。

  3. 在导航窗格中,在自定义资源下选择市场活动

  4. 市场活动选项卡上,选择创建市场活动

  5. 创建新的市场活动页面上,对于市场活动详细信息,提供以下信息:

    • 市场活动名称 – 输入市场活动的名称。您在此处输入的文本将显示在市场活动控制面板和详细信息页面上。

    • 解决方案 – 选择您刚创建的解决方案。

    • 解决方案版本 ID – 选择您刚创建的解决方案版本的 ID。

    • 预置的每秒最低事务数(在 API 中称为 minProvisionedTPS)– 设置 Amazon Personalize 支持的预置的每秒最低事务数。高值会增加您的账单费用。我们建议从 1 开始设置(默认值)。使用 Amazon CloudWatch 指标跟踪您的使用情况,并在必要时增加 minProvisionedTPS。有关更多信息,请参阅预调配的最低每秒事务数和自动扩缩

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

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

  6. 如果您使用了 User-Personalization 配方,则可以选择在活动配置中,输入浏览权重浏览物品期限截止的值。有关更多信息,请参阅User-Personalization

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

  8. 选择创建市场活动

  9. 在市场活动详细信息页面上,当市场活动状态变为活动 时,您可以使用市场活动来获取建议并记录展示量。有关更多信息,请参阅步骤 4:获取建议

    当市场活动状态为“活动”时,市场活动即已准备就绪。如果您重新训练解决方案版本或想要更改市场活动设置,则必须更新您的市场活动。有关更多信息,请参阅更新市场活动

创建市场活动 (Amazon CLI)

在您的解决方案版本状态变为“活动”后,您就可以通过 Amazon Personalize 市场活动进行部署了。使用以下 create-campaign Amazon CLI 命令,创建部署使用 User-Personalization 配方训练的解决方案版本的市场活动。为市场活动命名,并指定解决方案版本 ARN(Amazon 资源名称)。如果您的使用案例需要更高的预调配容量,也可以更改 minProvisionedTPS。最小值为 1。

campaign-config 参数特定于您用来训练解决方案版本的配方(有关配方的更多信息,请参阅选择配方)。

该示例使用以下特定于 User-Personalization 配方且含其默认值的 itemExplorationConfig 字段:explorationWeightexplorationItemAgeCutOff。如果省略 campaign-config 参数,则使用默认值。有关 itemExplorationConfig 字段的更多信息,请参阅 User-Personalization 配方的属性和超参数

如果您有物品数据集,并且希望该选项在您获得建议时包含元数据,请更新 campaign-config 以添加 enableMetadataWithRecommendations 字段并将其设置为 true

要获得所有参数的完整列表,请参阅CreateCampaign

aws personalize create-campaign \ --name campaign name \ --solution-version-arn solution version arn \ --min-provisioned-tps 1 \ --campaign-config "{\"itemExplorationConfig\":{\"explorationWeight\":\"0.3\",\"explorationItemAgeCutOff\":\"30\"}}"

当市场活动状态为“活动”时,市场活动即已准备就绪。要获取当前状态,请调用 DescribeCampaign 并检查 status 字段是否为 ACTIVE

如果您重新训练解决方案版本或想要更改市场活动设置,则必须更新您的市场活动。有关更多信息,请参阅更新市场活动

Amazon Personalize 提供用于管理市场活动的操作(如 ListCampaigns)以列出您创建的市场活动。您可以通过调用 DeleteCampaign 来删除活动。如果您删除一个市场活动,不会删除属于该市场活动的一部分的解决方案版本。

在创建您的市场活动后,请使用它来进行推荐。有关更多信息,请参阅步骤 4:获取建议

创建市场活动 (Amazon SDK)

在您的解决方案版本状态变为“活动”后,您就可以通过 Amazon Personalize 市场活动进行部署了。使用以下代码创建活动。为市场活动命名,指定要部署的解决方案版本的 Amazon 资源名称 (ARN),并(可选)指定市场活动将支持的最低预调配的 TPS(此参数的默认值为 1)。如果您使用 User-Personalization 配方,则可以通过 itemExplorationWeightexplorationItemAgeCutOff 参数配置物品浏览。

如果您有物品数据集,并且希望该选项在您获得建议时包含元数据,请更新 campaignConfig 代码以包含 enableMetadataWithRecommendations 属性并将其设置为 true

要获得所有参数的完整列表,请参阅CreateCampaign

SDK for Python (Boto3)

在此示例中,itemExplorationWeightexplorationItemAgeCutOff 参数特定于 User-Personalization 配方。默认 itemExplorationWeight 为 0.3,默认 explorationItemAgeCutOff 为 30。如果您省略了市场活动配置参数,则使用默认值。

import boto3 personalize = boto3.client('personalize') response = personalize.create_campaign( name = 'campaign name', solutionVersionArn = 'solution version arn', minProvisionedTPS = 1, campaignConfig = {"itemExplorationConfig": {"explorationWeight": "0.3", "explorationItemAgeCutOff": "30"}} ) arn = response['campaignArn'] description = personalize.describe_campaign(campaignArn = arn)['campaign'] print('Name: ' + description['name']) print('ARN: ' + description['campaignArn']) print('Status: ' + description['status'])
SDK for Java 2.x

在此示例中,itemExplorationWeightexplorationItemAgeCutOff 参数特定于 User-Personalization 配方。默认 itemExplorationWeight 为 0.3,默认 explorationItemAgeCutOff 为 30。如果您省略了市场活动配置参数,则使用默认值。

public static void createCampaign(PersonalizeClient personalizeClient, String campaignName, String solutionVersionArn, Integer minProvisionedTPS, String itemExplorationWeight, String explorationItemAgeCutOff) { //Optional code to instantiate a HashMap and add the explorationWeight and explorationItemAgeCutOff values. //Remove if you aren't using User-Personaliztion. Map<String,String> itemExploration = new HashMap<String,String>(); itemExploration.put("explorationWeight", itemExplorationWeight); itemExploration.put("explorationItemAgeCutOff", explorationItemAgeCutOff); try { // Build a User-Personalization recipe specific campaignConfig object with the itemExploration map. // CampaignConfig construction will vary by recipe. CampaignConfig campaignConfig = CampaignConfig.builder() .itemExplorationConfig(itemExploration) .build(); // build the createCampaignRequest CreateCampaignRequest createCampaignRequest = CreateCampaignRequest.builder() .name(campaignName) .solutionVersionArn(solutionVersionArn) .minProvisionedTPS(minProvisionedTPS) .campaignConfig(campaignConfig) // .build(); // create the campaign CreateCampaignResponse campaignResponse = personalizeClient.createCampaign(createCampaignRequest); String campaignArn = campaignResponse.campaignArn(); DescribeCampaignRequest campaignRequest = DescribeCampaignRequest.builder() .campaignArn(campaignArn) .build(); DescribeCampaignResponse campaignResponse = personalizeClient.describeCampaign(campaignRequest); Campaign newCampaign = campaignResponse.campaign(); System.out.println("The Campaign status is " + newCampaign.status()); } catch (PersonalizeException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
SDK for JavaScript v3
// Get service clients module and commands using ES6 syntax. import { CreateCampaignCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the campaign parameters export const createCampaignParam = { solutionVersionArn: "SOLUTION_VERSION_ARN", /* required */ name: "CAMPAIGN_NAME", /* required */ minProvisionedTPS: 1, /* optional */ campaignConfig: { itemExplorationConfig: { explorationWeight: "0.3", /* optional */ explorationItemAgeCutOff: "30", /* optional */ }, }, }; export const run = async () => { try { const response = await personalizeClient.send( new CreateCampaignCommand(createCampaignParam) ); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();

当市场活动状态为“活动”时,市场活动即已准备就绪。要获取当前状态,请调用 DescribeCampaign 并检查 status 字段是否为 ACTIVE

如果您手动重新训练解决方案版本或想要更改市场活动设置,则必须更新您的市场活动。有关更多信息,请参阅更新市场活动

Amazon Personalize 提供用于管理市场活动的操作(如 ListCampaigns)以列出您创建的市场活动。您可以通过调用 DeleteCampaign 来删除活动。如果您删除一个市场活动,不会删除属于该市场活动的一部分的解决方案版本。

在创建您的市场活动后,请使用它来进行推荐。有关更多信息,请参阅步骤 4:获取建议