Filtrado de las recomendaciones por lotes y segmentos de usuarios (recursos personalizados) - Amazon Personalize

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Filtrado de las recomendaciones por lotes y segmentos de usuarios (recursos personalizados)

El filtrado de recomendaciones por lotes y segmentos de usuarios funciona casi igual que el filtrado de recomendaciones en tiempo real. Sigue el mismo flujo de trabajo descrito en Recomendaciones por lotes y segmentos de usuarios (recursos personalizados). Para filtrar recomendaciones por lotes o segmentos de usuarios, haga lo siguiente:

  1. Cree un filtro como lo haría para las recomendaciones en tiempo real. Para más información, consulte Filtrado de recomendaciones en tiempo real.

  2. Prepare los datos de entrada y súbalos a Amazon S3 tal y como se describe en Preparación de los datos de entrada para las recomendaciones por lotes o Preparación de los datos de entrada para los segmentos de usuarios. Si el filtro utiliza parámetros de marcadores de posición, debe añadir un objeto filterValues adicional. Para obtener más información, consulte Proporcionar valores de filtro en su JSON de entrada. Si el filtro no usa parámetros de marcadores de posición, los datos de entrada pueden seguir los ejemplos de Ejemplos de JSON de entrada y salida de trabajos de inferencia por lotes Ejemplos de JSON de entrada y salida de trabajos de segmentos por lotes

  3. Cree una ubicación independiente para sus datos de salida, ya sea una carpeta o un bucket de Amazon S3 diferente.

  4. Cree un trabajo de inferencia por lotes o un trabajo de segmento por lotes. Al crear el volumen, especifique el nombre de recurso de Amazon (ARN) del filtro.

  5. Cuando se complete el trabajo segmento de lotes o inferencia por lotes, recupere las recomendaciones o los segmentos de usuarios de su ubicación de salida en Amazon S3.

Proporcionar valores de filtro en su JSON de entrada

En el caso de los filtros con parámetros de marcadores de posición, como $GENRE, debe proporcionar los valores de los parámetros de un objeto filterValues en el JSON de entrada. En el caso de un objeto filterValues, cada clave es un nombre de parámetro. Cada valor es el criterio que se pasa como parámetro. Rodee cada valor con comillas con caracteres de escape: "filterValues":{"GENRES":"\"drama\""}. Para varios valores, separe cada valor con una coma: "filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}

Ejemplo de JSON de entrada de trabajo de inferencia por lotes

El siguiente es un ejemplo de las primeras líneas de un archivo de entrada JSON para un trabajo de inferencia por lotes. El ejemplo incluye el objeto filterValues. La clave GENRES corresponde a un marcador de posición $GENRES en la expresión del filtro. El trabajo de este ejemplo utiliza la receta User-Personalization. Para las recetas RELATED_ITEMS, proporcione un itemId en lugar del userId. Para las recetas PERSONALIZED_RANKING, proporcione el userID y una itemList.

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

Para ver más ejemplos de datos de entrada de trabajos de inferencia por lotes según la receta, consulte Ejemplos de JSON de entrada y salida de trabajos de inferencia por lotes. Puede utilizar estos ejemplos como punto de partida y añadir el objeto filterValues del ejemplo anterior.

Ejemplo de JSON de entrada de trabajo de segmento por lotes

El siguiente es un ejemplo de las primeras líneas de un archivo de entrada JSON con valores de filtro para un trabajo de segmento por lotes. La clave GENRES corresponde a un marcador de posición $GENRES en la expresión del filtro.

{"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\""}}

Para ver más ejemplos de datos de entrada de trabajos de inferencia por lotes según la receta, consulte Ejemplos de JSON de entrada y salida de trabajos de segmentos por lotes. Puede utilizar estos ejemplos como punto de partida y añadir el objeto filterValues del ejemplo anterior.

Filtrado de flujos de trabajo por lotes (consola)

Para filtrar los flujos de trabajo por lotes con la consola de Amazon Personalize, debe crear un filtro y, a continuación, crear un trabajo de inferencia por lotes o un trabajo de segmento por lote y elegir el filtro. Para obtener instrucciones paso a paso, consulte Creación de un trabajo de inferencia por lotes (consola) y Creación de un trabajo de segmento por lotes (consola).

Filtrado de flujos de trabajo por lotes (SDK de AWS )

Para filtrar las recomendaciones de lotes con AWS los SDK, cree un filtro e incluya el FilterArn parámetro en la CreateBatchSegmentJob solicitud CreateBatchInferenceJob o.

En el siguiente código se muestra cómo crear un trabajo de inferencia por lotes con un filtro mediante AWS SDK for Python (Boto3). Recomendamos que utilice una ubicación diferente para sus datos de salida (ya sea una carpeta o un bucket de Amazon S3 diferente). Para obtener una explicación completa de todos los campos, consulte Crear un trabajo de inferencia por lotes (AWS 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 = {"S3DataDestination": {"path": "S3 output path"}} )