Búsqueda de sitios web

Cómo Netflix implementa IA de código abierto para revelar sus favoritos


En este artículo científico basado en IA, exploramos cómo Netflix adoptó un modelo de código abierto para mejorar sus sistemas de recomendación de entretenimiento.

Primero, analicemos brevemente qué significa básicamente el aprendizaje automático. En términos simples, el aprendizaje automático es una técnica mediante la cual una computadora puede “aprender” de los datos, sin utilizar un conjunto complejo de reglas diferentes. Este enfoque se basa principalmente en entrenar un modelo a partir de conjuntos de datos. Cuanto mejor sea la calidad de los conjuntos de datos, mayor será la precisión del modelo de aprendizaje automático.

Primero, un vistazo rápido al aprendizaje automático y al aprendizaje profundo.

Existen principalmente tres formas de Machine Learning:

  • Aprendizaje supervisado

  • Aprendizaje sin supervisión

  • Aprendizaje reforzado

El aprendizaje supervisado se basa en el entrenamiento sobre conjuntos de datos etiquetados.

El aprendizaje no supervisado utiliza conjuntos de datos sin etiquetar.

El aprendizaje por refuerzo se basa en premiar a un algoritmo en función de sus resultados correctos y castigarlo si falla en el intento.

Relacionado con un tema ampliamente conocido como Redes Neuronales Artificiales, también existe el “Aprendizaje Profundo”, que es una técnica para realizar Aprendizaje Automático que se inspira en la Red Propia de Neuronas de Nuestro Cerebro.

Cómo Netflix utiliza la IA para recomendar contenidos

Si es o ha sido suscriptor de Netflix, definitivamente sabe que Netflix no utiliza un modelo basado en publicidad. En cambio, utilizan un modelo puramente basado en suscripción. Es por eso que Netflix quiere que tu experiencia sea lo más personalizada posible para ti.

Para lograrlo, Netflix comenzó a explorar varias formas de crear un modelo tan personalmente perceptivo. Incluso si no ha sido suscriptor de Netflix, es posible que se haya preguntado cómo Netflix hace esas increíbles recomendaciones en la cuenta de Netflix de un usuario y cómo la gente llegó a amar Netflix, lo cual es tan obvio en la actualidad. ¡Te sorprendería saber que algunas de estas recomendaciones podrían haberse basado en el cerebro de una mosca de la fruta!

Al principio, sus metodologías eran muy simples, basadas en Big Data y exclusivamente en un sistema de calificación. Las recomendaciones de películas/programas de televisión se basaron completamente en qué tan bueno o malo se había calificado un programa o película en particular. Estas calificaciones se basaron en los comentarios de los usuarios, la cantidad de vistas, si los videos se vieron en su totalidad o en partes y/o en las calificaciones de IMDB.

Aquí hay un artículo de la Universidad de Stanford, fechado el 12 de marzo de 2008, que ilustra cómo las recomendaciones de Netflix se basaron en calificaciones de IMDB.

Construido sobre una base sólida de decisiones estratégicas, Netflix ha recorrido un largo camino en la construcción de un excelente modelo de aprendizaje para predecir cuál podría ser la próxima película favorita no vista de sus usuarios, con un nivel de precisión considerablemente alto.

El 21 de septiembre de 2009, se otorgó un premio de 1 millón de dólares al equipo "BellKor's Pragmatic Chaos" por mejorar el modelo de recomendación de Netflix. Conocido como El Premio Netflix, fue una iniciativa de Netflix para mejorar la experiencia del usuario en un 10% o más.

El algoritmo de predicción que se iba a improvisar y actualizar se basó en el filtrado colaborativo. El filtrado colaborativo es una técnica de recomendación que se basa completamente en comentarios colectivos derivados de los usuarios.

Digamos que un grupo de personas ha visto una película y hay muchas posibilidades de que a usted le guste mucho. Pero es probable que ni siquiera hayas oído hablar de la película antes. Al recopilar e interpretar sus preferencias de visualización anteriores con las de aquellos que terminaron de verlas, un sistema de recomendación puede sugerirle esa película en particular.

https://youtu.be/WQJXhCm5ffY

El filtrado basado en contenido, por otro lado, no se basa en las preferencias de los usuarios. En cambio, las comparaciones se hacen entre los propios vídeos basándose en un tipo de clasificación, como un género, por ejemplo. Podría ser una comedia, romance, terror, suspenso, etc.

Más adelante, también tenemos un modelo híbrido que combina las dos técnicas de filtrado descritas anteriormente. Si desea conocerlos en profundidad, mire este clip:

Netflix incluso publicó un artículo en la revista ACM titulado "El sistema de recomendación de Netflix: algoritmos, valor empresarial e innovación". El artículo está disponible en acceso abierto. Algunas de las metodologías destacadas destacadas en el documento son las siguientes:

Funciones y técnicas que utiliza Netflix para ofrecer la mejor experiencia posible a sus usuarios:

  • Clasificador de vídeos personalizado: PVR

  • Clasificador de vídeos Top-N

  • Siendo tendencia ahora

  • Continuar viendo

  • Similitud vídeo-vídeo

  • Generación de páginas: selección y clasificación de filas

  • Selección de evidencia

  • Experiencia de búsqueda

  • Técnicas estadísticas y de aprendizaje automático para todo lo anterior

Para poder identificarnos con las funciones anteriores, seguimos adelante y nos registramos en la suscripción gratuita del primer mes de Netflix y así fue la experiencia:

Después de registrarnos, teníamos que elegir 3 o más películas o programas de TV favoritos. Entonces elegimos Baahubali 2, Bright, Sherlock y Altered Carbon. Había muchas más opciones para elegir que las que se muestran a continuación:

Después de esto, el Cerebro Artificial de Netflix entró en acción:

Entonces, básicamente, cuanto mayor sea el número de selecciones que hubiéramos hecho, mejor habría sido la personalización. A partir de entonces, fuimos recibidos con la página de navegación de Netflix que se ve así:

“Mi lista” se puede relacionar con “Ranker de videos personalizado: PVR”, correspondiente a la primera de las 9 técnicas enumeradas anteriormente.

Llevábamos bastante tiempo queriendo ver “Altered Carbon”. Así que vimos unos segundos al principio:

Volviendo a la página de inicio, notamos una nueva recomendación:

Esto corresponde a "Similitud vídeo-vídeo" porque acabamos de ver un poco de "Altered Carbon".

También había otra fila de recomendaciones interesantes que nos mostraba las mejores opciones que podrían interesarnos y nos sorprendió cuando navegamos por esta lista y descubrimos que no había ninguna que no nos gustaría ver.

Esto se relacionaría directamente con el “Top-N Video Ranker” de la lista anterior. “Ittefaq” es un thriller de suspenso que pertenece a un género similar al de “Sherlock” que elegimos justo después de registrarnos. “Revolt”, como sugiere la miniatura, debe pertenecer a un género de acción, igual que el de “Baahubali 2” o “Bright”. Esto se deriva del filtrado basado en contenido.

La recomendación, “Historias de Rabindranath Tagore”, nos sorprendió aún más. Netflix podría haber recomendado esto según la ubicación. ¡Realmente tienen algunos algoritmos increíblemente alucinantes!

Entonces, esa fue una visión práctica de cómo funciona prácticamente Netflix. Todas estas recomendaciones inteligentes no habrían sido posibles si Netflix no hubiera adoptado un enfoque de código abierto hacia la Inteligencia Artificial y el Aprendizaje Automático. Veamos ahora las iniciativas de código abierto de Netflix.

Iniciativa de conexión abierta de Netflix

La propia red de distribución de contenidos (CDN) de Netflix funciona con código abierto. Inicialmente subcontrataron sus servicios de transmisión a Akamai, Level3 y Limelight. Pero finalmente, tuvieron un cambio de planes.

Netflix decidió construir su propia CDN porque quería:

  • Crecer más rápido

  • Reducir costos

  • Controlar el lado del servidor de la conexión HTTP

  • Cree una CDN especializada en la entrega de contenido de Netflix

  • Acercar el contenido a un cliente

Así nació Netflix Open Connect. Es decir, la base CDN de Netflix se construyó sobre el servidor web NGINX y el sistema operativo FreeBSD, que simbolizan dos pilares sólidos. Netflix optó por utilizar una licencia BSD en lugar de GPL mientras creaba su CDN. Esto se debía a que los ISP actuaban principalmente como terceros. Para comparar ambas licencias en profundidad, acceda aquí.

Se eligió NGINX porque se sabía que era rápido y estable, había soporte comercial disponible de Nginx, Inc. y tenía un marco flexible para módulos personalizados. FreeBSD también era conocido por ser un sistema operativo rápido y estable y tenía una sólida comunidad de desarrolladores. Entonces, se convirtió en una elección adecuada.

Como los dos anteriores son gratuitos y de código abierto, Netflix utilizó otro proyecto de código abierto llamado BIRD Internet Routing Daemon que, sin embargo, utiliza la licencia GPL. Esta herramienta se utilizó para transferir la topología de red de los ISP a su propio sistema de control que dirigiría a los clientes a su contenido respectivo.

Los tres sirvieron como excelentes herramientas para manejar:

  • 400.000 archivos continuos por dispositivo

  • 5000-30 000 flujos de clientes por dispositivo

  • 300-1000 clientes por disco

La iniciativa Open Connect descrita anteriormente se analiza en detalle en esta grabación completa de la conferencia NGINX:

Diapositivas de presentación aquí:

Iniciativa de software de código abierto de Netflix

Hoy, la iniciativa Open Source Software de Netflix habla de su apuesta por el código abierto. ¡Tienen su propio Centro de software de código abierto! La página GitHub de Netflix muestra claramente sus 139 repositorios administrados por 52 desarrolladores. Todos los resultados predictivos que acabamos de ver de forma práctica están impulsados por estos proyectos únicos de código abierto que figuran en GitHub.

Netflix tiene su propia biblioteca de aprendizaje profundo llamada Vectorflow, mencionada anteriormente. Existe otra herramienta predictiva y analítica llamada Surus. Tiene una función conocida como ScorePMML que permite una predicción de puntuación eficiente de modelos en la nube. Surus también se puede utilizar para la detección de valores atípicos o la coincidencia de patrones. Netflix también tiene una publicación de blog sobre ellos.

Resumen

Para resumir, comenzamos presentándole el aprendizaje automático, cómo evolucionó Netflix como recomendador de entretenimiento, una comparación práctica con el modelo de recomendación de Netflix y sobre Netflix Open Connect, seguido de su iniciativa de software de código abierto.

Gracias por tomarse el tiempo y leer pacientemente el artículo. ¡Esperamos más exploraciones tan emocionantes!

Como nota final, nos gustaría destacar el notable enfoque de Netflix hacia el arte y la ciencia como no dos entidades separadas. ¡Pero como un hermoso unísono para crear maravillas!