概要
- Xのレコメンデーションアルゴリズム は、各種プロダクト画面で投稿やコンテンツのフィードを提供するサービス群
- 共通データ・モデル・フレームワーク を基盤とするアーキテクチャ
- For You Timeline や Recommended Notifications など、主要な画面に適用
- 候補選定、ランキング、フィルタリング などの複数コンポーネントで構成
- オープンソース化とコミュニティ貢献 を推進
Xのレコメンデーションアルゴリズムの全体像
- Xのレコメンデーションアルゴリズム は、For You Timeline、検索、Explore、通知など全プロダクト画面で投稿フィードを提供
- 詳細な仕組み については公式エンジニアリングブログを参照
- 共通基盤 としてデータ、モデル、ソフトウェアフレームワークを共有
- このリポジトリ には主要な共通コンポーネントを収録
アーキテクチャと主要コンポーネント
- tweetypie :投稿データの読み書きを担当するコアサービス
- unified-user-actions :リアルタイムのユーザーアクションストリーム
- user-signal-service :明示的・暗黙的ユーザーシグナルの一元取得
- SimClusters :コミュニティ検出と疎な埋め込み
- TwHIN :ユーザー・投稿の知識グラフ埋め込み
- trust-and-safety-models :NSFWや不適切コンテンツ検出モデル
- real-graph :ユーザー同士の相互作用予測モデル
- tweepcred :Page-Rankアルゴリズムによるユーザー評価
- recos-injector :GraphJet系サービス向けストリーム生成
- graph-feature-service :ユーザーペアのグラフ特徴量提供
- topic-social-proof :投稿に関連するトピック特定
- representation-scorer :エンティティ間のスコア計算
- navi :Rust製の高性能MLモデルサービング
- product-mixer :フィード生成用フレームワーク
- timelines-aggregation-framework :バッチ/リアルタイムで集約特徴量生成
- representation-manager :SimClustersやTwHINの埋め込み取得
- twml :TensorFlow v1ベースのレガシーMLフレームワーク
For You Timelineの仕組み
- search-index :In-Network投稿の検索・ランキング(全体の約50%を占める)
- tweet-mixer :Out-of-Network候補投稿の取得調整レイヤー
- user-tweet-entity-graph (UTEG) :ユーザーと投稿の相互作用グラフ管理、GraphJetフレームワーク利用
- follow-recommendation-service (FRS) :アカウント・投稿のフォロー推奨
- light-ranker :search-indexで用いられる軽量ランキングモデル
- heavy-ranker :候補投稿の選定後に使うニューラルネットワーク型ランキングモデル
- home-mixer :Home Timeline生成・提供の主要サービス、product-mixer上に構築
- visibility-filters :法令遵守・品質向上・信頼性確保・収益保護のためのコンテンツフィルタリング
- timelineranker :Earlybird Search IndexやUTEGの関連度スコア投稿提供レガシーサービス
Recommended Notificationsの仕組み
- pushservice :推薦通知の主要サービス
- pushservice-light-ranker :候補選定のための軽量ランキングモデル
- pushservice-heavy-ranker :通知開封・エンゲージ予測のマルチタスク学習モデル
ビルド・テスト・貢献
- 多くのコンポーネントにBazel BUILDファイル を用意
- トップレベルのBUILDやWORKSPACEファイルは未提供 (今後追加予定)
- GitHub issueやPull Request によるコミュニティからの提案を歓迎
- バグ報告やセキュリティ問題 はHackerOneの公式バグバウンティプログラム経由で受付
- オープンソース化によりグローバルな知見を活用し、アルゴリズムの改善を目指す方針
まとめ
- Xのレコメンデーションアルゴリズム は多層的なサービス・モデル・フレームワークで構築
- 透明性・品質向上・コミュニティ貢献 を重視したオープンソースプロジェクト
- 継続的な改善・拡張 を目指す姿勢