Skip to content

发帖指南 —— 从算法机制反推

从 xai-org/x-algorithm 2e2295b 的打分、过滤与可见性机制反推发帖建议,每条建议附源码出处

Updated

本页面向创作者和运营。每条建议都从一个源码机制反推,并给出源码出处;从机制推不出的做法,本页不写。数值都是开源默认值,线上值可能不同。哪些流行说法是错的,见配套页 运营迷思 vs 源码真相。

两条总纲

  1. 分数来自对人的预测。 排序模型预测每位浏览者点赞、回复、分享、举报等行为的概率,vm-ranker 把概率乘以权重再求和(xai-value-model/scoring.rs:79-218)。加权打分里没有格式、关键词或身份项。所以发帖技巧只有一个方向:让真实读者更可能做出高权重的正向行为。
  2. 能不能推给陌生人,看标签。 可见性过滤 读取后台打好的标签,决定帖子展示、遮罩还是丢弃。分数再高,帖子被丢弃也不会展示。所以第二个方向是:不触发会让帖子或账号被打标签的规则。

帖子要过的关卡

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

相关页面

Type to search…

↑↓ navigate↵ selectEsc close