El concurso Netflix Prize y los sistemas de aprendizaje ... · con bajas calificaciones en la...

9
El concurso Netflix Prize y los sistemas de aprendizaje automático en producción: visión para iniciados WHITE PAPER

Transcript of El concurso Netflix Prize y los sistemas de aprendizaje ... · con bajas calificaciones en la...

Page 1: El concurso Netflix Prize y los sistemas de aprendizaje ... · con bajas calificaciones en la interfaz de usuario. En un sistema de producción, aquellas mejoras que contribuyen a

El concurso Netflix Prize y los sistemas de aprendizaje automático en producción: visión para iniciados

W H I T E PA P E R

Page 2: El concurso Netflix Prize y los sistemas de aprendizaje ... · con bajas calificaciones en la interfaz de usuario. En un sistema de producción, aquellas mejoras que contribuyen a

El concurso Netflix Prize y los sistemas de aprendizaje automático en producción: visión para iniciados

W H I T E PA P E R | 2

En 2006, Netflix anunció un famoso concurso sobre aprendizaje automático y minería de datos conocido como “Netflix Prize” y dotado con un premio de 1 millón de dólares que se otorgó en 2009.

Tras toda la publicidad y la atención de los medios, ¿qué ocurrió al final con las soluciones ganadoras? ¿Se llevaron a la práctica? En caso contrario, ¿cuál fue el motivo? La entrada del blog de Netflix Netflix Recommendations: Beyond the 5 stars (Recomendaciones de Netflix: más allá de las 5 estrellas) revela detalles prácticos sobre lo que deben ofrecer no solo los sistemas de recomen- dación, sino cualquier aplicación comercial de aprendizaje automático que se utilice en la vidareal. Este trabajo examina más de cerca las lecciones aprendidas.

Contenido

El concurso de Netflix.............................................................................................................................................3

Lo que hizo Netflix con las soluciones ganadoras..............................................................................................4

Lecciones aprendidas: nuevas métricas...............................................................................................................5

Lecciones aprendidas: arquitectura del sistema..................................................................................................5

Evitar implementaciones duales.............................................................................................................................7

Ejemplos de aprendizaje automático con MATLAB..........................................................................................9

Acerca de MathWorks..............................................................................................................................................9

Page 3: El concurso Netflix Prize y los sistemas de aprendizaje ... · con bajas calificaciones en la interfaz de usuario. En un sistema de producción, aquellas mejoras que contribuyen a

El concurso Netflix Prize y los sistemas de aprendizaje automático en producción: visión para iniciados

W H I T E PA P E R | 3

El concurso de Netflix

El objetivo del concurso Netflix Prize era conseguir mediante crowdsourcing un algoritmo de reco-mendación de películas capaz de mejorar al menos un 10% la precisión de las predicciones del sistema existente. Quien utiliza Netflix puede observar que se le ofrecen “películas que podrían gustarle” o “más películas como esta”, etc.

Este algoritmo está detrás de la experiencia de usuario personalizada en Netflix.

Veamos un ejemplo rápido sobre cómo funcionaba el concurso. El filtrado colaborativo (FC) es uno de los algoritmos fundamentales para los sistemas de recomendación, y se basa en la idea de que se pueden utilizar las calificaciones de usuarios que tienen gustos parecidos para predecir calificaciones de cinco estrellas de elementos sin calificar. En este ejemplo imaginario, se comparan las calificacio- nes de dos usuarios para películas que ambos han calificado. Cuando se traza una línea de lo que mejor se ajusta a sus preferencias, dicha línea sube si las calificaciones de los usuarios son similares y baja si son diferentes.

Page 4: El concurso Netflix Prize y los sistemas de aprendizaje ... · con bajas calificaciones en la interfaz de usuario. En un sistema de producción, aquellas mejoras que contribuyen a

El concurso Netflix Prize y los sistemas de aprendizaje automático en producción: visión para iniciados

W H I T E PA P E R | 4

El filtrado colaborativo puede predecir las calificacio-nes de los elementos no calificados sirviéndose de esta correlación y combinando las calificaciones exis-tentes de otros elementos realizadas por usua- rios parecidos.

Para determinar el ganador del concurso, Netflix uti- lizó una métrica denominada error cuadrático medio (ECM), que toma la diferencia entre calificaciones reales (tales como cuatro estrellas) y las calificaciones predichas (tales como 1,4965 estrellas) para calcular su media y así obtener un único número. Si las califi- caciones reales y predichas coinciden por completo, el ECM sería igual a cero.

Sin embargo, las recomendaciones normalmente se facilitan en forma de una lista de N principales, no como clasificaciones predichas pero sin procesar del tipo de 1,4965 estrellas. Así pues, ¿es el ECM una métrica realmente significativa? Tratándose de un concurso, Netflix tenía que seleccionar una sola métrica para determinar quién era el ganador.

Lo que hizo Netflix con las soluciones ganadoras

En el concurso Netflix Prize hubo dos propuestas destacadas: la del equipo ganador, que lograba una mejora del 10%, y la de un segundo equipo, cuya mejora alcanzaba el 8,43%. Netflix eligió la solu- ción que ofrecía un incremento de la precisión de las reco-mendaciones del 8,43%. Netflix no escogió la solu-ción que conseguía un 10% de mejora porque el beneficio que suponía el incremento extra de la pre-cisión no compensaba el esfuerzo en términos de ing-eniería que requería llevarla a un entorno de producción.

Además, el modelo de negocio de Netflix pasó del alquiler de DVD al streaming, lo que a su vez cambió la forma de recopilar los datos y de facilitar las recomendaciones.

Resulta interesante plantearse por qué ese 1,57% de incremento extra de la precisión no merecía la pena.Por ejemplo, se podría mejorar el ECM reduciendo las discrepancias de las predicciones de las califica- ciones más bajas. Sin embargo, de todas formas Netflix no habría mostrado esas películas con bajas calificaciones en la interfaz de usuario. En un sistema de producción, aquellas mejoras que contribuyen a la escalabilidad y la agilidad tienen más impacto que el ECM.

Page 5: El concurso Netflix Prize y los sistemas de aprendizaje ... · con bajas calificaciones en la interfaz de usuario. En un sistema de producción, aquellas mejoras que contribuyen a

El concurso Netflix Prize y los sistemas de aprendizaje automático en producción: visión para iniciados

W H I T E PA P E R | 5

Lecciones aprendidas: nuevas métricasIncluso con la solución elegida, Netflix necesitaba superar otros retos de ingeniería, ya que la métrica basada en el ECM fomentaba que los participantes se centraran más en la precisión que en la escalabi- lidad y la agilidad.

• El número de calificaciones del conjunto de datos del concurso ascendía a 100 millones, pero el sistema de producción real contaba con más de 5000 millones.

• El conjunto de datos del concurso era estático, pero el número de calificaciones del sistema de producción no para de aumentar (4 millones de calificaciones al día, en el momento en que se redactó la entrada del blog).

Cuando desde Netflix hablan sobre su sistema actual, conviene prestar atención a qué es lo

que destacan.

• “El 75% de lo que ve la gente se debe a algún tipo de recomendación.”

• “Optimizar de manera continua la experiencia de los suscriptores y tener incrementos significati- vos y mensurables de la satisfacción de los suscriptores.”

Para Netflix lo más importante es el uso, la experiencia del usuario, la satisfacción del usuario y la retención del usuario; todo ello se ajusta a sus objetivos comerciales mejor que el ECM. El segundo punto se refiere a las pruebas A/B que Netflix está realizando en su sistema de producción real.Significa que están cambiando ese sistema constantemente...

Lecciones aprendidas: arquitectura del sistema

“Lograr una arquitectura del sistema que maneje grandes volúmenes de datos existentes, responda a las interacciones de los usuarios y facilite la experimentación con nuevos enfoques respecto de la reco- mendación no es una tarea trivial”, escriben los blogueros de Netflix Xavier Amatriain y Justin Basilico (para obtener más información, consulte este artículo: System Architectures for Personalization and Recommendation [Arquitecturas del sistema para la personalización y la recomendación]).

Una de las técnicas empleadas en las soluciones ganadoras del concurso Netflix Prize fue un método combinado denominado apilamiento lineal. Netflix optó por una variante de una técnica de apila- miento lineal para combinar las predicciones de múltiples modelos predictivos con objeto de producir las recomendaciones finales. Se pueden configurar múltiples subsistemas que ejecuten diferentes modelos predictivos y después combinar los resultados de tales sistemas para producir el resultado final. Esta arquitectura es muy flexible, porque se pueden seguir sumando elementos a la combina- ción conforme se desarrollan nuevos algoritmos.

Page 6: El concurso Netflix Prize y los sistemas de aprendizaje ... · con bajas calificaciones en la interfaz de usuario. En un sistema de producción, aquellas mejoras que contribuyen a

El concurso Netflix Prize y los sistemas de aprendizaje automático en producción: visión para iniciados

W H I T E PA P E R | 6

Netflix utiliza tres capas de servicio: offline, nearline y online.

• Offline, para procesar datos: realiza un cálculo previo de los pasos que requieren más tiempo mediante un proceso por lotes.

• Nearline, para procesar eventos: actúa de enlace entre los dos subsistemas realizando un cálculo previo de las operaciones que se ejecutan con más frecuencia y capturando el resultado antes de las acciones de los usuarios activos.

• Online, para procesar solicitudes: responde a las acciones de los usuarios instantáneamente apro- vechando los resultados de las capas offline y nearline.

Figura 1: Apilamiento lineal.

Page 7: El concurso Netflix Prize y los sistemas de aprendizaje ... · con bajas calificaciones en la interfaz de usuario. En un sistema de producción, aquellas mejoras que contribuyen a

El concurso Netflix Prize y los sistemas de aprendizaje automático en producción: visión para iniciados

W H I T E PA P E R | 7

Evitar implementaciones duales

Netflix utiliza Hadoop para ejecutar este proceso offline, y el algoritmo empleado en el conjunto de datos de pequeño tamaño se debe reescribir en MapReduce. Esto es un ejemplo de lo que Netflix denomina el problema de la implementación dual (consulte la diapositiva 20), y tampoco afecta úni- camente al proceso offline. Es importante desarrollar y validar los algoritmos de aprendizaje automá- tico en herramientas especializadas y volver a implementarlos en otro lenguaje para adaptarlos a sistemas de gran tamaño. Esto limita la escalabilidad y la agilidad, ya que se trata de un proceso que requiere mucho tiempo. La propuesta de Netflix consiste en compartir la mayor cantidad de compo- nentes que sea posible entre el sistema de desarrollo y el sistema de producción para paliar este problema.

Page 8: El concurso Netflix Prize y los sistemas de aprendizaje ... · con bajas calificaciones en la interfaz de usuario. En un sistema de producción, aquellas mejoras que contribuyen a

El concurso Netflix Prize y los sistemas de aprendizaje automático en producción: visión para iniciados

W H I T E PA P E R | 8

MATLAB soluciona el problema permitiendo la dis- tribución directa del código MATLAB a los sistemas de producción mediante diversas opciones de distribución.

Por ejemplo, los algoritmos desarrollados en MATLAB se pueden compilar directamente en varias plataformas de distribución.

• Se pueden actualizar los algoritmos en MATLAB; las actualizaciones se pueden distribuir inmedi-atamente a los sistemas de producción.

• En caso de cambio de sistema de producción, basta con utilizar otra opción de distribución que sea adecuada para el nuevo entorno. Resulta senci- llo comparar y validar el resultado del prototipo que se desarrolle en MATLAB en los sistemas de producción, ya que están basados en el mismo código fuente.

Page 9: El concurso Netflix Prize y los sistemas de aprendizaje ... · con bajas calificaciones en la interfaz de usuario. En un sistema de producción, aquellas mejoras que contribuyen a

El concurso Netflix Prize y los sistemas de aprendizaje automático en producción: visión para iniciados

W H I T E PA P E R | 9

93023v00 07/16

© 2016 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders.

Para obtener más información sobre las prestaciones de MATLAB, consulte los siguientes recursos.

• MapReduce de MATLAB y Hadoop

• MATLAB Production Server

• Aprendizaje automático

Ejemplos de aprendizaje automático con MATLAB

Acerca de MathWorks

MathWorks es la compañía líder en el desarrollo de software de cálculo matemático. Los ingenieros y científicos de todo el mundo confían en sus productos para acelerar el proceso de descubrimiento, innovación y desarrollo.

MATLAB®, el lenguaje de cálculo técnico, es un entorno de programación para desarrollo de algorit- mos, análisis de datos, visualización y cálculo numérico. La compañía produce cerca de 100 produc-tos adicionales para tareas especializadas tales como el análisis de datos y el procesamiento de imágenes.

Puede obtener más información en mathworks.com.

MATLAB Speaks Machine Learning

Try MATLAB and Other Products for Machine Learning

Get Trial Software