原文链接:HackerNews Ranking Algorithm
本文作者:Vigneshwarar;编译:Cointime Freya
我每天最喜欢访问的网站是HackerNews(HN),它从未让我失望,总是提供高质量的链接和非常有趣的讨论。
当前的算法并没有什么问题,本篇文章只是一个关于HN的不同排名算法的小型思维实验。
根据Paul Graham的评论和FAQ,HN的算法是:
P = 点数
T = 发布时间(以小时为单位)
G = 1.8
减1会移除用户自己的点赞。默认情况下,HN会为它的用户提交点赞。
我见过一个带有惩罚性质的算法,但还是让我们遵循官方的算法。此外,我刚刚进行了一个快速的Grep搜索,找到了这篇文章和关于“逆向工程Hacker News排名算法”的精彩repo。
直观上看,排名算法很简单:链接在短时间内获得的点赞数越多,它的排名就越高。随着时间的推移,该帖子的排名将逐渐下降。
以下是我的方法:
我找不到Paul Graham创建HN的官方页面,但对我来说,HN是寻找最有趣的链接,并对各种话题进行健康讨论的地方。事实上,讨论是我最喜欢的部分,除了那些无用的评论。
鉴于讨论是我最喜欢的部分,我们为什么不根据每个用户在任何帖子上留下的评论所获得的点赞数,为每个用户应用PageRank,并替换当前版本的HN算法中的P值呢?
PageRank是谷歌创始人创建的一种算法。用于确定网页在互联网上的受欢迎程度。
顺便说一下,PageRank这个名字并不适用于这种情况,所以 我将其命名为HackerRank(HR)。如果你想把它描绘出来,下图是一个可视化图:
由于一个用户可能会对同一用户的多条评论进行点赞,因此我们在考虑他们的点赞之前,会检查用户是否已经点赞过该特定用户的评论。换句话说,我们将用户配置文件视为节点,将评论的点赞视为边缘。
考虑到这一点,HackerRank的用户配置文件将如下所示:
N = HN上的用户配置文件总数
D = 阻尼系数
HR = 点赞用户的HackerRank分数
TU = 总赞数
默认情况下,每个用户配置文件的HR将为1/N。
但我不会简单地考虑HackerRank,有时,HN的评论是不恰当的,它们会被flag。我们应该考虑这个问题,请记住,HN应该是一个进行健康讨论的地方。
让我们假设1 flag等于从HR分数中扣除20%。然而,我们将只考虑当月收到的flag,因为人们可以从令人不快的人变成更好的人。
因此,flag考虑的HR将如下所示:
TF = 当月收到的flag总数
FP = flag惩罚,即20%
如果HR是负数,其值将为0
现在,我们已经为每个用户配置文件提供了HR,因此通过将HR与当前版本的HN算法相结合,最终的排名算法将如下所示:
HR = HR值表示点赞该帖子的配置文件的HackerRank分数
T = 发布时间(以小时为单位)
G = 1.8
这是一种非常简单的方法,但还有一些值得探索的其他想法:
HackerRank分数也可以根据用户提交的内容所获得的点赞数来决定。
文章的阅读时间。
跟踪网站在HN上的表现情况,如果该网站在HN上的声誉很高,则将其放在首页。
如果我是Dang(HN的管理员),我会公开写出关于HN如何对帖子进行排名的文章吗?我不会,因为,尽管Pagerank声誉在外,但它却可以被人为操纵。事实上,Pagerank已经被利用了很多年。此外,对于公司来说,登上HN的首页还有经济激励措施。
我会使用HackerRank对帖子进行排名,但会公开表示我们正在使用PaulGraham的原始算法对帖子进行排名,并隐藏评论的点赞数,因为它会为HackerRank提供动力,同时采取一些额外的措施来避免逆向工程和排名操纵。
*本文由CoinTime整理编译,转载请注明来源。
转自:“再建巴别塔”微信公众号
如有侵权,请联系本站删除!