37 puntos por xguru 2026-01-21 | 2 comentarios | Compartir por WhatsApp
  • X: sistema de recomendación basado en machine learning desarrollado para mejorar la calidad de las recomendaciones de contenido personalizado del feed "For You"
  • El feed se construye combinando dos fuentes: cuentas seguidas (Thunder) y contenido de cuentas no seguidas (Phoenix Retrieval)
  • Todos los posts candidatos se evalúan con Phoenix, un modelo Transformer basado en Grok, para producir el ranking final
    • Este modelo predice la probabilidad de interacción de cada publicación
  • En el sistema se eliminaron todas las funciones diseñadas manualmente y la mayoría de los algoritmos heurísticos
  • Analiza el historial de actividad del usuario (me gusta, respuestas, compartidos) para identificar contenido relevante

Arquitectura del sistema

  • Home Mixer es la capa de orquestación que coordina todo el pipeline
    • Incluye la etapa Query Hydration, que recopila el historial de comportamiento del usuario y la información de seguimiento
    • Gestiona una serie de etapas: recuperación de candidatos, enriquecimiento de datos, filtrado, puntuación y selección final
    • Devuelve publicaciones ordenadas por usuario mediante ScoredPostsService basado en gRPC
  • Thunder es un almacenamiento en memoria que recopila publicaciones en tiempo real mediante Kafka event streams
    • Mantiene almacenamiento por usuario para publicaciones originales, respuestas/reposts y publicaciones de video
    • Proporciona candidatos de publicaciones in-network desde cuentas que el usuario solicitante sigue
    • Entrega las publicaciones más recientes de las cuentas seguidas con latencia ultrabaja
    • Logra rendimiento de consulta a nivel submilisegundo sin acceder a bases de datos externas
  • Phoenix es el componente principal de ML de la recomendación, y consta de dos etapas: Retrieval y Ranking
    • Búsqueda: usa un modelo Two-Tower para calcular la similitud entre embeddings de características/historial de interacción del usuario y embeddings de publicaciones, y recuperar los posts Top-K
    • Ranking: usa una arquitectura Transformer with Candidate Isolation diseñada para que cada candidato se evalúe de forma independiente
      • Recibe como entrada el contexto del usuario (historial de interacción) y la publicación candidata
      • Predice para cada publicación probabilidades de múltiples acciones como me gusta, respuesta, repost, clic, etc.
  • Candidate Pipeline es un framework reutilizable de pipeline de recomendación
    • Define traits como Source, Hydrator, Filter, Scorer y Selector
    • Incorpora ejecución en paralelo, manejo de errores y logging para asegurar escalabilidad y estabilidad

Cómo funciona

  • Etapas del pipeline

    • 1. Obtener datos de consulta: recupera el historial reciente de actividad del usuario y metadatos (por ejemplo, la lista de cuentas seguidas)
    • 2. Descubrimiento de candidatos: busca publicaciones candidatas en las siguientes fuentes
      • Thunder: publicaciones recientes de cuentas seguidas (dentro de la red)
      • Phoenix Retrieval: publicaciones descubiertas con machine learning en el corpus global (fuera de la red)
    • 3. Hydration de candidatos usando la siguiente información:
      • Datos clave de la publicación (texto, medios, etc.)
      • Información del autor (nombre de usuario, estado de verificación)
      • Duración del video (en el caso de publicaciones de video)
      • Estado de suscripción
    • 4. Filtro previo a la puntuación: elimina publicaciones que cumplan con las siguientes condiciones
      • Duplicadas
      • Demasiado antiguas
      • Del propio espectador
      • De cuentas bloqueadas/silenciadas
      • Que incluyan palabras clave silenciadas
      • Ya vistas o servidas recientemente
      • Contenido no disponible para suscripción
    • 5. Método de puntuación: aplica varios scorers de forma secuencial
      • Phoenix Scorer: obtiene predicciones de machine learning usando el modelo Transformer Phoenix
      • Calculador de puntaje ponderado: combina las predicciones para producir el puntaje final de relevancia
      • Calculador de puntaje de diversidad de autores: reduce el impacto de puntajes repetidos del mismo autor para favorecer la diversidad
      • OON Scorer: ajusta el puntaje del contenido fuera de la red
    • 6. Selección: ordena por puntaje y selecciona los K candidatos principales
    • 7. Procedimiento posterior a la selección: validación final de las publicaciones candidatas
  • Puntuación y ranking

    • Los valores predichos por el modelo Phoenix se combinan mediante una suma ponderada
    • Las acciones positivas (me gusta, compartidos, etc.) reciben mayor peso, mientras que las acciones negativas (bloqueos, reportes, etc.) restan puntos
  • Filtrado en dos etapas

    • Filtro antes del cálculo del puntaje: elimina duplicados, publicaciones más antiguas que el umbral, publicaciones propias, contenido de pago no visible, publicaciones ya vistas o servidas, cuentas bloqueadas, palabras clave silenciadas, etc.
    • Filtro después de la selección: elimina publicaciones borradas, spam, contenido violento, publicaciones gráficas y duplicados de múltiples ramas dentro del mismo hilo de conversación

Principios clave de diseño

  • Eliminación de la feature engineering manual; el Transformer aprende directamente de las secuencias de comportamiento del usuario
  • Evaluación independiente de candidatos (Candidate Isolation) para producir puntajes consistentes y facilitar el caching
  • Embeddings basados en hash; tanto la recuperación como el ranking usan múltiples funciones hash en la consulta de embeddings
  • Predicción multiacción (Multi-Action Prediction); en lugar de un único puntaje de "relevancia", se predicen múltiples acciones
  • Arquitectura modular de pipeline
    • Separa la ejecución y el monitoreo del pipeline de la lógica de negocio
    • Permite ejecución paralela de etapas independientes y manejo adecuado de errores
    • Facilita agregar nuevas fuentes, hydration, filtros y scorers

Licencia

2 comentarios

 
pmc7777 2026-01-21

"Rust 62.9%"

 
nemorize 2026-01-21

트위터의 추천알고리즘을 오픈소스로 공개
¿Será algo distinto a esto también? Tendré que hacerme un tiempo el fin de semana para leerlo...