needhelp
← Back to blog

Разбор open-source алгоритма рекомендаций X от xAI: архитектура Phoenix и лента For You

by xingwangzhe
xAI
Recommendation System
Machine Learning
Grok
Transformer
Open Source

Разбор open-source алгоритма рекомендаций X от xAI: от архитектуры Phoenix к ленте For You

Обзор

В январе 2026 года xAI опубликовал на GitHub репозиторий xai-org/x-algorithm — ядро рекомендательного алгоритма, управляющего лентой «For You» в X (бывший Twitter). Репозиторий набрал более 20,800 звезд и 3,600 форков. В отличие от частичного open-source Twitter 2023 года, это полная архитектурная переработка — от системы на ручных правилах к сквозной ML-архитектуре на базе Grok Transformer.

1. Архитектура: пятислойный рекомендательный пайплайн

От правил к сквозному обучению

Старая система 2023 года описывалась критиками как «запутанный спагетти-код с ручными фильтрами». Новая система, с кодовым названием «Phoenix», устранила все hand-engineered фичи и большинство эвристических правил. Phoenix напрямую использует ту же архитектуру Transformer, что и Grok, адаптированную для рекомендаций.

Семистадийная обработка

Стадия Компонент Объем
1. Query Hydration home-mixer N/A
2. Candidate Sourcing thunder + phoenix ~1,500
3. Candidate Hydration home-mixer ~1,500
4. Pre-Scoring Filters home-mixer ~1,200
5. ML Scoring phoenix (Grok Transformer) ~1,200
6. Selection home-mixer ~200
7. Post-Selection Filters home-mixer ~180

Техстек: Rust + Python

Rust используется для инфраструктуры: пайплайн Home Mixer, in-memory хранилище Thunder, трейт-фреймворк Candidate Pipeline, gRPC-интерфейсы. Python + JAX используется для ML-слоя: модели поиска и ранжирования Phoenix на базе JAX и Haiku.

2. Phoenix: ML-ядро на Grok Transformer

Two-Tower Retrieval

Классическая архитектура двух башен: User Tower кодирует пользователя и историю в embedding, Candidate Tower кодирует все посты. Поиск по косинусной близости для извлечения Top-K кандидатов.

Candidate Isolation: инновация в ранжировании

Ключевая инновация Phoenix — маска внимания Candidate Isolation. В стандартном Transformer позиции могут обращать внимание друг на друга. Для ранжирования это создает проблему: оценка кандидата A зависит от того, есть ли в батче кандидат B.

Phoenix решает это маской make_recsys_attn_mask:

  • User и History: стандартное каузальное внимание
  • Candidates: могут смотреть на User и History, но только на себя (только диагональ 1)

Преимущества: консистентность оценок, кешируемость, масштабируемость, интерпретируемость.

Мульти-действие: 15 типов взаимодействия

Phoenix предсказывает вероятности для 15 типов взаимодействия:

  • Позитивные (лайк, реплай, репост, клик, просмотр, шаринг, подписка) — вес ~1x
  • Негативные (не интересно, блокировка, мьют, жалоба) — вес ~-74x

Одна негативная реакция отменяет десятки позитивных.

3. Компоненты инфраструктуры

Home Mixer: центральная нервная система

Home Mixer на Rust координирует все стадии пайплайна. Модульная трейт-архитектура (Source, Hydrator, Filter, Scorer, Selector, SideEffect) обеспечивает исключительную расширяемость.

Thunder: поиск за миллисекунды

Thunder — in-memory сервис для хранения постов от аккаунтов, на которые подписан пользователь. Написан на Rust, обеспечивает субмиллисекундный поиск.

4. Ключевые дизайн-решения

Отказ от ручных фич

Phoenix полностью устраняет hand-engineered фичи. Transformer изучает релевантность напрямую из последовательностей взаимодействия пользователя. Это снижает сложность пайплайнов данных, но требует большего объема и качества обучающих данных.

Мульти-действие vs одиночная оценка

Асимметричная стратегия взвешивания: негативные сигналы с весом ~-74x отражают принцип — показать плохую рекомендацию дороже, чем пропустить хорошую.

5. Сравнение с индустрией

Платформа Статус алгоритма
X (Phoenix) Полностью open-source (Apache 2.0)
Meta Никогда не открывала
TikTok Считается коммерческой тайной
YouTube Частично через публикации

Phoenix xAI — первая продакшен-рекомендательная система, полностью открытая мейнстримной соцплатформой.

6. Инсайты для контент-креаторов

  • Качество важнее количества: реплаи, репосты и шаринг весят больше пассивных лайков
  • Негативные сигналы разрушительны: Not Interested / Block / Mute с весом -74x
  • Время просмотра — скрытый сигнал: чем дольше пользователь на посте, тем выше шанс рекомендации
  • Внешние ссылки подавляются: на 30-50% ниже охват

References

Share this page