---
slug: x-algorithm-for-you-open-source
title: x-algorithm：X For You 推薦系統開源了什麼
status: published
excerpt: 從候選、排序到 DSA 脈絡，讀懂 X 公開推薦系統程式碼的邊界。
category: AI
tags: [recommendation, x, open-source]
author: Seer
author_role: Author
read_time: 8 min
cover: "/static/x-algorithm-for-you-open-source-cover.png"
closing_note: "先把邊界講清楚，工具才能變成可靠流程。"
published_at: "2026-08-20T00:00:00Z"
updated_at: "2026-08-20T02:00:00Z"
---

### 讀者可拿它做什麼

您可以參考此專案的設計，將自己文字社群推薦系統的管線拆解為可高度自訂的模組：將使用者行為的機率預測模型與最終的分數價值加權分離、將貼文排序演算法與可見性過濾規則解耦、針對多作者與內容相似度設計多樣性衰減與 DPP 重排機制，並藉由禁止 Transformer 的候選貼文互相注意力（Attention）來實現平穩的高效快取。此外，您也可以在 Linux 與 NVIDIA GPU 環境中，使用專案內附的合成資料產生器，執行 Phoenix 模型 nano 規模的訓練與 serving 概念驗證。

### 問題與監管背景

X 推薦演算法的公開歷程包含 2023 年與 2026 年兩個主要倉庫的演進。在 2023 年 3 月，X 公開了當時的推薦演算法倉庫 `twitter/the-algorithm`，採用 AGPL-3.0 授權，其 README 指出目的是收集社群意見並結合專家改善系統，該舊倉庫涵蓋較廣泛的服務與歷史架構 [23]。

到了 2026 年，X 釋出專注於目前 For You 時間軸可見性與推薦管線的 `xai-org/x-algorithm` [1][2][21][22]，改採 Apache-2.0 授權 [5][21][22]。README 指出其目的在於讓公眾理解貼文分發機制以供稽核或協助改進，但保留了部分防範機制規避的規則與提示詞 [22]。

在監管背景方面，歐盟數位服務法（EU DSA）要求大型平台說明推薦系統依據、提供非個人化 feed 選項並提高研究與公共監督可行性 [24][25]。歐盟執委會於 2026 年 7 月接受了 X 為符合 DSA 透明度與資料存取規定而提出的行動計畫 [25]。

DSA 並未強制規定平台必須將完整排序程式碼開源，且歐盟與 X 的公開文件均未指出此次開源是因應 DSA 的直接法律義務。此開源動作與 Under the Hood 工具使 X 處於透明度壓力更高的環境中，目前無法證實開源與單一法律條款之間存在直接因果關係 [21][24][25]。

本篇文章於 `2026-08-20` 更新，分析基於 GitHub 頁面 2026-08-19 最新提交的 `main` 分支 HEAD `aad7179773944e17eb8798bbbf0231d6cd6c1ffc`，過程中僅進行靜態閱讀，並未在本地端執行訓練、serving 或執行倉庫程式 [21][22]。

### 系統架構與推薦原理

X 的 For You 時間軸在每次請求時即時組裝，其核心邏輯將「貼文排第幾」與「貼文是否能出現在觀看者眼前」分開處理 [1][2]。前者使用 Phoenix 模型預測與加權計分，後者則經由可見性過濾、標籤與使用者自訂的阻擋/靜音設定處理 [2]。

整體流程由兩大管線構成 [2]：
- **Post Pipeline**：找貼文、補資料、過濾、評分、篩選 Top K。
- **Blending Pipeline**：將排序貼文與廣告、Who to Follow、系統提示交錯混算。

候選貼文來源分為兩路 [2]：
- **In-Network**：由 `thunder/` 模組將使用者追蹤帳號的近期貼文載入記憶體。
- **Out-of-Network**：由 Phoenix 檢索系統（`phoenix/`）與 `simclusters/` 模組尋找未追蹤帳號的貼文。

運作流程可歸納為七個步驟 [2]：
1. **Query Hydration**：補上觀看者的歷史互動序列、追蹤列表、阻擋/靜音名單、敏感字詞、已讀貼文與訂閱主題。
2. **Candidate Sources**：平行查詢 Thunder（上限預設 1200 篇）與 Phoenix retrieval（上限預設 1000 篇），SimClusters 預設開啟，`TweetMixer` 預設關閉 [6]。
3. **Candidate Hydration**：補上貼文本體與作者資訊，如媒體、互動數、訂閱狀態等。
4. **Pre-scoring Filters**：過濾重複、超過 48 小時、觀看者自身、已讀、被阻擋/靜音或無權限閱讀的貼文。
5. **Scoring**：透過 `PhoenixScorer` 預測使用者對貼文產生各類互動的機率，並由 `RankingScorer` 進行加權合成與多樣性調整 [2][6][7][8]。
6. **Selection**：利用 `TopKScoreSelector` 依分數排序並篩選前 K 篇貼文。
7. **Post-selection Filters**：由過濾系統 `visibility-filtering/` 判定貼文為 ALLOW（顯示）、INTERSTITIAL（遮蔽）或 DROP（捨棄）[2][11]。

最後在 Blending Pipeline 與廣告、推薦追蹤等內容交錯混算後輸出，並記錄已遞送貼文等副作用 [2]。

### 操作與部署驗證

倉庫中的 `phoenix/` 目錄設計為離線驗證工具（offline verification harness），包含 Cargo workspace、`pyproject.toml`、[quickstart](https://github.com/xai-org/x-algorithm/blob/main/phoenix/QUICKSTART.md) 說明文件與合成資料產生器 [2][8][9]。

要在本地端執行 Phoenix 的概念驗證訓練與 serving，需準備 Linux、NVIDIA GPU、CUDA 12、`uv` 套件管理器、Python 3.11+、Rust 以及 `protoc` 3.15+ 的運作環境 [9]。

執行步驟如下 [9]：
```bash
uv sync --extra engine
export PYTHONPATH=$PWD
```

接著使用合成資料產生器產生資料，進行 nano 規模的 ranking 與 retrieval 模型訓練，並啟動 gRPC serving [9]。官方指出，此 nano 設定是為了單 GPU、幾分鐘內跑完而設計，其合成資料與模型僅用於機制驗證，無法代表正式環境的資料、品質或規模 [9][10]。

2026-08-13 更新中補上了過濾系統、Phoenix 訓練/serving 程式、SimClusters 與 Under the Hood 透明度工具 [2]。該日的 `main` HEAD 雜湊值為 `a389166f6cf5da70a286b568c87695d4dcdce3a1` [3][4]。

### 演算法計算與驗證機制

評分與排序的具體公式和調整機制如下：

#### 1. 多動作加權和評分
`RankingScorer::apply` 計算預測動作機率與預設權重的加權和，正向與負向動作拆開計算，最後以 `pos - neg` 輸出 [7]。
```text
term_i = w_i · P̂(action_i)
score_raw = Σ term_i
```
在 2026-08-12 同步的正式環境預設值中，常用權重如下 [6]：
- **正向互動**：`FavoriteWeight` 為 0.5、`ReplyWeight` 為 5.0、`RetweetWeight` 為 1.0、`QuoteWeight` 為 5.0、`ShareWeight` 為 2.0、`ShareViaDmWeight` 為 5.0、`ShareViaCopyLinkWeight` 為 20.0、`FollowAuthorWeight` 為 4.0、`ClickWeight` 為 0.4、`OpenLinkWeight` 為 0.2。
- **負向互動**：`NotInterestedWeight` 為 -43.2、`BlockAuthorWeight` 為 -31.2、`MuteAuthorWeight` 為 -58.8、`ReportWeight` 為 -234.0、`NotDwelledWeight` 為 -0.02。

雙向追蹤加成（`BidirectionalFollowReplyWeightBoost` 預設為 15.0）僅作用於原創貼文且作者間存在雙向追蹤關係 [6][7][12]：
```text
w_reply' = w_reply + 15
```

#### 2. 負分平移偏移
若原始合成分數小於 0，則利用常數 `NEGATIVE_SCORES_OFFSET`（簡稱 `OFFSET`）平移分數 [7]：
```text
if score_raw ≥ 0:
    score = score_raw + OFFSET
else:
    score = (score_raw + |Σ w_neg|) / (Σ w_pos + Σ w_neg) · OFFSET
```

#### 3. 作者多樣性衰減（Author Diversity）
同一作者第 `k` 篇出現的貼文（首篇 `k=0`），其分數會乘以衰減係數，預設 `decay = 0.5`、`floor = 0.25`，此衰減僅適用於淨分為正的貼文 [7]：
```text
m_div(k) = (1 - floor) · decay^k + floor
score'   = score · m_div(k)
```
依此計算，第一篇乘上 1.00，第二篇乘上 0.625，第三篇乘上 0.4375，後續篇數分數衰減至 0.25。

#### 4. 非追蹤帳號折損（Out-of-network discount）
非追蹤貼文乘以折損係數 `OonWeightFactor`（預設 0.75，主題請求 `TopicOonWeightFactor` 預設 0.50）[6][7]：
```text
score'' = score' · m_div · m_oon
```

#### 5. 新作者冷啟動（Author Cold Start）
符合原創、低曝光且作者追蹤數低於門檻之貼文，若目前名次在可抬升區間內，則在目標名次區間的既有分數中隨機抽取 `target_score`，直接修改為 [17]：
```text
score_final[i*] = max(score[i*], target_score)
```

#### 6. DPP 重新排序
在 Top K 篩選後，使用 Determinantal Point Process 進行重排以降低內容相似度。將分數對最大值正規化後計算核心矩陣 $L_{ij}$，在每一步選出能最大化條件變異數的貼文 [15]：
```text
q_i = score_i / max(score)
α   = θ / (2 · (1 - θ))
q̃_i = exp(α · q_i)
L_ij = q̃_i · q̃_j · cos(e_i, e_j)
```
其中 `θ` 越大越傾向保留高分排序，`θ` 越小越強調內容分散性。

#### 7. 模型訓練損失與結構
Phoenix ranking 對互動動作進行多標籤二元交叉熵（BCE）訓練，連續型目標（如 dwell time）則採用 Tweedie 回歸損失（預設 $p=1.5$）[16]：
```text
L_bce = Σ mask · BCE(σ(logit), y) / Σ weights
```
檢索階段採 Two-tower 架構，正樣本為 favorite，負樣本包含同 batch 與全域抽樣負樣本，並使用 dot product 進行相似度檢索 [8]。在模型中，各候選貼文之間無法進行互相注意力計算，這使得評分不受同批次其他貼文影響，易於進行快取與 A/B 測試 [2][8]。

#### 8. 可見性過濾與安全政策
過濾系統由 `visibility-filtering/rules/registry.rs` 實作，包含兩層過濾機制 [11]：
- `timeline_home`：基礎規則，檢查停權、阻擋、靜音、垃圾內容、仇恨言論與敏感內容等。
- `timeline_home_recommendations`：加強規則，針對非追蹤推薦套用 DROP 判定（如高召回 spam、Do Not Amplify、惡意網址）。

此處包含 2026-08-14 README 所述的 Brazil 2026 Election filter。此類規則對外公開，能讓人察覺政策變更的存在，但部分敏感規則與檔案仍未公開以避免惡意規避 [22]。

#### 9. 與 Meta Threads 之對照
Threads 於 2023-07-05 上線，基礎架構使用 ZippyDB、Async 與 TAO [18]，其演算法細節未開源，僅說明 Feed 採 AI 系統排序且 Explore 側重 like、save、share [19][20]。相較於 X 的公開權重與明確的 48 小時新鮮度限制，Threads 更依賴 Instagram 既有社群關係與未公開的對話權重進行冷啟動 [2][6][17][18][19]。

### 從公開推薦管線回推內容增長：Hook、CTA 與陌生受眾擴散

先講結論：公開程式碼能協助你設計一套「提高被相關陌生受眾理解與分發機率」的內容流程，不能推出保證爆文的公式。實際線上權重、實驗分流、個人化、政策與 spam 判斷仍不可見。

在查核快照中，ranker 會預測 favorite、reply、retweet、photo expand、video open、click、open link、follow author、quote、share、DM share、copy link、停留等正向行為，也會預測 not interested、mute、block、report 與未停留等負向行為。[26][27] 這些權重乘的是**模型預測的行為機率**，並非累加原始互動次數。不能把公開數字翻譯成「一個回覆等於幾個讚」或「找人集中留言就能推高分數」。參數註解也明確指出，直接進入貼文或群組協同行動不會形成可穩定重現的排名效果。[27]

#### Hook 如何符合 retrieval 與 ranking 邏輯

Hook 的工作有兩層：先讓系統與陌生讀者快速理解「這篇在講什麼、服務誰」，再讓真正有需求的人願意停下來展開內容。它應包含四個元素：

1. **對象**：店家附近的上班族、養貓家庭、第一次買某類商品的人。
2. **情境或痛點**：午休只有 40 分鐘、貓毛每天黏沙發、需要當天取貨。
3. **具體承諾**：三種 10 分鐘可取餐組合、實際清潔前後差異、尺寸選擇表。
4. **可信證據**：地址、日期、價格、實拍、測試條件、庫存或限制。

這種寫法能提供 retrieval 所需的主題、地點、商品與受眾語意，也能降低陌生讀者「看不懂就滑走」的機率。Hook 不需要故意藏答案。像「99% 的人都不知道」「看完震驚」「留言我才告訴你」會增加誤導、未停留、not interested 或 mute 的風險，且很容易落入 engagement bait。

| Hook 寫法 | 對演算法層的作用假設 | 問題 |
|---|---|---|
| `台北中山站步行 4 分鐘，新開一間 40 分鐘午休也吃得完的咖哩店` | 地點、品類、受眾與情境明確，利於 retrieval 與陌生人判讀 | 仍需正文證明距離與出餐時間 |
| `養兩隻貓又住小坪數，選除毛機先看這三個規格` | 主題與使用者情境清楚，容易進入相關內容脈絡 | 必須提供規格、實測條件與限制 |
| `這家店太扯了，最後一張你一定想不到` | 主題訊號弱，陌生人不知道是否與自己相關 | 容易帶來短點擊、快速離開與負向回饋 |

#### CTA 要對應真實下一步，不能只索取互動

CTA 的功能是把已經有需求的讀者送到合理的下一步。公開 scorer 具有 reply、quote、share、DM share、copy link、follow author、open link 等預測頭。[26] 因此 CTA 應該對應內容本身自然會產生的行為：

- **需要個人化答案**：請讀者提供一個必要條件，你回具體建議。例如到店時間、預算、坪數或使用情境。
- **內容適合共同決策**：請讀者轉給真的要一起去、一起買或負責決策的人。
- **內容有持續更新價值**：說清楚之後會更新什麼，再邀請追蹤。不能只寫「追蹤我」。
- **已經接近轉換**：提供地圖、預約、商品頁或庫存頁，搭配 UTM、專屬碼或預約欄位驗證。
- **需要補充經驗**：提出一個有範圍、能回答的問題，讓回覆增加資訊，而非要求讀者隨便留字。

較好的 CTA：

> 想確認今晚是否有插座位，回覆「到店時間＋人數」，我直接告訴你適合坐哪區。要約朋友的話，把這篇傳給同行的人一起選餐。

較差的 CTA：

> 幫我按讚、留言、轉發，破 100 留言公布優惠。

前者對讀者有直接用途，reply 與 share 是需求自然產生的結果。後者把互動本身當交換條件，容易吸引低品質回覆，也可能提高隱藏、靜音與不感興趣等負向訊號。

#### 演算法層、內容行為與驗證資料對照

| 公開可見層 | 內容應做什麼 | 驗證資料 | 邊界 |
|---|---|---|---|
| candidate sourcing／retrieval | Hook 寫明受眾、主題、地點、商品、問題與必要上下文 | impressions、非追蹤者 impressions、搜尋／話題／社群脈絡，若平台有提供 | 無法看見真正 candidate pool，也不能保證被納入 |
| ranking／scoring | 正文給證據、示範、比較、價格、限制與可採取的下一步 | 有內容的回覆、收藏、quote、share、profile visit、追蹤與外部轉換 | 公開權重不等於 production 固定權重 |
| out-of-network 擴散 | 讓陌生人不認識作者也能獨立理解內容，並提供可轉述的資訊單位 | non-follower ratio、分享脈絡、互動帳號是否屬於目標客群 | 查核快照對 out-of-network 有折損參數，不能靠單一技巧消除個人化差異。[27] |
| filtering／integrity | 避免誤導承諾、無關 tag、洗版、假稀缺與模板化回覆 | not interested、mute、block、report 的可得 proxy，以及留言品質 | 公開 registry 無法窮盡線上政策。[11] |
| feedback／iteration | 每輪只改 Hook、素材、offer、CTA 或受眾中的一項 | 同題材 cohort 的曝光、互動品質、到站與成交 | 單篇結果無法證明因果 |

#### 範例一：新店家開幕，要把附近陌生人帶到店

**商業目標**：讓店家周邊 3 公里內、原本沒有追蹤帳號的人知道開幕，最後完成導航、預約或到店。

**貼文結構**：

> 中山站 4 號出口步行 4 分鐘，新開一間午休 40 分鐘也吃得完的咖哩店。  
> 這週實測三個最快出餐組合：雞肉咖哩 8 分鐘、蔬食咖哩 9 分鐘、外帶餐盒 6 分鐘。價格 180 元起，店內有 12 個插座位。  
> [放門面、餐點、座位與出口路線圖]  
> 想確認今天是否還有插座位，回覆「到店時間＋人數」，我直接回可坐區。要和同事一起去，可以把這篇傳進午餐群組。地圖與預約連結放在下一則。

**逐層解析**：

- **Retrieval**：`中山站`、`咖哩店`、`午休`、`外帶`、`插座位` 把地點、品類與使用情境寫清楚，增加內容被相關受眾理解的機會。
- **Ranking**：實拍、價格、出餐時間與路線圖提供停留、展圖、分享與真實回覆的理由。CTA 收集到店時間與人數，回覆內容能直接解決需求。
- **陌生人擴散**：讀者不需要知道店主是誰，也能判斷距離、價格和是否適合午餐。午餐群組分享符合共同決策情境。
- **Filter 風險**：如果「步行 4 分鐘」「6 分鐘出餐」「12 個插座位」無法持續做到，就應標明測試時段、尖峰例外與每日變動。不能用假排隊、假限量或無關熱門 tag 製造急迫感。
- **轉換驗證**：地圖與預約連結使用 `utm_campaign=opening_x`，櫃台設一個只在 X 出現的到店代碼。記錄 impressions、非追蹤者占比、有效詢位回覆、地圖點擊、預約與到店兌換。

**三輪測試**：

1. 第一輪只測 Hook：`午休 40 分鐘` 對照 `下班聚餐`，offer、素材與 CTA 不變。
2. 第二輪只測素材：餐點近照對照「出口到店路線圖」。
3. 第三輪只測 CTA：`回覆時間＋人數` 對照直接預約連結。

如果曝光增加但地圖點擊沒有增加，問題可能在 offer 或地點資訊。若非追蹤者曝光與地圖點擊都有增加，到店仍低，應查營業時間、預約頁、現場容量或優惠兌換流程，不能繼續只改 Hook。

#### 範例二：指定商品推廣，要把陌生需求帶到商品頁

**商業目標**：推廣一款寵物除毛機，找到住小坪數、有貓狗掉毛問題的人，最後完成商品頁瀏覽、加入購物車或購買。

**貼文結構**：

> 養兩隻貓、住 15 坪以下，除毛機先看「滾刷會不會纏毛、沙發能不能吸、清理集塵盒要多久」這三件事。  
> 我用同一張短毛地毯、50 克混合貓毛測這台機器：來回 4 次後收集 43 克，滾刷纏毛 2 處，集塵盒清理約 35 秒。硬地板效果較好，長毛地毯要多兩次，晚上使用的噪音也要留意。  
> [放測試前後照、滾刷近照與 15 秒實測影片]  
> 你家是「坪數＋寵物數＋主要地面」哪一種？回覆這三項，我會直接告訴你這台是否適合。不適合也會明講。完整規格、測試方法與限時庫存在商品頁。

**逐層解析**：

- **Retrieval**：`養貓`、`小坪數`、`除毛機`、`地毯`、`纏毛` 等詞讓主題與目標受眾清楚。指定商品仍先從使用問題切入，陌生人不用認識品牌也能理解。
- **Ranking**：測試條件、數字、缺點、前後圖和短影片提供展圖、觀看、停留、quote 與分享的實際價值。承認長毛地毯與噪音限制，可降低點進去後覺得被騙的負向回饋。
- **CTA**：要求 `坪數＋寵物數＋地面` 是完成建議所需資料，回覆具有資訊含量。商品頁負責承接已確認需求的人，不能讓「留言拿連結」成為強迫互動門檻。
- **陌生人擴散**：內容可被寵物社群引用成選購檢查表，也可透過 DM 或 copy link 傳給同住家人共同決策。這些行為存在於公開 scorer 的預測訊號中，但仍不能解讀為必然加權結果。[26]
- **轉換驗證**：使用 `utm_content=cat_smallhome_test`，記錄商品頁 session、停留、加入購物車、購買與退貨。X 端記錄非追蹤者 impressions、有效規格回覆、影片觀看與分享品質。

**三輪測試**：

1. Hook 保持商品不變，測 `小坪數養貓` 對照 `長毛地毯家庭`。
2. Hook 不變，測「量化實測」對照「選購三項 checklist」。
3. 素材與 offer 不變，測個人化回覆 CTA 對照直接進商品頁 CTA。

如果 X 互動高、商品頁停留短，代表貼文承諾與落地頁可能不一致。若商品頁停留與加入購物車都好、購買低，應檢查價格、運費、付款、庫存與信任證據。演算法只能協助內容找到可能有興趣的人，無法替商品與交易流程修正轉換問題。

#### 把它整理成固定內容增長迴圈

```text
商業目標
  → 定義受眾與使用情境
  → Hook 寫出對象＋痛點＋具體承諾＋證據
  → 正文提供可判讀、可轉述的資訊
  → CTA 對應真實下一步
  → 觀察 retrieval／ranking／負向訊號／外部轉換
  → 每輪只改一個變因
  → 保留有效版本，淘汰錯配受眾與誤導承諾
```

每篇至少記錄：假設、受眾、Hook 版本、素材、offer、CTA、impressions、非追蹤者比例、有效回覆、share／quote、外部點擊、轉換與負向訊號。連續測 3 到 5 篇後，再判斷哪種內容結構有重複效果。

這套流程的目標是提高相關受眾理解、停留、分享與採取下一步的機率。它不提供刷互動、假帳號、engagement bait、協同灌水或規避 quality filter 的方法。公開演算法最有價值的用途，是把內容決策轉成可量測的假設，而非把平台分發想像成可控制的開關。


### 限制

- 本次分析僅進行靜態閱讀，並未重跑 Phoenix 的訓練或 serving 運作 [21][22]。
- 倉庫未附帶正式環境的真實資料、正式模型權重或完整部署架構，且無正式的 Release 版本 [2][3][5][8][9]。
- 部分過濾規則與 Grox 的具體 LLM prompt（例如 `.j2` 模版檔）基於安全防範未予公開 [2]。
- 廣告系統、前端 UI 遮罩元件，以及內部傳輸與服務運作組件（如 `xai_kafka`、`xai_service_runner`）不在開源範圍內 [2]。
- GitHub 快照數據（2026-08-20 擁有約 3.2 萬 stars 與 5,300 forks；2026-08-14 為 28356 stars、4814 forks、290 watchers）與預設權重均會隨時間變動 [3][21]。
- 專案採 Apache-2.0 授權，但 Phoenix 模組包含獨立的第三方元件聲明，需分開確認授權規範 [5][8]。

### Sources

[1] https://github.com/xai-org/x-algorithm — xai-org/x-algorithm GitHub repository
[2] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/README.md — README.md at a389166
[3] https://api.github.com/repos/xai-org/x-algorithm — GitHub API repository metadata
[4] https://api.github.com/repos/xai-org/x-algorithm/commits/main — GitHub API main commit
[5] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/LICENSE — LICENSE Apache-2.0
[6] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/home-mixer/params/param.rs — home-mixer params/param.rs
[7] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/home-mixer/scorers/ranking_scorer.rs — RankingScorer
[8] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/phoenix/README.md — phoenix/README.md
[9] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/phoenix/QUICKSTART.md — phoenix/QUICKSTART.md
[10] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/phoenix/TRAINING.md — phoenix/TRAINING.md
[11] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/visibility-filtering/rules/registry.rs — visibility-filtering rules/registry.rs
[12] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/docs/BIDIRECTIONAL_BOOST_CHANGE.md — docs/BIDIRECTIONAL_BOOST_CHANGE.md
[13] https://x.com/i/under_the_hood — Under the Hood transparency tool
[14] https://api.github.com/repos/xai-org/x-algorithm/languages — GitHub API languages
[15] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/vm-ranker/dpp.rs — vm-ranker/dpp.rs greedy DPP
[16] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/phoenix/xrex/models/loss_recsys.py — phoenix loss_recsys.py
[17] https://raw.githubusercontent.com/xai-org/x-algorithm/a389166f6cf5da70a286b568c87695d4dcdce3a1/home-mixer/scorers/author_cold_start.rs — author_cold_start.rs
[18] https://engineering.fb.com/2023/12/19/core-infra/how-meta-built-the-infrastructure-for-threads — How Meta built the infrastructure for Threads
[19] https://about.instagram.com/blog/announcements/instagram-ranking-explained — Instagram Ranking Explained
[20] https://transparency.meta.com/features/explaining-ranking/ig-threads-feed — Instagram Threads Feed AI system page
[21] https://github.com/xai-org/x-algorithm — xai-org/x-algorithm GitHub repository, 2026-08-20
[22] https://raw.githubusercontent.com/xai-org/x-algorithm/aad7179773944e17eb8798bbbf0231d6cd6c1ffc/README.md — README.md at aad7179
[23] https://github.com/twitter/the-algorithm — twitter/the-algorithm GitHub repository
[24] https://digital-strategy.ec.europa.eu/en/policies/dsa-impact-platforms — European Commission: DSA impact on platforms
[25] https://digital-strategy.ec.europa.eu/en/news/commission-accepts-xs-action-plan-comply-digital-services-act — European Commission: X DSA action plan, 2026-07-16
[26] https://raw.githubusercontent.com/xai-org/x-algorithm/aad7179773944e17eb8798bbbf0231d6cd6c1ffc/home-mixer/scorers/ranking_scorer.rs — RankingScorer at aad7179
[27] https://raw.githubusercontent.com/xai-org/x-algorithm/aad7179773944e17eb8798bbbf0231d6cd6c1ffc/home-mixer/params/param.rs — ranking parameters at aad7179
