X 推荐算法(the-algorithm)
X(原 Twitter)开源的推荐算法源码,涵盖 For You 时间线与推荐通知背后的候选召回、排序、过滤与混排服务,主语言 Scala,含 Rust、Python、Java 组件。
过去 7 天收获 2 颗 Star
爱鲜报评分
0.0
0 人评分
74k
星数
否
中文
Scala
主语言
是
活跃
3
贡献者
人工分析
EDITORIAL推荐理由
这是少数由大型社交平台完整开源的工业级推荐系统代码库,覆盖从数据、模型到服务框架的全链路,对理解真实场景下的推荐架构极具参考价值。适合推荐系统工程师、算法研究者与架构师研读设计思路,而非直接部署使用。
适用场景
- 推荐系统架构学习与拆解
- 信息流排序算法研究
- 大规模图特征与嵌入实践参考
- 机器学习模型服务框架设计借鉴
- 技术面试与系统设计准备
优点
- 由 X 官方开源,真实生产级代码,工程参考价值高
- 覆盖候选召回、排序、过滤、混排的完整推荐链路
- 包含 SimClusters、TwHIN、GraphJet 等经典模型与图计算组件
- 多语言组合(Scala/Rust/Python/Java),可学习跨语言服务架构
- 社区关注度高,Star 数接近 7.4 万
缺点
- 缺少顶层 BUILD/WORKSPACE 文件,开箱即用构建困难
- 依赖大量内部服务与数据,无法独立跑通完整链路
- 代码体量大、模块多,阅读门槛较高
- 部分组件为历史遗留实现,文档与注释有限
上手难度
较难
项目概览
X 推荐算法(the-algorithm) 是 X(原 Twitter)开源的推荐系统源码,负责在 For You 时间线、搜索、探索、通知等产品场景中分发帖子与内容。仓库以 Scala 为主,同时包含 Rust、Python、Java 组件,展示了工业级推荐系统的完整分层结构。
整体架构
仓库按照「数据 — 模型 — 软件框架」三层组织共享组件:
- 数据层:
tweetypie负责帖子读写,unified-user-actions提供实时用户行为流,user-signal-service汇总显式与隐式用户信号。 - 模型层:
SimClusters做社区发现与稀疏嵌入,TwHIN提供用户与帖子的稠密知识图谱嵌入,real-graph预测用户互动概率,tweepcred用 PageRank 计算用户信誉。 - 框架层:
navi是用 Rust 编写的高性能模型服务框架,product-mixer负责内容流组装,representation-manager统一获取嵌入。
For You 时间线
时间线链路是仓库的核心,主要分为三段:
- 候选召回:
search-index(Earlybird)负责站内帖子检索,约一半候选来源于此;user-tweet-entity-graph(UTEG)基于 GraphJet 在内存图上做遍历召回;follow-recommendation-service提供关注推荐。 - 排序:
light-ranker做粗排,heavy-ranker用神经网络做精排,是决定最终展示的关键信号。 - 混排与过滤:
home-mixer组装并下发时间线,visibility-filters处理合规、质量与降权逻辑。
推荐通知
pushservice 是推送推荐的主服务,内部同样采用轻量排序与多任务重排两级模型,预测用户打开与互动的概率。
使用建议
仓库为多数组件提供了 Bazel BUILD 文件,但没有顶层 BUILD 或 WORKSPACE 文件,官方也说明完整构建与测试体系仍在完善中。因此更推荐将其作为架构与算法设计的阅读材料:
建议阅读顺序:
1. docs/system-diagram.png 了解整体数据流
2. home-mixer 与 product-mixer 理解服务编排
3. heavy-ranker 与 light-ranker 理解排序模型
4. SimClusters / TwHIN 理解特征与嵌入
许可与参与
项目采用 AGPL-3.0 许可,社区可通过 Issue 与 PR 提出改进建议,安全问题需走官方 HackerOne 渠道。
评论
- 暂无评论,来写第一条吧。