
每天对着点击率、留存率手动调参,你的头发还好吗?传统的推荐系统严重依赖人工特征工程,维护成本高昂,却常常跟不上用户兴趣的快速变化。
就在昨天,X官方开源了其“For You”信息流算法的核心代码,标志着推荐系统范式的又一次重大革新。这个基于 Grok Transformer 的下一代推荐系统,其最硬核之处在于:彻底抛弃了所有手工特征。系统完全依靠深度模型从用户的历史互动(点赞、回复、转发等)中自主学习,精准判断内容价值。这不仅是一次架构升级,更是一次“暴力美学”式的技术破局。如果你想深入了解现代推荐系统的架构范本,可以在我们云栈社区的人工智能板块找到更多前沿的讨论。
系统架构与核心组件
整个系统由三个核心模块紧密协作构成:Home Mixer(编排层)、Thunder(站内内容存储)和 Phoenix(ML排序与检索模型)。
先通过下面的完整架构图,直观感受一下数据从请求到最终呈现的完整流程:
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ 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) │ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
1. 混合编排层 (Home Mixer)
Home Mixer 是整个推荐流程的“总指挥”。它将候选内容的处理过程定义为一系列职责明确的阶段(Stage):
| Stage |
描述 |
| Query Hydrators |
获取用户上下文(互动历史、关注列表等) |
| Sources |
从 Thunder 和 Phoenix 检索候选项 |
| Hydrators |
用额外数据(如作者信息、媒体实体)丰富候选项 |
| Filters |
移除不合格的候选项(如重复、旧内容) |
| Scorers |
预测用户互动概率并计算最终得分 |
| Selector |
按最终得分排序并选择 Top K 个候选项 |
| Post-Selection Filters |
进行最终的可见性检查和去重(如删除、垃圾内容) |
| Side Effects |
缓存请求信息以供后续使用 |
2. 双塔检索与排序模型 (Phoenix)
为了解决“信息茧房”问题,系统设计了精巧的检索与排序机制。
-
双塔检索 (Phoenix Retrieval):用于从海量内容中寻找用户可能感兴趣的站外推文。
- 用户塔 (User Tower):将用户特征和互动历史编码为向量(Embedding)。
- 候选塔 (Candidate Tower):将所有推文内容编码为向量。
- 相似性搜索 (Similarity Search):通过计算点积相似度,快速检索出与用户最相关的Top-K条推文。这体现了现代推荐系统中高效向量检索的典型设计,你可以从智能 & 数据 & 云板块了解更多关于大规模向量检索与计算的实践。
-
排序模型 (Transformer with Candidate Isolation):核心排序任务由基于 Grok 的 Transformer 模型完成。它会对每个候选内容预测多种用户互动行为的概率。模型采用了一种特殊的注意力掩码机制,确保在推理时,不同候选内容之间不会相互干扰(Candidate Isolation),从而保证了评分结果的一致性。这正是大模型时代,Transformer 架构在推荐、搜索等核心业务场景中落地的一个绝佳范例,其设计思想值得在 人工智能 领域深入探讨。
算法核心:评分逻辑与过滤机制
虽然项目没有提供传统的CLI安装方式,但理解其算法配置与评分逻辑,就等于掌握了这套系统的“灵魂”。
核心评分公式
系统摒弃了简单的规则加权,转向基于多目标概率预测的智能评分。其核心逻辑可概括为:
Final Score = Σ (weight_i × P(action_i))
多维行为预测
模型会同时预测多达15种用户行为的概率,实现对用户意图的全方位评估:
Predictions:
├── P(favorite)
├── P(reply)
├── P(repost)
├── P(quote)
├── P(click)
├── P(profile_click)
├── P(video_view)
├── P(photo_expand)
├── P(share)
├── P(dwell)
├── P(follow_author)
├── P(not_interested)
├── P(block_author)
├── P(mute_author)
└── P(report)
设计精妙之处:正向行为(如点赞、转发)被赋予正权重,而负向行为(如拉黑、举报)则被赋予负权重。这意味着系统不仅能精准推荐你喜欢的,更能主动“屏蔽”你讨厌的内容,实现双向优化。
严格的预评分过滤机制
在进入计算密集的模型评分之前,系统设置了一层严格的过滤器,以高效剔除大量不合格内容:
| 过滤器 |
目的 |
DropDuplicatesFilter |
移除重复的推文ID |
CoreDataHydrationFilter |
移除未能加载核心元数据(如文本、作者)的推文 |
AgeFilter |
移除超过设定时间阈值的旧推文 |
SelfpostFilter |
移除用户自己发布的推文 |
RepostDeduplicationFilter |
对转发的同一原始内容进行去重 |
IneligibleSubscriptionFilter |
移除用户未订阅的付费内容 |
PreviouslySeenPostsFilter |
移除用户历史已读过的推文 |
PreviouslyServedPostsFilter |
移除当前会话中已展示过的推文 |
MutedKeywordFilter |
移除包含用户屏蔽关键词的推文 |
AuthorSocialgraphFilter |
移除来自已被用户拉黑或静音的作者的内容 |
实践启示与总结
关键注意事项
- 切勿手动注入特征:该系统的基石设计就是“无手工特征”。强行加入人工规则可能会破坏 Transformer 模型对用户隐式兴趣的自适应学习能力。
- 严格遵守候选隔离:在Transformer推理阶段,必须确保不同候选内容之间没有注意力交互。破坏这一原则将导致评分不一致,进而影响缓存等优化策略的效果。
- 关注哈希碰撞问题:在向量检索等环节,系统依赖多个哈希函数进行快速查找。自行实现时需注意哈希函数的选择与组合,以减少碰撞带来的精度损失。
总结
X 此次开源的项目,不仅全方位展示了一个工业级、高并发推荐系统的架构蓝图,更用实际代码验证了“以模型取代规则”这一技术路径的可行性。它用强大的 Grok Transformer 模型替代了复杂的特征工程与规则系统,实现了真正的端到端学习。对于正在寻找高性能推荐架构范式的工程师,或希望深入探索 LLM/Transformer 在推荐排序中应用的研究者而言,这个项目无疑是一部值得精读的“活教材”。其完整的开源代码,为社区提供了极其宝贵的参考实现。
GitHub 开源地址:https://github.com/xai-org/x-algorithm