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

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

创建市场活动

要获得实时建议,在完成准备和导入数据和之后创建解决方案,就可以部署解决方案版本以生成建议了。您可以通过创建Amazon Personalize 活动部署解决方案版本。如果您获得批量推荐,则无需创建市场活动。有关更多信息,请参阅获取批量推荐和用户细分

活动是部署的解决方案版本(经过训练的模型),具有预置的专用事务容量,用于为您的应用程序用户创建实时建议。创建活动后,您可以使用GetRecommendations或者GetPersonalizedRanking API 操作获取推荐。

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

重要

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

每秒最低预置交易量和auto-scaling

创建亚马逊个性化活动时,可随时将其部署到 Amazon Personalize 活动中,用于为您的应用程序用户创建实时推荐。交易是单笔交易GetRecommendations或看GetPersonalizedRanking涨交易。每秒事务数(TPS)是Amazon Personalize ize 的吞吐量和计费单位。最低预配置 TPS (minProvisionedTPS) 指定了 Amazon Personalize 预置的基准吞吐量,因此也指定了最低账单费用。

如果您的 TPS 超过了 TPSminProvisionedTPS,Amazon Personalize 会自动向上和向下扩展预置容量,但绝不会低于预置容量minProvisionedTPS。容量增加时会有很短的时间延迟,这可能会导致交易损失。

实际使用的 TPS 是根据 5 分钟窗口内每秒的平均请求数计算得出的。您需要为最低预配置 TPS 或实际 TPS 的最大值付费。我们建议从低点开始minProvisionedTPS,使用亚马逊 CloudWatch 指标跟踪您的使用情况,然后minProvisionedTPS根据需要增加使用量。

创建活动(主机)

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

创建战役(主机)
  1. 通过 https://console.aws.amazon.com/personalize/home 打开Amazon Personalize ize 控制台并登录您的账户。

  2. 选择具有您希望部署的解决方案版本的数据集组。

  3. 在导航窗格中,选择 Campaigns (活动)

  4. 在 “广告系列” 页面上,选择 “创建广告系列”。

  5. 在 “创建新广告系列” 页面上,提供以下信息,以了解活动详情

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

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

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

    • 每秒最少预置交易量:设置 Amazon Personalize 支持的每秒最低预置交易量。有关更多信息,请参阅 每秒最低预置交易量和auto-scaling

  6. 如果你使用了用户个性化配方,则在战役配置中,可以选择输入探索权重探索物品年龄截止值。有关更多信息,请参阅用户个性化

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

  8. 选择 Create campaign (创建活动)

  9. 在广告活动详情页面上,当广告活动状态为 “有效” 时,您可以使用该广告系列获取推荐并记录曝光量。有关更多信息,请参阅 获取推荐(自定义数据集组)

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

创建广告活动 (Amazon CLI)

在您的解决方案版本状态为 Active 后,可随时将其部署到 Amazon Personalize 活动中。使用以下create-campaignAmazon CLI命令创建活动,部署使用用户个性化配方训练的解决方案版本。为活动命名并指定解决方案版本 ARN(亚马逊资源名称)。(可选)minProvisionedTPS如果您的用例需要更高的预置容量,请更改。最小值为 1。

这些campaign-config参数特定于您用于训练解决方案版本的配方(有关配方的更多信息,请参阅步骤 1:选择食谱)。该示例使用以下用户个性化配方特定itemExplorationConfig字段及其默认值:explorationWeightexplorationItemAgeCutOff。如果省略该campaign-config参数,则使用默认值。有关这些itemExplorationConfig字段的更多信息,属性和超参数请参阅用户个性化配方。

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 来删除活动。如果您删除一个市场活动,不会删除属于该市场活动的一部分的解决方案版本。

在创建您的市场活动后,请使用它来进行推荐。有关更多信息,请参阅 获取推荐(自定义数据集组)

创建活动 (AmazonSDK)

当您的解决方案版本状态为 “有效” 后,您就可以通过 Amazon Personalize 活动进行部署了。使用以下代码创建活动。为活动命名,指定要部署的解决方案版本的 Amazon 资源名称 (ARN),并可选择指定活动将支持的资源名称(此参数的默认值为 1)。预置的最低 TPS如果你使用用户个性化配方,你可以使用itemExplorationWeightexplorationItemAgeCutOff参数配置物品探索。

SDK for Python (Boto3)

在此示例中,itemExplorationWeightexplorationItemAgeCutOff参数特定于用户个性化配方。默认值 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参数特定于用户个性化配方。默认值 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 } from "@aws-sdk/client-personalize"; import { personalizeClient } from "./libs/personalizeClients.js"; // Or, create the client here. // const personalizeClient = new PersonalizeClient({ region: "REGION"}); // Set the campaign's parameters. export const createCampaignParam = { solutionVersionArn: 'SOLUTION_VERSION_ARN', /* required */ name: 'NAME', /* required */ minProvisionedTPS: 1 /* optional integer */ } 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 来删除活动。如果您删除一个市场活动,不会删除属于该市场活动的一部分的解决方案版本。

在创建您的市场活动后,请使用它来进行推荐。有关更多信息,请参阅获取推荐(自定义数据集组)