¿Cómo sabe Netflix qué películas te gustan?
Los sistemas de recomendación, también llamados motores de recomendación, son sistemas de filtrado de la información que eliminan información irrelevante para el contexto de cada usuario. En estos días que vivimos, la tarea de un motor de este tipo es la de estimular el consumo y mantener a los usuarios entretenidos con la aplicación. Obviamente, los sistemas de recomendación existen en otras áreas alejadas de la emisión en continuo de películas: Spotify te recomienda música, Amazon te recomienda productos, Coursera te invita a tomar cursos similares o tu banco te sugiere sistemas financieros acordes a tu interés.
Tipos de sistemas de recomendación
Una vez que ya sabemos que un sistema de recomendación es, al mismo tiempo, un filtro de información, podemos clasificar los sistemas de recomendación principalmente en tres:
(1) Basados en colaboración: encuentra gustos en común a partir de las interacciones de los usuarios. Trabaja con información sobre lo que un grupo de usuarios disfruta. Este sistema se nutre del comportamiento, actividades y preferencias de la gente que usa el servicio. Se trata de encontrar gustos en común entre estos usuarios y, una vez se descubren, se forman nuevas sugerencias. Por ejemplo: a usuario 1 le gusta A, B y D; a usuario 2 le gusta A, B y X; lo que hace un filtro basado en colaboración es detectar que al usuario 1 podría gustarle X y que al usuario 2 podría gustarle D, solamente porque tienen gustos en común. La principal ventaja de un sistema de este tipo es que puede ser utilizado para recomendaciones de objetos complejos como es el caso de películas porque no se necesita entender el contenido de lo que se está recomendando, sino que solo basta saber a quiénes les gusta y qué gustos hay en común entre los usuarios que disfrutan de estas películas para poder realizar recomendaciones.
(2) Basados en contenido: observa similitudes entre objetos que a un usuario le han gustado. Como los basados en colaboración, también se basa en información histórica sobre lo que los usuarios disfrutan dentro de Netflix. Asimismo, igualmente se alimenta de nuestro comportamiento con la aplicación. Sin embargo, un sistema basado en contenidos sí se preocupa por el contenido de los objetos que va a recomendar. Toma en cuenta únicamente lo que tú como usuario has visto y te ha gustado para encontrar objetos similares y ponerlos frente a tus ojos con la esperanza de que las similitudes entre estos objetos sean un buen representante para tus gustos. Por ejemplo: en Pedralbes hay muchos seguidores de El Señor de los Anillos y El hobbit, pues dados estos gustos y las características de la película, todo lo que se trate de fantasía o época medieval con acción y animales fantásticos, el modelo podría sugerirte una película como la de Eragon, que tiene características similares. La gran ventaja de estos sistemas es que son altamente personalizables puesto que se basan en los gustos de los usuarios y tratan de encontrar películas similares a las que te gustaron en el pasado. En este caso, no importan las interacciones entre los usuarios, no se toman en cuenta las colaboraciones, sino que solo se toma en cuenta el contenido que hayas disfrutado.
(3) Basados en contenido + colaboración: sistemas híbridos que unen las dos formas anteriores para potenciar sus recomendaciones. Es precisamente un sistema híbrido lo que usa Netflix.
El sistema de Netflix
De acuerdo a la compañía, el sistema de Netflix se basa en tres pilares:
(1) Usuarios: expresan sus gustos de forma explícita e implícita. La compañía captura todo tipo de señales: el tiempo que vemos determinada serie, el dispositivo en el que lo hacemos, si te ves toda la temporada en una sola noche, etc. Tu comportamiento también habla de cuánto te gustó el contenido.
(2) Etiquetadores: etiquetan y resumen las películas y series para la compañía. Hay personas contratadas por Netflix para ver, resumir, interpretar, etiquetar, calificar, criticar, investigar o clasificar series y películas.
(3) Machine Learning o aprendizaje automático: pone a funcionar en armonía todos los datos recopilados tanto de los usuarios como de las personas que se dedican a etiquetar el contenido de Netflix.
Netflix tiene un sistema híbrido porque utilizan tanto las interacciones entre los usuarios (gustos compartidos entre nosotros) así como el contenido de las películas, por ello tienen a este grupo de personas que se dedican a etiquetar, resumir y analizar las series que hay en Netflix.
Como parte de las evoluciones que ha sufrido la compañía, pasaron de predecir qué clasificación le pondría un usuario a cada título para sacar de ahí una lista de clasificación a mostrar toda una página personalizada para los usuarios. La migración de clasificaciones se notó recientemente en la interfaz gráfica. Anteriormente, podías seleccionar una clasificación de 0 a 5 estrellas para cada película, mientras que ahora lo único que puedes hacer es dar like o dislike.
Existen dos niveles de clasificación de títulos: basado en filas y columnas. Es muy probable que en esta página personalizada dos sistemas sean utilizados, es decir, uno para organizar las filas de acuerdo a cuál es la primera que ves arriba y el otro para ordenar las columnas de acuerdo a los títulos que ves más hacia la izquierda porque ahí es donde va a ir tu atención primero. La idea detrás de presentar la información de esta manera es la de otorgar un orden y cierta limpieza en la pantalla de los usuarios. En lugar de presentar un montón de títulos sin relación, los usuarios van viendo grupos de temas relacionados. Estos grupos se deciden por diversos factores, no solamente géneros, sino también filtrado colaborativo para ordenar y organizar filas que un usuario tenga interés en ver. El proceso es el siguiente:
(1) Se crea un conjunto de grupos que puedan resultar de interés a un usuario, en conjunto con la evidencia o razón de por qué fueron seleccionados.
(2) Se filtran las películas que ya fueron vistas por el usuario, los títulos que podrían estar repetidos dentro de un mismo grupo.
(3) Se ordenan los títulos utlizando otro algoritmo de clasificación.
(4) Se eligen las filas que se presentan al usuario de acuerdo a diversos factores: hora del día, dispositivo que estás viendo o la calidad de tu internet.
Restricciones
Las recomendaciones que nos hace Netflix tienen varias restricciones:
(1) Deben ser relevantes para el usuario, es decir, deben reflejar tus gustos.
(2) Deben ser diversas, no solo deben enfocarse en uno de tus gustos, sino ofrecer cosas nuevas a los usuarios para motivarte a probar nuevo contenido sin necesariamente alinearte.
(3) Deben reaccionar a cambios en el gusto del usuario.
(4) Deben ser estables al tiempo que responsivas.
(5) Deben ser escalables y capaces de procesar millones de registros. Existen algoritmos que funcionan increíble con conjuntos de datos pequeños, pero cuando tienes millones tanto de películas como de usuarios calcular recomendaciones puede ser algo tardado o, a veces, imposible.
(6) Deben respetar la privacidad de los usuarios al tener información sensible, además de ofrecer predicciones que no fomenten estereotipos nocivos.
(7) Dependientes: si no podemos recolectar información suficiente sobre nuestros usuarios y cómo interactúan con los objetos que tenemos en el sistema, lógicamente nuestro sistema de generación de predicciones va a sufrir de baja calidad.
Conclusión
En la actualidad, es muy difícil encontrar información detallada sobre el sistema de recomendación, que es netamente el negocio de Netflix, por eso lo mantienen tan en secreto. Si quieres profundizar en cómo funcionan los sistemas de recomendación, te recomendamos el blog técnico de Netflix que contiene artículos muy interesantes de alto nivel técnico.
Fuentes consultadas:
Feregrino – That C# guy