基于 xAI 开源的 x-algorithm 源码

X 为什么会把一条内容推给你?

最短答案:系统会先猜“你会不会喜欢、停留、回复、转发、点开、关注作者”,再把不合适、重复、已看过或风险内容挡掉,最后把帖子、广告和产品模块混排成你看到的 For You。

不是只看热度

点赞数和转发数会作为参考,但不是“越热越靠前”的简单榜单。

更看个人相关性

你的近期行为会形成兴趣画像,影响圈外内容召回和最终排序。

负反馈很重要

不感兴趣、拉黑、静音、举报这类风险预测会压低推荐分。

模型先预测 这条内容会不会让你停留、互动或反感
For You 排名中
A你可能会认真读完
高停留 + 高喜欢
B朋友也在讨论
高回复概率
Ad广告占位
安全间隔插入
C来自你没关注的人
兴趣相似
然后再混排 帖子、广告、推荐关注、提示模块一起组成页面

普通用户最该知道的 4 件事

源码里有很多服务和模型名,但落到体验上,其实可以压缩成这四句话。

1

系统先找候选

一部分来自你关注的人,一部分来自全站里和你兴趣相近的内容。

2

模型预测行为

它不是只问“这条热不热”,而是问“这个用户会不会对它有反应”。

3

过滤器先挡风险

已看过、重复、太旧、屏蔽关系、静音词、安全问题都可能被拿掉。

4

最终页面还会混排

广告、关注推荐和产品提示会插入,所以你看到的不只是帖子排序榜。

一条帖子到你面前,要过 5 道关

可以把 X 推荐理解成漏斗:越往后,留下来的内容越少,也越贴近这次请求。

全站内容海量新帖、旧帖、视频、转帖、回复
很多

系统不会把所有内容逐条精排,成本太高。

候选召回关注内 + 兴趣相似 + 话题来源
一批

Thunder 找关注内新鲜内容,Phoenix 找圈外相似内容。

模型打分预测喜欢、停留、回复、反感等
更少

不是一个分数拍脑袋,而是很多行为预测合成。

过滤和去重已看过、屏蔽、静音、安全、重复
少量

模型喜欢也不一定能过硬规则。

推荐分像一份配方,不是一个按钮

源码中的 RankingScorer 会把很多行为预测乘上权重,再考虑作者多样性和圈外内容比例。

喜欢
加分
停留
加分
回复/转发
加分
点开作者
加分
不感兴趣
减分

从工程角度看,它大致这样运转

下面这张图省略了内部服务名,只保留用户能感受到的关键步骤。

1

读懂你最近的动作

你喜欢、回复、转发、停留、视频观看等行为会变成一段历史。

2

找一批可能相关的帖子

关注的人提供新鲜内容,全站向量检索提供兴趣相近内容。

3

逐条预测你的反应

模型分别预测喜欢、停留、回复、转发、负反馈等概率。

4

挡掉不该出现的内容

重复、已看、屏蔽、静音、安全风险和话题不匹配会被过滤。

5

组成最终页面

帖子排序后,还会插入广告、关注推荐、提示和置顶模块。

它为什么会推荐“没关注的人”?

这部分来自 out-of-network 召回。系统会从全站找与你历史行为相似的内容。

不是只看你关注谁

关注列表负责一部分供给,但 For You 还会从全站找你可能感兴趣的内容。

相似兴趣会连起来

你最近互动过的内容会形成向量表示,系统找距离近的帖子。

比例会被调节

圈外内容不是无限制涌入,代码里有单独的 OON 权重因子。

你能影响推荐,但不是立刻“重置宇宙”

系统看的是一段行为历史。单次点击会有影响,但连续、明确、一致的动作更有信号强度。

多给正反馈

喜欢、回复、转发、停留、点开作者,会告诉系统这类内容值得更多出现。

明确负反馈

不感兴趣、静音、屏蔽,比快速划走更明确。

清理关注关系

关注列表会影响 in-network 候选,也影响系统对你兴趣的理解。

避免误点误停留

长时间停留和频繁点开会被当作兴趣信号,即使你只是围观。

哪些内容会被挡掉或压低?

推荐不是模型一票决定,很多硬规则会保护体验和安全。

直接过滤

这类内容可能在排序前后被移除,不再进入最终 feed。

重复内容 已经看过 太旧 屏蔽关系 静音词 安全风险

降低排序

这类内容不一定消失,但会因为预测不佳或体验约束被放到后面。

可能不感兴趣 可能被举报 同作者太多 视频不符合条件 圈外比例调节

三个常见误解

用源码能确认的部分,反而能帮我们避开很多玄学解释。

误解

“点赞越多越推荐”

公开互动数只是候选特征之一。更关键的是模型预测“你这个人”会不会互动。

误解

“只要我关注就一定看到”

关注内内容会进入候选池,但仍要和其他内容一起过滤、打分、排序。

误解

“模型喜欢就一定出现”

安全、社交关系、已看历史、去重、广告混排都会改变最终页面。