El 26 de enero de 2021 Facebook publicó en su blog un artículo hablando acerca del sistema de clasificación que usa para el newsfeed y que explica cómo funciona el algoritmo de clasificación de Facebook:
Este es un resumen de esa publicación.
Diseñar un sistema un sistema personalizado de clasificación para 2mil millones de personas donde cada una posee diferentes gustos, intereses, comportamientos y existe una cantidad casi ilimitada de contenido disponible para mostrarles pero tiempo limitado no es una tarea nada trivial.
Sin embargo, esa es la mina de oro sobre la cual existe Facebook, así que se toman muy enserio este trabajo y para ello emplean diferentes métodos.
Facebook utiliza diferentes sistemas de Machine Learning para predecir de la forma más precisa posible el contenido que será más importante para cada persona.
Construyendo un algoritmo de clasificación
Para entender cómo funciona el sistema podemos comenzar pensando en… mmm llamémosle Juan. Desde la última vez que Juan entró a Facebook su amigo Pedro ha publicado una foto de su perro y su otro mejor amigo José publicó un video de su desayuno, además su página favorita publicó un nuevo meme que se está volviendo viral y el grupo de activistas al que está registrado ha lanzado una nueva publicación que está teniendo bastantes comentarios.
Ya que Juan se suscribió a todo esto e interactúa normalmente con las publicaciones de sus amigos todo parece igualmente relevante para Juan.
Para que Facebook pueda priorizar todo este contenido primero es necesario que entienda qué es lo que más le importa a Juan y cuál contenido aportará mayor valor para él.
Una vez que entendemos esto, será necesario pasarlo a términos matemáticos.
Vamos a tomar el video de José como ejemplo. Una señal de que la publicación tiene algún valor para Juan es que alguien haya dado click en el botón de me gusta. Usando varios atributos de la publicación podemos saber más información: quien está etiquetado en la publicación, cuándo fue lanzada, qué tipo de relación tiene con Juan la persona que lo publica, si alguno etiqueta a otra persona registrada como familiar, etc. Pueden ser miles las señales que Facebook toma en cuenta en este proceso (en serio el artículo original dice MILES).
El valor de cada una de estas características es pasado por una función matemática que nos permite calcular el valor específico de la publicación para Juan. Algo como esto:
Yijt = f(xijt1;xijt2; … xijtC)
Tomando en cuenta que esta función se calcula para cada publicación dentro del feed de cada persona entre los 2 mil millones de usuarios activos de Facebook cada día, predecir lo que le gustará a cada quien ya parece una tarea poco menos que imposible.
Facebook utiliza algunos modelos de predicción para resolver este problema. Además, el comportamiento diario de cada usuario al darle preferencia a un contenido sobre otro también ayuda bastante sin contar las encuestas en las que otros usuarios participan para aportar más información sobre diferentes contenidos.
https://www.facebook.com/Engineering/videos/264352435037706/
Aproximandose al sistema ideal de rankeo scalable
Ahora que entendemos un poco sobre la teoría detrás del sistema de rankeo de Facebook solo queda hablar sobre cómo se hace esto para más de 1000 post al día que en promedio consumen cada uno de esos 2 mil millones de usuarios activos de la plataforma. Y si te lo preguntabas, sí Facebook tambien toma en cuenta las publicaciones que están siendo subidas en ese mismo instante y aquellas con las que Juan está interactuando en el momento.
Ya sabes… algo tranqui.
Para esta tarea titánica Facebook divide su sistema en 3 grandes secciones:
- Experiencia: no es otra cosa que la interfaz que los usuarios usan para entrar a Facebook (Android, IOS, tablet, movil, escritorio, etc.)
- Infraestructura aquella donde se recolectan todos los posts disponibles para el usuario
- Rankeo e información: reúne todos los datos posibles de cada post y es el encargado de priorizar y predecir el éxito de cada publicación.
En la imágen superior te podrás dar cuenta que el Feed Aggregator es la parte más crucial de todo el proceso ya que conecta las partes más complejas. Veamos cómo funciona:
- Consulta de inventario: Recopila todas las publicaciones posibles para mostrarle a una persona, aquí se incluyen las publicaciones compartidas por amigos, grupos a los que estás suscrito o publicaciones de páginas que sigues y que se realizaron desde el último inicio de sesión además aquí se toman en cuenta todas las publicaciones que ya existían durante la última sesión pero que no fue posible mostrarlas pero siguen siendo relevantes por ejemplo aquellas que iniciaron una conversación entre amigos.
- Puntuación para Juan para cada predicción. Ahora que tenemos el inventario de Juan es necesario calificar cada publicación y esto se realiza en tiempo real por medio de métodos de aprendizaje profundo y redes neuronales en máquinas llamadas predictores.
- Calcular una sola puntuación de muchas predicciones: Ahora que tenemos todas las predicciones, podemos combinarlas en una sola puntuación y aplicar reglas, como la diversidad de tipos de contenido . Finalmente, tenemos el paso 2, que es el pase contextual. Aquí, se agregan características contextuales, como reglas de diversidad de tipo de contenido, para ayudar a diversificar la sección de noticias de Juan.
- Una mirada más profunda al paso anterior: la mayor parte de la personalización ocurre en el paso 1. Para algunas personas, la puntuación puede ser más alta para los Me gusta que para los comentarios, ya que a algunas personas les gusta expresarse más a través de los Me gusta que de los comentarios. Para personalizar más allá de esta dimensión, Facebook sigue investigando la personalización basada en datos observacionales.
Entre las claves para entender todo este gran proceso de selección es:
- Las acciones que cada persona toma más frecuentemente importan más. Una persona que prefiere dejar comentarios en publicaciones verá más contenido que le incite a hacerlo.
- El feed toma en cuenta miles de factores para rankear el correctamente el contenido y aunque obviamente hay factores con más peso que otros lo importante sigue siendo generar una reacción en las personas.
- Llevar contenido relevante para las personas sigue siendo el objetivo principal de todos los procesos de rankeo en Facebook.
- No hay forma de superar fácilmente «al algoritmo» ya que no existe uno solo ni tiene una sola forma concreta de funcionar para todos los usuarios de la red social.
Dicho esto, ¿qué opinas de la forma como funciona internamente el sistema de rankeo de Facebook?