Cómo Meesho creó un clasificador de feeds generalizado utilizando la inferencia de Amazon SageMaker

Esta es una publicación invitada coescrita por Rama Badrinath, Divay Jindal y Utkarsh Agrawal en Meesho.


Meesho es la empresa de comercio electrónico de más rápido crecimiento de la India con la misión de democratizar el comercio por Internet para todos y hacerlo accesible a los próximos mil millones de usuarios de la India. Meesho se fundó en 2015 y hoy se centra en compradores y vendedores de toda la India. El mercado de Meesho brinda a las micro, pequeñas y medianas empresas y a los empresarios individuales acceso a millones de clientes, una selección de más de 30 categorías y más de 900 subcategorías, logística en toda la India, servicios de pago y capacidades de atención al cliente para administrar eficientemente sus negocios. empresas en el ecosistema de Meesho.

Como plataforma de comercio electrónico, Meesho tiene como objetivo mejorar la experiencia del usuario ofreciendo recomendaciones de productos personalizadas y relevantes. Queríamos crear un clasificador de feeds generalizado que considere las preferencias individuales y el comportamiento histórico para mostrar productos de manera efectiva en el feed de cada usuario. A través de esto, queríamos impulsar la participación de los usuarios, las tasas de conversión y el crecimiento comercial general adaptando la experiencia de compra a los requisitos únicos de cada cliente y brindando el mejor valor por su dinero.

Usamos servicios de aprendizaje automático (ML) de AWS como Amazon SageMaker para desarrollar un poderoso clasificador de alimentación generalizado (GFR). En esta publicación, analizamos los componentes clave de GFR y cómo esta solución impulsada por ML simplificó el ciclo de vida de ML, garantizando una gestión eficiente de la infraestructura, escalabilidad y confiabilidad dentro del ecosistema.

Descripción general de la solución

Para personalizar los feeds de los usuarios, analizamos extensos datos históricos, extrayendo información sobre características que incluyen patrones e intereses de navegación. Estas valiosas características se utilizan para construir modelos de clasificación. El GFR personaliza el feed de cada usuario en tiempo real, considerando varios factores como la geografía, el patrón de compra anterior, los canales de adquisición y más. También se utilizan varias funciones basadas en interacción para capturar la afinidad del usuario hacia un artículo, categoría de artículo o propiedades del artículo como precio, calificación o descuento.

También se utilizan varias características independientes del usuario y puntuaciones a nivel de elemento. Estos incluyen una puntuación de popularidad del artículo y una puntuación de propensión a comprar del artículo. Todas estas características sirven como entrada para el modelo Learning to Rank (LTR) que intenta emitir la probabilidad de clic (PCTR) y la probabilidad de compra (PCVR).

Para obtener recomendaciones diversas y relevantes, GFR obtiene productos candidatos de múltiples canales, incluidos exploits (preferencias de usuario conocidas), exploración (productos novedosos y potencialmente interesantes), popularidad (artículos de tendencia) y recientes (últimas incorporaciones).

El siguiente diagrama ilustra la arquitectura GFR.

La arquitectura se puede dividir en dos componentes diferentes: entrenamiento de modelos e implementación de modelos. En las siguientes secciones, analizamos cada componente y los servicios de AWS utilizados con más detalle.

Entrenamiento modelo

Meesho usado EMR de Amazon con Apache Spark para procesar cientos de millones de puntos de datos, según la complejidad del modelo. Uno de los principales desafíos fue realizar capacitación distribuida a escala. Usamos Dask, un marco informático de ciencia de datos distribuido que se integra de forma nativa con las bibliotecas de Python, en Amazon EMR para ampliar los trabajos de capacitación en todo el clúster. La capacitación distribuida del modelo ayudó a reducir el tiempo de capacitación de días a horas y nos permitió programar trabajos de Spark de manera eficiente y rentable. Utilizamos un almacén de funciones fuera de línea para mantener un registro histórico de todos los valores de funciones que se utilizarán para el entrenamiento del modelo. Los artefactos del modelo del entrenamiento se almacenan en Servicio de almacenamiento simple de Amazon (Amazon S3), proporcionando acceso conveniente y administración de versiones.

Utilizamos una estrategia de muestreo de tiempo para crear conjuntos de datos de entrenamiento, validación y prueba para el entrenamiento de modelos. Realizamos un seguimiento de varias métricas para evaluar el rendimiento del modelo; las más importantes son el área bajo la curva ROC y el área bajo la curva de recuperación de precisión. También realizamos un seguimiento de la calibración del modelo para evitar problemas de exceso y falta de confianza al predecir las puntuaciones de probabilidad.

Implementación del modelo

Meesho utilizó puntos finales de inferencia de SageMaker con escalado automático habilitado para implementar el modelo entrenado. SageMaker ofreció facilidad de implementación con soporte para varios marcos de aprendizaje automático, lo que permitió ofrecer modelos con baja latencia. Aunque AWS ofrece imágenes de inferencia estándar adecuadas para la mayoría de los casos de uso, creamos una imagen de inferencia personalizada que satisface específicamente nuestras necesidades y la implementamos. Registro de contenedores elásticos de Amazon (Amazon ECR).

Construimos una plataforma de pruebas A/B interna que facilitó el monitoreo en vivo de las métricas A/B, lo que nos permitió tomar decisiones basadas en datos con prontitud. También utilizamos el Pruebas A/B Característica de SageMaker para implementar múltiples variantes de producción en un punto final. A través de experimentos A/B, observamos una mejora aproximada del 3,5 % en la tasa de conversión de la plataforma y un aumento en la frecuencia de apertura de la aplicación por parte de los usuarios, lo que destaca la efectividad de este enfoque.

Realizamos un seguimiento de varias desviaciones, como la desviación de características y la desviación anterior, varias veces al día después de la implementación del modelo para evitar que el rendimiento del modelo se deteriore.

Nosotros usamos AWS Lambda para configurar varias automatizaciones y activadores que se requieren durante el reentrenamiento del modelo, las actualizaciones de endpoints y los procesos de monitoreo.

El flujo de trabajo de recomendación después de la implementación del modelo funciona de la siguiente manera (como se indica en el diagrama de arquitectura de la solución):

  1. Las solicitudes de entrada con contexto de usuario y funciones de interacción se reciben en la capa de aplicación desde la aplicación web y móvil de Meesho.
  2. La capa de aplicación obtiene características adicionales, como datos históricos del usuario, de la tienda de características en línea y los agrega a las solicitudes de entrada.
  3. Las funciones adjuntas se envían a los puntos finales en tiempo real para generar recomendaciones.
  4. Las predicciones del modelo se envían de vuelta a la capa de aplicación.
  5. La capa de aplicación utiliza estas predicciones para personalizar los feeds de los usuarios en la aplicación móvil o web.

Conclusión

Meesho implementó con éxito un clasificador de feeds generalizado utilizando SageMaker, lo que resultó en recomendaciones de productos altamente personalizadas para cada cliente en función de sus preferencias y comportamiento histórico. Este enfoque mejoró significativamente la participación de los usuarios y generó tasas de conversión más altas, lo que contribuyó al crecimiento comercial general de la empresa. Como resultado de utilizar los servicios de AWS, el tiempo de ejecución de nuestro ciclo de vida de ML se redujo significativamente, de meses a solo semanas, lo que generó una mayor eficiencia y productividad para nuestro equipo.

Con este clasificador de feeds avanzado, Meesho continúa brindando experiencias de compra personalizadas, agregando más valor a sus clientes y cumpliendo su misión de democratizar el comercio electrónico para todos.

El equipo agradece el continuo apoyo y orientación de Ravindra YadavDirector de Ciencia de Datos en Meesho, y Debdoot MukherjeeJefe de IA en Meesho, quien jugó un papel clave para permitir este éxito.

Para obtener más información sobre SageMaker, consulte la Guía para desarrolladores de Amazon SageMaker.


Sobre los autores

Utkarsh Agrawal Actualmente trabaja como científico de datos senior en Meesho. Anteriormente trabajó con Fractal Analytics y Trell en varios dominios, incluidos sistemas de recomendación, series temporales, PNL y más. Tiene una maestría en Matemáticas y Computación del Instituto Indio de Tecnología Kharagpur (IIT), India.

Rama Badrinath Actualmente trabaja como científico de datos principal en Meesho. Anteriormente trabajó con Microsoft y ShareChat en varios dominios, incluidos sistemas de recomendación, IA de imágenes, PNL y más. Tiene una maestría en Aprendizaje Automático del Instituto Indio de Ciencias (IISc), India. También ha publicado artículos en congresos de renombre como KDD y ECIR.

Divay Jindal Actualmente trabaja como científico de datos líder en Meesho. Anteriormente trabajó con Bookmyshow en varios dominios, incluidos sistemas de recomendación y precios dinámicos.

Venugopal Pai es arquitecto de soluciones en AWS. Vive en Bengaluru, India, y ayuda a los clientes nativos digitales a escalar y optimizar sus aplicaciones en AWS.