本页面向运营和创作者。本页把流行的运营说法逐条对照源码,给出“对”“部分对”或“错”的判定。每条判定附一个源码出处。本页依据的源码版本是 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):
- 推荐是个性化的。恶意举报主要影响与举报者相似的用户,不会让所有人看到的分数同时下降。
- 只有在首页推荐流里发生的行为才计入。通过链接直接打开帖子再举报,不影响排序。
例外在标签路径。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 |
这些判定指向两条规律:
- 排序看人的反应。 分数来自对每位用户行为的预测。格式、关键词、身份都不直接加分。
- 限流看标签。 帖子能不能推给陌生人,由标签和可见性规则决定,与分数无关。
把这些机制落到具体发帖做法上,见 发帖指南。
出处
| 结论 | 主要源码 |
|---|---|
| 权重默认值 | 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 |
相关页面
- 发帖指南 —— 把这些机制落到发帖做法
- 推荐系统工作原理 —— 端到端流程
- 打分与排序 —— 权重表、三项调整与新作者扶持
- VM Ranker 重排服务 —— 最终分所在的服务
- 可见性过滤 —— 标签怎样决定展示、遮罩或丢弃
- 打标签规则 —— 链接、置顶帖等规则
- 账号级信号 —— user-cred、agatha 与豁免
- 限流与 shadowban —— 从创作者视角看标签
- 开源版 vs 线上真实算法 —— 本页数值的边界
- 常见疑问解答