El Premio Netflix fue una competición abierta organizada por Netflix, un servicio de transmisión de video, para desarrollar el mejor algoritmo de filtrado colaborativo capaz de predecir la calificación que un usuario daría a una película, basándose en calificaciones previas, sin disponer de otra información sobre los usuarios o las películas. La competición se desarrolló desde el 2 de octubre de 2006 hasta que el gran premio fue otorgado el 21 de septiembre de 2009. El premio principal de 1.000.000 de dólares fue ganado por el equipo BellKor's Pragmatic Chaos, que logró una mejora del 10,06% sobre el algoritmo propio de Netflix, Cinematch, en la predicción de calificaciones.
Problema y conjuntos de datos
Netflix proporcionó un conjunto de datos de entrenamiento con 100.480.507 calificaciones que 480.189 usuarios otorgaron a 17.770 películas. Cada calificación de entrenamiento era una cuádrupla de la forma <usuario, película, fecha de calificación, calificación>, donde usuario y película eran identificadores enteros y las calificaciones eran números enteros del 1 al 5. El conjunto de datos de calificación contenía más de 2.817.131 tripletas de la forma <usuario, película, fecha de calificación>, cuyas calificaciones solo conocía el jurado. El algoritmo de un equipo participante debía predecir las calificaciones de todo el conjunto de calificación, pero solo se les informaba de la puntuación obtenida en la mitad de los datos: el conjunto de prueba, con 1.408.342 calificaciones. La otra mitad era el conjunto de validación, con 1.408.789 calificaciones, utilizado por el jurado para determinar a los posibles ganadores. Solo los jueces sabían qué calificaciones estaban en el conjunto de prueba y cuáles en el de validación, lo que dificultaba el sobreajuste al conjunto de prueba. Las predicciones enviadas se evaluaban mediante el error cuadrático medio (ECM), con el objetivo de reducir este error tanto como fuera posible. Netflix también identificó un subconjunto de sonda de 1.408.395 calificaciones dentro de los datos de entrenamiento, elegido por tener propiedades estadísticas similares a las de los conjuntos de prueba y validación.
El conjunto de entrenamiento se construyó de modo que, en promedio, cada usuario calificara más de 200 películas y cada película fuera calificada por más de 5.000 usuarios. Sin embargo, existía una gran variabilidad: algunas películas tenían solo 3 calificaciones, mientras que un usuario llegó a calificar más de 17.000 películas. Para proteger la privacidad de los clientes, algunos datos de calificación fueron alterados deliberadamente, eliminando calificaciones, insertando calificaciones alternativas o modificando las fechas de calificación. No se proporcionaba ninguna información sobre los usuarios más allá de su identificador numérico.
Hubo cierta controversia sobre la elección del ECM como métrica definitoria. Se argumentó que incluso una pequeña mejora del 1% en el ECM podría suponer una diferencia significativa en la clasificación de las 10 mejores películas recomendadas para un usuario.
Premios
Los premios se basaban en la mejora respecto al algoritmo propio de Netflix, Cinematch, o respecto a la puntuación del año anterior, si un equipo había superado un cierto umbral. Un algoritmo trivial que predijera la calificación promedio de cada película en el conjunto de prueba obtenía un ECM de 1,0540. Cinematch, que utilizaba modelos lineales sencillos con un gran preprocesado de datos, lograba un ECM de 0,9514 en los datos de prueba, lo que suponía una mejora aproximada del 10% sobre el algoritmo trivial. Para ganar el gran premio de 1.000.000 de dólares, un equipo debía mejorar esta cifra en otro 10%, alcanzando un ECM de 0,8572 en el conjunto de validación (0,8563 en el de prueba).
Mientras ningún equipo ganara el gran premio, se otorgaba anualmente un premio de progreso de 50.000 dólares al equipo con el mejor resultado hasta la fecha, siempre que su algoritmo mejorara el ECM en el conjunto de prueba en al menos un 1% respecto al ganador del premio de progreso anterior (o respecto a Cinematch en el primer año). Para reclamar un premio, un participante debía proporcionar el código fuente y una descripción del algoritmo al jurado en un plazo de una semana; tras la verificación, debía conceder una licencia no exclusiva a Netflix. Netflix publicaría únicamente la descripción, no el código fuente. Los equipos podían enviar tantas predicciones como quisieran, inicialmente limitadas a una por semana, aunque más tarde se permitió una por día. Una vez que un equipo lograba una mejora del 10% o más en el ECM, el jurado emitía una convocatoria final, dando a todos los equipos 30 días para enviar sus propuestas. El equipo con la mejor propuesta debía entonces proporcionar la descripción del algoritmo, el código fuente y la licencia, y tras la verificación, era declarado ganador del gran premio.
La competición duraría hasta que se declarara un ganador del gran premio. Si nadie lo lograba, habría durado al menos cinco años (hasta el 2 de octubre de 2011), después de lo cual Netflix podría terminarla en cualquier momento.
Progreso a lo largo de los años
La competición comenzó el 2 de octubre de 2006. El 8 de octubre, un equipo llamado WXYZConsulting ya había superado a Cinematch. El 15 de octubre, tres equipos habían superado a Cinematch, uno de ellos con una mejora del 1,06%, suficiente para calificar para el premio de progreso anual. En junio de 2007, más de 20.000 equipos de más de 150 países se habían registrado, y 2.000 de ellos habían enviado más de 13.000 conjuntos de predicciones.
Durante el primer año, varios equipos líderes se alternaron en el primer puesto, entre ellos:
- WXYZConsulting, un equipo de Wei Xu y Yi Zhang (líder durante noviembre y diciembre de 2006).
- ML@UToronto A, un equipo de la Universidad de Toronto dirigido por el Prof. Geoffrey Hinton (líder durante parte de octubre a diciembre de 2006).
- Gravity, un equipo de cuatro científicos de la Universidad de Tecnología y Economía de Budapest (líder de enero a mayo de 2007).
- BellKor, un grupo de científicos de Bell Labs (líder desde 2007).
Estos equipos utilizaban con frecuencia técnicas avanzadas de aprendizaje automático, como redes neuronales y métodos de conjunto, para lograr mejoras incrementales en el ECM.
Algoritmo ganador y consecuencias
El equipo ganador, BellKor's Pragmatic Chaos, fue una fusión de tres equipos líderes: BellKor (de Bell Labs), Pragmatic Theory y Chaos. Su algoritmo combinaba múltiples modelos predictivos, incluyendo factorización de matrices y máquinas de Boltzmann restringidas, y utilizaba blending para combinar las predicciones. El equipo logró una mejora del 10,06% sobre Cinematch en el conjunto de validación, superando por un estrecho margen de 20 minutos al equipo subcampeón, The Ensemble, en la fecha límite final de envío.
El Premio Netflix demostró el poder del filtrado colaborativo y del aprendizaje automático en aplicaciones del mundo real, e impulsó una investigación significativa en sistemas de recomendación. La competición también planteó problemas de privacidad, lo que llevó a demandas y a cambios en la forma en que Netflix manejaba los datos de los usuarios. Las técnicas desarrolladas durante la competición influyeron en desarrollos posteriores en aprendizaje profundo y IA generativa, a medida que el campo evolucionó desde el aprendizaje automático tradicional hacia modelos más sofisticados basados en transformadores.