Skip to content

运营迷思 vs 源码真相

十六个流行的运营说法,按 xai-org/x-algorithm 2e2295b 源码逐条判定:对、部分对或错

Updated

本页面向运营和创作者。本页把流行的运营说法逐条对照源码,给出“对”“部分对”或“错”的判定。每条判定附一个源码出处。本页依据的源码版本是 commit 2e2295b;数值都是开源默认值,线上值可能不同。

先看打分怎么算

最终分是“行为预测概率 × 权重”的加权和。Phoenix 排序模型 预测当前用户对一条候选帖子点赞、回复、转发、举报等行为的概率。vm-ranker 把每个概率乘以权重再求和,共 30 项(xai-value-model/scoring.rs:79-218)。

加权之后还有三项调整:

  • 作者多样性:同一作者在同一次请求里每多出现一条,分数乘一个递减系数。
  • 站外降权:站外帖乘 0.75。关注者发的回复和转发也乘 0.75。
  • 新作者扶持:每次请求最多抬升一条低曝光的新作者原创帖。

能不能展示由另一套系统决定。可见性过滤 读取后台打好的标签,决定帖子展示、遮罩还是丢弃。下面的迷思,多数错在把这两套系统混为一谈。

权重与打分类

迷思一:「算法权重是秘密,没人知道」

判定:错。 权重已写在源码里。上游 README 说明,定时脚本会把 param.rs 的默认值同步为生产主值(README.md:432)。

部分权重的开源默认值(home-mixer/params/param.rs:404-533):

行为 权重
点赞 0.708
回复 5.0
引用 5.0
私信分享 5.0
复制链接分享 20.0
关注作者 4.0
不感兴趣 -53.07
静音作者 -58.8
举报 -234.0

限制:vm-ranker 自己的参数文件里有另一套默认值,例如点赞是 0.5(vm-ranker/params.rs:3)。vm-ranker 运行时从配置中心同步数值(vm-ranker/main.rs:69-98),线上实际生效的值源码未包含。详见 开源版 vs 线上真实算法。

迷思二:「1 次举报抵消 468 个赞」

判定:错。 权重乘的是预测概率,不是举报次数。源码注释专门澄清了这一点(home-mixer/params/param.rs:375-403)。

  • 468 的来历:468 是举报权重 234.0 除以 vm-ranker 的点赞默认值 0.5。按 param.rs 的点赞权重 0.708 算,比值约为 330.5。
  • 举报权重为什么大:举报的基础概率比点赞低 1000 倍以上。权重小了,举报预测对排序几乎没有影响。
  • 乘的是谁的概率:乘的是“当前这位用户自己会举报”的预测概率,不是帖子累计收到的举报数。

所以 468 是两个权重的比值,不是举报次数与点赞次数的换算关系。

迷思三:「组织一群人批量举报、拉黑,就能把帖子压下去」

判定:大体错。 打分阶段不读全局举报计数。源码注释给了两个理由(home-mixer/params/param.rs:391-403):

  1. 推荐是个性化的。恶意举报主要影响与举报者相似的用户,不会让所有人看到的分数同时下降。
  2. 只有在首页推荐流里发生的行为才计入。通过链接直接打开帖子再举报,不影响排序。

例外在标签路径。agatha 离线统计一个账号收到的拉黑、举报相对站外点赞的比率,供打标签规则使用(agatha/scalding/labels/rate_based_labels/RateBasedLabels.scala:29-57)。详见 账号级信号。

迷思四:「点赞最重要,回复无所谓」

判定:错。 在开源默认值下,回复的权重约是点赞的 7 倍:回复 5.0,点赞 0.708(home-mixer/params/param.rs:404-410)。

双向关注还会再加。作者与你互相关注、且帖子是原创时,回复权重加 15.0,从 5.0 变为 20.0(home-mixer/params/param.rs:411-416)。复制链接分享的权重也是 20.0(home-mixer/params/param.rs:452-457)。

这些权重仍然乘预测概率。模型预测“这位用户会回复”的概率高,回复权重才起作用。

迷思五:「多发帖 = 多曝光」

判定:部分错。 同一作者在同一次请求里出现越多,后面的帖子打折越多。vm-ranker 的作者多样性衰减默认开启,衰减 0.5、下限 0.25(vm-ranker/params.rs:175-192)。

同一作者的第 1、2、3、4 条帖子分别乘 1.0、0.625、0.4375、0.34375,之后趋近 0.25(xai-value-model/scoring.rs:261-263)。这个衰减只在单次请求内计算,不是账号级惩罚。

迷思六:「关注我的人一定能刷到我,站内帖不降权」

判定:部分错。 只有关注者发的原创帖不降权。

  • 站外帖乘 0.75(vm-ranker/params.rs:217-222)。
  • 关注者发的回复和转发默认也乘 0.75。控制开关 EnableOonRescoreForInNetworkRepliesRetweets 默认开启(vm-ranker/params.rs:193-198)。

站内帖也要与站外帖一起按最终分排序,不保证出现。要看关注者的全部帖子,用户需切换到 Following 时间线。

迷思七:「我的帖子会被同批的大 V 挤掉」

判定:部分对。 模型打分阶段不受同批帖子影响,选择阶段才有竞争。

  • 模型打分互不影响:排序模型的注意力掩码让候选之间互相看不见(phoenix/xrex/models/recsys_model.py:2277-2288)。你的帖子的预测概率只取决于这条帖子和这位用户。
  • 最终名次互相影响:系统按最终分取前 50 条,最终留 35 条(home-mixer/params/config.rs:17-18)。新作者扶持把入选帖子抬到当前第 16 名的分数(home-mixer/scorers/author_cold_start.rs:216-226)。名额有限,高分帖子多时,排在后面的帖子会落选。

内容形式类

迷思八:「套爆款模板、堆关键词能骗算法」

判定:错。 加权打分只读行为预测,没有“带某个关键词加分”“某种格式加分”的项(xai-value-model/scoring.rs:79-218)。

关键词在推荐流里只有一个作用:用户设置的静音词。命中静音词的帖子被 ViewerMutedKeywordFilter 去掉(home-mixer/filters/viewer_muted_keyword_filter.rs:20-47)。这是减分方向,不是加分方向。

迷思九:「带外链的帖子会被降权」

判定:部分错。 普通外链不降权,低质和恶意链接会被打标签。

  • 打分不罚链接:“打开链接”是正权重 0.2(home-mixer/params/param.rs:437)。加权打分里没有“带链接扣分”的项。
  • 链接信誉差会打标签:链接跳转链被判为 BAD 时,帖子被打上 SPAM 或 SPAM_HIGH_RECALL(botmaker-rules/scarecrow/bot/Tweet_Spam_High_Recall_RTF_All_Bad_URL_Sources.bot:7-46)。链接被判为 LOW_QUALITY、且最终落地页不是 GOOD 或白名单时,帖子被打上 SPAM_HIGH_RECALL(botmaker-rules/scarecrow/bot/LQ_Tweets_With_LQ_URL_Verdict_At_Mention_To_NonFollower_v2.bot:8-16)。
  • 标签决定去向:SPAM_HIGH_RECALL 和 MALICIOUS_URL 只在站外推荐中丢弃帖子(visibility-filtering/rules/levels.rs:147-152)。SPAM 对所有非作者丢弃帖子(visibility-filtering/rules/levels.rs:298-316)。

置顶帖的链接还会影响整个账号,见 发帖指南。

迷思十:「视频天然有加权」

判定:开源默认值下错。 视频专属的三项权重都是 0.0:打开视频、视频质量观看、post_video(home-mixer/params/param.rs:430-435、home-mixer/params/param.rs:444、home-mixer/params/param.rs:484-489)。

视频质量观看即使将来调高权重,也只对时长超过 10000 毫秒的视频生效(home-mixer/params/param.rs:707-712)。视频轮播模块开源默认关闭(home-mixer/params/param.rs:1217-1222)。视频帖和图文帖一样,靠点赞、停留、回复等通用行为得分。

迷思十一:「有一个最佳发帖时间」

判定:源码里没有按钟点加分的规则。 时间以三种方式进入系统:

机制 内容 出处
帖子时效 发布超过 48 小时的帖子被过滤 home-mixer/params/config.rs:39
新作者扶持 只扶持发布不超过 7200 秒的帖子 home-mixer/params/param.rs:632-637
模型特征 排序模型读取浏览时的本地小时、星期几和帖龄分档 phoenix/xrex/configs/xrecsys.py:937-967

模型特征描述的是“用户在什么时间浏览”,不是“作者在什么时间发帖”。推论:在受众活跃时发帖,帖子在 48 小时窗口内能遇到更多浏览者。源码不给出具体钟点。

账号与身份类

迷思十二:「粉丝多就推得多」

判定:部分对。 加权打分没有粉丝数项,但粉丝数在四个地方出现:

  • 热门帖子源:按粉丝数从高到低选作者,人数为近 7 天活跃发帖人数的 0.005%(home-mixer/util/popular_authors.rs:11)。
  • 新作者扶持:只扶持粉丝不超过 50000 的作者(home-mixer/params/param.rs:626-631)。粉丝多的作者拿不到这一项。
  • 帖子嵌入:v8.2 嵌入的输入包含作者的粉丝数档位(grox/flows/mm_emb/renderer_v82.py:187-243)。
  • 标签豁免:账号没有 user-cred 分数时,粉丝超过 25000 的账号豁免多数自动打标签规则(botmaker-rules/scarecrow/derived-feature/IsHighPageRankUser.df:11-18)。

迷思十三:「开 Premium(蓝标)就能买曝光」

判定:直接加分错,间接影响对。 加权打分没有订阅或认证项(xai-value-model/scoring.rs:79-218)。订阅在推荐流里只用于 IneligibleSubscriptionFilter:去掉用户没订阅的订阅专属帖(home-mixer/filters/ineligible_subscription_filter.rs:21-26)。

认证状态有两处间接作用:

  • user-cred 分数:user-cred 是在关注图上跑 PageRank 得到的 0–100 账号分。PageRank 的均匀跳转质量只分给认证账号,包括蓝标、灰标、金标和认证机构(user-cred-v2/ValidUserInfo.scala:14-15、user-cred-v2/UserCredV2App.scala:173-174)。分数不低于 54 的账号豁免多数自动打标签规则。
  • 帖子嵌入:v8.2 嵌入的输入包含作者的认证颜色(grox/flows/mm_emb/renderer_v82.py:246-262)。

迷思十四:「算法给某些大账号开后门」

判定:源码里找不到点名的账号,但存在内容未公开的名单。 全仓搜索 elon、musk 无结果。home-mixer 的追踪账号列表为空(home-mixer/params/config.rs:14)。

名单机制存在:

  • 处置服务的第一条规则是“账号在白名单中则跳过处置”(abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:6-10)。
  • 多条打标签规则跳过 AutoExpiringTempSkipList 中的账号(botmaker-rules/scarecrow/bot/PinnedLowQualityOrBadUrl.bot:28)。

这两份名单的内容源码未包含。

迷思十五:「shadowban 不存在」

判定:错(本页旧版判为“对”,已改判)。 源码里有“只限制推荐、不影响关注者”的账号标签。

  • 账号带 SpamHighRecall、DoNotAmplify、AbusiveHighRecall、Compromised、ReadOnly、ImpersonationHighPrecision 之一时,它的帖子在站外推荐中被丢弃(visibility-filtering/rules/levels.rs:65-72)。
  • 5 种 NSFW 账号标签同样只在站外推荐中生效(visibility-filtering/rules/levels.rs:318-332)。
  • 站内候选用的 TimelineHome 安全级别不含这些规则(visibility-filtering/rules/levels.rs:298-316),所以关注者照常能看到。

用户能在 Under the Hood 月报里看到部分标签。报告只展示白名单内的 19 种帖子标签和 12 种账号标签(under-the-hood/strato/lib/underTheHoodLabels.strato:3-184)。详见 限流与 shadowban。

迷思十六:「AI 批量写的内容不会被识别」

判定:错。 处置服务有针对 AI 低质内容的规则,但检测模型不在仓库里。

  • 账号带 llm_slop_user 分数标签时,处置服务给账号加 SpamHighRecall,有效 7 天(abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:118-123)。这 7 天里,账号的帖子不进站外推荐。
  • 帖子带 llm_slop_post 时,处置服务给帖子加 RiskyHighVizReply,有效 30 天(abuse-enforcement-service/service-lib/rules/enforcement_post.yaml:39-44)。

产生 llm_slop_user 与 llm_slop_post 的检测器源码未包含。

总结

流行说法 判定 源码事实
权重是秘密 错 权重在 param.rs,默认值同步自生产主值
1 举报抵 468 赞 错 权重乘预测概率,468 是权重比
批量举报能压帖 大体错 打分不读举报计数;标签路径另有账号级比率
点赞最重要 错 回复 5.0,互关原创帖回复 20.0,点赞 0.708
多发帖多曝光 部分错 同次请求内作者多样性衰减,下限 0.25
站内帖不降权 部分错 关注者的回复和转发也乘 0.75
被同批大 V 挤掉 部分对 模型打分隔离,选择名额有限
模板和关键词能骗算法 错 打分只读行为预测
外链降权 部分错 普通链接不罚,低质和恶意链接被打标签
视频天然加权 默认值下错 视频专属权重都是 0.0
有最佳发帖时间 无此规则 48 小时窗口;模型读浏览时间
粉丝多推得多 部分对 不进打分,进热门源、扶持上限、嵌入和豁免
Premium 买曝光 直接错,间接对 认证账号是 user-cred 的跳转种子
大账号后门 无点名账号 有内容未公开的白名单
shadowban 不存在 错 账号标签只在站外推荐中丢弃帖子
AI 内容不会被识别 错 llm_slop_user 触发 7 天 SpamHighRecall

这些判定指向两条规律:

  1. 排序看人的反应。 分数来自对每位用户行为的预测。格式、关键词、身份都不直接加分。
  2. 限流看标签。 帖子能不能推给陌生人,由标签和可见性规则决定,与分数无关。

把这些机制落到具体发帖做法上,见 发帖指南。

出处

结论 主要源码
权重默认值 home-mixer/params/param.rs:404-533
默认值同步自生产主值 README.md:432
vm-ranker 的点赞默认值 0.5 vm-ranker/params.rs:3
权重乘预测概率,468 是误读 home-mixer/params/param.rs:375-403
批量举报影响有限 home-mixer/params/param.rs:391-403
双向关注回复加成 15.0 home-mixer/params/param.rs:411-416
作者多样性衰减 0.5、下限 0.25 vm-ranker/params.rs:175-192
站外系数 0.75,含关注者的回复和转发 vm-ranker/params.rs:193-222
候选之间互相看不见 phoenix/xrex/models/recsys_model.py:2277-2288
坏链接打标签 botmaker-rules/scarecrow/bot/Tweet_Spam_High_Recall_RTF_All_Bad_URL_Sources.bot:7-46
站外帖子丢弃规则 visibility-filtering/rules/levels.rs:147-152
视频专属权重为 0.0 home-mixer/params/param.rs:430-435
时间类模型特征 phoenix/xrex/configs/xrecsys.py:937-967
热门帖子源按粉丝数选作者 home-mixer/util/popular_authors.rs:11
认证账号是 user-cred 的跳转种子 user-cred-v2/UserCredV2App.scala:173-174
站外账号标签规则 visibility-filtering/rules/levels.rs:65-72
AI 低质内容规则 abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:118-123

相关页面

Type to search…

↑↓ navigate↵ selectEsc close