贝叶斯平均,排序

喜欢看电影的童鞋, 应该都听过 IMDB 这个网站, 尤其是 IMDB Top 250 .
它是一个影视数据库和评分网站, 观众可以对影视作品进行打分, 然后网站根据用户的打分计算出作品的排序.

那么问题就来了, 不同的作品打分的人数不同, 比如热门电影的观众打分人数通常比冷门电影的多, 这些作品之间如何进行排序呢 ?

IMDB 采用了以下的方法.

IMDB 的排序公式

官方排序说明1
官方排序说明2

How do you calculate the rank of movies and TV shows on the Top Rated Movies and Top Rated TV Show lists?

The following formula is used to calculate the Top Rated 250 titles. This formula provides a true 'Bayesian estimate', which takes into account the number of votes each title has received, minimum votes required to be on the list, and the mean vote for all titles:

weighted rating (WR) = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C

Where:

R = average for the movie (mean) = (rating)

v = number of votes for the movie = (votes)

m = minimum votes required to be listed in the Top Rated list (currently 25,000)

C = the mean vote across the whole report

Please be aware that the Top Rated Movies Chart only includes theatrical features: shorts, TV movies, miniseries and documentaries are not included in the Top Rated Movies Chart. The Top Rated TV Shows Chart includes TV Series, but not TV episodes or Movies.

如上, 评分的计算公式为 (WR) = (v ÷ (v+m)) × R + (m ÷ (v+m)) × C .
其中 :

  • R 是当前电影的用户投票的平均得分.
  • v 是当前电影的用户投票数.
  • m 是进入榜单的最小票数(当前为 25000).
  • C 是所有电影的平均得分(大概是 6.X 分).

为什么这样设计呢 ?

我们观察这个公式可以发现:

  • 当投票的人数增加时, v/(v+m) 的权重会逐渐增加, 逐渐接近真实情况.
  • 当投票人数较少时, 又不致于使电影得分产生较大的波动, 相当于有一个平滑的作用.
  • mC的作用, 相当于为投票人数少的电影虚拟增加了选票, 使它们也有机会进入榜单前列.

贝叶斯平均

除了平滑, 这个公式还用到了贝叶斯平均的方法. 贝叶斯平均借鉴了贝叶斯推断的思想, 先预估一个值, 然后不断用新的信息来修正它, 以不断接近正确值. 而预估时, 使用一个外部信息(比如全部电影和投票的信息)来估计总体平均值的方法, 在数据集很小时这个方法很实用.

贝叶斯平均的公式是 :

如上发现, 这个公式和 IMDB 的公式其实是一样的. 以 IMDB 的投票为例:

  • C 是自行设置的常数, 根据需要设置为恰当的大小, 比如 IMDB 的进入榜单的最小票数.
  • m 是所有电影的所有投票的算术平均值.
  • n 是当前电影的投票人数.
  • x 是当前电影每张投票的分值.

参考


Bayesian Average Ratings – Evan Miller
http://www.ruanyifeng.com/blog/2012/03/ranking_algorithm_bayesian_average.html
https://www.imdb.com/search/title/?groups=top_250&sort=num_votes,desc