xai-org/x-algorithm

Algorithm powering the For You feed on X

X For You フィードアルゴリズム

概要

  • X(旧Twitter)の For You タイムラインのオープンソースコア。フォローしているアカウント(ネットワーク内)のコンテンツと、他のアカウントから発見されたコンテンツ(ネットワーク外)を混ぜ合わせ、トランスフォーマーベースのモデルですべてをランク付けすることで、視聴者が見る投稿を決定します。

主要コンポーネント

  • Home Mixer – 候補を収集し、ハイドレーションし、事前スコアリングフィルターを適用し、Phoenix モデルでスコアリングし、再ランク付けし、最終的に上位 K 件の投稿を選択する、主要なリクエスト時パイプライン。
  • Thunder – フォロー中のアカウントからの最近の投稿のインメモリキャッシュ。
  • Phoenix – 各候補投稿に対する視聴者のアクション(いいね、リツイート、通報、滞在時間など)の確率を予測する検索モデル。
  • SimClusters – 視聴者がフォローしていないアカウントの投稿を表示する類似性ベースのソース。
  • 可視性フィルタリング – ラベル、ブロック、ミュート、法的コンプライアンスなどに基づいて、各投稿を表示するか、通知付きで表示するか、インタースティシャルの背後に表示するか、または破棄するかを決定する独立したサブシステム。
  • ラベリングパス – 分類器(media-model-proxy、CLIP、Agatha、BDSM など)とルールエンジン(Botmaker、Scarecrow、Abuse-Enforcement)を実行し、投稿とアカウントに安全性と信頼性のラベルを付ける継続的なバックグラウンドパイプライン。
  • ブレンディングパイプライン – ランク付け後、広告、「フォローする人」の推奨、プロンプトなどの非投稿アイテムがオーガニックタイムラインにインターリーブされます。

仕組み(高レベルフロー)

  1. クエリハイドレーション – 視聴者の最近のエンゲージメント履歴、フォローリスト、ブロック/ミュートなどを収集します。
  2. 候補ソース – Thunder(ネットワーク内)、Phoenix 検索、SimClusters、共有の人気投稿リストを並行してクエリします。
  3. 候補ハイドレーション – 投稿テキスト、メディア、著者詳細、既存のラベル、言語などを取得します。
  4. 事前スコアリングフィルター – 重複、古い投稿、視聴者自身の投稿、ブロックされたアカウントなどを削除します。
  5. スコアリング – Phoenix がアクション確率を予測します。バリューモデル がそれらを設定可能な重みと組み合わせます。オプションの VMRanker は外部リランカーを呼び出すことができます。
  6. 選択 – スコア上位 K 件の候補を保持します。
  7. 選択後フィルター – 可視性フィルタリングが各投稿の最終的な運命を決定します。その後、会話スレッドの重複排除が行われます。
  8. ブレンディング – 広告、フォロー提案、プロンプトがランク付けされた投稿とインターリーブされます。
  9. 副作用 – 配信イベントのログ記録、キャッシュの更新、広告指標の記録。

設定と実験

  • 調整可能なすべての重みと機能フラグは home-mixer/params/param.rs にあります。実験では、コード変更なしで個々のステージ(例:ブラジル2026年選挙フィルター)を有効/無効にできます。

リポジトリに含まれないもの

  • 本番データストア、リアルタイムモデルトレーニングパイプライン、完全なプライベート安全モデルセット。リポジトリには、オーケストレーションコードと概念実証トレーニング用の合成データ生成が含まれています。

透明性ツール

  • Under the Hood ラベル透明性 UI は、投稿の可視性が制限された理由(例:法的削除、コンプライアンスフィルター)をユーザーに報告します。

典型的なユースケース

  • 大規模なレコメンデーションパイプラインを研究する研究者。
  • 同様のフィードシステムを構築し、候補生成、スコアリング、安全フィルタリングのリファレンスアーキテクチャを必要とするエンジニア。
  • プラットフォームの決定(重み、法的フィルター)がどのように実装されているかを調査する監査人や政策アナリスト。

はじめに

  1. リポジトリをクローンします。
  2. README の合成データ生成に関するセクションに従って、小規模な Phoenix トレーニングを実行します。
  3. 提供された設定ファイルを使用して、Home Mixer サービスをローカルで起動します(Rust ツールチェーンが必要)。
  4. under_the_hood サーバーを実行し、テストユーザー ID でクエリして透明性ツールを探索します。

ライセンス – リポジトリ内の LICENSE ファイルを参照してください。

関連

  • Dispatch
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト