xai-org/x-algorithm

Algorithm powering the For You feed on X

X For You 推薦演算法 (x‑ai‑org/x‑algorithm)

是什麼 – 本倉儲包含驅動 X(原 Twitter)「For‑You」時間軸的生產級程式碼。它將使用者關注帳號的內容(in‑network 路徑)與外部發現的內容(out‑of‑network 路徑)兩條串流合併,再透過基於 Transformer 的模型進行過濾與排序。

為何重要 – 此推薦流是 X 平台的核心使用者體驗。理解其運作原理對研究大規模推薦系統、即時機器學習流程,或演算法式內容編排的社會影響具有重要價值。


核心概念

概念 說明
In‑network 來源 thunder/ – 以記憶體儲存使用者關注帳號的最新推文。
Out‑of‑network 來源 phoenix/ – 用於預測使用者未關注帳號推文相關性的檢索模型。
simclusters/ – 基於相似性的聚類,用於挖掘額外的外部推文。
評分模型 一個命名為 Phoenix 的 Transformer 模型,利用使用者近期互動歷史,預測 Like、Retweet、Reply、Dwell‑time、Report 等行為的機率。
加權 預測的行為機率乘以人工調校的權重(見 home-mixer/params/param.rs),求和後生成單一相關性分數。
可見性過濾 visibility-filtering/ 根據豐富信號(使用者屏蔽、靜音、帳號標籤、國家、訂閱狀態等)決定每則推文是 ALLOW(顯示)、INTERSTITIAL(如成人內容警告)還是 DROP(隱藏)。
混合流程 排序後,非推文內容(廣告、"關注建議"、提示等)透過 Blenderhome-mixer/candidate_pipeline/for_you_candidate_pipeline.rs)進行交錯插入。
標籤路徑 持續背景工作使用一系列分類器(agatha/bdsm/clip/media‑model‑proxy/)與規則引擎(scarecrow/botmaker/)為推文與帳號打標籤,這些標籤用於可見性過濾。

倉儲結構(概覽)

  • home-mixer/ – 請求時流程,負責候選內容的填充、預評分過濾、使用 Phoenix 評分、應用後選擇過濾,並選出前 K 名內容。
  • visibility-filtering/ – 將標籤 + 使用者行為映射為 ALLOW/INTERSTITIAL/DROP 決策的邏輯。
  • phoenix/ – 排名 Transformer 的訓練程式碼、推理封裝與合成資料生成程式碼。
  • simclusters/ – 基於聚類的外部推文檢索模組。
  • thunder/ – 關注帳號最新推文的記憶體快取。
  • botmaker/botmaker-rules/scarecrow/ – 為可見性過濾提供標籤的規則引擎基礎設施。
  • agatha/bdsm/user-cred-v2/clip/media-model-proxy/ – 用於評分帳號、媒體與文字的 ML 模型。
  • abuse-enforcement-service/ – 基於模型評分執行帳號封禁或內容隱藏的執行邏輯。
  • under‑the‑hood‑label‑transparency‑tool/ – 一個 UI 工具,允許使用者檢視影響其時間軸的標籤總計統計資訊。

工作流程(請求流程)

  1. 查詢填充 – 取得使用者近期行為、關注清單、屏蔽/靜音等資訊。
  2. 候選來源 – 並行從 thunder/(in‑network)與 phoenix/ + simclusters/(out‑of‑network)取得內容。
  3. 候選填充 – 為每則推文補充文字、媒體嵌入、作者標籤、語言、互動數等資訊。
  4. 預評分過濾 – 移除過時推文、重複內容、自發內容、訂閱專屬內容等。
  5. 評分
    • PhoenixScorer 預測各行為機率。
    • RankingScorer 應用加權求和、作者衰減、外部內容折扣、新作者激勵等邏輯。
    • VMRanker 可選地調用外部重排序服務。
  6. 選擇TopKScoreSelector 保留得分最高的候選內容。
  7. 後選擇過濾 – 可見性過濾器對每則內容進行標籤庫檢查;被丟棄的內容移除,插播內容保留但標記。
  8. 混合 – 非推文內容(廣告、關注建議、提示等)進行交錯插入。
  9. 副作用 – 記錄曝光、刷新快取、記錄廣告點擊等。

最近重要更新(截至 2026 年 8 月)

  • 權重文件化 – 在 home-mixer/params/param.rshome-mixer/scorers/ranking_scorer.rs 中新增註解,明確權重作用於 預測 的行為機率,而非原始互動資料。
  • 巴西 2026 選舉過濾器 – 新增 Brazil2026ElectionFilter,移除巴西選舉法院標記帳號的推文,除非使用者關注了該帳號。
  • 合成訓練流程phoenix/ 現在包含合成資料生成程式碼與概念驗證訓練執行程式碼,取代早期的「Phoenix 示範模型」占位符。
  • 可見性過濾擴展 – 新增模組(visibility-filtering/)與相關標籤來源,提升過濾器的透明度與可配置性。

本倉儲不包含的內容

本倉儲有意排除:

  • 實時生產資料儲存(如推文資料庫、使用者資料庫)。
  • X 平台使用的全規模訓練基礎設施(大規模 Spark/TF 流程)。
  • 請求路徑程式碼之外的即時服務基礎設施(負載平衡器、API 網關等)。

許可證

本專案採用 Apache 2.0 許可證 發布,允許在註明出處的前提下進行使用、修改與分發。


非專業人士速覽(TL;DR)

  • 此程式碼是 X 平台上你看到的個人化時間軸的核心引擎。
  • 它將你關注的內容與演算法精選內容混合,用現代 AI 模型評分,再應用一系列安全與相關性規則後才展示。
  • 這是一個罕見的、真實世界生產級推薦系統的內部視角,融合了大規模機器學習、規則化內容治理與工程優化,以確保時間軸快速且安全。

相關

  • Dispatch
  • 專案
  • 專案
  • 專案
  • 專案