Preparación de los datos de entrada para los segmentos de usuarios - 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.

Preparación de los datos de entrada para los segmentos de usuarios

Los trabajos de segmentos por lotes utilizan una versión de la solución para crear segmentos de usuarios en función de los datos que proporciona en un archivo JSON de entrada. Para poder obtener segmentos de usuarios, debe preparar y subir el archivo JSON a un bucket de Amazon S3. Le recomendamos que cree una carpeta de salida en su bucket de Amazon S3 o utilice un bucket de Amazon S3 de salida independiente. A continuación, puede ejecutar varios trabajos de inferencia por lotes utilizando la misma ubicación de datos de entrada.

Si utiliza un filtro con parámetros de marcadores de posición, por ejemplo, $GENRE, debe proporcionar los valores de los parámetros de un objeto filterValues en el JSON de entrada. Para obtener más información, consulte Incluir valores de filtro en la entrada JSON.

Para preparar e importar datos
  1. Aplique formato a sus datos de entrada del lote en función de la receta que utilice su solución. Separe el elemento de datos de entrada con una línea nueva. Los datos de entrada son una lista de itemIds (Item-Affinity) o atributos de elemento (Item-Attribute-Affinity).

  2. Suba el JSON de entrada a una carpeta de entrada de su bucket de Amazon S3. Para obtener más información, consulte Subida de archivos y carpetas con la función arrastrar y soltar en la Guía del usuario de Amazon Simple Storage Service.

  3. Cree una ubicación independiente para sus datos de salida, ya sea una carpeta o un bucket de Amazon S3 diferente. Al crear una ubicación independiente para el JSON de salida, puede ejecutar varios trabajos de segmentos por lotes con la misma ubicación de datos de entrada.

Una vez que haya preparado los datos de entrada y los haya cargado en un bucket de Amazon S3, podrá generar segmentos de usuarios con un trabajo de segmentos por lotes. Para obtener más información, consulte Obtención de segmentos de usuario con un trabajo de segmentos por lotes.

Especificación de atributos de elemento para la receta Item-Attribute-Affinity

Si utiliza la receta Item-Attribute-Affinity, los datos de entrada son una lista de atributos de elemento. Puede mezclar diferentes columnas de metadatos. Por ejemplo, una fila puede ser una columna numérica y la siguiente puede ser una columna categórica. No puede usar metadatos de elemento textuales no estructurados como un atributo de elemento.

Los metadatos de elemento de entrada pueden incluir expresiones lógicas con el operador AND para obtener un segmento de usuarios para varios atributos. Por ejemplo, una línea de sus datos de entrada puede ser {"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\""} o {"itemAttributes": "ITEMS.genres = "\Comedy\" AND ITEMS.audience = "\teen\""}.

Al combinar dos atributos con el operador AND, crea un segmento de usuario con los usuarios que tienen más probabilidades de interactuar con los elementos que tienen ambos atributos en función del historial de interacciones de usuarios. A diferencia de las expresiones de filtro (que utilizan el operador IN para igualdad de cadena), las expresiones de entrada de segmentos por lotes solo admiten el símbolo = para igualdad para la coincidencia de cadenas.

Ejemplos de JSON de entrada y salida de trabajos de segmentos por lotes

Para un trabajo de segmentos por lotes, los datos de entrada deben ser una lista de itemIds (receta Item-Affinity) o atributos de elemento (Item-Attribute-Affinity). Cada línea de datos de entrada es una consulta de inferencia independiente. Cada segmento de usuario se ordena en orden descendente en función de la probabilidad de que cada usuario interactúe con los elementos de su inventario.

Si utiliza un filtro con parámetros de marcadores de posición, por ejemplo, $GENRE, debe proporcionar los valores de los parámetros de un objeto filterValues en el JSON de entrada. Para obtener más información, consulte Incluir valores de filtro en la entrada JSON.

A continuación se muestran ejemplos de entrada y salida JSON con el formato correcto para trabajos de segmentos por lotes organizados por receta.

Item-Affinity

Input

Los datos de entrada pueden tener un máximo de 500 elementos. Separe cada itemId con una nueva línea de la siguiente manera.

{"itemId": "105"} {"itemId": "106"} {"itemId": "441"} ...
Output
{"input": {"itemId": "105"}, "output": {"recommendedUsers": ["106", "107", "49"]}} {"input": {"itemId": "106"}, "output": {"recommendedUsers": ["105", "107", "49"]}} {"input": {"itemId": "441"}, "output": {"recommendedUsers": ["2", "442", "435"]}} ...

Item-Attribute-Affinity

Input

Los datos de entrada pueden tener un máximo de 10 consultas, cada una de las cuales consta de uno o más atributos de elemento no textuales. Separe cada atributo o expresión de atributo con una línea nueva de la siguiente manera.

{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\""} {"itemAttributes": "ITEMS.genres = \"Comedy\""} {"itemAttributes": "ITEMS.genres = \"Horror\" AND ITEMS.genres = \"Action\""} ...
Output
{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\"", "output": {"recommendedUsers": ["25", "78", "108"]}} {"itemAttributes": "ITEMS.genres = \"Adventure\"", "output": {"recommendedUsers": ["87", "31", "129"]}} {"itemAttributes": "ITEMS.genres = \"Horror\" AND ITEMS.genres = \"Action\"", "output": {"recommendedUsers": ["8", "442", "435"]}} ...