YouTube 热门评论大多在第一天发布,但排名会持续变动数周
要点
- 视频上传一周后排在前 20 名的评论中,84% 发布于最初 24 小时内。到第 20 天,这一比例仍是 82%。
- 页面始终没有稳定下来。从第 4 天到第 21 天,相隔 12 小时的两次观察,前 10 名中约有 9 条相同,变化主要来自边缘评论的互换;而 15 分钟后重新抓取的页面完全相同,所以变动来自排名本身,而非 API。
- 在任何视频被观察第二次之前,我写下了八条预测。三条成立,三条不成立,还有两条只在部分语言中成立。
- 在英语、日语和中文的 715 万条评论上,时机和视频规模仍然解释了评论点赞排序的 86–95%。
8 月,我研究了为什么有些 YouTube 评论比别的评论获得更多点赞,答案主要是时机:评论何时发布、发在多大的视频下,解释了 83.5% 的排序。那项研究在事后给每个视频拍了一张快照,所以它能说明哪些评论最终排在前面,却说明不了它们是怎么上去的。
9 月,我观察了排名的形成过程。
跟踪样本如何运作
我纳入了 500 个新视频,三周里每天两次读取每个视频评论页的顶部。
| 跟踪样本 | |
|---|---|
| 视频 | 500 个,均在上传后 30 小时内纳入 |
| 语言 | 英语 167 个,日语 167 个,中文 166 个 |
| 频道 | 205 个,每个最多 5 个视频 |
| 频率 | 每天两次,持续 21 天 |
| 抓取 | 20,454 个「热门评论」页面,每页最多 100 条 |
| 计入分析 | 评论数 ≥100 的视频(第 7 天 239 个,第 20 天 250 个) |
这里的中文指来自台湾、香港和海外的频道。每次抓取都记录了每条评论的排名、点赞数和发布时间。创作者自己的评论通常被置顶,因此排除在外。每轮还会重新抓取 20 个刚抓过的页面,以衡量在什么都没发生时页面会变化多少。
9 月 19 日,在任何视频被观察第二次之前,我写下了八条预测,每条都附上算作落空的数值。当天下午,我把主要终点从第 14 天改到第 7 天,第 14 天和第 20 天保留为次要终点。研究计划是公开的,每次修订及其日期也都公开。另一项研究在三种语言的 715 万条评论上重新运行了 8 月的模型。
下面是这八条预测在第 7 天的结果。
| 预测 | 门槛 | 第 7 天 | 结论 |
|---|---|---|---|
| 热门评论发布得早 | 24 小时内 ≥70%,1 小时内 ≥30% | 84%, 34% | 成立 |
| 前 10 名很快锁定 | 中位数 ≤72 小时 | 76 小时 | 不成立 |
| 排名带来点赞 | 在前 10 名中快 ≥3 倍 | 1.85× | 不成立 |
| 各语言锁定速度相近 | 与合并整体相差 24 小时以内 | 是 | 成立 |
| Shorts 锁定更快 | 早 ≥24 小时 | 16 小时 | 不成立 |
| 曝光解释点赞 | 占比 ≥70% | 86–91% | 成立 |
| 大多数评论没有点赞 | 75–90% 为零 | 44–79% | 仅英语成立 |
| 单靠文本预测力弱 | AUC 低于 0.60 | 0.582–0.602 | 中文除外 |
前 20 名大多发布于第一天
取终点时的前 20 名,查每条评论的发布时间:
| 前 20 名的时点 | 1 小时内发布 | 6 小时内 | 24 小时内 |
|---|---|---|---|
| 第 7 天(239 个视频) | 34% | 65% | 84% |
| 第 14 天(243) | 35% | 65% | 83% |
| 第 20 天(250) | 33% | 63% | 82% |
预测是 24 小时内至少 70%、第一小时内至少 30%,在每个终点都成立。第 7 天前 20 名中的评论,发布时间的中位数是视频上线后 2.4 小时。中文评论起步较慢,但当天就追了上来。
| 第 7 天前 20 名,发布于 | 1 小时内 | 24 小时内 |
|---|---|---|
| 英语 | 36% | 84% |
| 日语 | 38% | 85% |
| 中文 | 24% | 83% |
到第 21 天,前 10 名仍在变化
我最在意的那条预测落空了。我把锁定定义为:某个视频的前 10 名与其终点前 10 名的 Jaccard 相似度首次达到 0.8 以上的那次观察(约 10 条中有 9 条相同),并预测中位数不超过 72 小时。
| 对照基准 | 锁定中位数 | 95% 置信区间 | 72 小时内锁定 |
|---|---|---|---|
| 第 7 天的页面 | 76 小时 | 67 至 93 | 48% |
| 第 14 天的页面 | 146 小时 | 117 至 176 | 31% |
| 第 20 天的页面 | 138 小时 | 112 至 176 | 34% |
第 7 天只差了一点。对照更晚的页面,中位数推后到约六天,并在第 14 天到第 20 天之间停止上升。大多数越过这条线的视频又会漂出去:以第 20 天为基准,中位数视频要到第 19 天才稳定留在线内。
另外两条预测关于哪些视频锁定得更早。
| 锁定中位数 | 第 7 天 | 第 14 天 | 第 20 天 |
|---|---|---|---|
| 全部视频 | 76 小时 | 146 小时 | 138 小时 |
| 英语 | 82 小时 | 146 小时 | 116 小时 |
| 日语 | 69 小时 | 165 小时 | 189 小时 |
| 中文 | 80 小时 | 129 小时 | 151 小时 |
| Shorts | 64 小时 | 123 小时 | 97 小时 |
| 长视频 | 80 小时 | 148 小时 | 140 小时 |
各语言本应与合并后的中位数相差不超过一天,直到第 20 天的日语之前确实如此。Shorts 本应至少快一天锁定。在计划评分所用的第 7 天终点,差距是 16 小时(置信区间从慢 25 小时到快 39 小时),所以这条预测不成立。在第 14 天和第 20 天,差距超过了一天,但两个区间都跨过零。
而它周围的页面照样在变动。
250 个视频。每个点是相邻两次观察配对的平均值,按视频上线后的时间分组;上线不到 12 小时的视频产生的 18 对已排除。
这些 12 小时的步长中,约三分之一的变化超过了锁定阈值允许的幅度,而这一比例在第三周也没有下降。以第 20 天的页面为基准,第 7 天前 20 名的 Jaccard 相似度为 0.65,约为 20 条中有 16 条相同。
这些变动很少累积起来。
250 个视频,取第 4 天起的观察配对。
在一次 12 小时步长中跌出前 10 名的评论,落到的排名中位数是第 13 名,其中 46% 在接下来两次观察内回到前 10。页面每 12 小时在边缘互换评论,而整体偏离自身的速度要慢得多。
大部分变动是老评论之间互换位置。第 7 天时,中位数视频在 72 小时后有六条评论进入前 20 名,其中 73% 是更早发布、后来爬升上来的。到第 20 天,这个数字是每个视频 13 条,分析中的每个视频都至少有一条。
晚发的评论也能胜出,只是很少。
| 最终前 3 名位置(482 个视频上的 1,338 个) | 占比 | 视频 |
|---|---|---|
| 上传一天以后发布 | 15% | 150 |
| 两天以后 | 9% | 104 |
| 一周以后 | 3% | 34 |
AsmonTV 的一个视频下有条评论,在上线 84 小时后发布,首次出现时排第 72 名、有 2 个赞,第 12 天升到第 1 名,最终获得 467 个赞。
排在前面的帮助比我设想的小
8 月那篇文章依赖一个反馈回路:排名高就会被看到,被看到就会被点赞,被点赞就继续排在前面。我预测,同一条评论在前 10 名期间获得点赞的速度,至少是排在第 50 名之后时的 3 倍。
并非如此。以下是在两个位置都出现过的 2,484 条评论。
| 评论所在位置 | 每小时点赞数 |
|---|---|
| 前 10 名内 | 0.54 |
| 第 50 名之后 | 0.29 |
| 比值(95% 置信区间 0.96 至 3.22) | 1.85× |
预测是 3 倍。所以它没有达到门槛,也排除不了完全没有效果的可能。单条评论自身比值的中位数是 0.90,一半的移动评论在第 50 名之后没有新增点赞,甚至点赞减少。平均值是少数评论撑起来的。
8 月的结论在三种语言中都成立
批量研究在 311 个频道的 715 万条评论上重新运行了 8 月的模型。每条评论的点赞数在其所属视频内排名,并依次用曝光(发布时间、视频规模)、长度、文本来预测。模型在从未见过的频道上测试,共做了五种不同的频道划分。曝光占比指仅靠曝光特征能达到模型高于随机水平的预测能力的多少。
| 语言 | 评论数 | 每个视频的中位数 | 曝光占比 | 文本 AUC | 零点赞 |
|---|---|---|---|---|---|
| 英语 | 5,421,217 | 798 | 86% (82–91) | 0.588 | 78.5% |
| 日语 | 1,125,472 | 348 | 91% (87–94) | 0.582 | 44.1% |
| 中文 | 606,043 | 299 | 90% (85–96) | 0.602 | 67.1% |
使用 8 月研究所用的 MiniLM 句子编码器时,曝光占比(附五种频道划分下的范围)在每种语言中都超过了 70% 的门槛;改用词级 TF-IDF,则为 86–95%。这些结果是每种文本模型分别运行的,所以与 8 月叠加两者得到的 83.5% 不完全相同。
单靠文本的 AUC 本应低于 0.60(0.5 为随机水平),中文差了一点没达标。MiniLM 是英语模型,而一次探索性运行中的字符级模型在中文和日语上得分都更高,所以英语编码器低估了这两种语言里文本承载的信息。
零点赞比例本应在每种语言中都是 75–90%,接近 8 月的 82%。只有英语落在这个范围内。日语和中文视频的规模也小得多,而研究没有控制规模,所以这一列混合了语言差异和规模差异。
重新抓取页面,返回的是同一个页面
上面每个变动数字都假设:在什么都没变时,API 会返回同一个页面。10 月 22 日,我在 250 个已结束跟踪的视频上做了测试:每个视频的热门页面先正常抓取一次,再修改请求让任何缓存副本都无法匹配抓取一次,之后再抓取。
| 同一页面的两次抓取 | 视频 | 前 20 名完全相同 |
|---|---|---|
| 紧接着,正常与绕过缓存 | 250 | 250 |
| 间隔 15 分钟 | 84 | 84 |
| 间隔 1 小时 | 83 | 81 |
| 间隔 2 小时 | 83 | 79 |
15 分钟后的响应几乎总是带有不同的 etag,所以 YouTube 每次都是重新生成页面,而不是回放存储的副本。在 1 小时和 2 小时后页面有变化的情况下,同一时刻取得的正常副本和绕过缓存的副本仍然彼此一致,所以那是排名在变,不是 API。跟踪期间自身的重复抓取,间隔中位数 46 秒,结果也一致(1,130 对,前 10 名 Jaccard 相似度中位数为 1.00)。而这些视频在更长的时间尺度上仍在变化:与十天前最后一次跟踪的页面相比,它们前 10 名的 Jaccard 相似度为 0.75。
这项测试有两个缺口。它是在上线一个月的视频上做的,这些视频比跟踪期间冷清,所以排除不了只在视频热闹时才出现的波动。而且它测量的是 API,不是人看到的页面。第 3 天,我在一个干净的网页浏览器里以未登录状态打开五个跟踪视频,与六小时前的 API 页面比较。前 10 名的 10 条中,分别有 10、5、7、8 和 8 条一致,与 API 在这些视频上自身 12 小时的漂移(7 到 10)差不多。这只是五个视频、一次检查,而 YouTube 可能做个性化的登录状态页面没有测量。
这些频道是知名创作者的便利样本,订阅数 30 万到 1500 万,评论区开放。这些结果对小频道说明不了任何问题。
几点收获
- 一张快照能显示谁赢了,却说明不了比赛是否结束。 8 月的研究看到的是已经稳定的前 20 名。观察它的形成过程则发现:入选的评论大多在第一天就已定下,而顺序在三周里一直在变。
- 稳定性数字取决于拿什么作对照。 以第 7 天的页面为基准,锁定看起来要三天;以更晚的页面为基准则要六天。任何声称某样东西「到某天稳定」的说法,都需要指明终点。
- 人人默认的机制,可能其实很小。 排名带来点赞,是解释热门评论为何一直排在前面最直观的说法。直接测量时,它不到 2 倍,而且可能为零。结果复现了,而我在 8 月给出的解释变弱了。
- 在数据进来之前写下预测。 八条中有三条落空,而这些落空就是本文比 8 月那篇多知道的大部分内容。没有一份注明日期的计划,每一条都很容易被解释过去。
- 在解读漂移之前先测试测量工具。 这里每个变动数字都假设 API 两次返回同一个页面。一次两小时的测试解决了这个问题;没有它,主要结论会一直面对「也许是缓存」的质疑。
如果你想让评论被看到,就在第一天发,最好在第一小时内。发布两天或更久之后的评论,仍然在约五分之一的视频上进入了前 3 名。
两个语料库都放在 8 月的 Hugging Face 数据集中,包括跟踪样本的 146 万行页面数据和 715 万条批量评论,作者 ID 已替换为加盐哈希。方法、所有表格和八条预测都在论文里,目前是第二版。