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

筛选批量建议和用户细分(自定义资源)

筛选批量建议和用户细分的工作方式与筛选实时建议几乎相同。它遵循批量建议和用户细分(自定义资源)中描述的相同工作流程。要筛选批量建议或用户细分,请执行以下操作:

  1. 创建筛选器,就像针对实时建议创建筛选器一样。有关更多信息,请参阅筛选实时建议

  2. 准备您的输入数据并将其上传到 Amazon S3,如为批量建议准备输入数据为用户细分准备输入数据中所述。如果您的筛选器使用占位符参数,则必须添加其他 filterValues 对象。有关更多信息,请参阅在您的输入 JSON 中提供筛选器值。如果您的筛选器不使用占位符参数,则您的输入数据可以遵循批量推理作业输入和输出 JSON 示例 批量细分作业输入和输出 JSON 示例中的示例

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

  4. 创建批量推理作业批量细分作业。创建作业时,指定筛选器的 Amazon 资源名称 (ARN)。

  5. 批量推理或批量细分作业完成后,从 Amazon S3 的输出位置检索建议或用户细分。

在您的输入 JSON 中提供筛选器值

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

批量推理作业输入 JSON 示例

以下是批量推理作业 的 JSON 输入文件前几行的示例。该示例包括 filterValues 对象。GENRES 键对应于筛选器表达式中的 $GENRES 占位符。此示例中的作业使用 User-Personalization 配方。对于 RELATED_ITEMS 配方,提供 itemId,而不是 userId。对于 PERSONALIZED_RANKING 配方,提供 userID 和 itemList。

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

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

批量细分作业输入 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\""}}

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

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

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

筛选批量工作流程 (Amazon SDK)

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

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

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 = e {"S3DataDestination": {"path": "S3 output path"}} )