x algorithmopen sourcealgorithmic transparencymethodprovenance2026年8月18日

X 发布了其算法。我们阅读了它,我们犯了一个错误,而源头抓住了我们。

特别版,非例行发布。不是一个数据集群——而是一段代码,半个互联网都在凭记忆引用。我们阅读了所有 123 个组件,将每个数字与其所在行关联起来,并发布了一个声明,三天后被我们自己的源头驳斥。

X 发布了其算法。我们阅读了它,我们犯了一个错误,而源代码抓住了我们。

这是一期特别版,不在常规周期内。这次不是数据集群——而是一段代码,互联网上的一半人都能凭记忆引用。我们阅读了所有 123 个组件,发布了一个页面,将每个数字与其所在行链接起来,并发布了一个声明,三天后被我们自己的源代码驳斥。以下是代码的内容,以及那个错误教会我们关于我们所销售的方法。

在2026 年 8 月 13 日,X 在 Apache-2.0 许可下开源了其“为你”信息流背后的排名代码。在七十二小时内,数字随处可见:一个转发价值二十个赞,一个个人资料点击十二次,一次举报抵消四百六十八个赞。

几乎没有一个数字描述的是今天的代码。

它们不是新发明的。它们是遗留物——对于多年前退役的 Scala 管道来说是真的,却被引用得好像它们描述的是取代它的 Rust 管道一样。一个没有日期和代码行的数字不是事实。它是一个带有小数点的谣言。

所以我们做了不那么光鲜的事情:我们逐行阅读了存储库,并构建了缺失的页面。

→ d-nvest.com/x-algorithm — 免费,无需注册,九种语言。

1. 代码实际内容

X 可以在不发布代码的情况下更改 190 个参数。24 个常量已编译到二进制文件中。排名管道中有 123 个组件。我们页面上的每一个数字都链接到读取它的确切行,并固定到单个提交——而且,从本周开始,它会在原地展开实际的 Rust 代码行,这样您就永远不必相信我们提供的数据。

我们核查了四项声明,以及源代码的实际说法:

“一个转发价值 20 个赞。”它价值两个。`RetweetWeight` 为 1.0,而 `FavoriteWeight` 为 0.5。该算法的任何已发布版本从未为转发使用过 20——即使是人们正在引用的 2023 年版本也没有。

“一个个人资料点击价值 12 个赞。”今天它价值零:权重为零。12 是真实的,用于一个已不再存在于树中的复合信号。

“一次举报抵消 468 个赞。”算术是正确的,但结论是错误的。这些权重乘以的是一个预测概率,而不是操作计数。X 表示举报比点赞稀有数千倍——这两个术语从一开始就不是同一数量级。将一个权重除以另一个权重并不能给出汇率。

“蓝勾(认证)会增加曝光。”已发布代码中没有任何内容将分数乘以订阅状态,并且 2023 年的提振已从树中消失。我们在此页面上打印的诚实限制是:最终排名通过一个学习模型运行,该模型的权重未发布。通过阅读代码无法排除模型自行学习到的相关性。我们这么说,是因为这是事实。

几乎没有人提到的发现:已发布代码中最强的正面信号不是转发、回复或点赞。而是有人将您的链接复制到其他地方分享。每个人都在引用的 20 是真实的。它只是附加到了一个完全不同的操作上。

2. 我们发布的声明,以及被我们自己的源代码驳斥的声明

这是营销团队会删掉的部分。

我们的页面上线时,其头条发现是该存储库中没有提及任何个人或组织——没有账户 ID,没有用户名,没有硬编码列表。我们在轮播图中放了一个全屏的零。

这是错误的。

在我们固定的确切提交中,`home-mixer/filters/brazil_2026_election_filter.rs` 包含665 个写入源代码的账户 ID,每个都附有其用户名。文件本身就是这么说的:“为透明起见,包含用户名。”该过滤器会从“为你”信息流中移除这些账户的帖子——包括转发、引用和线程祖先——除非查看者已经关注了它们。X 根据巴西选举法故意发布它,并在其自己的 README 中进行了记录。

我们出错的原因是唯一有趣的部分。这句话不是从任何东西中提取出来的。它是手工编写的。它对于我们已阅读的子集——可见性过滤规则——是正确的,然后被悄悄地泛化为“在此存储库中的任何地方”。泛化永远不会自我验证。

更糟糕的是:我们自己套件中的一个测试将这个错误固定了下来。它检查短语是否包含某些词语。它保证了这句话是存在的,而不是保证它是正确的。测试可以锁定一个谎言。

我们在同一天进行了更正。该声明现在是通过遍历存储库计算得出的,而不是关于它的断言,页面显示了账户,并且当源代码移动时数字也会移动。

源代码比任何人都先驳斥了我们。这正是源代码的作用——也是以这种方式工作的全部论据。

3. 那个没有国家名称的国家限制

一旦我们开始认真查看,地理信息就与大家假设的恰恰相反。

在整个存储库中,只有一个国家有自己的列表。另外两个国家列表是硬编码的——16 个国家,敏感内容会从未声明年龄的用户那里隐藏起来,以及 18 个国家,模型会单独处理——地球上其他所有国家都属于一个通用类别:不屏蔽,不区分。

每次举报的删除数据——人们说“在 X 国家被删除”时所指的东西——根本不在存储库中。这些规则会将查看者的国家与每个帖子在运行时携带的代码进行比较,而这些数据并未发布。根据此代码为“被审查”的国家着色的地图将是虚构的。我们的不是。

而代码中确实存在的那个特定国家过滤器有一个我们没想到的属性:其中没有出现任何国家条件,也没有出现在启用它的那一行周围。它在管道的过滤器链中被无条件注册。

我们将其连同其限制一起发布,因为限制是诚实的部分:哪个管道服务于哪个市场可能是在 X 未发布的层中决定的。我们可以说的是已发布代码包含的内容——它不包含任何国家测试。

4. 被移除的是曝光,不是言论

静默机制确实存在,它是可读的,而且比“影子禁令”这个词所暗示的范围要窄。

32 条删除规则是清晰可见的,作用于 27 种标签类型。其中两条规则会仅对非关注者隐藏帖子——您的关注者仍然可以看到您。这个区别在代码中,并且每次有人为了吸引眼球而使用那个词时,它就会消失。

除了那个过滤器之外,所有规则都作用于运行时附加的标签,而标签本身并未发布。代码显示了可以做什么。从未显示过对谁做了。

5. 为什么一家数据公司花了一周时间做这件事

因为这是我们赖以生存的工作,公开进行,针对的是一个每个人都已经有了看法的源代码。

我们的工作是处理不透明的东西——一个注册表、一份文件、一个数据集、一个存储库——并使其能够逐行检查。需要纪律的部分不是找到答案。而是大声说出答案的终点,并在源代码说您错了时公开纠正自己。

页面也会自我监控。一项工作每天早上会将我们固定的提交与 X 的进行比较;当它们发生分歧时,页面会显示它已过时,而不是默默地提供过时的数字,并且重新生成会进入一个等待人工处理的分支。一个指责别人过时数字的页面,自己也不能过时。

→ 阅读:d-nvest.com/x-algorithm

Get the next analysis

One deep-dive per edition on where valuable data is hiding — the evidence, the sources, and who would pay for it. No noise.

One email per edition. Unsubscribe any time. We never share your address.

From the marketplace

Explore live data opportunities

Browse datasets by sector & use-case
Found this useful? Share it

d-nvest turns the data assets behind these deals into scored, actionable opportunities.

Explore the pipeline →
X 发布了其算法。我们阅读了它,我们犯了一个错误,而源头抓住了我们。 | d-nvest