Twitter libero el código del feed de mensajes recomendados
Hace pocos días se dio a conocer la noticia de que Twitter libero el código fuente para el conjunto «Algoritmo de recomendación», que incluye servicios y controladores utilizados para crear un feed de mensajes recomendados que se muestra al usuario en la cronología de inicio.
Además de brindar transparencia y permitir una auditoría independiente de los algoritmos utilizados, Twitter ha expresado su disposición a aceptar solicitudes de extracción de la comunidad con cambios que mejoren los algoritmos que, después de una revisión, pueden transferirse al código base de trabajo de Twitter.
En Twitter 2.0 , creemos que tenemos la responsabilidad, como plaza pública de Internet, de hacer que nuestra plataforma sea transparente. Así que hoy estamos dando el primer paso en una nueva era de transparencia y abriendo gran parte de nuestro código fuente a la comunidad global.
Sobre el codigo liberado, se menciona que la creación de un feed de recomendaciones se divide en tres etapas principales:
- Extraer los mejores tweets de diferentes fuentes (candidate sourcing). En esta etapa, se utilizan como fuentes: el sistema de indexación de índice de búsqueda, que cubre los mensajes de las personas que tienen una suscripción (In-Network); una capa cr-mixer para extraer mensajes de varios servicios auxiliares que cubren mensajes de personas que no están suscritas (fuera de la red); el componente user-tweet-entity-graph (UTEG) para extraer mensajes basados en el gráfico de interacción del usuario actual; servicio de seguimiento de recomendaciones (FRS) para generar recomendaciones basadas en la actividad de los usuarios rastreados. En el feed, aproximadamente la mitad de los mensajes provienen de personas que tienen una suscripción.
- Clasificación de tweets seleccionados utilizando un modelo de aprendizaje automático. Se utilizan dos sistemas de clasificación: un modelo de clasificación ligera que utiliza un índice de búsqueda y una red neuronal de clasificación pesada para seleccionar a los candidatos más relevantes.
- Aplicacion de filtros y heurística para descartar mensajes bloqueados, obscenos o ya vistos. El componente home-mixer se usa para formar el feed y el sistema de filtros de visibilidad se usa para filtrar. Además, se abrió el código del antiguo sistema timelineranker , que se utilizaba para extraer tweets del índice de búsqueda.
La base de las recomendaciones de Twitter es un conjunto de modelos y características centrales que extraen información latente de los datos de Tweet, usuario y participación. Estos modelos tienen como objetivo responder preguntas importantes sobre la red de Twitter, como «¿Cuál es la probabilidad de que interactúes con otro usuario en el futuro?» o “¿Cuáles son las comunidades en Twitter y cuáles son los Tweets de moda dentro de ellas?” Responder estas preguntas con precisión permite a Twitter ofrecer recomendaciones más relevantes.
Ademas de ello, tambien se destaca el código de los componentes auxiliares que también está abierto:
- simclusters-ann: sirve para definir las comunidades con intereses similares.
- TwHIN: este tiene como función, la formación de gráficos de conocimiento sobre usuarios y tweets (suscriptores, tweets seleccionados por el usuario, clics en anuncios).
- trust-and-safety-models: modelos para identificar contenido inapropiado, obsceno y ofensivo.
- real-graph: es un modelo para predecir interacciones entre diferentes usuarios.
- tweepcred : un algoritmo para calcular la reputación de un usuario en función de los enlaces a sus publicaciones (Page-Rank).
recos-injector: es un controlador de flujo de eventos que genera entradas para los servicios de GraphJet. - graph-feature-service: funciones gráficas para estimar la interacción de dos usuarios, como cuánto aprecia el usuario «A» los tweets del usuario «B».
- navi: es un servidor de alto rendimiento para procesar modelos de aprendizaje automático (escrito en Rust).
- product-mixer: generador de feeds con contenido de diferentes fuentes.
- twml: es un antiguo marco de aprendizaje automático (bifurcación de TensorFlow v1).
Cabe mencionar qué el código está abierto bajo la licencia AGPLv3. La implementación utilizó los lenguajes de programación Scala (53,8%), Java (29,7%), Starlark (6,3%), Python (4,7%), C++ (2,4%) y Rust (1,5%).
El código asociado con los modelos de aprendizaje automático utilizados en Twitter se publica en un repositorio separado (los modelos en sí no se publican por razones de seguridad y privacidad). Los componentes para generar recomendaciones publicitarias también permanecen inéditos.
Si estás interesado en poder conocer un poco más al respecto, puedes consultar los detalles en el siguiente enlace.