xai-org/x-algorithm
Algorithm powering the For You feed on X
X For You 信息流算法
它是什么
- X(前身为 Twitter)上 For You 时间线的开源核心。它通过混合用户关注的账户(网络内)的内容和从其他账户发现的内容(网络外),然后使用基于 Transformer 的模型对所有内容进行排序,来决定观看者看到哪些帖子。
关键组件
- Home Mixer – 主要的请求时管道,负责收集候选、补充信息、应用预评分过滤器、使用 Phoenix 模型评分、重新排序,并最终选择前 K 个帖子。
- Thunder – 关注账户近期帖子的内存缓存。
- Phoenix – 检索模型,预测观看者对每个候选帖子采取操作(点赞、转发、举报、停留时间等)的概率。
- SimClusters – 基于相似性的来源,展示观看者未关注的账户的帖子。
- 可见性过滤 – 一个独立的子系统,根据标签、屏蔽、静音、法律合规等,决定每个帖子是显示、带通知显示、显示在插页后面还是丢弃。
- 标签路径 – 持续的后台管道,运行分类器(media-model-proxy、CLIP、Agatha、BDSM 等)和规则引擎(Botmaker、Scarecrow、Abuse-Enforcement),为帖子和账户附加安全和真实性标签。
- 混合管道 – 排序后,广告、“谁关注”推荐和提示等非帖子项目与自然时间线交错。
工作原理(高层流程)
- 查询补充 – 收集观看者最近的互动历史、关注列表、屏蔽/静音等。
- 候选来源 – 并行查询 Thunder(网络内)、Phoenix 检索、SimClusters 和共享的热门帖子列表。
- 候选补充 – 获取帖子文本、媒体、作者详情、现有标签、语言等。
- 预评分过滤器 – 删除重复项、旧帖子、观看者自己的帖子、被屏蔽的账户等。
- 评分 – Phoenix 预测操作概率;价值模型 将它们与可配置权重结合;可选的 VMRanker 可以调用外部重排序器。
- 选择 – 保留得分最高的前 K 个候选。
- 选择后过滤器 – 可见性过滤决定每个帖子的最终命运;随后进行对话线程去重。
- 混合 – 广告、关注建议和提示与排序后的帖子交错。
- 副作用 – 记录服务事件、刷新缓存、记录广告指标。
配置与实验
- 所有可调权重和功能标志都位于
home-mixer/params/param.rs中。实验可以在不更改代码的情况下启用/禁用各个阶段(例如,巴西 2026 年选举过滤器)。
仓库中不包含的内容
- 生产数据存储、实时模型训练管道以及完整的私有安全模型集。该仓库包含编排代码和用于概念验证训练的合成数据生成。
透明度工具
- 一个 Under the Hood 标签透明度 UI 向用户报告帖子可见性受限的原因(例如,法律删除、合规过滤器)。
典型用例
- 研究大规模推荐管道的研究人员。
- 构建类似信息流系统、需要候选生成、评分和安全过滤参考架构的工程师。
- 审查平台决策(权重、法律过滤器)如何实施的审计员或政策分析师。
开始使用
- 克隆仓库。
- 按照
README中关于合成数据生成的章节,运行一个小规模的 Phoenix 训练。 - 使用提供的配置文件在本地启动 Home Mixer 服务(需要 Rust 工具链)。
- 通过运行
under_the_hood服务器并使用测试用户 ID 查询来探索透明度工具。
许可证 – 请参阅仓库中的 LICENSE 文件。
相关
- Dispatch
- 项目
- 项目
- 项目
- 项目