馬斯克宣佈旗下社交平台 𝕏 首頁信息流“為你推薦”(For You feed)的核心算法已正式開源,他表示目前的算法比較愚蠢,需要大幅改進,“但至少你可以看到我們在實時和透明的情況下努力讓它變得更好。沒有其他社交媒體公司這樣做”。
據介紹,目前已開源內容是 𝕏 信息流推薦系統(“為你推薦”)的核心部分。
它結合了來自你關注的賬號發佈內容和通過基於機器學習檢索發現的未關注賬號內容,並使用基於 Grok 的 Transformer 模型對所有內容進行排序。
𝕏 團隊介紹,“為你推薦”的算法從兩個來源獲取、排序和過濾帖子:
- Thunder:你關注賬號的帖子
- Phoenix Retrieval:從 𝕏 全球語料庫發現的帖子
兩種來源都使用 Phoenix(一個基於 Grok 的 Transformer 模型)進行合併和排序,該模型預測每篇帖子的採用概率。最終得分是這些預測採用度的加權組合。
我們已經從系統中移除了所有手動設計的特徵和大多數啓發式規則。基於 Grok 的 Transformer 通過理解您的參與歷史(您喜歡、回覆、分享等)來承擔所有繁重的工作,並利用這些信息來確定哪些內容與您相關。
該推薦系統的整體架構如下:
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ FOR YOU FEED REQUEST │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ HOME MIXER │
│ (Orchestration Layer) │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ QUERY HYDRATION │ │
│ │ ┌──────────────────────────┐ ┌──────────────────────────────────────────────┐ │ │
│ │ │ User Action Sequence │ │ User Features │ │ │
│ │ │ (engagement history) │ │ (following list, preferences, etc.) │ │ │
│ │ └──────────────────────────┘ └──────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ CANDIDATE SOURCES │ │
│ │ ┌─────────────────────────────┐ ┌────────────────────────────────┐ │ │
│ │ │ THUNDER │ │ PHOENIX RETRIEVAL │ │ │
│ │ │ (In-Network Posts) │ │ (Out-of-Network Posts) │ │ │
│ │ │ │ │ │ │ │
│ │ │ Posts from accounts │ │ ML-based similarity search │ │ │
│ │ │ you follow │ │ across global corpus │ │ │
│ │ └─────────────────────────────┘ └────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ HYDRATION │ │
│ │ Fetch additional data: core post metadata, author info, media entities, etc. │ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ FILTERING │ │
│ │ Remove: duplicates, old posts, self-posts, blocked authors, muted keywords, etc. │ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ SCORING │ │
│ │ ┌──────────────────────────┐ │ │
│ │ │ Phoenix Scorer │ Grok-based Transformer predicts: │ │
│ │ │ (ML Predictions) │ P(like), P(reply), P(repost), P(click)... │ │
│ │ └──────────────────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌──────────────────────────┐ │ │
│ │ │ Weighted Scorer │ Weighted Score = Σ (weight × P(action)) │ │
│ │ │ (Combine predictions) │ │ │
│ │ └──────────────────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌──────────────────────────┐ │ │
│ │ │ Author Diversity │ Attenuate repeated author scores │ │
│ │ │ Scorer │ to ensure feed diversity │ │
│ │ └──────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ SELECTION │ │
│ │ Sort by final score, select top K candidates │ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ FILTERING (Post-Selection) │ │
│ │ Visibility filtering (deleted/spam/violence/gore etc) │ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ RANKED FEED RESPONSE │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
關鍵設計決策如下:
1. 無手工設計特徵
該系統完全依賴於基於 Grok 的 Transformer 來從用户互動序列中學習相關性,無需手動進行內容相關性特徵工程。這顯著降低了數據管道和服務基礎設施的複雜性。
2. 排名中的候選者隔離
在Transformer推理過程中,候選模型之間無法相互關聯,只能關注用户上下文。這確保了帖子得分不依賴於批次中其他帖子的內容,從而保證了得分的一致性和可緩存性。
3. 基於哈希的嵌入
檢索和排名都使用多個哈希函數進行嵌入查找。
4. 多動作預測
該模型並非預測單一的“相關性”得分,而是預測多種行為的概率。
5. 可組合流水線架構
該candidate-pipelinecrate 提供了一個靈活的框架,用於構建推薦管道,其功能包括:
-
將管道執行和監控與業務邏輯分離
-
獨立階段的並行執行和優雅的錯誤處理
-
輕鬆添加新的來源、水合作用、過濾器和評分器
開源地址:https://github.com/xai-org/x-algorithm