马斯克宣布旗下社交平台 𝕏 首页信息流“为你推荐”(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