Youtube评论系统的排序/排名算法是什么?

28

Youtube提供了两种排序选项:最新评论和热门评论。 "最新评论" 很简单,只需按其发布日期对评论进行排序即可。但是,“热门评论”似乎比仅按“点赞数”排序要复杂得多。

Youtube 评论系统

经过简短的研究,我发现评论的顺序取决于以下几个因素:

  • “点赞”和“点踩”的数量
  • 发布日期
  • 对该评论的回复数量

但是我不知道Youtube如何使用这些信息来决定顺序,例如哪些信息更重要,哪些信息不太重要。

是否有关于这个主题的文章可以参考吗?

谢谢!


这被称为排名算法。我也很感兴趣。除非Youtube的工程师公布他们的算法,否则很难看到它。这是Reddit的排名算法。我认为比我们想象的更加复杂。http://amix.dk/blog/post/19588 所以也许Youtube也喜欢这个。 - hqt
1个回答

74

我有你问题的答案。

在为这个问题搜索互联网时,我没有找到确切的答案。因此,我和我的同事决定使用Youtube评论系统进行实验。

首先,我们将我们认为流行的视频、普通视频和不太受欢迎的视频分成三部分。每个部分有200个视频,经过数天的研究后,我们开始注意到一个模式。我们发现你关于所需的三件事是正确的,但我们也深入挖掘并发现了一个额外的变量。

Youtube评论系统取决于以下四个因素:

1)发布时间,

2)评论的赞/踩比例,

3)回复数量,

4)甚至还包括评论者自己。

每个公共评论你发布的平均赞/踩比例都会计算进去。他们认为那些赞/踩比例低的人发布的评论很可能不受许多人喜欢或者只是不同意。

它有一个算法,比你想象的要简单。基本上有一些我们称之为“模块点”的东西,你根据这四个因素得到一定数量的模块点。首先,以下是关于两个因素的模块点转换需要知道的事情:

  • 对于评论的赞/踩比例,请将该数字乘以十。

  • 对于评论拥有的回复数量(非原始发帖人回复),则有两个模块点。

这些是用于确定评论所具有的模块点数的两个基本因素。

例如,如果一条评论有27个赞和8个踩,则比率为3.375。乘以10,您将得到33.75的模块点数。使用下一个因素,回复数量,假设此评论有4个直接回复。乘以2并乘以4,我们得到8。这是您将8添加到累积模块点数的部分,从而使总计为41.75个模块点。
但是我们还没有完成;这就是它变得棘手的地方。
使用一个人公开发布的所有评论的平均喜欢/不喜欢比率,我们发现添加到累积模块点数的公式如下:
C = MP(R/3) + (MP/10)
其中C = 评论位置变量; MP = 模块点数; R = person的总赞/踩比率
请相信我,我们花了几天时间研究这一部分,这可能是最烦人的部分。尽管此方程中的3和10似乎是随机的且不必要的,但到目前为止,我们测试此等式的所有评论都通过了测试,但在删除这两个变量时未能通过测试。完成此方程后,它会给您一个数字,我们称之为位置变量
然而,我们甚至还没有完成,我们还没有谈论过时间
实际上,我很惊讶这一部分没有像我预期的那样花费很长时间,但是每次为我们测试的每条评论做此方程式确实很痛苦。起初,在测试时,我们认为时间只是用来打破如果两个评论具有相等的位置变量的障碍。
事实上,当发生这种情况时,我几乎停止了实验,但经过进一步检查,我们发现还有更多要做。我们发现,其中一些评论超过了具有相同位置变量的其他评论,但时间似乎是随机的!经过几天的检查,最终结果如下:

在应用第四个变量之前,我们必须找到另一个方程式。使用另一个分离的方程式,以下是我们代数推导的结果:

X = 1/3(S/10 + A) x [绝对值] (A - 3S)

其中X = 时间变量;S = 视频发布时间(以分钟为单位);A = 评论发布时间(以分钟为单位)

我希望我正在编造这个故事,但不幸的是,这就是系统的复杂性。其他变量背后有数学原因,但它们过于复杂,无法解释,可能需要至少三段解释。我们在150条以上的评论中测试了这个方程式,所有这些评论都被证明是正确的。

一旦您找到了我们称之为时间变量X,您只需要将其应用于以下方程式:

N = X(C/4 + 1)

其中X = 时间变量; C = 定位变量

N是所有问题的答案。

这是最终方程式,也是最终答案。简单的结论:N越高,评论越高。

注:特别感谢我的同事David Mattison、Josh Williams、Diego Mendieta、Steven Orsette和Kyle Shropshire。没有他们和他们的工作,我可能永远无法发现这一点。


1
感谢您在此花费时间,非常感激并尊重您在这里的工作。虽然我不确定这有多准确,但我会尝试一下。我很想阅读一篇关于您们是如何想出这些复杂公式以及源代码(如果有的话)来测试YouTube评论系统的文章,那将非常有趣。 - Tony Dinh
3
@Cole Dixon,您提到的“WHO因素”是否会影响结果?我没有看到任何关于WHO的因素。 - Leo Hsieh
3
WHO因子是R,指的是个人的总赞/踩比率。 - Caleb Mauer
3
Cole,这个考虑了基于时间的评论衰减吗?例如,我几分钟前在一个视频下发表了一条评论。它出现在顶部(但在固定帖子下面 - 可以理解)。过了一会儿,它开始衰减 - 转到第二个位置,第三个位置等等。请注意,它没有获得任何赞或回答。 - Hassan Baig
1
如果评论没有踩,那么如何计算点赞/踩比率? - John Rhoades
在喜欢/不喜欢比例中是否有某种因素起到了作用?10/2大于100/21,但似乎后者的评论应该更重要。无论如何,现在YouTube不显示不喜欢的数量,所以排序看起来更随机。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接