豆瓣电影评分一直是许多影迷关注的焦点,但背后的算法原理却是一大谜团。豆瓣网站通过采集用户对电影的评分、短评和观看记录等多方面数据,为每部影片打上一个综合评分。这个评分并不仅仅取决于用户的平均打分,还考虑了用户的口味偏好、观看历史、评价内容等因素。因此,豆瓣电影评分相对客观准确,更能符合用户的个性化需求。
从豆瓣电影评分算法说起余铭 好买基金 产品经理 1小时前在PingWest看到一篇《豆瓣电影打分规则竟如此简单粗暴…》,作者写这篇文章是因为豆瓣创始人阿北最近写了一篇博文《豆瓣电影评分八问》,阿北博文是为了回应一些外界对豆瓣电影评分的质疑,然后作者看到这篇博文后,觉得豆瓣电影的评分算法有点low,就写了这样一篇吐槽文章。
那么这个很low的算法究竟是什么样子的呢?此处引用阿北原文。
简单说就是计算每部电影评论的算数平均值,并按此值来排名。
对这个算法持怀疑态度,因为如果按照这个算法的话,假设一部小众文艺片有10个用户给了全五星,和一部经典老片比如《十二怒汉》相比,小众文艺片排名比《十二怒汉》还要高,不过这在豆瓣电影TOP250里面不太可能。阿北可能只是为了文章写作方便或是保密起见,把算法故意说简单了,因为假如豆瓣公布了详细的算法,那电影发行方的水军们十分有可能针对这个算法制定出有效的刷分策略的。可怜小编还真信了。
下面是阿北当年在知乎上的回答。
顺着PingWest这篇文章给的链接,我又去阮一峰博客看了他在2012年写的《基于用户投票的排名算法》系列文章,以及这些文章里的参考文章,发现排名算法很好玩很有趣,非常有收获,推荐阅读。
基于用户投票的排名算法(一):Delicious和Hacker News 2012.02.24基于用户投票的排名算法(二):Reddit 2012.03.07基于用户投票的排名算法(三):Stack Overflow 2012.03.11基于用户投票的排名算法(四):牛顿冷却定律 2012.03.16基于用户投票的排名算法(五):威尔逊区间 2012.03.20基于用户投票的排名算法(六):贝叶斯平均 2012.03.28看完这些文章,我就想知道知乎的评论排名算法是怎么样的,于是去知乎找到他们产品经理@黄涛的回答,知乎在2014年底更新的算法使用的正是Reddit在2009年引入的评论排名算法,也就是阮一峰老师在系列文章第5篇中介绍的「威尔逊区间」算法。在用这个算法之前,知乎用的是直接利用好评减去差评的结果来给评论排序,这种算法的缺点我就不介绍了,可以查看参考资料[1]。
「威尔逊区间」算法的数学基础是数学家Edwin B. Wilson在1927年提出的威尔逊区间修正公式,后来芝加哥工程师Evan Miller在2009年写了一篇博客,认为该修正公式可以用来做排名。
这个算法的核心思想是这样的:
因为常见的置信区间计算公式「正态区间」不能很好的照顾小样本数量的准确性,而威尔逊提出的修正公式能很好地修正小样本数量的准确性问题,所以大家采用「威尔逊区间」算法较多,像Reddit、Yelp、Digg,还有知乎。
不过这种算法也有缺点,缺点就是对于那些得票少的新评论很难获得出头之日,因为得票少,置信区间就会宽,排名位置就会低,得到的关注也就会更少。
前面阿北的回答里面提到了IMDB,IMDB是亚马逊旗下的一个类似豆瓣的电影排名网站,他们在处理TOP250电影排名问题时采用了「贝叶斯平均」算法来解决,这个算法的核心思想是既然新兴产品的评分数量很少,那我就为你人工补偿一定的投票。关于这种算法在阮一峰老师系列文章第6篇中有介绍。
更多参考资料:
How Not To Sort By Average RatingHow Reddit ranking algorithms work基于用户评价的评分模型基于用户投票的打分算法Reddit评论排名算法Reddit的排名算法数学之美:IMDB.COM排名算法Hacker News的热门排名算法本文首发简书 http://www.jianshu.com/p/77ac83db802d
出于对PMCAFF用户的尊重,任何在PMCAFF产品经理社区发布的内容,在未经允许的情况下,不得在任何平台被直接或间接发布使用或被用于其他任何商业目的。如有违反上述声明者本网站将追究其相关法律责任。
微信公众号:pmcaffcom
投稿邮箱:tougao@pmcaff.com
Greated by PMCAFF产品经理社区 - www.pmcaff.com