不考虑时间的评分和排名分析

威尔逊区间算法

在不考虑时间的情况下,以「赞成」和「反对」两种评价方式为例,通常我们会有两种最基础的方法计算得分。

第一种为绝对分数

评分 = 赞成票 - 反对票

这种计算方式有时会存在一定问题,例如:A 获得 60 张赞成票,40 张反对票;B 获得 550 张赞成票,450 张反对票。根据上式计算可得 A 的评分为 20,B 的评分为 100,所以 B 要优于 A。但实际上,B 的好评率仅有 \frac{550}{550+450} = 55\% ,而 A 的好评率为 \frac{60}{60+40} = 60\% ,因此实际情况应该是 A 优于 B。

这样,我们就得到了第二种,相对分数

评分 = \frac{赞成票}{赞成票+反对票}

这种方式在总票数比较大的时候没有问题,但总票数比较小时就容易产生错误。例如:A 获得 2 张赞成票,0 张反对票;B 获得 100 张赞成票,1 张反对票。根据上式计算可得 A 的评分为 100% ,B 的评分为 99% 。但实际上 B 应该是优于 A 的,由于 A 的总票数太少,数据不太具有统计意义。

对于这个问题,我们可以抽象出来:

  1. 每个用户的投票都是独立事件。
  2. 用户只有两个选择,要么投赞成票,要么投反对票。
  3. 如果投票总人数为 n ,其中赞成票为 k ,则赞成票的比例 p = \frac{k}{n}

不难看出,上述过程是一个二项实验。p 越大表示评分越高,但是 p 的可信性取决于投票的人数,如果人数太少,p 就不可信了。因此我们可以通过计算 p 的置信区间对评分算法进行调整如下:

  1. 计算每个项目的好评率。
  2. 计算每个好评率的置信区间。
  3. 根据置信区间的下限值进行排名。

置信区间的本质就是对可信度进行修正,弥补样本量过小的影响。如果样本足够多,就说明比较可信,则不需要很大的修正,所以置信区间会比较窄,下限值会比较大;如果样本比较少,就说明不一定可信,则需要进行较大的修正,所以置信区间会比较宽,下限值会比较小。

二项分布的置信区间有多种计算公式,最常见的「正态区间」方法对于小样本准确性较差。1927 年,美国数学家 Edwin Bidwell Wilson 提出了一个修正公式,被称为「威尔逊区间」,很好地解决了小样本的准确性问题。置信区间定义如下:

\frac{1}{1+\frac{z^2}{n}}(\hat{p} + \frac{z^2}{2n}) \pm \frac{z}{1 + frac{z2}{n}}\sqrt{\frac{\hat{p}( 1- \hat{p})}{n} + \frac{z^2}{4n^2}}

其中,\hat{p} 表示样本好评率,n 表示样本大小,z 表示某个置信水平的 z 统计量。


贝叶斯平均算法

在一些榜单中,有时候会出现排行榜前列总是那些票数最多的项目,新项目或者冷门的项目很难有出头机会,排名可能会长期靠后。以世界最大的电影数据库 IMDB 为例,观众可以对每部电影投票,最低为 1 分,最高为 10 分,系统根据投票结果,计算出每部电影的平均得分。

这就出现了一个问题:热门电影与冷门电影的平均得分,是否真的可比?例如一部好莱坞大片有 10000 个观众投票,一部小成本的文艺片可能只有 100 个观众投票。如果使用威尔逊区间算法,后者的得分将被大幅拉低,这样处理是否公平,是否能反映电影的真正质量呢?在 Top 250 榜单中,IMDB 给到的评分排名计算公式如下:

WR = \frac{v}{v + m} R + \frac{m}{v+ m}C

其中,WR 为最终的加权得分,R 为该电影用户投票的平均得分,v 为该电影的投票人数,m 为排名前 250 电影的最低投票数,C 为所有电影的平均得分。

从公式中可以看出,分量 mC 可以看作为每部电影增加了评分为 Cm 张选票。然后再根据电影自己的投票数量 v 和投票平均分 R 进行修正,得到最终的分数。随着电影投票数量的不但增加 \frac{v}{v+m}R 占的比重将越来越大,加权得分也会越来越接近该电影用户投票的平均分。也可以将公式写为更一般的形式:

\overline{x} = \frac{Cm+\sum_{i=1}^nx_i}{C + n}

其中,C 为需要扩充的投票人数规模,可以根据投票人数总量设置一个合理的常数,n 为当前项目的投票人数,x 为每张选票的值,m 为总体的平均分。这种算法称为「贝叶斯平均」。在这个公式中,
m 可以视为“先验概率”,每新增一次投票,都会对最终得分进行修正,使其越来越接近真实的值。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • Hacker News Hacker News 是一个可以发布帖子的网络社区,每个帖子前面有一个向上的三角形,如果...
    ___n阅读 175评论 0 0
  • 本文为学习阮一峰《基于用户投票的排名算法》的学习笔记。 一、Hacker News(只有赞成票) ① P 表示帖子...
    伪开发阅读 3,030评论 1 5
  • 问题定义:最受用户好评的作品/产品(同时需要有正面和负面两种反馈) 两种常见的错误算法是:得分 = 赞成票 - 反...
    小绿叶mj阅读 6,647评论 0 4
  • 影评类网站(豆瓣,IMDB),资讯网站(hacker news),问题回答网站(知乎,stackoverflow)...
    Howyi阅读 10,049评论 0 3
  • 迄今为止,这个系列都在讨论,如何给出"某个时段"的排名,比如"过去24小时最热门的文章 但是,很多场合需要的是"所...
    每有睡意便欣然忘食阅读 3,624评论 0 0