就像 Karl Broman 在他的回答中所说,贝叶斯方法可能比使用置信区间要好得多。
置信区间的问题
为什么使用置信区间可能效果不佳?一个原因是,如果您对某个项目没有太多评分,那么您的置信区间将会非常宽,因此置信区间的下限会很小。因此,没有太多评分的项目最终会排在列表的底部。
然而,直观地说,您可能希望没有太多评分的项目接近平均项目,因此您希望将项目的估计评分调整为所有项目的平均评分(即,您希望将估计评分推向先前的评分) . 这正是贝叶斯方法所做的。
贝叶斯方法 I:评级的正态分布
一种将估计评级移向先验的方法是,如 Karl 的回答,使用形式的估计w∗R+(1−w)∗C:
- R是项目评分的平均值。
- C是所有项目的平均值(或您想要缩小评级的任何先前值)。
- 请注意,该公式只是一个加权组合R和C.
- w=vv+m是分配给的权重R, 在哪里v是啤酒的评论数量,并且m是某种恒定的“阈值”参数。
- 请注意,当v非常大,即当我们对当前项目有很多评分时,那么w非常接近 1,所以我们的估计评分非常接近R而我们很少注意之前的C. 什么时候v虽小,但w非常接近于 0,因此估计的评分非常重视先验C.
事实上,当个别评分来自以该平均值为中心的正态分布时,该估计值可以被给予贝叶斯解释,作为项目平均评分的后验估计。
但是,假设评级来自正态分布有两个问题:
- 正态分布是连续的,但评级是离散的。
- 项目的评级不一定遵循单峰高斯形状。例如,也许您的商品非常两极分化,因此人们倾向于给它一个非常高的评价或给它一个非常低的评价。
贝叶斯方法 II:评级的多项式分布
因此,让我们假设一个多项分布,而不是假设收视率的正态分布。也就是说,给定一些特定的项目,有一个概率p1一个随机用户会给它 1 星,一个概率p2随机用户会给它 2 星,依此类推。
当然,我们不知道这些概率是多少。随着我们对这个项目的评价越来越多,我们可以猜到p1接近n1n, 在哪里n1是给它 1 星的用户数量和n是对该项目进行评分的用户总数,但是当我们刚开始时,我们什么都没有。所以我们先放置一个狄利克雷 Dir(α1,…,αk)在这些概率上。
这个狄利克雷先验是什么?我们可以想到每一个αi参数作为某个虚拟人给予物品的次数的“虚拟计数”i星星。例如,如果α1=2,α2=1, 和所有其他αi等于0,那么我们可以认为这是说两个虚拟人给了物品1星,一个虚拟人给了物品2星。因此,在我们获得任何实际用户之前,我们可以使用这个虚拟分布来提供对项目评级的估计。
[一种选择方法αi参数将设置αi等于总票数的比例i星星。(请注意,αi参数不一定是整数。)]
然后,一旦实际评级进入,只需将它们的计数添加到 Dirichlet 之前的虚拟计数中。每当您想要估计您的项目的评级时,只需对所有项目的评级(其虚拟评级和实际评级)取平均值。