Meet Yambda: One of the world’s largest open datasets for RecSys. Los algoritmos de recomendar ayudan a las personas a descubrir los productos adecuados, películas, música y más. Son la columna vertebral de los servicios que van desde las tiendas en línea a las plataformas de streaming.El avance de estos algoritmos depende directamente de la investigación, que a su vez requiere de conjuntos de datos de alta calidad y a gran escala. Sin embargo, la mayoría de los conjuntos de datos de código abierto son pequeños o obsoletos, ya que las empresas que acumulan terabytes de datos rara vez los hacen públicos debido a preocupaciones de privacidad. Este conjunto de datos incluye 4.79 mil millones de interacciones de usuarios anónimas, compiladas a partir de 10 meses de actividad de los usuarios. Elegimos el servicio de música porque es el mayor servicio de streaming basado en suscripción en Rusia, con una audiencia media mensual de 28 millones de usuarios. Una parte significativa del conjunto de datos incluye escuchas agregadas, gustos y disgustos, así como atributos de seguimiento procedentes del sistema de recomendación personalizado. Todos los datos de usuario y seguimiento son anónimos: el conjunto de datos contiene únicamente identificadores numéricos, garantizando la privacidad del usuario. Mi vibración El acceso a datos de alta calidad y a gran escala abre nuevas vías para la investigación científica y engloba a jóvenes investigadores interesados en aplicar el aprendizaje automático a los desafíos del mundo real. Soy Alexander Ploshkin, y dirijo el desarrollo de calidad de la personalización en Yandex. En este artículo, explicaré de qué consiste el conjunto de datos, cómo lo hemos recopilado y cómo puedes usarlo para evaluar nuevos algoritmos de recomendación. ¡Vamos a empezar! ¿Por qué son importantes los conjuntos de datos abiertos a gran escala? Los sistemas de recomendación están experimentando un verdadero renacimiento en los últimos años. Las empresas de tecnología están adoptando cada vez más modelos basados en transformadores, inspirados en el éxito de los grandes modelos de idiomas (LLM) en otros dominios. Lo que hemos aprendido de la visión informática y el procesamiento del lenguaje natural es que el volumen de datos es crucial para la calidad de estos métodos: los transformadores no son muy eficaces en pequeños conjuntos de datos, pero se vuelven casi esenciales una vez que se escalan a miles de millones de tokens. Los conjuntos de datos abiertos realmente a gran escala son una rareza en el dominio de sistemas recomendadores. Conocidos conjuntos de datos como LFM-1B, LFM-2B y el Dataset de Historias de Escucha de Música (27B) se han vuelto indisponibles con el tiempo debido a restricciones de licencia. Actualmente, el récord para el número de interacciones de usuarios es mantenido por el conjunto de datos de publicidad de Criteo, con aproximadamente 4 mil millones de eventos. Esto crea un desafío para los investigadores: la mayoría no tienen acceso a servicios a escala web, lo que significa que no pueden probar algoritmos en condiciones que se asemejan a las implementaciones del mundo real. Los conjuntos de datos populares como MovieLens, Steam o el Premio Netflix contienen, en el mejor de los casos, decenas de millones de interacciones y suelen centrarse en comentarios explícitos, como calificaciones y comentarios. Mientras tanto, los sistemas de recomendación de producción trabajan con señales mucho más diversas y matizadas: clics, likes, escuchas completas, vistas, compras, y así sucesivamente. Hay otro problema crítico: la falta de dinámica temporal.Muchos conjuntos de datos no permiten una división cronológica honesta entre los conjuntos de entrenamiento y pruebas, lo que es crucial para evaluar algoritmos que buscan predecir el futuro, no sólo explicar el pasado. Para abordar estos desafíos y apoyar el desarrollo de nuevos algoritmos en los sistemas de recomendación, estamos lanzando Yambda. Este conjunto de datos es actualmente el mayor recurso abierto para las interacciones de los usuarios en el dominio de recomendación. ¿Qué hay dentro de Yambda? El conjunto de datos incluye interacciones de 1 millón de usuarios con más de 9 millones de canciones del servicio de música, un total de 4.79 mil millones de eventos. Primero, para ser claros: todos los eventos son anónimos. El conjunto de datos utiliza únicamente identificadores numéricos para usuarios, canciones, álbumes y artistas. El conjunto de datos incluye las principales acciones implícitas y explícitas del usuario: Escucha: El usuario escuchó una canción. Como: El usuario le gustó una canción (“Thumbs Up”). Diferentes: El usuario eliminó un Like. No le gusta: El usuario no le gustó una canción (“tombs down”). Unlike: El usuario ha eliminado un dislike. Para hacer el conjunto de datos más accesible, también hemos lanzado muestras más pequeñas que contienen 480 millones y 48 millones de eventos, respectivamente. Las estadísticas resumidas para estos subconjuntos se proporcionan en la tabla siguiente: Los datos se almacenan en el formato Apache Parquet, que es soportado nativamente por las bibliotecas de análisis de datos de Python como Pandas y Polars. Flat: Cada fila representa una única interacción entre un usuario y una pista. Sequencial: Cada fila contiene el historial completo de interacción de un único usuario. La estructura del dataset es la siguiente: Una característica clave de Yambda es la Esta bandera ayuda a diferenciar entre las acciones de los usuarios que ocurren de forma natural y las que se inducen por recomendaciones. is_organic Si Esto significa que el evento fue desencadenado por una recomendación. is_organic = 0 Por ejemplo, en un flujo de música personalizado o en una lista de reproducción recomendada.Todos los demás eventos se consideran orgánicos, lo que significa que el usuario descubrió el contenido por sí mismo. La siguiente tabla proporciona estadísticas sobre eventos orientados a la recomendación: El historial de interacción del usuario es clave para la creación de recomendaciones personalizadas. captura tanto las preferencias a largo plazo como los intereses momentáneos que pueden cambiar con el contexto. Para ayudarle a comprender mejor la estructura de los datos, aquí hay algunas estadísticas rápidas sobre nuestro conjunto de datos: Los gráficos anteriores revelan que la longitud del historial de los usuarios sigue una distribución pesada. Esto significa que mientras que la mayoría de los usuarios tienen relativamente pocas interacciones, un grupo pequeño pero significativo tiene historias de interacción muy largas. Esto es especialmente importante tener en cuenta cuando se construyen modelos de recomendación, para evitar el sobreajuste a usuarios altamente activos y para mantener la calidad para la "calle pesada" de los usuarios menos comprometidos. Por el contrario, la distribución entre las pistas cuenta una historia muy diferente. Este gráfico muestra claramente el desequilibrio entre las canciones altamente populares y un gran volumen de contenido de nicho: más del 90% de las canciones recibieron menos de 100 reproducciones durante todo el período de recopilación de datos. A pesar de esto, los sistemas de recomendar deben interactuar con todo el catálogo para mostrar incluso las pistas de baja popularidad que se alinean bien con las preferencias de los usuarios individuales. Uso de Yambda para evaluar el rendimiento algorítmico Los estudios académicos sobre la calidad del algoritmo recomendador a menudo utilizan el esquema Leave-one-Out (LOO), donde una sola acción del usuario se retiene para la prueba y el resto se utiliza para la capacitación. Este método, sin embargo, viene con dos desventajas graves: Inconsistencia temporal: los eventos de pruebas pueden incluir acciones que ocurrieron antes de las del conjunto de entrenamiento. Igualdad de ponderación de los usuarios: los usuarios inactivos afectan las métricas de evaluación tanto como las activas, lo que puede distorsionar los resultados. Para acercar las condiciones de evaluación a los escenarios del sistema de recomendación del mundo real, proponemos una alternativa: . global temporal split Este método simple selecciona un punto en el tiempo (T), excluyendo todos los eventos posteriores del conjunto de entrenamiento. Esto asegura que el modelo trabaja sobre datos históricos y se prueba contra datos futuros, imitando un entorno de producción real. Para nuestra evaluación, reservamos un día de datos como el conjunto de retención por dos razones principales: Incluso un solo día de valor de datos proporciona suficiente volumen para evaluar de manera fiable el rendimiento del algoritmo. Los modelos en la producción en el mundo real tienen características diferentes: algunos requieren actualizaciones frecuentes de estadísticas (por ejemplo, recomendaciones basadas en la popularidad), otros son ajustados o retraídos periódicamente (boosting, factorización de matriz, modelos de dos torres), y algunos dependen de historias de interacción de usuarios continuamente actualizadas (modelos recurrentes y basados en transformadores). Desde nuestro punto de vista, una ventana de un día es el período óptimo de evaluación para mantener los modelos estáticos mientras todavía captura las tendencias a corto plazo. La desventaja de este enfoque es que no cuenta con patrones a largo plazo, como los cambios semanales en el comportamiento de escucha de música. Basílica Hemos evaluado varios algoritmos de recomendación populares en Yambda para establecer líneas de partida para futuras investigaciones y comparaciones. Los algoritmos que hemos probado incluyen: MostPop, DecayPop, ItemKNN, iALS, BPR, SANSA y SASRec. Para la evaluación se utilizaron las siguientes métricas: NDCG@k (Normalized Discounted Cumulative Gain), que mide la calidad del ranking en recomendaciones. Recall@k, que evalúa la capacidad del algoritmo para recuperar recomendaciones relevantes del pool total. Coverage@k, que indica en qué medida está representado el catálogo de recomendaciones. Los resultados se proporcionan en tablas, y el código está disponible en . Abrazar la cara Abrazar la cara Conclusión Yambda puede ser valioso para la investigación de algoritmos de recomendación sobre datos a gran escala, donde tanto el rendimiento como la capacidad de modelar la dinámica del comportamiento son cruciales. El conjunto de datos está disponible en tres versiones: un conjunto completo con 5 mil millones de eventos, y subconjuntos más pequeños con 500 millones y 50 millones de eventos. Los desarrolladores y los investigadores pueden elegir la versión que mejor se adapte a sus recursos de proyecto y computación. . Abrazar la cara Abrazar la cara Abrazar la cara ¡Esperamos que este conjunto de datos se demuestre útil en sus experimentos y investigaciones! ¡Gracias por leer!