El algoritmo de recomendación de Twitter es un conjunto de servicios y trabajos que son responsables de servir feeds de Tweets y otro contenido en todas las superficies de productos de Twitter (por ejemplo, For You Timeline, Search, Explore, Notifications). Para obtener una introducción a cómo funciona el algoritmo, consulte nuestro blog de ingeniería.
Las superficies de productos en Twitter se basan en un conjunto compartido de datos, modelos y marcos de software. Los componentes compartidos incluidos en este repositorio se enumeran a continuación:
Tipo | Componente | Descripción |
---|---|---|
Datos | tweetypie | Servicio principal de Tweet que maneja la lectura y escritura de datos de Tweet. |
acciones-de-usuario-unificadas | Flujo en tiempo real de acciones de usuarios en Twitter. | |
servicio-de-señal-de-usuario | Plataforma centralizada para recuperar señales de usuario explícitas (por ejemplo, me gusta, respuestas) e implícitas (por ejemplo, visitas al perfil, clics en tweets). | |
Modelo | SimClusters | Detección de comunidades y escasas incrustaciones en esas comunidades. |
gemelo | Incorporaciones densas de gráficos de conocimiento para usuarios y tweets. | |
modelos-de-confianza-y-seguridad | Modelos para detectar contenido NSFW o abusivo. | |
gráfico real | Modelo para predecir la probabilidad de que un Usuario de Twitter interactúe con otro Usuario. | |
tuitear | Algoritmo de Page-Rank para calcular la reputación de los usuarios de Twitter. | |
inyector-recos | Procesador de eventos de transmisión para crear flujos de entrada para servicios basados en GraphJet. | |
servicio-de-características-gráficas | Ofrece funciones gráficas para un par de usuarios dirigidos (por ejemplo, a cuántos de los siguientes usuarios A les gustaron los tweets del usuario B). | |
tema-prueba-social | Identifica temas relacionados con Tweets individuales. | |
goleador-representación | Calcule puntuaciones entre pares de entidades (Usuarios, Tweets, etc.) mediante la incorporación de similitud. | |
Marco de software | navi | Modelo de aprendizaje automático de alto rendimiento escrito en Rust. |
mezclador de productos | Marco de software para crear feeds de contenido. | |
marco-de-agregación-de-cronologías | Marco para generar características agregadas por lotes o en tiempo real. | |
gerente de representacion | Servicio para recuperar incrustaciones (es decir, SimClusers y TwHIN). | |
twml | Marco de aprendizaje automático heredado construido sobre TensorFlow v1. |
Las superficies de productos incluidas actualmente en este repositorio son la línea de tiempo For You y las notificaciones recomendadas.
El siguiente diagrama ilustra cómo los principales servicios y trabajos se interconectan para construir una línea de tiempo para usted.
Los componentes principales de For You Timeline incluidos en este repositorio se enumeran a continuación:
Tipo | Componente | Descripción |
---|---|---|
Fuente candidata | índice de búsqueda | Encuentre y clasifique tweets dentro de la red. ~50% de los Tweets provienen de esta fuente candidata. |
mezclador cr | Capa de coordinación para buscar candidatos a tweets fuera de la red desde servicios informáticos subyacentes. | |
gráfico-entidad-tweet-usuario (UTEG) | Mantiene un gráfico de interacción entre el usuario y el twitt en la memoria y encuentra candidatos basándose en los recorridos de este gráfico. Esto se basa en el marco GraphJet. Varias otras funciones basadas en GraphJet y fuentes candidatas se encuentran aquí. | |
servicio de seguimiento de recomendaciones (FRS) | Proporciona a los usuarios recomendaciones de cuentas a seguir y tweets de esas cuentas. | |
Categoría | rango ligero | Modelo Light Ranker utilizado por el índice de búsqueda (Earlybird) para clasificar los Tweets. |
rango pesado | Red neuronal para clasificar los tweets de los candidatos. Una de las principales señales utilizadas para seleccionar los Tweets en la línea de tiempo es la publicación de fuentes de candidatos. | |
Mezcla y filtrado de tweets | batidora casera | Servicio principal utilizado para construir y servir la línea de tiempo del hogar. Construido sobre mezclador de productos. |
filtros de visibilidad | Responsable de filtrar el contenido de Twitter para respaldar el cumplimiento legal, mejorar la calidad del producto, aumentar la confianza del usuario, proteger los ingresos mediante el uso de filtrado estricto, tratamientos visibles del producto y reducción de clasificación general. | |
línea de tiemporanker | Servicio heredado que proporciona tweets con puntuación de relevancia del Earlybird Search Index y el servicio UTEG. |
Los componentes principales de las Notificaciones recomendadas incluidas en este repositorio se enumeran a continuación:
Tipo | Componente | Descripción |
---|---|---|
Servicio | servicio de empuje | El principal servicio de recomendaciones en Twitter se utiliza para mostrar recomendaciones a nuestros usuarios a través de notificaciones. |
Categoría | pushservice-ranker-ligero | Modelo Light Ranker utilizado por pushservice para clasificar los Tweets. Une la generación de candidatos y las clasificaciones altas mediante la preseleccionación de candidatos altamente relevantes del enorme grupo de candidatos inicial. |
pushservice-clasificador-pesado | Modelo de aprendizaje multitarea para predecir las probabilidades de que los usuarios objetivo abran e interactúen con las notificaciones enviadas. |
Incluimos archivos BUILD de Bazel para la mayoría de los componentes, pero no un archivo BUILD o WORKSPACE de nivel superior. Planeamos agregar un sistema de compilación y prueba más completo en el futuro.
Invitamos a la comunidad a enviar problemas de GitHub y solicitar sugerencias para mejorar el algoritmo de recomendación. Estamos trabajando en herramientas para gestionar estas sugerencias y sincronizar los cambios con nuestro repositorio interno. Cualquier inquietud o problema de seguridad debe remitirse a nuestro programa oficial de recompensas por errores a través de HackerOne. Esperamos beneficiarnos de la inteligencia colectiva y la experiencia de la comunidad global para ayudarnos a identificar problemas y sugerir mejoras que, en última instancia, conduzcan a un mejor Twitter.
Lea nuestro blog sobre la iniciativa de código abierto aquí.