本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
筛选批量推荐和用户细分
筛选批量推荐和用户细分的工作原理与筛选实时推荐几乎相同。它遵循中所述的相同工作流程获取批量推荐和用户细分。要筛选批推荐或用户细分,请执行以下操作:
-
像创建实时推荐一样创建过滤器。有关更多信息,请参阅 筛选实时推荐。
-
准备输入数据并将其上传到 Amazon S3准备和导入批量输入数据。
如果您的过滤器使用占位符参数,则必须添加其他
filterValues
对象。有关更多信息,请参阅在您的输入 JSON 中提供过滤器值:如果您的过滤器不使用占位符参数,则您的输入数据可以遵循中的示例输入与输出 JSON 示例。 -
为您的输出数据创建一个单独的位置,可以是文件夹,也可以是其他 Amazon S3 存储桶。
-
批量推理或批量分段任务完成后,从 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
参数包含在CreateBatchInferenceJob或CreateBatchSegmentJob请求中。
以下代码显示如何使用过滤器创建批量推理作业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
"}} )