Cuando se trata del algoritmo de noticias, hay muchas teorías y mitos. La mayoría de la gente entiende que hay un algoritmo en funcionamiento, y muchos conocen algunos de los factores que informan a ese algoritmo (si te gusta una publicación o te interesa, etc.).). Pero todavía hay muchas cosas que no se entienden.
Compartimos públicamente muchos de los detalles y características de la sección de noticias. Pero bajo el capó, el sistema de clasificación de aprendizaje automático (ML) que impulsa el suministro de noticias es increíblemente complejo, con muchas capas. Estamos compartiendo nuevos detalles sobre cómo funciona nuestro sistema de clasificación y los desafíos de crear un sistema para personalizar el contenido para más de 2 mil millones de personas y mostrar a cada uno de ellos contenido que sea relevante y significativo para ellos, cada vez que visitan Facebook.
¿Qué Tiene De Difícil Esto?
En primer lugar, el volumen es enorme. Más de 2 mil millones de personas en todo el mundo usan Facebook. Para cada una de esas personas, hay más de mil publicaciones de «candidatos» (o publicaciones que podrían aparecer en el feed de esa persona). Ahora estamos hablando de billones de publicaciones en todas las personas en Facebook.
Ahora considere que para cada persona en Facebook, hay miles de señales que necesitamos evaluar para determinar lo que esa persona podría encontrar más relevante. Así que tenemos billones de publicaciones y miles de señales, y necesitamos predecir lo que cada una de esas personas quiere ver en su feed al instante. Cuando abres Facebook, ese proceso sucede en segundo plano en solo el segundo o así que se necesita para cargar tu Feed de noticias.
Y una vez que tenemos todo esto funcionando, las cosas cambian, y tenemos que tener en cuenta los nuevos problemas que surgen, como el clickbait y la difusión de información errónea. Cuando esto sucede, necesitamos encontrar nuevas soluciones. En realidad, el sistema de clasificación no es solo un algoritmo; son múltiples capas de modelos de aprendizaje automático y clasificaciones que aplicamos para predecir el contenido que es más relevante y significativo para cada usuario. A medida que avanzamos en cada etapa, el sistema de clasificación reduce esos miles de publicaciones de candidatos a los pocos cientos que aparecen en las noticias de alguien en un momento dado.
¿Cómo funciona?
En pocas palabras, el sistema determina qué publicaciones aparecen en tu Feed de noticias y en qué orden, al predecir en qué es más probable que estés interesado o con qué te involucres. Estas predicciones se basan en una variedad de factores, incluidos qué y con quién has seguido, te ha gustado o te has comprometido recientemente. Para entender cómo funciona esto en la práctica, comencemos con lo que sucede para una persona que inicia sesión en Facebook: Lo llamaremos Juan.
Desde que Juan inició sesión ayer, su amigo Wei publicó una foto de su cocker spaniel. Otra amiga, Saanvi, publicó un video de su carrera matutina. Su Página favorita publicó un artículo interesante sobre la mejor manera de ver la Vía Láctea por la noche, mientras que su Grupo de cocina favorito publicó cuatro nuevas recetas de masa madre.
Es probable que todo este contenido sea relevante o interesante para Juan porque ha elegido seguir a las personas o Páginas que lo comparten. Para decidir cuál de estas cosas debería aparecer más alto en las noticias de Juan, necesitamos predecir qué es lo que más le importa y qué contenido tiene el mayor valor para él. En términos matemáticos, necesitamos definir una función objetiva para Juan y realizar una optimización de un solo objetivo.
Podemos usar las características de una publicación, como quién está etiquetado en una foto y cuándo se publicó, para predecir si a Juan le gustaría. Por ejemplo, si Juan tiende a interactuar con las publicaciones de Saanvi (p. ej., compartir o comentar) a menudo y su video en ejecución es muy reciente, hay una alta probabilidad de que a Juan le guste su publicación. Si Juan se ha involucrado con más contenido de video que fotos en el pasado, la predicción similar para la foto de Wei de su cocker spaniel podría ser bastante baja. En este caso, nuestro algoritmo de clasificación clasificaría el video en ejecución de Saanvi más alto que la foto del perro de Wei porque predice una mayor probabilidad de que a Juan le guste.
Pero el «me gusta» no es la única forma en que las personas expresan sus preferencias en Facebook. Todos los días, las personas comparten artículos que encuentran interesantes, ven videos de personas o celebridades a las que siguen, o dejan comentarios reflexivos en las publicaciones de sus amigos. Matemáticamente, las cosas se vuelven más complejas cuando necesitamos optimizar para múltiples objetivos que se suman a nuestro objetivo principal: crear el valor a más largo plazo para las personas mostrándoles contenido que sea significativo y relevante para ellas.
Los modelos de ML múltiples producen múltiples predicciones para Juan: la probabilidad de que interactúe con la foto de Wei, el video de Saanvi, el artículo de la Vía Láctea o las recetas de masa madre. Cada modelo trata de clasificar estas piezas de contenido para Juan. A veces no están de acuerdo: puede haber una mayor probabilidad de que a Juan le guste el video en ejecución de Saanvi que el artículo de la Vía Láctea, pero es más probable que comente el artículo que el video. Así que necesitamos una forma de combinar estas predicciones variables en una puntuación optimizada para nuestro objetivo principal de valor a largo plazo.
¿Cómo podemos medir si algo crea valor a largo plazo para una persona? Les preguntamos. Por ejemplo, encuestamos a las personas para preguntarles qué tan significativa encontraron una interacción con sus amigos o si una publicación valió la pena para que nuestro sistema refleje lo que las personas dicen que disfrutan y encuentran significativo. Luego podemos tener en cuenta cada predicción para Juan en función de las acciones que las personas nos dicen (a través de encuestas) que son más significativas y que valen la pena su tiempo.
Pelar las capas
Para clasificar más de mil publicaciones por usuario, por día, para más de 2 mil millones de personas, en tiempo real, necesitamos hacer que el proceso sea eficiente. Gestionamos esto en varios pasos, organizados estratégicamente para que sea rápido y para limitar la cantidad de recursos informáticos necesarios.
En primer lugar, el sistema recopila todas las publicaciones de candidatos que podemos clasificar para Juan (la foto de cocker spaniel, el video en ejecución, etc.).). Este inventario elegible incluye cualquier publicación compartida con Juan por un amigo, Grupo o Página a la que esté conectado que se haya realizado desde su último inicio de sesión y no se haya eliminado. Pero, ¿cómo debemos manejar las publicaciones creadas antes del último inicio de sesión de Juan que aún no ha visto?
Para asegurarnos de que las publicaciones no vistas se reconsideren, aplicamos una lógica de rebotes no leídos: Las publicaciones nuevas que se clasificaron para Juan (pero que no vio) en sus sesiones anteriores se agregan al inventario elegible para esta sesión. También aplicamos una lógica de acción para que cualquier publicación que Juan ya haya visto que haya desencadenado una conversación interesante entre sus amigos también se agregue al inventario elegible.
A continuación, el sistema debe puntuar cada publicación para una variedad de factores, como el tipo de publicación, la similitud con otros elementos y la cantidad de publicaciones que coinciden con lo que Juan tiende a interactuar. Para calcular esto para más de 1000 publicaciones, para cada uno de los miles de millones de usuarios, todo en tiempo real, ejecutamos estos modelos para todas las historias de candidatos en paralelo en varias máquinas, llamadas predictores.
Antes de combinar todas estas predicciones en una sola puntuación, necesitamos aplicar algunas reglas adicionales. Esperamos hasta después de tener estas primeras predicciones para poder reducir el grupo de publicaciones que se clasificarán, y las aplicamos en varias pasadas para ahorrar energía computacional.
En primer lugar, se aplican ciertos procesos de integridad a cada publicación. Estos están diseñados para determinar qué medidas de detección de integridad, en su caso, deben aplicarse a las historias seleccionadas para su clasificación. En el siguiente pase, un modelo ligero reduce el número de candidatos a aproximadamente 500 de los puestos más relevantes para Juan. Clasificar menos historias nos permite usar modelos de redes neuronales más potentes para los próximos pases.
El siguiente es el pase de puntuación principal, donde se realiza la mayor parte de la personalización. Aquí, una puntuación para cada historia se calcula de forma independiente, y luego los 500 mensajes se ordenan por puntuación. Para algunos, la puntuación puede ser mayor para el que le gusta que para comentar, ya que a algunas personas les gusta expresarse a través de gusto de comentar. Cualquier acción en la que una persona rara vez participa (por ejemplo, una predicción similar que está muy cerca de cero) automáticamente tiene un papel mínimo en el ranking, ya que el valor predicho es muy bajo.
Finalmente, ejecutamos el pase contextual, en el que se agregan características contextuales, como reglas de diversidad de tipos de contenido, para asegurarnos de que el Feed de noticias de Juan tenga una buena mezcla de tipos de contenido y no vea varias publicaciones de video, una tras otra. Todos estos pasos de clasificación ocurren en el tiempo que le toma a Juan abrir la aplicación de Facebook, y en cuestión de segundos, tiene una fuente de noticias con puntuación que está lista para navegar y disfrutar.