置信区间在推荐中的应用

学过统计的同学都对置信区间的概念非常熟悉,实际上,离开置信区间谈统计值没啥意义,或者说经常会造成很大的误导。简单来讲,置信区间是指基于观测样本来估计一个未知参数(如均值)时,我们相当确定(用置信度来度量)参数可能的取值范围。如果不考虑置信区间的概念,在我们观察到有 2 个用户喜欢一个视频、1 个用户不喜欢一个视频时,会估计该视频的推荐度为 66%,而认为它是一个高质量的视频,如果一旦将它进行大规模推荐时,很可能发现这个视频的实际转化率低的可怜。

因此在推荐里,置信区间是需要密切关注的概念。在推荐领域实践中,我从 3 个简单的算法来分别介绍置信区间的应用。

Wilson 区间法来判断视频质量

在引言的例子中,我们组的海威同学利用 Wilson 区间法来估计视频的推荐度,或者说,来建立视频质量评估模型(模型的一部分)。利用视频播放行为数据来统计视频的播放转化率时,假设视频展示的总数为 $n$,用户实际播放的总数为 $m$,则直接计算出来的播放转化率为 $p=\frac{m}{n}$。如果 $n$ 越大,说明 $p$ 的估计置信度越高,否则置信度越低。由于视频质量直接决定了我们是否会大规模推荐这个视频,因此在估计 $p$ 时采用的是宁缺毋滥的策略,这个时候可以巧妙的用置信区间的下界来代替 $p$ 作为播放转化率的估计。

具体到 Wilson 区间的计算公式,可以参考wiki(基于正态分布假设),这里只搬个公式:

其中,$z$ 为某置信度(如 95% 置信度)下查表可得,$n$ 在实际代入时,需要加上平滑因子(如 0.1),防止展示数据丢失导致 $n=0$。从公式可知,基于 Wilson 区间估计的播放转化率最小接近于 0($n$ 在实际时很可能取到平滑因子),最大接近于 $p$。

UCB算法来平衡探索与应用(E&E)

Wilson区间法是用置信区间的下限来减少数据量不足时误判的可能,主要是用来选出精品视频用来广泛推荐。但是一直这样保守推荐,会导致有些视频得不到充分的曝光,就难以评估其实际的转化率,导致推荐出来的所谓精品只是次优的选择。因此,在应用(Expoit)目前已知比较好的视频进行推荐的同时,也要保持一定比例的探索(Explore),即尝试一下那些曝光较少的视频。EE算法里一个常用的算法是 LinUCB,由于涉及特征构造,这里只介绍一个简化版本 UCB,大致思路是一样的。

UCB(Upper Confidence Bound)是一种多臂老虎机算法(MAB),也勉强算一种简化的强化学习算法,调性十足。同样以估计播放转化率为例,它的思路是利用置信区间的上界来代替 $p$ 作为估计值,实际上是提高了曝光不足视频(即长尾视频)的估计值。

UCB 主要解决的问题在于,如何计算置信区间的上界,既能保证随着曝光总量的增加,那些未被探索的视频越来越少,又能保证长久来看,能选到精品的视频。为了实现这个目标,一个常用的启发式公式如下:

其中,$p_i$ 为某个视频 $n_i$ 次曝光计算的平均转化率,$t$ 表示所有视频总共的曝光数。可以看到,随着曝光总数的增加,曝光很少的视频第二项值会很大,因此所有视频都会得到保底的曝光(t=100000 时至少有 28 次)。但是随着 $n_i$ 继续增加,主要决定因素又变成了 $p_i$,即历史平均转化率高的视频更可能被选中。

Thompson 采样来进行随机长尾推荐

UCB 算法在实际于新物品增加快的场景(例如短视频推荐,平均每天新增几万部短视频)时,由于计算过程是确定性的,存在一直只推新物品的问题。为了增加一些随机性,可以考虑用 Thompson 采样算法。它既不使用置信区间的上界,也不使用下界,而是每次基于 Beta(m, n-m) 分布进行采样(注意,这里的 m 和 n 是每个视频单独维护的参数)。

我们知道,Beta 分布实际上是“白努力”过程的成功率,曝光数 $n$ 越大,Beta 分布的曲线越像是一个倒钟的形状,且钟的开口越窄,最后收于期望:$p=\frac{m}{n}$。反过来说,当使用 Thompson 采样来选择推荐的视频时,虽然每个视频长期来选中的概率取决于其转化率,但是当曝光数量少时,Beta 分布开口很大,也更容易得到比期望大或者小的采样结果,从而引入了随机性。不过从实际应用来看,当媒资库时的视频数量很多时,大部分选中的视频还是新视频。

本文简单的介绍了统计区间在推荐中的一些简单应用,既有利用置信区间的下界来选精品,也有利用置信区间的上界来探索,还有利用整个分布来引入随机性。所有算法都是用简单的数学公式就能达到我们期望的效果,是比人工规则优美的多的形式。当然,举的示例都是推荐的核心问题,没有这么简单就能讲清楚,涉及大量的数据处理和参数调优,需要不断尝试和改进。