El día que Netflix rechazó integrar el algoritmo de 1 millón de dólares

Tras premiar con 1 millón de dólares a los ganadores de un concurso, Netflix decidió no utilizar su algoritmo.

En 2007 Netflix creó un concurso titulado Netflix $1 Million Challenge donde premiaba con 1 millón de dólares al mejor algoritmo que mejorara su plataforma. En el año 2008 el equipo ganador fue capaz de crear un algoritmo que mejoraba el sistema de recomendación de Netflix en un 10.06%, pero Netflix al final decidió no integrarlo en su plataforma.

¿Cómo es posible que Netflix pague esa suma de dinero por algo que ni siquiera va a utilizar? En palabras de la propia Netflix:

“We evaluated some of the new methods offline but the additional accuracy gains that we measured did not seem to justify the engineering effort needed to bring them into a production environment.”

En resumidas cuentas, el esfuerzo en implementarlo iba a ser muy superior al beneficio que le iba a aportar al sistema.

Foto del equipo BellKor al recibir el premio
Foto del equipo BellKor al recibir el premio

Ya Netflix publicó un post discutiendo su sistema de recomendaciones, así como las razones por las que decidieron rechazar algunos algoritmos. Está claro que Netflix no tira a la basura buen software tras haber pagado una gran cantidad de dinero sin buenas razones para ello. De hecho, desde que empezaron en 2007 han integrado el código de varios ganadores en su plataforma.

“A year into the competition, the Korbell team won the first Progress Prize with an 8.43% improvement. They reported more than 2000 hours of work in order to come up with the final combination of 107 algorithms that gave them this prize. And, they gave us the source code. We looked at the two underlying algorithms with the best performance in the ensemble: Matrix Factorization (which the community generally called SVD, Singular Value Decomposition) and Restricted Boltzmann Machines (RBM). SVD by itself provided a 0.8914 RMSE (root mean squared error), while RBM alone provided a competitive but slightly worse 0.8990 RMSE. A linear blend of these two reduced the error to 0.88. To put these algorithms to use, we had to work to overcome some limitations, for instance that they were built to handle 100 million ratings, instead of the more than 5 billion that we have, and that they were not built to adapt as members added more ratings. But once we overcame those challenges, we put the two algorithms into production, where they are still used as part of our recommendation engine.

Netflix valora positivamente el esfuerzo de los participantes en su concurso. No son concursos de un fin de semana como los hackathones que vemos últimamente. Muchos de estos algoritmos tienen detrás cientos de horas. En el caso del equipo BellKor (el ganador de 2008) se estima que dedicaron alrededor de 2000 horas a su desarrollo y colaboraron principalmente usando el e-mail (de hecho, se vieron por primera vez cuando recibieron públicamente el premio).

Lo que tenemos que tener claro es que en este tipo de concursos las empresas no están obligadas de ninguna forma a integrar las soluciones ganadoras en sus plataformas. A fin de cuentas es código ajeno y, como hemos visto, a veces el esfuerzo de integración es tan grande y los beneficios tan poco perceptibles que, en definitiva, no merece la pena.

Enlaces relacionados