例解共轭分布之视频质量评估

在推荐领域阅读文献的时候,我们常常会遇到共轭分布、共轭先验 (conjugate prior) 之类的概念。由于共轭这个翻译实在不太直观,因此这些概念也很难理解,我想结合两个视频推荐中的例子来尝试说明这些概念。今天先介绍视频质量评估的例子。

问题背景

如何评估一个视频的质量是视频推荐中非常重要但是又很让人头疼的事情。尤其是在短视频场景下,每天新增大量的短视频,我们需要迅速判断一个新短视频的质量:如果质量很好,我们可以将它向更多的人推荐;如果质量不好,我们可能不再主动推荐该视频。这里判断的时效很重要,因为如果没有及时发现一个垃圾视频,它可能就会通过推荐系统祸害很多的用户 =.=!

由于视频非常多,我们无法人工对每个视频进行准确的质量评估,而且用户在短视频的观看行为呈现出更加多元的兴趣,因此小编们也无法代表所有用户的口味。因此,要评估一个短视频好不好,还是得看它在用户中的表现 (可以用完播率、点赞率、分享率等统计指标来度量)。

假设我们只考虑用完播率 $r$ 来度量一个视频的质量 (后面交替使用完播率和视频质量),它表示一个视频被播放完 (或者播放超过一定比例) 的数量 $m$ 与它展现给用户的次数 $n$ 的比例:

这个指标的优点是计算非常方便,而且能够在一定程度上表达业务诉求。但是实际应用的时候,往往会因为视频的展示次数过少而对某个视频进行错误的评价。例如,视频 $v_1$ 只展示了 $10$ 次,有 $5$ 次完播;视频 $v_2$ 展示了 $10000$ 次,有 $4900$ 次完播,相较而言,$v_1$ 和 $v_2$ 哪个质量更好呢?

很难说!我们只是比较确信 $v_2$ 的完播率稳定在了 $49\%$ 左右,而对于 $v_1$ 的评估就非常不确定了:有可能它再展示 $10$ 次以后,一次都没人看;也有可能它再展示 $10$ 次每次都完播了。这两种情况下我们对视频质量的评估将发生非常大的变化。

模型假设 (先验分布)

从根本上来讲,我们简单的用式 $(1)$ 来计算完播率忽略了事件过少时候的不确定性。为了引入这种不确定性,我们可以用一个概率分布来表示视频的质量 (这就是贝叶斯学派的观点,$r$ 并不是一个固定的值,而是满足一定的概率分布),也就是说,给定 $m$ 和 $n$,我们要来估计这个视频的质量呈现一个什么样的分布。这个分布的形状是我们在看到数据之前根据经验去假定的,因此我们也叫它先验分布

我们的直观想法是,如果一个视频的完播率为 $r=\frac{m}{n}$,那么它质量的真实分布 $\theta$ 中,概率最大的点也应该是 $\frac{m}{n}$,并且与 $\frac{m}{n}$ 相差越多概率也越小。

根据这个想法,我们可以用 Beta 分布来进行建模,将 $\alpha=m$ 和 $\beta=n-m$ 作为 Beta 分布的参数 (Beta 分布的详细介绍可以参考 Wiki)。在我们的例子中,随着 $n$ 的增加,Beta 分布的概率密度越集中于 $r=\frac{m}{n}$。下图表示随着 $m$ 和 $n$ 变化,保持 $r=0.5$ 不变的情况下,Beta 分布的概率密度函数:

可以看到,当 $n$ 很小的时候,视频的质量是高度不确定的;而当 $n$ 很大的时候,视频的质量已经集中分布于 $r=\frac{m}{n}$ 附近了。因此,我们选的这个先验分布是能够满足我们的直观想法和假设要求的。这样,我们用式 $(2)$ 来代替式 $(1)$ 对视频质量进行初步的评估:

其中,$\Gamma(n)=(n-1)!$ 表示伽玛函数 (这个场景下参数都为整数);$B(\alpha,\beta)$ 可以看成是归一化项,使得所有概率累加和为 $1$。

更新模型 (后验分布)

问题才解决了一半,由于视频在不断的推荐给用户,我们的统计数据也在发生变化。因此另外一个至关重要的问题是,我们怎么根据新增的数据来更新我们对视频质量的评估。

例如,对于某个视频 $v$,假设我们已经收集到一些反馈数据,并统计出 $\alpha=m$,$\beta=n-m$,我们根据式 $(2)$ 对视频质量分布 $\theta$ 有了一个初步的估计。现在我们又将这个视频推荐给其他用户,并想看看放量以后,视频质量评估是否准确。假设这个视频又展示了 $b$ 次,完播了 $a$ 次,则我们根据先验假设,视频的质量应该是围绕 $r’=\frac{m+a}{n+b}$ 的钟形分布,并且比之前的分布更陡峭一些。为了实现这个过程,我们需要对模型进行更新。

由于用户的反馈只包含完播和未完播两类,因此很容易想到用二项分布的似然估计来估计这 $b$ 次展示中有 $a$ 次会完播的概率:

由于式 $(3)$ 中的 $\theta$ 实际上是满足式 $(2)$ 中的分布 (注意,这里 $\theta$ 虽然仍然是一个分布,但是我们在这一步假设它是已知的),代入后可以算出 $a$ 次完播的概率为 $\theta$ 取所有可能值时式 $(3)$ 的积分:

这里我们要用最基础的贝叶斯公式,来基于初始的视频质量评估和增量收集来的统计数据,去修正我们在式 $(2)$ 中做出的视频质量评估,得到一个更加可靠的估计。贝叶斯公式如下:

其中,$p(\theta)$ 是我们对这个视频质量的初始评估,即先验分布,用式 $(2)$ 来计算;$p(X;\theta)$ 表示我们基于初始的评估结果,进一步估计事件 $X$ 发生的概率,即似然估计,用式 $(3)$ 来计算;$p(X)$ 表示 $\theta$ 取不同值时事件 $X$ 发生的概率之和,主要是用于做归一化,用式 $(4)$ 来计算;$p(\theta;X)$ 则表示基于先验分布和似然估计,得到的后验分布。

全部代入后,我们可以得到下面的简单推导:

也就是说,经过了这一轮的推荐以后,我们对这个视频的质量评估仅仅使模型的参数发了变化,而模型的形式不变,仍然为 Beta 分布!至此,我们终于触及本文的核心概念:共轭性。

模型的先验分布与后验分布具有相同的函数形式,这个性质就叫做共轭性。

共轭性

共轭性给我们带来了什么样的好处呢?比较式 $(6)$ 和式 $(2)$,我们发现,在观察到 $b$ 次推荐中有 $a$ 次完播事件后,我们可以简单的将模型从 $Beta(\theta;\alpha,\beta)$ 更新为 $Beta(\theta;\alpha+a,\beta+b-a)$,即我们只需要更新如下模型参数:

它的最大意义在于简化了模型更新的过程,使得模型更新的实时性得到了保证。

一开始,我们基于先验知识对视频质量进行建模,但是由于数据量较少,我们对视频质量的估计置信度较低;随着用户反馈的数据越来越多,我们可以直接基于这些新增的数据去快速更新模型的参数;随着参数数值的增大,我们对视频质量的估计置信度越来越高,直到我们已经有充足的把握认定这个视频是不是高质量视频。

这里的置信度还体现在,当数据量较少的时候,少量的观测结果就会导致我们对视频质量评估发生巨大的变化;而当数据量充足的时候,即使再收集到很多数据,也很难改变我们的评估。

Take-aways

至此,我们用视频质量评估的例子说明了共轭性和共轭分布是什么含义。一些关键点总结如下:

  1. 共轭性是指模型的先验分布和后验分布有相同的形式,满足共轭性的分布称为共轭分布。例如:Beta 分布与二项分布是共轭分布,且 Beta 分布是 $\theta$ 的共轭先验;
  2. 共轭性极大的方便了我们基于增量观测的数据对模型进行更新;
  3. 在推导共轭性的时候,我们使用了贝叶斯公式,总结起来就是:后验分布=先验分布*似然函数/归一化因子;