Amazon Personalizar
Amazon Personalize es como tener tu propio sistema de recomendación de aprendizaje automático de Amazon durante todo el día. Basado en más de 20 años de experiencia en recomendaciones, Amazon Personalize te permite mejorar la interacción con los clientes mediante recomendaciones personalizadas de productos y contenidos en tiempo real y promociones de marketing específicas.
Esta integración es mantenida por Amazon Personalize.
Acerca de la integración
Mediante aprendizaje automático y un algoritmo que tú ayudas a definir, Amazon Personalize puede ayudarte a entrenar un modelo que genere recomendaciones de alta calidad para tus sitios web y aplicaciones. Estos modelos te permitirán crear listas de recomendaciones basadas en los comportamientos pasados de los usuarios, ordenar elementos por relevancia y recomendar otros elementos en función de su similitud. Las listas obtenidas de la API de Amazon Personalize pueden utilizarse en el contenido conectado de Braze para ejecutar campañas de recomendación personalizadas en Braze. Al integrarse con Amazon Personalize, los clientes tienen la libertad de controlar los parámetros utilizados para entrenar los modelos y definir objetivos empresariales opcionales que optimicen la salida del algoritmo.
Este artículo de referencia te ayudará a comprender los ejemplos que ofrece Amazon Personalize, los datos con los que trabaja, cómo configurar el servicio y cómo integrarlo con Braze.
Requisitos previos
| Requisito | Descripción |
|---|---|
| Cuenta de Amazon Web Service | Se requiere una cuenta de AWS para aprovechar esta integración. Una vez que tengas una cuenta de AWS, puedes acceder a Amazon Personalize a través de la consola de Amazon Personalize, la interfaz de línea de comandos de AWS (AWS CLI) o los SDK de AWS. |
| Casos de uso definidos | Antes de crear un modelo, debes determinar tu caso de uso para esta integración. Consulta la siguiente lista de casos de uso comunes. |
| Conjuntos de datos | Los modelos de recomendación de Amazon Personalize requieren tres tipos diferentes de conjuntos de datos: interacciones, usuarios y elementos. Consulta los siguientes detalles para ver los requisitos de cada conjunto de datos. |
Casos de uso
Antes de crear un modelo, debes determinar tu caso de uso para esta integración. Algunos casos de uso comunes incluyen:
- Recomendar elementos a los usuarios en función de sus interacciones anteriores, creando una experiencia verdaderamente personalizada para tus usuarios.
- Proporcionar una lista de elementos o resultados de búsqueda adaptados a cada usuario, aumentando la participación al mostrar elementos por relevancia para el usuario.
- Encontrar recomendaciones de elementos similares, ayudando a los usuarios a descubrir cosas nuevas.
En la siguiente guía, nos centraremos en la receta de recomendaciones personalizadas para el usuario.
Conjuntos de datos
Para comenzar con los modelos de recomendación de Amazon Personalize, necesitas tres tipos de conjuntos de datos:
- Interacciones
- Almacena las interacciones históricas entre usuarios y elementos
- Requiere los valores
USER_ID,ITEM_ID,EVENT_TYPEyTIMESTAMP, y opcionalmente acepta metadatos sobre el evento
- Usuarios
- Almacena metadatos sobre los usuarios
- Requiere un valor
USER_IDy al menos un campo de metadatos (cadena o numérico) como género, edad o membresía de fidelización
- Elementos
- Almacena metadatos sobre los elementos
- Requiere un
ITEM_IDy al menos un campo de metadatos (textual, categórico o numérico) que describa el elemento
Para una receta de recomendaciones de usuario, debes proporcionar un conjunto de datos de interacciones que contenga al menos 1000 puntos de datos de interacción de al menos 25 usuarios únicos con al menos dos interacciones cada uno. Estos conjuntos de datos se pueden cargar de forma masiva utilizando archivos CSV almacenados en S3 o de forma incremental a través de la API.
Creación de modelos
Paso 1: Entrenamiento
Una vez importados los conjuntos de datos, puedes crear una solución. Una solución utiliza una de las recetas (algoritmos) de Amazon Personalize para entrenar un modelo. En nuestro caso, utilizaremos la receta USER_PERSONALIZATION. El entrenamiento de la solución crea una versión de la solución (modelo entrenado) que puedes evaluar en función de las métricas de rendimiento del modelo.
Amazon Personalize te permite ajustar los hiperparámetros que el modelo utiliza para el entrenamiento. Por ejemplo:
- El parámetro “User history length percentile” que se encuentra en la consola de Amazon Personalize te permite ajustar el percentil del historial de usuario que se incluye en el entrenamiento:
min_user_history_length_percentile: excluye un porcentaje de usuarios con historiales muy cortos, lo cual puede ser útil para eliminar artículos populares y construir recomendaciones basadas en patrones subyacentes más profundos.max_user_history_length_percentile: ajusta el porcentaje de usuarios a tener en cuenta durante el entrenamiento con historiales muy largos.
El número de dimensiones ocultas ayuda a detectar patrones más complicados en conjuntos de datos complejos, mientras que la técnica de retropropagación a través del tiempo (BPTT) ajusta las recompensas de un evento temprano después de una cadena de eventos que resultó en una acción de alto valor.
Además, Amazon Personalize ofrece ajuste automático de hiperparámetros ejecutando múltiples versiones de la solución con diferentes valores de forma simultánea. Para utilizar el ajuste, activa Perform HPO al crear una solución.
Paso 2: Evaluar y comparar
Una vez que una solución termina de entrenarse, estás listo para evaluarla y comparar diferentes versiones. Cada versión de la solución muestra métricas calculadas. Algunas de las métricas disponibles incluyen:
- Ganancia acumulada descontada normalizada: compara el orden recomendado de los artículos con la lista real de artículos y asigna a cada artículo un peso correspondiente a su posición en la lista
- Precisión @k: la cantidad de artículos correctamente recomendados dividida por la cantidad total de artículos recomendados, donde
kes el número de artículos - Rango recíproco medio: se centra en la primera recomendación con el rango más alto y calcula cuántos artículos recomendados se ven antes de que aparezca la primera recomendación coincidente
- Cobertura: la proporción de artículos únicos recomendados respecto al número total de artículos únicos en el conjunto de datos
Obtener recomendaciones
Una vez que hayas creado una versión de solución con la que estés conforme, es momento de poner las recomendaciones en práctica. Hay dos formas de acceder a las recomendaciones:
- Campaign en tiempo real
Una Campaign es una versión de solución desplegada con un rendimiento mínimo de transacciones definido. Una transacción es una única llamada a la API para obtener resultados de recomendación, y se define como TPS, o transacciones por segundo, con un valor mínimo de uno. La Campaign escalará los recursos en caso de una carga mayor, pero no descenderá por debajo de tu valor mínimo. Puedes consultar las recomendaciones en la consola, la AWS CLI o a través de los SDK de AWS en tu código. - Trabajo por lotes
Un trabajo por lotes exporta las recomendaciones a un contenedor de S3. El trabajo toma como entrada un archivo JSON con una lista de ID de usuario para los cuales deseas exportar las recomendaciones. Luego, después de especificar los permisos correctos y el destino de salida, estarás listo para ejecutar el trabajo. El tiempo de ejecución depende del tamaño de tus conjuntos de datos y de la longitud de la lista de recomendaciones.
Filtros
Los filtros te permiten ajustar los resultados de las recomendaciones excluyendo elementos según el ID del elemento, el tipo de evento o los metadatos. También puedes filtrar usuarios en función de sus metadatos, como la edad o el estado de membresía de fidelización, y evitar recomendar elementos con los que el usuario ya haya interactuado.
Integración de resultados con Braze
Con el modelo y la campaña de recomendaciones creados, estás listo para ejecutar una campaña de Braze para tus usuarios utilizando Content Cards y contenido conectado. Antes de ejecutar una campaña de Braze, debes crear un servicio que pueda ofrecer estas recomendaciones a través de una API. Puedes seguir el paso 3 del artículo del taller para desplegar el servicio utilizando los servicios de AWS. También puedes desplegar tu propio servicio backend independiente que proporcione las recomendaciones.
Caso de uso de campaña de tarjeta de contenido
Vamos a ejecutar una campaña de tarjeta de contenido con el primer artículo recomendado de la lista.
En los siguientes ejemplos, vamos a consultar
el endpoint GET http://<service-endpoint.com>/recommendations?user_id=user123 con un parámetro user_id que devolverá una lista de artículos recomendados:
[
{
"id": "abc123",
"url": "http://productpage.com/product/abc123",
"name": "First Item",
"price": 39.99,
"image": "http://pp.cdn.com/abvh3321pjb1j"
},
{
"id": "xyz987",
"url": "http://productpage.com/product/xyz987",
"name": "Great Item",
"price": 19.99,
"image": "http://pp.cdn.com/234bjl1gioj1b2b"
},
...
]
En el panel de Braze, crea una nueva campaña de tarjeta de contenido. En el campo de texto del mensaje, crea un bloque Liquid de contenido conectado para consultar la API y guardar la respuesta en la variable recommendations:
{% connected_content https:/<service-endpoint.com>/recommendations?user_id={{${user_id}}} :save recommendations %}
A continuación, puedes hacer referencia al primer elemento del array resultante y mostrar el contenido al usuario:
This seems like a great fit for you:
{% recommendations[0].name %}
{% recommendations[0].price %}
Incluyendo el título, la imagen y vinculando la URL, así se vería la tarjeta de contenido completa:
