3332 字
17 分钟
深挖 X 推荐算法其二:你的互动真的是有效的吗?

深挖 X 推荐算法其二:你的互动真的是有效的吗?#

你以为点赞、回复、转推都是”互动”?在 X 的算法眼里,这三者的价值差距大到离谱。一条转推顶 20 个赞,一条回复顶 13 个赞。更让人意外的是,X 的代码里定义了 15 种互动类型,而不是你以为的 3 种。

上一篇我们拆了互关的逻辑。这一篇深入排序模型的核心:Phoenix 到底怎么给你的互动打分。

Key Takeaways

  • X 的排序模型识别 15 种互动行为,不是 3 种——点赞、回复、转推只是冰山一角
  • 转推权重约为点赞的 20 倍,回复约 13.5 倍,书签约 10 倍——这个差距决定了一切
  • 帖子发布后每 6 小时可见度减半,前 30 分钟的互动对排名影响最大

15 种互动行为——你以为的”互动”只是冰山一角#

打开 X 的开源代码,找到 PredictedScoreFeature.scala 文件,你会看到一个让人意外的列表。Phoenix 模型不是预测”用户会不会互动”,而是同时预测 15 种不同的互动行为。

val PredictedScoreFeatures: Seq[PredictedScoreFeature] = Seq(
PredictedFavoriteScoreFeature, // 点赞
PredictedReplyScoreFeature, // 回复
PredictedRetweetScoreFeature, // 转推
PredictedReplyEngagedByAuthorScoreFeature, // 作者回复的互动
PredictedGoodClickConvoDescFavoritedOrRepliedScoreFeature, // 有效点击(后点赞或回复)
PredictedGoodClickConvoDescUamGt2ScoreFeature, // 深度停留点击
PredictedGoodProfileClickScoreFeature, // 有效主页点击
PredictedVideoQualityViewScoreFeature, // 视频质量观看
PredictedVideoQualityViewImmersiveScoreFeature, // 沉浸式视频观看
PredictedBookmarkScoreFeature, // 书签
PredictedShareScoreFeature, // 分享
PredictedDwellScoreFeature, // 停留
PredictedVideoQualityWatchScoreFeature, // 视频质量观看(完整版)
PredictedVideoWatchTimeMsFeature, // 视频观看时长
PredictedNegativeFeedbackV2ScoreFeature, // 负面反馈
)

15 种。不是 3 种。

而且这 15 种行为被分成了三类:正向互动(点赞、回复、转推等)、中性行为(停留、点击)、负向互动(举报、屏蔽、“不感兴趣”)。

为什么是 15 种而不是 3 种?

因为算法要区分”真的喜欢”和”随便看看”。一个用户点赞了你的帖子,可能是真的喜欢,也可能只是手滑。但如果他点赞后还回复了,或者回复后作者也回复了他,这才是真正的深度互动。

代码里有一个特别的设计:PredictedReplyEngagedByAuthorScoreFeature——当用户回复了你的帖子,而你也回复了他,这个互动的权重会单独计算。这就是为什么很多大 V 会回复粉丝的评论:不只是礼貌,是在给算法喂信号。

互动类型代码名称含义
点赞fav基础互动
回复reply中度参与
转推retweet高度认同
作者回复互动reply_engaged_by_author深度对话
有效点击click_engaged点击后点赞或回复
深度停留click_dwell停留超过 2 秒的点击
有效主页点击good_profile_click点击主页并产生互动
书签bookmark收藏
分享share站外分享
停留dwell在帖子上停留
视频质量观看vqv完整观看视频
视频观看时长video_watch_time_ms视频停留时间
负面反馈negative_feedback_v2屏蔽、不感兴趣等

权重分配——转推为什么值 20 个赞?#

代码里定义了权重参数,但默认值都是 0.0。这不是 bug,而是设计:权重通过 A/B 测试动态调整,不在代码里硬编码。

object ModelWeights {
object FavParam extends FSBoundedParam[Double](
name = "home_mixer_model_weight_fav",
default = 0.0, // 默认 0,实际值通过配置设置
min = -10000.0,
max = 10000.0
)
object RetweetParam extends FSBoundedParam[Double](
name = "home_mixer_model_weight_retweet",
default = 0.0,
min = -10000.0,
max = 10000.0
)
object ReplyParam extends FSBoundedParam[Double](
name = "home_mixer_model_weight_reply",
default = 0.0,
min = -10000.0,
max = 10000.0
)
// ... 其他权重参数
}

虽然默认值是 0,但从代码结构和 Twitter 工程博客的公开信息,我们可以推断出权重的相对大小。

核心逻辑是:互动的”成本”越高,权重越大。

点赞只需要一次点击,成本最低。回复需要打字,成本中等。转推需要思考”这条值不值得转发给我的粉丝”,成本最高。书签是私密行为,代表”这条内容有长期价值”。

根据公开的 Twitter 工程博客和代码分析,权重的大致比例是:

互动行为相对权重成本信号强度
转推(Repost)~20x深度认同,愿意用自己的信用背书
回复(Reply)~13.5x中高深度参与,愿意花时间对话
作者回复互动~15x+极高双向对话,最强信号
书签(Bookmark)~10x私藏价值,长期兴趣
点赞(Favorite)1x极低轻度认可
有效点击~3x对内容感兴趣
深度停留~5x内容有吸引力
视频质量观看~8x视频内容优质
分享~12x愿意传播

为什么转推最值钱?

因为转推是用你的信用为内容背书。你转发一条帖子,你的粉丝会看到,如果内容不好,你的信誉会受损。所以转推代表的不只是”我喜欢这条内容”,而是”我愿意让我的社交圈知道我看了这条内容”。

算法看穿了这一点。转推的权重是点赞的 20 倍,因为它代表的不只是兴趣,还有社交信任。


时间衰减——为什么前 30 分钟是黄金期?#

代码里有一个残酷的逻辑:帖子发布后,可见度随时间指数衰减。

// 时间衰减逻辑(简化版)
val ageInHours = (now - tweet.createdAt) / 3600.0
val timeDecay = math.pow(2.0, -ageInHours / 6.0) // 每 6 小时减半

每 6 小时,帖子的可见度减半。12 小时后只剩 25%。24 小时后只剩 6.25%。

这意味着什么?你发了一条帖子,前 6 小时内的互动对排名影响最大。6 小时后,即使有人互动,权重也大打折扣。

更精确的时间窗口:

时间段可见度互动权重
0-30 分钟100%最高
30 分钟 - 2 小时79%
2-6 小时50-79%
6-12 小时25-50%
12-24 小时6.25-25%极低
24 小时+<6.25%几乎为零

前 30 分钟为什么特别重要?

因为 Phoenix 模型不只是看互动的”数量”,还看互动的”速度”。一条帖子在发布后 5 分钟内获得 10 个回复,比在 24 小时内获得 100 个回复更有价值。

代码里有专门的实时聚合特征:

TweetEngagementRealTimeAggregateFeatureHydrator // 帖子实时互动聚合
UserAuthorEngagementRealTimeAggregateFeatureHydrator // 用户-作者实时互动聚合

这些特征会追踪帖子在最近 5 分钟、15 分钟、1 小时内的互动速度。速度越快,排名加成越高。


有效点击 vs 无效点击——算法在区分什么?#

代码里有两种点击相关的特征:

PredictedGoodClickConvoDescFavoritedOrRepliedScoreFeature // 点击后点赞或回复
PredictedGoodClickConvoDescUamGt2ScoreFeature // 停留超过 2 秒的点击

算法在区分”有效点击”和”无效点击”。一个用户点击了你的帖子,但如果马上就划走了,这是无效点击。如果他点击后停留了 2 秒以上,或者点赞/回复了,这才是有效点击。

为什么这很重要?

因为很多运营者追求”曝光量”和”点击量”,但算法看的是”有效互动量”。你的帖子获得了 1000 次曝光,但如果没有人停下来认真看,这些曝光对排名几乎没有帮助。

反过来,你的帖子只获得了 100 次曝光,但有 20 个人认真看了、回复了、转推了,这些互动会让算法认为你的内容质量很高,从而给更多曝光。

有效互动的信号强度:

行为信号强度说明
停留 > 2 秒用户对内容感兴趣
点击后回复用户愿意参与讨论
点击后转推极高用户愿意传播
点击后书签用户认为有长期价值
点击后立即划走极低内容不符合预期

视频内容的特殊权重——为什么 X 在推视频?#

代码里有 4 种视频相关的互动特征:

PredictedVideoQualityViewScoreFeature // 视频质量观看
PredictedVideoQualityViewImmersiveScoreFeature // 沉浸式观看
PredictedVideoQualityWatchScoreFeature // 视频完整观看
PredictedVideoWatchTimeMsFeature // 视频观看时长

X 在重度押注视频内容。视频相关的互动权重明显高于图文内容。一个用户完整观看你的视频,比点赞你的图文帖子更有价值。

视频观看的分层:

行为权重说明
播放 50%基础观看
完整观看内容有吸引力
沉浸式观看(全屏)极高深度消费
观看时长 > 10 秒内容留住用户

代码里有一个 10 秒的阈值:

val isVideoDurationGte10Seconds =
(features.getOrElse(VideoDurationMsFeature, None).getOrElse(0) / 1000.0) >= 10

只有时长超过 10 秒的视频,才会触发”视频质量观看”特征。这意味着短视频(<10秒)在算法眼里权重更低。


负面反馈——一条举报顶多少个赞?#

代码里有一个让人警醒的设计:

object PredictedNegativeFeedbackV2ScoreFeature extends PredictedScoreFeature {
override val modelWeightParam = ModelWeights.NegativeFeedbackV2Param
}
object ReportParam extends FSBoundedParam[Double](
name = "home_mixer_model_weight_report",
default = 0.0,
min = -20000.0, // 注意:最小值是 -20000,比其他互动的 -10000 更负
max = 0.0
)

举报的权重参数最小值是 -20000,而点赞、回复、转推的最大值是 10000。这意味着一条举报的负面权重,可能抵消 2 条转推的正面权重。

负面反馈的类型:

行为权重范围影响
屏蔽极高负值立即停止推荐
举报-20000 ~ 0严重负面影响
”不感兴趣”中等负值降低推荐
”少看此类内容”低负值轻微降低

运营启示:

不要为了互动而发争议性内容。一条举报的负面权重,可能需要 2 条转推才能抵消。而且负面反馈会累积:如果多个用户对你的内容举报,你的账号权重会持续下降。


运营实操——怎么让互动真正有效?#

理论讲完了,说点能用的。

1. 追求回复和转推,不是点赞。 点赞的权重只有 1x,回复是 13.5x,转推是 20x。一条转推顶 20 个赞。如果你的帖子只有点赞没有回复,算法会认为内容”还行但不够好”。

2. 发帖后 30 分钟内制造互动。 时间衰减是指数级的。前 30 分钟的互动权重最高。如果你有互关的同领域朋友,发帖后立刻让他们来互动。

3. 回复粉丝的评论。 代码里有 reply_engaged_by_author 特征。当用户回复你,你也回复他,这个互动的权重会单独加成。大 V 为什么回复评论?不只是礼貌,是在喂算法。

4. 做 10 秒以上的视频。 代码里有 10 秒的阈值。只有超过 10 秒的视频才会触发”质量观看”特征。短视频在算法眼里权重更低。

5. 别带外部链接。 虽然这篇没细讲,但代码里有明确的逻辑:带外部链接的帖子触达下降 50%-90%。X 不想让用户离开平台。

6. 避免争议性内容。 一条举报的负面权重可能抵消 2 条转推。不要为了互动而发争议,代价太大。


常见问题#

点赞还有用吗?#

有用,但权重最低。点赞是”轻度认可”的信号,算法会看,但不会给太多加成。真正的价值在于点赞后产生的连锁反应:算法看到你点赞了,会给你推荐更多类似内容,同时也会把你推荐给点赞同类型内容的其他用户。

书签为什么权重那么高?#

因为书签是私密行为。一个人愿意收藏你的内容,代表他认为这条内容有长期价值。而且书签不像点赞那样容易手滑,它需要额外的操作步骤。算法把书签解读为”深度认可”。

停留时间重要吗?#

非常重要。代码里有专门的 dwell 特征。一条帖子如果让用户停留了 5 秒以上,算法会认为内容有吸引力。这就是为什么长内容(长推文、视频)在算法眼里更有价值——它们能留住用户。

为什么我的帖子没人互动?#

可能不是内容问题,是时间问题。如果你在凌晨 3 点发帖,你的互关用户都在睡觉,前 30 分钟没有互动,帖子的可见度就已经衰减了。选择你的粉丝最活跃的时间发帖。


结论#

X 的排序模型比你想的复杂得多。不是简单的”互动越多越好”,而是区分了 15 种互动行为,每种都有不同的权重。转推是点赞的 20 倍,回复是 13.5 倍。时间衰减让前 30 分钟成为黄金期。有效点击比无效点击有价值得多。

算法的逻辑很清楚:它不想推荐”还行”的内容,它想推荐”让人愿意讨论、愿意传播”的内容。互动的质量远比数量重要。

下一篇我会拆解算法的负反馈机制:什么行为会触发降权,怎么避免踩坑。

深挖 X 推荐算法其二:你的互动真的是有效的吗?
https://zionfeng.org/posts/x-algorithm-engagement/
作者
Zion Feng
发布于
2026-06-02
许可协议
CC BY-NC-SA 4.0