跳过正文
  1. 文章/

信息流为什么会埋掉旧帖子

· loading · loading ·
仁才德
作者
仁才德
居住在韩国首尔的领导者和软件工程师

我在一家内容平台工作,所以有一个用户永远看不到的问题,我想得比大多数人都久:信息流应该在什么时候停止展示一条内容?

内容会过时。人们打开应用是想看看有什么新东西,信息流必须给出答案。但上个月一篇很棒的帖子,不该仅仅因为不再新鲜就消失。衰减函数就是对这种取舍建模的标准做法,而且比名字听起来简单得多。

新鲜度重要,但不是处处重要
#

打开新闻网站或社交信息流,你想看的通常是最新的东西。在新闻、金融行情这类变化飞快的领域,上周的内容就是累赘,所以那里的排名严重偏向时效。

不过并非所有领域都这样。学术文章和长篇报道的价值随时间保持稳定,有时甚至会上涨。内容的"年龄"在大多数排名系统里都有分量,但该给多大权重,完全取决于你在排什么。

用指数衰减给"过气"建模
#

给逐渐消退的相关性建模,惯用的手段是指数衰减:内容越老,它的感知价值掉得越快。最简单的形式是:

relevance = e^(-decay_rate × age)

其中 relevance 是内容当前的价值,decay_rate(衰减率)控制它贬值的速度,age 通常按发布以来的天数计。

我喜欢这个模型的原因是它只有一个旋钮。调一调衰减率,就能决定内容的保鲜期是几小时、几天还是几周。整个配置面就这么大。

互动让好内容活下去
#

年龄只是一半。浏览、点赞、评论告诉你人们是否真的在乎,无视这些信号的排名,会把好内容和烂内容一起埋掉。修法也简单,把两者乘起来:

score = engagement × e^(-decay_rate × age)

这样一来,互动强劲的旧帖仍然可以压过平庸的新帖。只是随着底下的衰减项不断缩小,它需要越来越多的互动才能保住位置。

实际的生命周期是这样的:新帖拿到新鲜度加成,获得一次被看见的公平机会。有人看、有人赞、有人评论,分数往上爬。日子一天天过去,衰减开始蚕食分数,只有互动持续的帖子还能留在前排。新内容有机会露脸,真正的好内容靠自己站稳。

说穿了,全部窍门就这些:一个指数函数,一个互动项,一个可以拧的旋钮。难的是给自己的内容定出合适的衰减率——那一步,纯靠判断。