AX 爱鲜报

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 时间线

时间线链路是仓库的核心,主要分为三段:

  1. 候选召回:search-index(Earlybird)负责站内帖子检索,约一半候选来源于此;user-tweet-entity-graph(UTEG)基于 GraphJet 在内存图上做遍历召回;follow-recommendation-service 提供关注推荐。
  2. 排序:light-ranker 做粗排,heavy-ranker 用神经网络做精排,是决定最终展示的关键信号。
  3. 混排与过滤: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 渠道。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。