本页面向创作者和运营。每条建议都从一个源码机制反推,并给出源码出处;从机制推不出的做法,本页不写。数值都是开源默认值,线上值可能不同。哪些流行说法是错的,见配套页 运营迷思 vs 源码真相。
两条总纲
- 分数来自对人的预测。 排序模型预测每位浏览者点赞、回复、分享、举报等行为的概率,vm-ranker 把概率乘以权重再求和(
xai-value-model/scoring.rs:79-218)。加权打分里没有格式、关键词或身份项。所以发帖技巧只有一个方向:让真实读者更可能做出高权重的正向行为。 - 能不能推给陌生人,看标签。 可见性过滤 读取后台打好的标签,决定帖子展示、遮罩还是丢弃。分数再高,帖子被丢弃也不会展示。所以第二个方向是:不触发会让帖子或账号被打标签的规则。
帖子要过的关卡
flowchart LR
A[发帖] --> B["召回<br/>进入候选"] --> C["预打分过滤<br/>48 小时、已看过等"] --> D["打分<br/>预测 × 权重"] --> E["选择<br/>取 50 留 35"] --> F["可见性检查<br/>按标签丢弃或遮罩"] --> G([进入某人的 For You])
一条帖子要先被召回,再通过过滤,在打分中进入前 50 条,最后通过可见性检查,才会出现在某人的 For You 里。下面按关卡给建议。
召回:让帖子进得了候选池
一条帖子只讲一个主题
站外召回靠帖子的内容表示找到兴趣相近的用户。生产召回用语义 ID 表示帖子:帖子的多模态嵌入被量化成 6 层、每层 256 个码,同主题帖子共享前缀(phoenix/README.md:110-115)。
推论:主题单一的帖子,嵌入落在一个明确的主题区域,更容易匹配到对这个主题感兴趣的人。三个话题挤在一条里,嵌入落在几个主题之间。这是从召回机制得出的推论,源码里没有“主题数”规则。
在 48 小时窗口内争取曝光
发布超过 48 小时的帖子在预打分阶段被过滤(home-mixer/params/config.rs:39)。站内帖子库 Thunder 只保存最近 2 天的帖子(thunder/args.rs:48-49)。
推论:帖子的推荐寿命约两天。不要指望旧帖被推荐流重新带起来;在受众活跃时发帖。
打分:做高权重的正向行为
正向行为的权重差距很大
开源默认权重(home-mixer/params/param.rs:404-507)按大小排列:
| 行为 | 权重 | 内容要做到的事 |
|---|---|---|
| 复制链接分享 | 20.0 | 值得拿到站外转给别人:教程、清单、数据、可引用的结论 |
| 回复 | 5.0 | 留出讨论空间:给一个可以接的判断或一个真问题 |
| 引用 | 5.0 | 给出可以被引用后补充或反驳的观点 |
| 私信分享 | 5.0 | 对某个具体的人有用,读者想“发给他看看” |
| 关注作者 | 4.0 | 让读者知道你是谁、为什么值得长期关注 |
| 分享 | 2.118 | 同复制链接分享 |
| 转发 | 1.0 | 有转发的理由:信息增量或立场表达 |
| 点赞 | 0.708 | 观点清楚,有共鸣 |
| 点击后停留时长 | 0.385 | 点开后有足够的内容可读 |
| 点击 | 0.274 | 首句给真实信息,不夸大 |
| 打开链接 | 0.2 | 链接指向读者真正想看的页面 |
这些权重乘的是预测概率。权重高的行为发生概率通常低,实际贡献要看模型对每位读者的预测。
和互关的人对话
作者与浏览者互相关注、且帖子是原创时,回复权重从 5.0 加到 20.0(home-mixer/params/param.rs:411-416)。
推论:在互关关系里,引发回复的原创帖收益最大。经营互关关系、在原创帖里向熟悉的读者提问,是这一项机制的直接用法。
别招来负反馈
负向行为的权重很大(home-mixer/params/param.rs:509-533):
| 行为 | 权重 |
|---|---|
| 举报 | -234.0 |
| 静音作者 | -58.8 |
| 不感兴趣 | -53.07 |
| 拉黑作者 | -31.2 |
| 未停留 | -0.02 |
标题党能骗到点击,但如果读者点开后觉得被骗,模型对同类读者预测的“不感兴趣”“静音”概率会上升。一条无人理会的帖子不会扣分;一条让人反感的帖子会扣分。
视频按通用行为得分
视频专属的三项权重开源默认都是 0.0:打开视频、视频质量观看、post_video(home-mixer/params/param.rs:430-435、home-mixer/params/param.rs:444、home-mixer/params/param.rs:484-489)。视频帖和图文帖一样,靠点赞、回复、分享、停留得分。选视频还是图文,按内容需要决定,不按“算法偏好”决定。
打分之后的三项调整
发原创帖,不靠回复和转发触达
三条机制都偏向原创帖:
- 站外降权:站外帖乘 0.75;关注者发的回复和转发也乘 0.75,只有关注者的原创帖不降权(
vm-ranker/params.rs:193-222)。 - 站外回复与转发被过滤:非关注者的 For You 里,站外的转发和回复在预打分阶段就被
OONRetweetReplyFilter去掉(home-mixer/filters/oon_retweet_reply_filter.rs:10-29)。你的回复只能通过关注者的推荐流出现。 - 新作者扶持只扶原创帖:回复和转发不参与(
home-mixer/scorers/author_cold_start.rs:188-193)。
推论:想触达新读者,发原创帖。
新账号抓住发帖后的 2 小时
新作者扶持每次请求最多抬升一条帖子,抬到当前第 16 名的分数。条件是(home-mixer/params/param.rs:608-681):
- 作者粉丝不超过 50000。
- 帖子是原创帖。
- 帖龄不超过 7200 秒(2 小时)。
- 首页曝光少于 200。
候选之间用 Thompson 采样挑选:点赞率高的帖子更容易被选中,曝光越多,估计越接近真实点赞率(home-mixer/scorers/author_cold_start.rs:243-283)。推论:粉丝不多的作者,发帖后 2 小时内的点赞率决定能否拿到扶持。
把帖子在时间上摊开
同一作者在同一次请求里的第 1、2、3、4 条帖子分别乘 1.0、0.625、0.4375、0.34375,之后趋近 0.25(vm-ranker/params.rs:175-192)。十分钟内连发多条,这些帖子容易在同一次请求里相遇,后面的帖子被自己前面的帖子压分。把帖子摊开发,每条都更可能以系数 1.0 参加排序。
可见性:别让帖子或账号被打标签
以下规则会给帖子或账号打标签。标签让帖子在站外推荐中被丢弃,有的对所有非作者丢弃。
置顶帖不放低质链接
账号把含 BAD 或 LOW_QUALITY 链接的帖子设为置顶时,整个账号被打上 SPAM_HIGH_RECALL,有效 7 天(botmaker-rules/scarecrow/bot/PinnedLowQualityOrBadUrl.bot:1-42)。这 7 天里,账号的所有帖子都不进站外推荐(visibility-filtering/rules/levels.rs:65-72)。
置顶前检查:链接是否指向正规站点,短链接跳转后的落地页是否可信。
链接用信誉好的站点
链接信誉差的帖子会被打标签(见 运营迷思 vs 源码真相 迷思九):
- 跳转链被判为 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)。
普通链接不扣分,“打开链接”还是正权重 0.2(home-mixer/params/param.rs:437)。
敏感媒体按实际情况标注,不混发
- 自己标注敏感的帖子:作者把帖子标为敏感媒体时,这条帖子在站外推荐中被丢弃(
visibility-filtering/rules/tweet_rules.rs:898-903)。站内候选用的TimelineHome级别不含这条规则(visibility-filtering/rules/levels.rs:298-316)。 - 账号级 NSFW 标签:账号最近 5 条帖子里有 3 条带
NSFW_HIGH_PRECISION,账号得到同名标签,有效 7 天(safety-label-user-agg/postToUserLabelRules.strato:395-426)。带这类标签的账号,所有帖子都不进站外推荐(visibility-filtering/rules/levels.rs:318-332)。
推论:不是成人内容账号的创作者,不要在同一账号里频繁发敏感媒体。连续几条敏感帖会让整个账号 7 天内失去站外推荐。
在大号评论区认真回复
Grox 给大号帖子下的回复打质量分。父帖或根帖作者粉丝超过 250000 时,这一步运行(grox/flows/reply_spam/task_filter.py:215-225)。
- 得 0 分的回复被打上
RiskyHighVizReply(grox/flows/reply_spam/task_write.py:140-141)。 - 带这个标签的回复不进入非关注者的提及与回复通知(
visibility-filtering/rules/levels.rs:217、visibility-filtering/rules/levels.rs:261)。 - user-cred 不低于 66 的作者和政府灰标账号豁免(
grox/flows/reply_spam/constants.py:9、grox/flows/reply_spam/task_write.py:39-62)。
推论:在大号下刷模板回复、引流回复,回复会被判 0 分,作者看不到它。
不用 AI 批量生产内容
账号带 llm_slop_user 分数标签时,处置服务给账号加 SpamHighRecall,有效 7 天(abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:118-123)。帖子带 llm_slop_post 时,帖子被加上 RiskyHighVizReply,有效 30 天(abuse-enforcement-service/service-lib/rules/enforcement_post.yaml:39-44)。检测器本身源码未包含,所以判定标准未知。
不引用、不回复会被丢弃的帖子
被引用帖、父帖或被转发的原帖被判丢弃时,引用帖、回复和转发也被 AncillaryVFFilter 去掉(home-mixer/filters/ancillary_vf_filter.rs:7-18)。引用或回复一条带垃圾、违规标签的帖子,你自己的帖子也会一起出局。
发帖节奏
| 机制 | 约束 | 建议 |
|---|---|---|
| 时效过滤 | 超过 48 小时不推荐(home-mixer/params/config.rs:39) |
在受众活跃时发 |
| 作者多样性 | 同次请求内逐条衰减(vm-ranker/params.rs:175-192) |
摊开发,不连发 |
| 已看过滤 | 用户看过的帖子不再推荐,父帖看过的回复也不推荐(home-mixer/util/candidates_util.rs:13-17) |
首句和首图决定唯一一次机会 |
| 新作者扶持 | 帖龄不超过 7200 秒(home-mixer/params/param.rs:632-637) |
粉丝不多时,发帖后 2 小时内争取点赞 |
源码里没有按钟点加分的规则。排序模型读取浏览时的本地小时和星期几(phoenix/xrex/configs/xrecsys.py:937-967),这描述的是读者的浏览时间。
不要做的事
- 不要堆关键词、套模板:加权打分没有这类项(
xai-value-model/scoring.rs:79-218)。 - 不要做标题党:换来的“不感兴趣”权重 -53.07。
- 不要十分钟内连发:作者多样性衰减。
- 不要把低质链接放进置顶帖:账号 7 天失去站外推荐。
- 不要在大号下刷模板回复:回复被判 0 分后不进通知。
- 不要买互动:权重乘的是每位读者的预测概率,不乘互动计数(
home-mixer/params/param.rs:375-403)。
一个例子
踩坑版
【爆】AI 又变天了!!!这个工具我不允许还有人不知道!!速看 👇 [一个短链接]
逐条对照:标题党会提高“不感兴趣”的预测;短链接跳转到低信誉站点时,帖子会被打上 SPAM_HIGH_RECALL;没有可回复、可引用的观点,拿不到回复和引用的权重;没有具体信息,读者点开后停留短。
顺着机制版
用了三周某 AI 代码审查工具,说一个反直觉的结论:它最大的价值不是找 bug,是逼我把 PR 拆小。 它对超过 400 行的 diff 基本给不出有用意见,这反而成了团队里“PR 该多大”的硬约束。 [一张相关截图] 你们把 AI 审查当“多一双眼睛”,还是当“卡门槛的规则”?我越来越倾向后者。
逐条对照:一个主题,召回目标明确;“三周”“400 行”是具体信息,点开后有内容可读;一个非共识判断,可被引用;结尾一个真问题,留出回复入口;对做代码审查的人有用,可能被私信分享或复制链接;无短链接、无标题党,不触发标签规则。
“顺着机制版”不保证爆。它只保证帖子不被机制白白扣分或丢弃。
边界
- 数值是开源默认值。 上游 README 说明
param.rs默认值同步自生产主值(README.md:432),但 vm-ranker 运行时从配置中心读取数值,线上实际值源码未包含。 - 部分规则未公开。 上游 README 写明部分 botmaker 规则和 Grox 提示词不在仓库里(
README.md:446-447)。本页的标签建议只覆盖已公开的规则。 - 算法只分发,不创作。 本页帮帖子避开扣分和丢弃,内容本身值不值得看,由读者决定。
出处
| 建议 | 主要源码 |
|---|---|
| 分数是预测概率的加权和 | xai-value-model/scoring.rs:79-218 |
| 主题聚焦利于召回(推论) | phoenix/README.md:110-115 |
| 48 小时窗口 | home-mixer/params/config.rs:39 |
| 正向与负向权重 | home-mixer/params/param.rs:404-533 |
| 双向关注回复加成 | home-mixer/params/param.rs:411-416 |
| 视频专属权重为 0.0 | home-mixer/params/param.rs:430-435 |
| 站外系数 0.75,含关注者的回复和转发 | vm-ranker/params.rs:193-222 |
| 站外回复与转发被过滤 | home-mixer/filters/oon_retweet_reply_filter.rs:10-29 |
| 新作者扶持条件 | home-mixer/params/param.rs:608-681 |
| 作者多样性衰减 | vm-ranker/params.rs:175-192 |
| 置顶帖坏链接让账号 7 天 SPAM_HIGH_RECALL | botmaker-rules/scarecrow/bot/PinnedLowQualityOrBadUrl.bot:1-42 |
| 自标敏感帖不进站外推荐 | visibility-filtering/rules/tweet_rules.rs:898-903 |
| 5 条中 3 条 NSFW 触发账号标签 | safety-label-user-agg/postToUserLabelRules.strato:395-426 |
| 0 分回复打 RiskyHighVizReply | grox/flows/reply_spam/task_write.py:140-141 |
| AI 低质内容规则 | abuse-enforcement-service/service-lib/rules/enforcement_user.yaml:118-123 |
| 附属帖被丢弃时连带出局 | home-mixer/filters/ancillary_vf_filter.rs:7-18 |
相关页面
- 运营迷思 vs 源码真相 —— 配套页:流行说法逐条判定
- 推荐系统工作原理 —— 端到端流程
- 打分与排序 —— 权重、三项调整与新作者扶持
- 过滤流水线 —— 预打分与选后过滤器
- 可见性过滤 —— 标签怎样决定展示、遮罩或丢弃
- 打标签规则 —— 置顶帖、链接等规则
- Grox 内容分类器 —— 回复质量分与内容分类
- 限流与 shadowban —— 从创作者视角看标签
- 新号与冷启动 —— 新账号与新作者扶持