FIELD NOTE · 002

X 新算法源码拆解:什么内容更容易获得推荐?

从 X 公开的 Phoenix、Home Mixer 与评分参数出发,理解推荐系统真正预测什么,以及创作者可以验证哪些内容策略。

最近重新读了一遍 X 公布的推荐算法代码。我原本也想先找一个简单答案:点赞、回复、转发,到底哪个更重要?

但代码给出的答案并不是一张“互动积分表”。新版系统真正做的,是根据某个用户过去的行为,预测他看到一条内容后可能采取哪些动作,再把这些预测组合成一个分数。

这意味着,创作者真正要优化的不是某一种互动数量,而是:内容能否被正确的人看见,并让对方产生与内容匹配的真实行动。

结论摘要

  • 权重不是兑换比例。 公开权重乘的是模型对当前观看者的行为概率预测,不是已经发生的互动次数。
  • 当前公开默认值。 点赞 0.5、转发 1.0、回复 5.0(互关作者的原创帖另加 15.0)、私信分享 5.0、复制链接 20.0、关注作者 4.0、举报 −234.0。
  • 排序之后还有约束。 作者多样性衰减、关注外内容折扣与 48 小时年龄过滤同时生效,连续发布相似内容不会线性叠加曝光。
  • 来源。 xai-org/x-algorithm 提交 b089ce64(2026-08-17 快照),线上仍可能存在实验参数。

本文基于 X 官方仓库 2026 年 8 月 17 日的提交 b089ce64。公开代码会继续变化,线上也存在实验参数,所以这里记录的是一个可复查的源码快照,不是永久不变的平台规则。

一条内容是怎样进入 For You 的?

X 公开的新版架构把候选内容分成两个主要来源:

  1. In-Network:来自你已经关注的账号,由 Thunder 提供近期内容。
  2. Out-of-Network:来自你尚未关注的账号,主要通过 Phoenix Retrieval 与 SimClusters 发现。

这些候选内容进入 Home Mixer 后,会经过过滤、特征补充和 Phoenix 排序。Phoenix 根据观看者近期的互动历史,为每条候选内容预测点赞、回复、转发、分享、停留、关注作者,以及不感兴趣、屏蔽、静音、举报等多种行为的概率。

官方 README 把核心计算写成:

Final Score = Σ (weight_i × P(action_i))

排序之后,系统还会执行作者多样性衰减、关注外内容折扣、新作者探索与进一步重排。重复内容、已经看过的内容、超过时间阈值的内容,以及触发可见性规则的内容,也可能在不同阶段被过滤。完整流程可以在官方的 System ArchitectureScoring and Ranking 中核对。

旧版更像由多路候选服务、大量聚合特征和多层排序器组成的工程系统。新版仍然保留过滤器和可调参数,但 Phoenix 把“理解用户行为序列并预测下一步动作”放到了更中心的位置。

权重不是互动次数的兑换比例

当前公开默认值里,几项容易引起注意的参数包括:

预测行为公开默认权重需要注意的边界
点赞0.5乘的是当前观看者的预测点赞概率
回复5.0互关作者的原创帖当前另有 15.0 加成
转发1.0不能直接与实际点赞数换算
私信分享5.0表示预测分享概率的权重
复制链接20.0高权重不等于要求用户刷分享
关注作者4.0仍取决于模型预测概率
举报-234.0负权重大,也不能说“一次举报抵消 468 个赞”

这些值来自固定提交中的 home-mixer/params/param.rs

把其中几项放回源码,会更容易看清它们只是可配置参数的默认值:

param!(FavoriteWeight, f64, "rust_home_mixer_favorite_weight", 0.5);
param!(ReplyWeight, f64, "rust_home_mixer_reply_weight", 5.0);
param!(
    BidirectionalFollowReplyWeightBoost,
    f64,
    "rust_home_mixer_bidirectional_follow_reply_weight_boost",
    15.0
);
param!(RetweetWeight, f64, "rust_home_mixer_retweet_weight", 1.0);
param!(
    ShareViaCopyLinkWeight,
    f64,
    "rust_home_mixer_share_via_copy_link_weight",
    20.0
);
param!(ReportWeight, f64, "rust_home_mixer_report_weight", -234.0);

最容易出现的误读,是把 20、5、0.5 直接当作实际互动的兑换比例。源码注释专门否定了这种解释:权重乘的是模型针对当前观看者预测的行为概率或连续值,不是已经发生的互动次数。举报本身比点赞少见得多,因此需要更大的绝对权重,才能让这项预测在最终分数里产生影响。具体计算可以在 ranking_scorer.rs 中核对。

互关回复也需要同样谨慎地理解。当前代码会给互相关注作者的原创帖增加回复预测权重,但官方的 变更记录 同时说明,这个参数经历过 A/B 测试和多次调整。它能证明真实关系被纳入排序,不能证明批量互关就能稳定获得推荐。

加成只作用于互关作者的原创帖;回复帖和转发帖不会进入这条分支:

fn bidirectional_boost_eligible(candidate: &PostCandidate) -> bool {
    candidate.in_reply_to_tweet_id.is_none()
        && candidate.retweeted_tweet_id.is_none()
        && candidate.is_mutual_follow_author == Some(true)
}

fn reply_weight_for(&self, candidate: &PostCandidate) -> f64 {
    if self.bidirectional_follow_reply_weight_boost != 0.0
        && Self::bidirectional_boost_eligible(candidate)
    {
        return self.reply + self.bidirectional_follow_reply_weight_boost;
    }
    self.reply
}

什么内容更可能得到推荐?

代码没有提供“爆款模板”,但它能排除一些错误方向,并支持几条更稳妥的判断。

1. 先让系统和读者知道内容写给谁

Phoenix 使用观看者的行为历史来理解兴趣,再判断候选内容是否相关。对创作者而言,稳定并不意味着每次都写同一个话题,而是让内容持续服务一类清楚的人和问题。

如果一个账号今天谈 AI 工具,明天转发无关段子,后天突然讨论陌生领域,单条内容仍可能被推荐,但账号很难形成连续、可识别的受众反馈。

2. 提供自然的高意图行动

回复、私信分享、复制链接和关注作者都进入评分。比起在结尾机械地要求“点赞转发”,更有效的问题是:这条内容是否值得保存到别处、发给同事,或者补充自己的经历?

教程可以留下可执行步骤;源码分析可以留下准确链接和适用边界;观点文章需要给读者一个可以回应的具体判断。行动应该从内容价值里自然发生,而不是由话术硬挤出来。

3. 不要把争议互动当成增长捷径

系统同时预测“不感兴趣、屏蔽、静音和举报”等负面行为,可见性系统还会独立处理垃圾内容、安全标签和其他限制。

制造争吵可能带来短期回复,但代码没有证明“所有互动都是好互动”。如果内容吸引了错误的人群,模型也可能学到这条内容对相似用户更容易造成负反馈。

4. 避免短时间重复发布相似内容

当前默认参数启用了作者多样性衰减:同一作者连续出现时,后续候选的分数会逐步降低,最低保留到一定比例。关注外内容也有额外折扣;README 列出的年龄过滤阈值则是 48 小时。

这些机制支持一个朴素判断:重要内容需要及时获得真实反馈,但连续发布多条高度相似的内容,并不会简单叠加曝光。代码也没有给出一个适用于所有账号的“最佳发布时间”。

我会怎样验证这些判断?

源码只能解释机制,不能代替账号数据。我更愿意把它变成一个两周观察,而不是立刻改掉所有内容策略:

  1. 每条内容发布前,只确定一个主要读者问题。
  2. 标记希望读者自然产生的主要行动:回复、分享、访问资料或关注作者。
  3. 记录平台能看到的展示、回复、分享、主页访问和新增关注;缺失的数据保持未知。
  4. 区分内容类型,例如构建记录、教程、源码分析和观点,不把不同类型混在一起比较。
  5. 两周后比较哪些内容带来了更深的行动,再决定是否调整主题、结构和发布节奏。

这不是一套保证增长的方法。它只是把“听说算法喜欢什么”,换成“公开代码支持什么,以及自己的账号数据是否验证了它”。

最后留下三个判断

  • X 的公开权重描述的是个性化预测,不是实际互动的积分兑换表。
  • 高权重行为值得理解,但内容与受众的匹配,比追逐某一个数字更重要。
  • 公开仓库、线上实验和个人账号结果是三个不同层级;源码可以帮助提出假设,最终仍要靠真实数据验证。

这次拆解之后,我没有得到一份更神奇的发帖公式。反而更确定了一件事:先把内容写给具体的人,提供值得回应和分享的东西,再用数据检查判断。算法只是把这件事做得更个性化。

主要来源

常见问题

X 的推荐权重是互动次数的兑换比例吗?
不是。公开权重乘的是 Phoenix 针对当前观看者预测的行为概率或连续值,而不是已经发生的互动次数。同一条内容面对不同观看者会得到不同的预测概率,因此也会得到不同的最终分数。
X 算法当前公开的默认评分权重是多少?
在提交 b089ce64 的 home-mixer/params/param.rs 中,公开默认值为:点赞 0.5、转发 1.0、回复 5.0、私信分享 5.0、复制链接 20.0、关注作者 4.0、举报 -234.0;互相关注作者的原创帖另有 15.0 的回复权重加成。这些是可配置参数的默认值,线上可能存在实验覆盖。
举报权重 -234 是否意味着一次举报抵消 468 个赞?
不能这样换算。负权重乘的同样是模型预测概率,而不是实际举报次数。举报行为本身远比点赞少见,需要更大的绝对权重,这项预测才能在最终分数里产生影响。
互相关注可以稳定获得推荐吗?
不能。互关加成只作用于互相关注作者的原创帖,回复帖和转发帖不进入这条分支。官方变更记录也说明该参数经历过 A/B 测试和多次调整。它能证明真实关系被纳入排序,不能证明批量互关会带来稳定推荐。
短时间内连续发布相似内容会增加曝光吗?
不会线性增加。当前默认参数启用了作者多样性衰减,同一作者连续出现时后续候选的分数会逐步降低;关注外内容还有额外折扣,README 列出的年龄过滤阈值是 48 小时。
这些权重会一直有效吗?
不会。本文记录的是 2026 年 8 月 17 日提交 b089ce64 的源码快照。公开代码会继续变化,线上也存在实验参数,因此这些数值应当被当作可复查的证据,而不是永久不变的平台规则。

如果这篇对你有用,可以在 X · @imoonwander 继续跟进,或订阅 RSS

内容以署名方式开放引用,请回链原文。