基于用户投票的排名算法(三):Stack Overflow

上一篇文章,我介绍了Reddit的排名算法。

它的特点是,用户可以投赞成票,也可以投反对票。也就是说,除了时间因素以外,只要考虑两个变量就够了。

但是,还有一些特定用途的网站,必须考虑更多的因素。世界排名第一的程序员问答社区Stack Overflow,就是这样一个网站。

你在上面提出各种关于编程的问题,等待别人回答。访问者可以对你的问题进行投票(赞成票或反对票),表示这个问题是不是有价值。

一旦有人回答了你的问题,其他人也可以对这个回答投票(赞成票或反对票)。

排名算法的作用是,找出某段时间内的热点问题,即哪些问题最被关注、得到了最多的讨论。

在Stack Overflow的页面上,每个问题前面有三个数字,分别表示问题的得分、回答的数目和该问题的浏览次数。以这些变量为基础,就可以设计算法了。

创始人之一的Jeff Atwood,曾经在几年前,公布过排名得分的计算公式。

写成php代码,就是下面这样:

各个算法变量的含义如下:

(1)Qviews(问题的浏览次数)

某个问题的浏览次数越多,就代表越受关注,得分也就越高。这里使用了以10为底的对数,用意是当访问量越来越大,它对得分的影响将不断变小。

(2)Qscore(问题得分)和Qanswers(回答的数量)

首先,Qscore(问题得分)= 赞成票-反对票。如果某个问题越受到好评,排名自然应该越靠前。

Qanswers表示回答的数量,代表有多少人参与这个问题。这个值越大,得分将成倍放大。这里需要注意的是,如果无人回答,Qanswers就等于0,这时Qscore再高也没用,意味着再好的问题,也必须有人回答,否则进不了热点问题排行榜。

(3)Ascores(回答得分)

一般来说,"回答"比"问题"更有意义。这一项的得分越高,就代表回答的质量越高。

但是我感觉,简单加总的设计还不够全面。这里有两个问题。首先,一个正确的回答胜过一百个无用的回答,但是,简单加总会导致,1个得分为100的回答与100个得分为1的回答,总得分相同。其次,由于得分会出现负值,因此那些特别差的回答,会拉低正确回答的得分。

(4)Qage(距离问题发表的时间)和Qupdated(距离最后一个回答的时间)

改写一下,可以看得更清楚:

Qage和Qupdated的单位都是秒。如果一个问题的存在时间越久,或者距离上一次回答的时间越久,Qage和Qupdated的值就相应增大。

也就是说,随着时间流逝,这两个值都会越变越大,导致分母增大,因此总得分会越来越小。

(5)总结

Stack Overflow热点问题的排名,与参与度(Qviews和Qanswers)和质量(Qscore和Ascores)成正比,与时间(Qage和Qupdated)成反比。

(完)

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2016-04-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

深度学习 vs 机器学习 vs 模式识别

1313
来自专栏机器学习算法与Python学习

干货 | 机器学习怎么从入门到不放弃!

1444
来自专栏数据科学与人工智能

简明数据科学(1):啥啥啥?这都是啥?

原文:Data Science Simplified Part 1: Principles and Process 译者:杨德杰 2006年,英国数学家、Tes...

2687
来自专栏人工智能头条

艺术与机器学习

1325
来自专栏AI科技评论

16个新手必看的机器学习视频教程

我们很多人都没有注意到,其实 YouTube 上面有大量免费的机器学习的指导课程。你无须再等待 MOOC 课程的更新了,可以在 YouTube 上面找到你想要的...

2.2K7
来自专栏CDA数据分析师

以“上大学分析”为例体验什么是数据挖掘

谈到BI,就会谈到数据挖掘(Data mining)。数据挖掘是指用某些方法和工具,对数据进行分析,发现隐藏规律并利的一种方法。下面我们将通过具体的例子来学习什...

2047
来自专栏机器之心

前沿 | 连发Science、Nature Physics:谷歌展示量子霸权实现蓝图

1693
来自专栏AI科技评论

国内首届中文人机对话技术评测赛果出炉,两项任务冠军团队都分享了哪些技术细节?|SMP 2017

AI科技评论按:近年来,人机对话技术受到了学术界和产业界的广泛关注。学术上,人机对话是人机交互最自然的方式之一,其发展影响及推动着语音识别与合成、自然语言理解、...

59510
来自专栏CDA数据分析师

【书单】18本数据科学家必读的R语言和Python相关书籍

前言 “这就是阅读。即将新软件安装到大脑里的过程。” 就我个人而言,我从视频和在线教程中所学到的始终没有从书本中学到的多。 了解机器学习和数据科学很容易。目前有...

2659
来自专栏腾讯高校合作

犀牛鸟Club在盐湖城喊你到碗里来!

1854

扫码关注云+社区