基于用户投票的排名算法(三):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 条评论
登录 后参与评论

相关文章

来自专栏牛客网

算法工程师:双非渣硕是如何获得百度、京东双SP

本人本科硕士皆双非,和牛客大佬们没得比,目前拿到的还可以的offer就是百度SP和京东SP,都是做的推荐算法,其他的不说了。 先说一下个人经历吧,学校比较水,实...

5678
来自专栏顶级程序员

R vs Python:R是现在最好的数据科学语言吗?

点击上方蓝色字体关注「顶级程序员」 转自机器之心 Sharp Sight Labs 近日在 r-bloggers 上发表了一篇文章,论述了为什么当今的数据科学工...

2685
来自专栏IT派

推荐:35个热门又实用的开源 AI 项目!

2017年企业界在AI技术上的开支将达到125亿美元,比2016年增长逾59.3%。这股强劲的增长势头可能会一直持续到2020年,到时收入有望达到460亿美元。...

3419
来自专栏华章科技

人人都会用到的数据可视化之常用图表类型

图表是”数据可视化”的常用手段,其中又以基本图表——柱状图、折线图、饼图等等最为常用。

653
来自专栏机器之心

PyTorch一周年战绩总结:是否比TensorFlow来势凶猛?

32910
来自专栏BestSDK

35个免费又实用的开源 AI 项目

1. ACT-R:ACT-R由卡内基·梅隆大学开发,它既是人类认知理论的名称,又是基于该理论的软件的名称。该软件基于Lisp,提供详细的说明文档。 链接:ht...

3878
来自专栏牛客网

数据挖掘算法工程师面经

走到现在,校招已经过了一半,自己心仪的公司也基本都走完了校招流程,我的校招随之已经结束了,在家中陪着父母过一个长假。闲下来,想远离代码,远离算法,好好的放松下自...

36510
来自专栏腾讯技术工程官方号的专栏

一篇文章搞懂腾讯云AI平台的人工智能IDE:TI-ONE

本文为腾讯云 AI 平台技术负责人王才华博士“智能钛・一站式机器学习 TI-ONE:腾讯云上的机器(深度)学习IDE”的技术内容分享。

9.6K7
来自专栏AI研习社

盘点:为 Java 开发者量身定制的五款机器学习库

编者按:机器学习是目前最炙手可热的技术之一,各大公司都在积极招聘相关的编程人才,来填补机器学习和深度学习代码编写的空缺。诚然,根据相关的招聘统计数据,Pytho...

40914
来自专栏PPV课数据科学社区

【工具】为什么有些公司在机器学习业务方面倾向使用 R + Hadoop 方案?

引言:众所周知,R在解决统计学问题方面无与伦比。但是R在数据量达到2G以上速度就很慢了,于是就催生出了与Hadoop相结合跑分布式算法这种解决方案,但是,pyt...

2657

扫描关注云+社区