¿Cómo funciona el algoritmo de recomendación de películas de Netflix?

Hemos hablado y publicado ampliamente sobre este tema. Permítanme comenzar diciendo que hay muchos algoritmos de recomendación en Netflix. La gente generalmente se refiere al algoritmo de “predicción de calificación” que se investigó en el Premio Netflix como el “Algoritmo de recomendación de Netflix”, pero de ninguna manera es el único o el más importante de los algoritmos en el sistema de recomendación de Netflix.

Ahora, si nos centramos en la predicción de la calificación y el resultado del Premio, y para complementar la respuesta de Neal, hay dos algoritmos que se están utilizando en la producción en este momento: Máquinas de Boltzman restringidas (RBM) y una forma de Factorización matricial.

Las máquinas de Boltzman restringidas son, simplemente, redes neuronales sofisticadas. Hay algunos trucos para hacer que los RBM funcionen en el contexto del filtrado colaborativo. Si está interesado, lea este muy buen artículo de Hinton y algunos de sus estudiantes: Máquinas de Boltzman restringidas para el filtrado colaborativo.

La forma de factorización matricial en uso es la llamada SVD ++ desarrollada por el equipo ganador del premio. Esta es básicamente una forma asimétrica de SVD que puede hacer uso de información implícita (al igual que los RBM también). La factorización se encuentra con el vecindario: un documento de modelo de filtrado colaborativo multifacético de Koren et al. explica los detalles

Esos dos algoritmos ya aparecieron en el Premio Progreso 2007. En producción se combinan usando una mezcla lineal. Entonces, ¿por qué no se usan los otros más de 100 algoritmos que se combinaron con un árbol de decisión potenciado por gradiente? Hay varias razones que incluyen la complejidad de la ingeniería y el hecho de que, como mencioné antes, la predicción de la calificación no es la principal preocupación hoy en día. Hay muchos otros algoritmos de recomendación, desde la clasificación personalizada hasta la optimización de la página, que conforman el sistema de recomendación de Netflix.

Si está interesado en obtener más información sobre estos, comience leyendo nuestra publicación de blog Recomendaciones de Netflix: más allá de las 5 estrellas (Parte 1) o eche un vistazo a algunas de mis diapositivas recientes.

Los algoritmos que se desarrollaron como parte del premio de un millón de dólares de Netflix (que tenía como objetivo mejorar el sistema de recomendación de películas) son mezclas de una gran cantidad de diferentes técnicas de aprendizaje automático.

Dos de los aspectos más notables que surgieron de la competencia fueron el uso de la factorización matricial y la llamada “dinámica temporal” para realizar el filtrado colaborativo; los detalles completos se pueden encontrar en la página del foro (que tiene enlaces a documentos escritos por el equipo ganador):

http://www.netflixprize.com//com

Si bien esto le dará información sobre el resultado de la competencia, no tengo información sobre cuántas de estas propuestas llegaron al sistema en vivo de Netflix.

La respuesta de Garrick Saito es bastante precisa a un alto nivel. El blog de tecnología de Netflix analiza algunos de los detalles del motor de recomendaciones en una serie de dos partes, Más allá de las 5 estrellas (Parte 1) y Más allá de las 5 estrellas (Parte 2). Ayuda a ser un poco adicto a las matemáticas o los algoritmos.

Antes de comenzar, permítanme decir que no trabajo en personalización o recomendaciones, por lo que todo esto es de segunda mano y por lo que recuerdo haber escuchado de otras personas.

En un nivel básico, Netflix utiliza principalmente sus calificaciones, historial de visualización y preferencias de sabor para determinar sus recomendaciones. Creo que hay otros factores utilizados, como la geografía, el idioma preferido, el dispositivo de visualización, la hora del día, etc., pero no estoy seguro.

Estos factores se utilizan para agrupar a los clientes en “grupos” con hábitos de visualización similares. Un cliente puede pertenecer a múltiples grupos. Basado en el clúster, Netflix puede identificar las características de película / programa que serían más atractivas para el cliente o títulos específicos que son populares dentro de ese clúster.

Entonces viendo Kill Bill: vol. 1 y dándole 5 estrellas, el algoritmo podría identificarlo como alguien que disfruta de “Películas de Quentin Tarantino” o “Películas con mujeres fuertes que patean traseros” o algo así. (Estoy inventando esas categorías ya que no tengo idea de cuáles son las reales).

Esas categorizaciones influirían en las categorías y títulos de recomendación que ve, como “Películas de acción de Campy con mujeres fuertes” o “Películas de Quentin Tarantino buenas “. Entonces, esto puede encontrar Pulp Fiction y The Fifth Element en sus recomendaciones porque encajan en esas categorías.

A través de una extracción de datos adicional, los algoritmos también pueden encontrar que los grupos de personas que disfrutan de esas categorías también tienden a ver y completar el programa de televisión House of Cards. Por lo tanto, esto podría hacer que House of Cards aparezca en su lista “Popular en Netflix”, porque es popular entre personas como usted.

More Interesting

¿Cuál es el significado de la complejidad del tiempo pseudo polinomial? Vi que Knapsack se ejecuta en tiempo pseudo polinomial. Leí sobre esto aquí: tiempo pseudo-polinomial pero no puedo seguirlo. Quiero comprender el concepto de tiempo de ejecución pseudo polinomial y cómo se ejecuta la mochila en tiempo de pseudo polinomio.

¿Estudiar algoritmos mejorará mis habilidades cotidianas de toma de decisiones / resolución de problemas?

¿Cómo describirías el algoritmo de Quora usando una ecuación?

Cómo calcular el orden de crecimiento para un fragmento de código dado

¿Cuál es la habilidad más importante para desarrollar en algoritmos?

Cómo ponerse al día con las matemáticas necesarias para poder comprender y analizar algoritmos si no sé sobre cosas como el registro

¿Las ventajas del arreglo lineal desaparecen si el arreglo es demasiado corto? ¿Por qué veo 4-6 cajas de cajas?

¿Cuál es la lógica detrás de los algoritmos de ajuste de aprendizaje automático?

¿Cuál es el significado de la simulación de recursividad?

Cómo maximizar la suma de las diferencias absolutas en los índices correspondientes de dos matrices sobre todas sus permutaciones posibles

¿Cuál es la solución a la siguiente relación de recurrencia: [matemáticas] T (n) = 3T (n-1) - 7T (n-2) + 9T (n-3) [/ matemáticas], con las siguientes condiciones iniciales: [ matemática] T (0) = 1 [/ matemática], [matemática] T (1) = 6 [/ matemática], [matemática] T (2) = 7 [/ matemática]. ¿Qué es una expresión para [math] T (n) [/ math] de modo que no haya términos [math] T (i (\ frac {n} {j}) ^ {k}) [/ math] a la derecha ¿lado?

¿Qué son los árboles de búsqueda binarios?

¿Vale la pena publicar mi algoritmo?

¿Cómo es codicioso el algoritmo de Kruskal?

¿Cuáles son los ejemplos del mundo real que puedo usar para ilustrar la recursividad de mi clase de introducción CS?