筛选批量推荐和用户细分 - Amazon Personalize
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

筛选批量推荐和用户细分

筛选批量推荐和用户细分的工作原理与筛选实时推荐几乎相同。它遵循中所述的相同工作流程获取批量推荐和用户细分。要筛选批推荐或用户细分,请执行以下操作:

  1. 像创建实时推荐一样创建过滤器。有关更多信息,请参阅 筛选实时推荐

  2. 准备输入数据并将其上传到 Amazon S3准备和导入批量输入数据

    如果您的过滤器使用占位符参数,则必须添加其他filterValues对象。有关更多信息,请参阅在您的输入 JSON 中提供过滤器值:如果您的过滤器不使用占位符参数,则您的输入数据可以遵循中的示例输入与输出 JSON 示例

  3. 为您的输出数据创建一个单独的位置,可以是文件夹,也可以是其他 Amazon S3 存储桶。

  4. 创建批量推理任务批量分段任务,并指定筛选器的亚马逊资源名称 (ARN)。

  5. 批量推理或批量分段任务完成后,从 Amazon S3 中的输出位置检索推荐或用户区段。

在您的输入 JSON 中提供过滤器值

对于带有占位符参数的过滤器$GENRE,例如,您必须在输入 JSON 中提供filterValues对象中参数的值。对于一个filterValues对象,每个键都是一个参数名称。每个值都是您作为参数传递的标准。用转义引号将每个值括起来:"filterValues":{"GENRES":"\"drama\""}. 对于多个值,用逗号分隔每个值:"filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}

Batch 推理任务输入 JSON 示例

以下是批量推理作业 JSON 输入文件前几行的示例。该示例包括filterValues对象。该GENRES键对应于过滤器表达式中的$GENRES占位符。此示例中的工作使用用户个性化配方。对于 RELATED_ITEMS 食谱,请提供 itemId 而不是userId。对于 PERSONALIZED_RANKING 食谱,请提供用户 ID 和物品列表。

{"userId": "5","filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}} {"userId": "3","filterValues":{"GENRES":"\"horror\",\"comedy\""}} {"userId": "34","filterValues":{"GENRES":"\"drama\""}}

有关按配方分列的批量推理作业输入数据的更多示例,请参阅Batch 推理任务输入和输出 JSON 示例。您可以使用这些示例作为起点并添加上面示例中的filterValues对象。

Batch 分段作业输入 JSON 示例

以下是 JSON 输入文件的前几行示例,其中包含批处理分段作业的筛选值。该GENRES键对应于过滤器表达式中的$GENRES占位符。

{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\"","filterValues":{"COUNTRY":"\"Japan\""}} {"itemAttributes": "ITEMS.genres = \"Horror\"","filterValues":{"COUNTRY":"\"United States\"\""}} {"itemAttributes": "ITEMS.genres = \"Action\" AND ITEMS.genres = \"Adventure\"","filterValues":{"COUNTRY":"\"England\""}}

有关按配方分列的批量推理作业输入数据的更多示例,请参阅Batch 分段作业输入和输出 JSON 示例。您可以使用这些示例作为起点并添加上面示例中的filterValues对象。

筛选批处理工作流程(控制台)

要使用 Amazon Personalize 控制台筛选批处理工作流程,您需要创建筛选条件,然后创建批量推理任务或批量分段作业并选择筛选条件。有关完整的分步说明,请参阅创建批量推理作业(控制台)创建批分段分段任务(控制台)

筛选批处理工作流程 (AmazonSDK)

要使用Amazon SDK 筛选批量推荐,请创建筛选器并将FilterArn参数包含在CreateBatchInferenceJobCreateBatchSegmentJob请求中。

以下代码显示如何使用过滤器创建批量推理作业Amazon SDK for Python (Boto3)。我们建议使用不同的位置存储输出数据(文件夹或不同的 Amazon S3 存储桶)。有关所有字段的完整说明,请参见创建批量推理作业 (AmazonSDK)

import boto3 personalize = boto3.client("personalize") personalize_rec.create_batch_inference_job ( solutionVersionArn = "Solution version ARN", jobName = "Batch job name", roleArn = "IAM role ARN", filterArn = "Filter ARN", jobInput = {"s3DataSource": {"path": "S3 input path"}}, jobOutput = {"S3DataDestination": {"path": "S3 output path"}} )