Cómo Amp en Amazon usó datos para aumentar la participación del cliente, Parte 2: Creación de una plataforma de recomendación de programas personalizada con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Cómo Amp en Amazon usó datos para aumentar la participación del cliente, Parte 2: Creación de una plataforma de recomendación de espectáculos personalizada con Amazon SageMaker

Amperio es una nueva aplicación de radio en vivo de Amazon. Con Amp, puede presentar su propio programa de radio y reproducir canciones del catálogo de Amazon Music, o sintonizar y escuchar programas que otros usuarios de Amp presentan. En un entorno donde el contenido es abundante y diverso, es importante adaptar la experiencia del usuario al gusto individual de cada usuario, para que puedan encontrar fácilmente los programas que les gustan y descubrir contenido nuevo que disfrutarían.

Amp utiliza el aprendizaje automático (ML) para proporcionar recomendaciones personalizadas para programas en vivo y futuros de Amp en la página de inicio de la aplicación. Las recomendaciones se calculan mediante un modelo Random Forest que utiliza características que representan la popularidad de un programa (como el número de escuchas y me gusta), la popularidad de un creador (como la cantidad total de veces que se reprodujeron los programas recientes) y las afinidades personales de un usuario. al tema y al creador de un programa. Las afinidades se calculan implícitamente a partir de los datos de comportamiento del usuario o explícitamente a partir de temas de interés (como la música pop, el béisbol o la política) tal como se proporciona en sus perfiles de usuario.

Esta es la Parte 2 de una serie sobre el uso de análisis de datos y ML para Amp y la creación de una plataforma de lista de recomendaciones de programas personalizada. La plataforma ha mostrado un aumento del 3% en las métricas de participación del cliente rastreadas (me gusta un programa, seguir a un creador, habilitar notificaciones de próximos programas) desde su lanzamiento en mayo de 2022.

Consulte Parte 1 para aprender cómo se recopilaron y procesaron los datos de comportamiento utilizando los sistemas de datos y análisis.

Resumen de la solución

El recomendador de espectáculos basado en ML para Amp tiene cinco componentes principales, como se ilustra en el siguiente diagrama de arquitectura:

  1. La aplicación móvil Amp.
  2. Servicios de back-end que recopilan datos de comportamiento, como me gusta y seguidores, así como también transmiten información relacionada con el programa, como actualizaciones de estado cuando los programas se transmiten en vivo.
  3. Ingesta en tiempo real de datos de comportamiento y espectáculos, y computación y almacenamiento de funciones en tiempo real (en línea).
  4. Informática y almacenamiento de funciones por lotes (fuera de línea).
  5. Un sistema de recomendación que maneja las solicitudes entrantes desde el backend de la aplicación para obtener una lista de programas. Esto incluye la inferencia en tiempo real para clasificar programas en función de características personalizadas y no personalizadas.

Esta publicación se centra en las partes 3, 4 y 5 en un esfuerzo por detallar lo siguiente:

El siguiente diagrama muestra la arquitectura de alto nivel y sus componentes.

En las siguientes secciones, brindamos más detalles sobre la computación de funciones en tiempo real, la computación de funciones por lotes, la inferencia en tiempo real, el estado operativo y los resultados que observamos.

Computación de características en tiempo real

Algunas funciones, como el número de Me gusta y de escucha de un programa, deben transmitirse continuamente y usarse tal cual, mientras que otras, como la cantidad de sesiones de escucha de más de 5 minutos, también deben transformarse en tiempo real como datos sin procesar. para las sesiones se transmite. Estos tipos de características donde los valores deben calcularse en el momento de la inferencia se denominan punto en el tiempo (PIT) características. Los datos de las funciones PIT deben actualizarse rápidamente, y la última versión debe escribirse y leerse con baja latencia (menos de 20 milisegundos por usuario para 1,000 programas). Los datos también deben estar en un almacenamiento duradero porque los datos faltantes o parciales pueden causar recomendaciones deterioradas y una mala experiencia del cliente. Además de la latencia de lectura/escritura, las funciones PIT también requieren un tiempo de reflexión bajo. El tiempo de reflexión es el tiempo que tarda una función en estar disponible para leer después de que se emitieron los eventos contribuyentes, por ejemplo, el tiempo entre que a un oyente le gusta un programa y se actualiza la función PIT LikeCount.

Las fuentes de los datos son los servicios de back-end que sirven directamente a la aplicación. Algunos de los datos se transforman en métricas que luego se transmiten a través de Servicio de notificación simple de Amazon (Amazon SNS) a oyentes posteriores, como la canalización de transformación de características de ML. Una base de datos en memoria como MemoryDB es un servicio ideal para almacenamiento duradero y rendimiento ultrarrápido en grandes volúmenes. El componente informático que transforma y escribe funciones en MemoryDB es Lambda. El tráfico de aplicaciones sigue patrones diarios y semanales de picos y caídas según la hora y el día. Lambda permite el escalado automático al volumen entrante de eventos. La naturaleza independiente de cada transformación de métrica individual también hace que Lambda, que es un servicio sin estado en sí mismo, sea una buena opción para este problema. Poniendo Servicio de cola simple de Amazon (Amazon SQS) entre Amazon SNS y Lambda no solo evita la pérdida de mensajes, sino que también actúa como un búfer para ráfagas inesperadas de tráfico que los límites de simultaneidad de Lambda preconfigurados pueden no ser suficientes para atender.

Computación de funciones por lotes

Las características que utilizan datos de comportamiento históricos para representar el gusto en constante evolución de un usuario son más complejas de calcular y no se pueden calcular en tiempo real. Estas funciones se calculan mediante un proceso por lotes que se ejecuta cada cierto tiempo, por ejemplo, una vez al día. Los datos para las funciones por lotes deben admitir consultas rápidas para el filtrado y la agregación de datos, y pueden abarcar largos períodos de tiempo, por lo que tendrán un volumen mayor. Debido a que las funciones por lotes también se recuperan y envían como entradas para la inferencia en tiempo real, aún deben leerse con baja latencia.

La recopilación de datos sin procesar para la computación de funciones por lotes no tiene el requisito de tiempo de reflexión de menos de un minuto que tienen las funciones PIT, lo que hace posible almacenar en búfer los eventos por más tiempo y transformar las métricas por lotes. Esta solución utilizó Kinesis Data Firehose, un servicio administrado para ingerir rápidamente datos de transmisión en varios destinos, incluidos Servicio de almacenamiento simple de Amazon (Amazon S3) para conservar las métricas en el lago de datos de S3 para utilizarlas en los cálculos fuera de línea. Kinesis Data Firehose proporciona un búfer de eventos y la integración de Lambda para recopilar, transformar por lotes y conservar fácilmente estas métricas en Amazon S3 para que las utilice posteriormente la función de computación por lotes. Los cálculos de funciones por lotes no tienen los mismos requisitos de lectura/escritura de baja latencia que las funciones PIT, lo que hace que Amazon S3 sea la mejor opción porque proporciona almacenamiento duradero y de bajo costo para almacenar estos grandes volúmenes de métricas comerciales.

Nuestro modelo de aprendizaje automático inicial utiliza 21 funciones por lotes que se calculan diariamente con los datos capturados en los últimos 2 meses. Estos datos incluyen tanto el historial de reproducción como el de interacción con la aplicación por usuario, y crece con la cantidad de usuarios y la frecuencia de uso de la aplicación. La ingeniería de funciones a esta escala requiere un proceso automatizado para extraer los datos de entrada necesarios, procesarlos en paralelo y exportar el resultado al almacenamiento persistente. La infraestructura de procesamiento es necesaria solo durante la duración de los cálculos. Procesamiento SageMaker proporciona imágenes de Docker prediseñadas que incluyen Apache Spark y otras dependencias necesarias para ejecutar trabajos de procesamiento de datos distribuidos a gran escala. SageMaker administra completamente la infraestructura subyacente para un trabajo de procesamiento. Los recursos del clúster se aprovisionan durante la duración de su trabajo y se limpian cuando se completa un trabajo.

Cada paso en el proceso por lotes (recopilación de datos, ingeniería de características, persistencia de características) es parte de un flujo de trabajo que requiere manejo de errores, reintentos y transiciones de estado en el medio. Con Funciones de paso de AWS, puede crear una máquina de estado y dividir su flujo de trabajo en varios pasos de preprocesamiento y posprocesamiento, así como un paso para conservar las funciones en SageMaker Feature Store o los demás datos en Amazon S3. Una máquina de estado en Step Functions se puede activar a través de Puente de eventos de Amazon para automatizar el cómputo por lotes para que se ejecute en un horario establecido, como una vez al día a las 10:00 p. m. UTC.

Una vez que se calculan las características, es necesario versionarlas y almacenarlas para poder leerlas durante la inferencia, así como también durante el reentrenamiento del modelo. En lugar de crear su propio servicio de gestión y almacenamiento de funciones, puede utilizar SageMaker Feature Store. Feature Store es un repositorio totalmente administrado y especialmente diseñado para almacenar, compartir y administrar funciones para modelos de ML. Almacena el historial de funciones de ML en la tienda fuera de línea (Amazon S3) y también proporciona API a una tienda en línea para permitir lecturas de baja latencia de las funciones más recientes. La tienda fuera de línea puede servir los datos históricos para una mayor capacitación y experimentación del modelo, y las API orientadas al cliente pueden llamar a la tienda en línea para obtener características para la inferencia en tiempo real. A medida que evolucionamos nuestros servicios para brindar contenido más personalizado, anticipamos entrenar modelos ML adicionales y, con la ayuda de Feature Store, buscar, descubrir y reutilizar funciones entre estos modelos.

Inferencia en tiempo real

La inferencia en tiempo real generalmente requiere alojar modelos ML detrás de puntos finales. Puede hacer esto usando servidores web o contenedores, pero esto requiere un esfuerzo de ingeniería de ML y una infraestructura para administrar y mantener. SageMaker facilita la implementación de modelos ML en puntos finales en tiempo real. SageMaker le permite entrenar y cargar modelos ML y alojarlos mediante la creación y configuración de puntos finales de SageMaker. La inferencia en tiempo real satisface los requisitos de baja latencia para clasificar los programas a medida que se exploran en la página de inicio de Amp.

Además del hospedaje administrado, SageMaker proporciona escalado de terminales administrados. La inferencia de SageMaker le permite definir una política de escalado automático con recuentos mínimos y máximos de instancias y una utilización objetivo para activar el escalado. De esta manera, puede escalar hacia adentro o hacia afuera fácilmente a medida que cambia la demanda.

Salud operativa

La cantidad de eventos que maneja este sistema para la computación de funciones en tiempo real cambia de acuerdo con el patrón natural de uso de la aplicación (tráfico más alto o más bajo según la hora del día o el día de la semana). Del mismo modo, la cantidad de solicitudes que recibe para escalas de inferencia en tiempo real con la cantidad de usuarios de aplicaciones simultáneos. Estos servicios también obtienen picos de tráfico inesperados debido a las autopromociones en las redes sociales por parte de creadores populares. Si bien es importante asegurarse de que el sistema pueda escalar hacia arriba y hacia abajo para atender el tráfico entrante de manera exitosa y frugal, también es importante monitorear las métricas operativas y alertar sobre cualquier problema operativo inesperado para evitar la pérdida de datos y servicios a los clientes. Monitorear la salud de estos servicios es sencillo usando Reloj en la nube de Amazon. Las métricas vitales del estado del servicio, como las fallas y la latencia de las operaciones, así como las métricas de utilización, como el uso de la memoria, el disco y la CPU, están disponibles de forma inmediata con CloudWatch. Nuestro equipo de desarrollo utiliza paneles de métricas y monitoreo automatizado para garantizar que podamos atender a nuestros clientes con alta disponibilidad (99.8 %) y baja latencia (menos de 200 milisegundos de extremo a extremo para obtener programas recomendados por usuario).

Midiendo el resultado

Antes del recomendador de programas basado en ML descrito en esta publicación, un algoritmo heurístico más simple clasificaba los programas de Amp en función de los temas de interés personales de un usuario que se informan en su perfil. Configuramos una prueba A/B para medir el impacto de cambiar a recomendadores basados ​​en ML con los datos de un usuario de sus interacciones anteriores con la aplicación. Identificamos mejoras en métricas como la duración de la escucha y la cantidad de acciones de participación (me gusta un programa, seguir al creador del programa, activar las notificaciones) como indicadores de éxito. Las pruebas A/B con el 50 % de los usuarios que reciben recomendaciones de programas clasificadas para ellos a través del recomendador basado en ML han mostrado un aumento del 3 % en las métricas de participación del cliente y una mejora del 0.5 % en la duración de la reproducción.

Conclusión

Con servicios especialmente diseñados, el equipo de Amp pudo lanzar la API de recomendación de espectáculos personalizada como se describe en esta publicación a producción en menos de 3 meses. El sistema también se adapta bien a las cargas impredecibles creadas por presentadores de espectáculos conocidos o campañas de marketing que podrían generar una afluencia de usuarios. La solución utiliza servicios gestionados para el procesamiento, la formación y el alojamiento, lo que ayuda a reducir el tiempo dedicado al mantenimiento diario del sistema. También podemos monitorear todos estos servicios administrados a través de CloudWatch para garantizar la salud continua de los sistemas en producción.

Las pruebas A/B de la primera versión del recomendador basado en ML de Amp contra un enfoque basado en reglas (que ordena los programas solo por temas de interés del cliente) han demostrado que el recomendador basado en ML expone a los clientes a contenido de mayor calidad de temas más diversos. , lo que resulta en un mayor número de seguimientos y notificaciones habilitadas. El equipo de Amp trabaja continuamente para mejorar los modelos y brindar recomendaciones altamente relevantes.

Para obtener más información sobre Feature Store, visite Tienda de funciones de Amazon SageMaker y consulte otros casos de uso de clientes en el Blog de aprendizaje automático de AWS.


Sobre los autores

Cómo Amp en Amazon usó datos para aumentar la participación del cliente, Parte 2: Creación de una plataforma de recomendación de programas personalizada con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Tulipán Gupta es arquitecto de soluciones en Amazon Web Services. Trabaja con Amazon para diseñar, construir e implementar soluciones tecnológicas en AWS. Ayuda a los clientes a adoptar las mejores prácticas al implementar la solución en AWS y es una entusiasta de Analytics y ML. En su tiempo libre, le gusta nadar, caminar y jugar juegos de mesa.

Cómo Amp en Amazon usó datos para aumentar la participación del cliente, Parte 2: Creación de una plataforma de recomendación de programas personalizada con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.david kuo es arquitecto de soluciones en Amazon Web Services. Trabaja con clientes de AWS para diseñar, crear e implementar soluciones tecnológicas en AWS. Trabaja con clientes de medios y entretenimiento y tiene intereses en tecnologías de aprendizaje automático. En su tiempo libre, se pregunta qué debería hacer con su tiempo libre.

Cómo Amp en Amazon usó datos para aumentar la participación del cliente, Parte 2: Creación de una plataforma de recomendación de programas personalizada con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Manolia McCormick es ingeniero sénior de desarrollo de software para Amp en Amazon. Ella diseña y construye sistemas distribuidos usando AWS para servir aplicaciones orientadas al cliente. Le gusta leer y cocinar nuevas recetas en su tiempo libre.

Cómo Amp en Amazon usó datos para aumentar la participación del cliente, Parte 2: Creación de una plataforma de recomendación de programas personalizada con Amazon SageMaker PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.jeff christophersen es ingeniero de datos sénior para Amp en Amazon. Trabaja para diseñar, crear e implementar soluciones de Big Data en AWS que generen información procesable. Ayuda a los equipos internos a adoptar soluciones escalables y automatizadas, y es un entusiasta de Analytics y Big Data. En su tiempo libre, cuando no está sobre un par de esquís, puedes encontrarlo en su bicicleta de montaña.

Sello de tiempo:

Mas de Aprendizaje automático de AWS