xai-org/x-algorithm

Algorithm powering the For You feed on X

X 的 For‑You 推荐算法 (x‑ai‑org/x‑algorithm)

是什么 – 本仓库包含驱动 X(原 Twitter)「For‑You」时间线的生产级代码。它将用户关注的账号内容(in‑network 路径)与外部发现的内容(out‑of‑network 路径)两条流合并,再通过基于 Transformer 的模型进行过滤和排序。

为何重要 – 该推荐流是 X 平台的核心用户体验。理解其工作原理对研究大规模推荐系统、实时机器学习流水线或算法化内容编排的社会影响具有重要价值。


核心概念

概念 说明
In‑network 源 thunder/ – 内存中存储用户关注账号的最新推文。
Out‑of‑network 源 phoenix/ – 用于预测用户未关注账号推文相关性的检索模型。
simclusters/ – 基于相似性的聚类,用于挖掘额外的外部推文。
评分模型 一个名为 Phoenix 的 Transformer 模型,利用用户近期互动历史,预测 Like、Retweet、Reply、Dwell‑time、Report 等行为的概率。
加权 预测的行为概率乘以人工调优的权重(见 home-mixer/params/param.rs),求和后生成单一相关性得分。
可见性过滤 visibility-filtering/ 根据丰富信号(用户屏蔽、静音、账号标签、国家、订阅状态等)决定每条推文是 ALLOW(显示)、INTERSTITIAL(如成人内容警告)还是 DROP(隐藏)。
混合流水线 排序后,非推文内容(广告、"关注建议"、提示等)通过 Blenderhome-mixer/candidate_pipeline/for_you_candidate_pipeline.rs)进行交错插入。
标签路径 持续后台任务使用一系列分类器(agatha/bdsm/clip/media‑model‑proxy/)和规则引擎(scarecrow/botmaker/)为推文和账号打标签,这些标签用于可见性过滤。

仓库结构(概览)

  • home-mixer/ – 请求时流水线,负责候选内容的填充、预评分过滤、使用 Phoenix 评分、应用后选择过滤,并选出前 K 名内容。
  • visibility-filtering/ – 将标签 + 用户行为映射为 ALLOW/INTERSTITIAL/DROP 决策的逻辑。
  • phoenix/ – 排名 Transformer 的训练代码、推理封装和合成数据生成代码。
  • simclusters/ – 基于聚类的外部推文检索模块。
  • thunder/ – 关注账号最新推文的内存缓存。
  • botmaker/botmaker-rules/scarecrow/ – 为可见性过滤提供标签的规则引擎基础设施。
  • agatha/bdsm/user-cred-v2/clip/media-model-proxy/ – 用于评分账号、媒体和文本的 ML 模型。
  • abuse-enforcement-service/ – 基于模型评分执行账号封禁或内容隐藏的执行逻辑。
  • under‑the‑hood‑label‑transparency‑tool/ – 一个 UI 工具,允许用户查看影响其时间线的标签汇总统计信息。

工作流程(请求流)

  1. 查询填充 – 获取用户近期行为、关注列表、屏蔽/静音等信息。
  2. 候选源 – 并行从 thunder/(in‑network)和 phoenix/ + simclusters/(out‑of‑network)获取内容。
  3. 候选填充 – 为每条推文补充文本、媒体嵌入、作者标签、语言、互动数等信息。
  4. 预评分过滤 – 移除过时推文、重复内容、自发内容、订阅专属内容等。
  5. 评分
    • PhoenixScorer 预测各行为概率。
    • RankingScorer 应用加权求和、作者衰减、外部内容折扣、新作者激励等逻辑。
    • VMRanker 可选地调用外部重排序服务。
  6. 选择TopKScoreSelector 保留得分最高的候选内容。
  7. 后选择过滤 – 可见性过滤器对每条内容进行标签库检查;被丢弃的内容移除,插播内容保留但标记。
  8. 混合 – 非推文内容(广告、关注建议、提示等)进行交错插入。
  9. 副作用 – 记录曝光、刷新缓存、记录广告点击等。

最近重要更新(截至 2026 年 8 月)

  • 权重文档化 – 在 home-mixer/params/param.rshome-mixer/scorers/ranking_scorer.rs 中添加注释,明确权重作用于 预测 的行为概率,而非原始互动数据。
  • 巴西 2026 选举过滤器 – 新增 Brazil2026ElectionFilter,移除巴西选举法院标记账号的推文,除非用户关注了该账号。
  • 合成训练流水线phoenix/ 现在包含合成数据生成代码和概念验证训练运行代码,取代了早期的“Phoenix 演示模型”占位符。
  • 可见性过滤扩展 – 新增模块(visibility-filtering/)和相关标签源,提升过滤器的透明度与可配置性。

本仓库不包含的内容

本仓库有意排除:

  • 实时生产数据存储(如推文数据库、用户资料库)。
  • X 平台使用的全规模训练基础设施(大规模 Spark/TF 流水线)。
  • 请求路径代码之外的实时服务基础设施(负载均衡器、API 网关等)。

许可证

本项目采用 Apache 2.0 许可证 发布,允许在注明出处的前提下进行使用、修改和分发。


非专业人士速览(TL;DR)

  • 此代码是 X 平台上你看到的个性化时间线的核心引擎。
  • 它将你关注的内容与算法精选内容混合,用现代 AI 模型评分,再应用一系列安全与相关性规则后才展示。
  • 这是一个罕见的、真实世界生产级推荐系统的内部视图,融合了大规模机器学习、规则化内容治理与工程优化,以确保时间线快速且安全。

相关

  • Dispatch
  • 项目
  • 项目
  • 项目
  • 项目