基于用户投票的排名算法-贝叶斯平均
“威尔逊区间”通过调整置信区间来防止投票人数过少导致的排名不可信。然而,这一方法的一个显著问题是:排行榜前列往往被投票数最多的项目占据,而新项目或冷门项目难以脱颖而出。以IMDB为例,假设一部好莱坞大片有10,000名观众投票,而一部小成本文艺片只有100名观众投票。使用“威尔逊区间”时,后者的评分会因投票人数少而被大幅拉低,可能掩盖了其真实的质量。
贝叶斯平均的引入
为了克服上述问题,我们需要一种方法,能够在考虑投票数量差异的同时,赋予投票较少的项目合理的评分权重。贝叶斯平均(Bayesian Average)正是在这样的背景下被引入的。
IMDB的贝叶斯平均公式
IMDB在其排名系统中采用了贝叶斯平均,其计算公式如下:
其中:
- WR:加权得分(Weighted Rating)
- R:该电影的用户投票平均得分
- v:该电影的投票人数
- m:进入前250名的电影的最低投票数(例如3000)
- C:所有电影的平均得分(例如6.9)
这个公式的核心思想是:为每部电影增加一个“先验”评分,假设所有电影至少有m张选票,且这些选票的评分为C。这样,即使某部电影的实际投票数较少,其评分也不会因为投票数少而被极端拉低。
贝叶斯平均的通用形式
将IMDB的公式推广到更一般的情形,我们得到:
其中:
- C:投票人数扩展的规模,通常设定为网站的平均投票数
- n:该项目的现有投票人数
- x:该项目的每张选票的值(如平均得分)
- m:总体平均分,即所有项目的算术平均值
这种方法通过结合“先验”信息(总体平均分)和“观测”数据(项目的实际得分),实现了对评分的平滑处理。随着投票人数的增加,贝叶斯平均逐渐接近项目的真实平均得分,从而在长期内反映项目的真实质量。
贝叶斯平均的优势
- 平衡投票数量差异:贝叶斯平均有效地缩小了不同项目之间的投票人数差异,使得投票较少的项目有更公平的机会进入排名前列。
- 防止极端评分:通过引入总体平均分,贝叶斯平均避免了因少量投票导致的极端评分,提升了排名的稳定性和可信度。
- 逐步调整:随着更多投票的累积,贝叶斯平均逐步调整,确保评分能够准确反映项目的实际受欢迎程度。
贝叶斯平均的局限性
尽管贝叶斯平均在处理投票数量差异方面表现出色,但它也存在一定的局限性。主要问题在于其假设用户的投票服从正态分布。例如,假设两部电影A和B各有10名观众投票,电影A有5人给出五星,5人给出一星,而电影B的所有10人都给出三星。虽然两者的贝叶斯平均得分相同,但实际上,电影B可能比电影A更值得观看。
进一步的改进
为了解决贝叶斯平均的这一缺陷,可以考虑假设用户投票服从多项分布(Multinomial Distribution),并结合贝叶斯定理来估计各评分的期望值。这种方法能够更准确地反映投票的分布特性,但涉及复杂的统计学计算,超出了本文的讨论范围。有兴趣的读者可以参考William Morgan的文章《How to rank products based on user input》了解更多细节。