贝叶斯参数估计的理解及其在电商算法中的应用

    xiaoxiao2021-12-14  27

    文章目录

    极大似然估计贝叶斯估计(Bayes Estimation)损失函数风险函数贝叶斯风险 如何最小化贝叶斯风险(贝叶斯估计)结论 三种常用损失函数的贝叶斯估计计算Square ErrorAbsolute ErrorUniform Error 如何确定先验分布(先验知识)与后验分布共轭先验(Conjugate Prior)后验分布的计算泊松分布的例子二项分布的例子(点击率的贝叶斯平滑)二项分布贝叶斯估计的应用示例(点击率的贝叶斯平滑)

    极大似然估计

    贝叶斯估计是参数估计中的一种方法,以贝叶斯思想为基础,而贝叶斯思想在机器学习中经常用到。机器学习中常涉及贝叶斯网络,最终的问题都是转化为参数求解。贝叶斯参数估计是这些问题的基础版本。前方高能预警,本文的讲解比较理论。

    实际问题中我们会有很多数据,比如一篇文章中每个单词的词频等。我们得到的数据通常用 X X X表示,也称为样本。我们还会假设这些数据服从某一个分布,例如最常用的正态分布,这时可以将问题表示为 X ∼ N ( μ , σ ) X \sim N(\mu, \sigma) XN(μ,σ) μ \mu μ σ \sigma σ表示正态分布的两个参数。如果这两个参数已知,这个分布就确定了,从而可以知道数据 X X X的许多性质。这种情况下,参数估计就是要估计 μ \mu μ s i g m a sigma sigma的值。最常用的参数估计方法是极大似然(或最大似然估计)估计。

    一般的最大似然法求解两个参数的基本步骤是:

    假设每个样本 X i X_i Xi是独立同分布(iid)的,即每一个样本都有 X i ∼ N ( μ , σ ) X_i \sim N(\mu, \sigma) XiN(μ,σ).求所有样本 X X X的联合分布 因为是iid,所以 X X X的联合分布等于每个样本 X i X_i Xi的概率密度函数的乘积,即: L ( μ , σ 2 ; x ) = f ( x ) = ( 1 2 π σ 2 ) n exp ⁡ { − ∑ i = 1 n ( x i − μ ) 2 2 σ 2 } L(\mu, \sigma^2; \boldsymbol{x}) = f(\boldsymbol{x}) = \left(\frac{1}{\sqrt{2\pi\sigma^2}}\right)^n \exp\left\{-\sum_{i=1}^n \frac{(x_i - \mu)^2}{2\sigma^2}\right\} L(μ,σ2;x)=f(x)=(2πσ2 1)nexp{i=1n2σ2(xiμ)2}对上述联合分布的概率密度函数取对数,即: ℓ ( μ , σ 2 ; x ) = log ⁡ L ( μ , σ 2 ; x ) = − n 2 log ⁡ ( 2 π σ 2 ) − ∑ i = 1 n ( x i − μ ) 2 2 σ 2 \ell(\mu, \sigma^2; \boldsymbol{x}) = \log L(\mu, \sigma^2; \boldsymbol{x}) = -\frac{n}{2}\log\left(2\pi\sigma^2\right) -\sum_{i=1}^n \frac{(x_i - \mu)^2}{2\sigma^2} (μ,σ2;x)=logL(μ,σ2;x)=2nlog(2πσ2)i=1n2σ2(xiμ)2对上述函数分别求 ∂ ℓ ∂ μ \frac{\partial \ell}{\partial \mu} μ ∂ ℓ ∂ σ 2 \frac{\partial \ell}{\partial \sigma^2} σ2,并令它们等于0,进而求得极值分别对 μ \mu μ σ 2 \sigma^2 σ2求二阶偏导,验证极值是最大值

    上述步骤是极大似然法的求解步骤,用到的信息都是已知样本的信息。但是通常在估计参数时我们可能已经对参数有了一个大概的了解,比如已经知道 μ \mu μ σ 2 \sigma^2 σ2的取值范围。仅仅知道取值范围还太简单,有时会更进一步假设 μ \mu μ σ 2 \sigma^2 σ2的取值服从某个分布,这样问题就变成了在正态分布中,要估计期望 μ \mu μ和方差 σ 2 \sigma^2 σ2的值,但与极大似然法不同的是,我们事先已经知道了 μ \mu μ σ 2 \sigma^2 σ2的取值是服从某种分布的,这个信息如果不用到参数估计中有点浪费了,于是问题变成:如何将这两个参数的分布结合到参数估计过程中? 贝叶斯估计解决了这个问题。

    贝叶斯估计(Bayes Estimation)

    上述提到的在估计参数之前对参数已经有了了解称为参数的先验知识。贝叶斯估计即在估计过程中将先验知识也考虑了进去,博众家之长总是好的。先验知识可以是一个具体的值,也可以是取值范围,也可以是一个函数(某种分布)。实际应用中,通常会将参数的先验知识视作一个分布,那么这个参数就会有一个概率密度函数(pdf),这个pdf叫做待估计参数的先验概率。

    一般待估计的一维参数用 θ \theta θ表示,多维用粗体 θ \boldsymbol{\theta} θ. 先验概率密度函数用符号 π ( θ ) \pi(\theta) π(θ)表示。样本的概率密度函数用 f ( x ∣ θ ) f(x|\theta) f(xθ)表示,其中加入 θ \theta θ是表示该pdf跟 θ \theta θ有关,同时说明要估计的参数是 θ \theta θ.

    参数估计必然会涉及到『损失』的概念,用于表示参数的估计值与真实值之间的差距。差距越小,损失越小,说明参数估计得约准确。

    贝叶斯估计涉及到三个损失概念,他们长的很像:

    损失函数(Loss Funcition)风险函数(Risk Function)贝叶斯风险(Bayes Risk)

    贝叶斯估计的目的是:结合参数的先验知识,使得参数的估计值令贝叶斯风险达到最小。简单说就是最小化贝叶斯风险。

    下面解释这三个概念。

    损失函数

    在参数估计问题中,评价估计的好坏就是看估计出来的参数与真值的差距有多小。估计出来的参数通常用 θ ^ \hat{\theta} θ^表示,参数的真值用 θ \theta θ表示。 θ \theta θ θ ^ \hat{\theta} θ^的差距就是损失函数。

    损失函数有好几种定义方式,常见的如下:

    L ( θ ^ , θ ) = ( θ ^ − θ ) 2 L(\hat{\theta}, \theta) = (\hat{\theta} - \theta)^2 L(θ^,θ)=(θ^θ)2 L ( θ ^ , θ ) = ∣ θ ^ − θ ∣ L(\hat{\theta}, \theta) = |\hat{\theta} - \theta| L(θ^,θ)=θ^θ L ( θ ^ , θ ) = { 0 if  ∣ θ − θ ^ ∣ ⩽ Δ 1 if  ∣ θ − θ ^ ∣ > Δ \begin{aligned} L(\hat{\theta}, \theta) = \begin{cases} 0 &\text{if $|\theta - \hat{\theta}| \leqslant \Delta$} \\ 1 &\text{if $|\theta - \hat{\theta}| > \Delta$} \end{cases} \end{aligned} L(θ^,θ)={01if ∣θθ^Δif ∣θθ^>Δ

    当估计值与真实值无限接近时,损失函数都会无限接近0,相当于没有损失。损失函数中的估计值 θ ^ \hat{\theta} θ^是通过样本计算出来的。比如正态分布中的 μ \mu μ,我们可以用样本均值来估计 μ \mu μ(即将样本均值当成 μ \mu μ),即 μ ^ = 1 n ∑ n X i = X ˉ \hat{\mu} = \frac{1}{n}\sum^n X_i = \bar{\boldsymbol{X}} μ^=n1nXi=Xˉ。类似地,也常用样本方差来估计 σ 2 \sigma^2 σ2. 但是注意到 μ ^ \hat{\mu} μ^ σ ^ 2 \hat{\sigma}^2 σ^2的值都跟样本的个数有关,即都跟 n n n有关。如果 1 n ∑ i = 0 n X i \frac{1}{n}\sum_{i=0}^n X_i n1i=0nXi μ \mu μ的估计值,那 1 n − 1 ∑ i = 0 n − 1 X i \frac{1}{n-1}\sum_{i=0}^{n-1} X_i n11i=0n1Xi μ \mu μ的估计值吗?那 1 n − 6 ∑ i = 0 n − 6 X i \frac{1}{n-6}\sum_{i=0}^{n-6} X_i n61i=0n6Xi呢?可以看到 n n n不一样,估计值也不一样,到底用哪个 n n n(用多少个样本)来计算损失函数呢?这时容易(其实不容易)想到,既然损失函数可以因为 θ ^ \hat{\theta} θ^的不同而有不同的值,那就求平均。通过判断损失的平均值的大小来判断参数估计得好不好。求平均是很自然的想法,但平均通常是相对样本来说的,如果是总体,我们通常说期望。这时就要引入风险函数了。

    风险函数

    风险就是损失函数关于 θ ^ \hat{\theta} θ^的期望。

    既然估计值 θ ^ \hat{\theta} θ^是随 n n n的变化而变化的,那也可以将 θ ^ \hat{\theta} θ^视为随机变量,进而可以计算损失函数的期望。于是风险函数的定义如下:

    R ( θ ^ , θ ) = E θ ^ [ L ( θ ^ , θ ) ] R(\hat{\theta}, \theta) = E_{\hat{\theta}} \left[L(\hat{\theta}, \theta) \right] R(θ^,θ)=Eθ^[L(θ^,θ)]

    E θ ^ E_{\hat{\theta}} Eθ^表示对 θ ^ \hat{\theta} θ^求期望(注意真值 μ \mu μ是固定的,不是变量)。我们的目标是:求出一个 θ ^ \hat{\theta} θ^,使得风险最小(最小化风险)。

    例如,要估计期望 μ \mu μ,假设损失函数是 L ( μ ^ , μ ) = ( μ ^ − μ ) 2 L(\hat{\mu}, \mu) = (\hat{\mu} - \mu)^2 L(μ^,μ)=(μ^μ)2,如果用样本均值作为 μ \mu μ的估计值(即 μ ^ = 1 n ∑ i = 0 n X i \hat{\mu} = \frac{1}{n}\sum_{i=0}^n X_i μ^=n1i=0nXi),这样的风险是多少?

    E [ L ( μ ^ , μ ) ] = E ( X ˉ − μ ) 2 = E X ˉ 2 − 2 μ E X ˉ + μ 2    E \left[L(\hat{\mu}, \mu) \right] = E(\bar{\boldsymbol{X}} - \mu)^2 = E\bar{\boldsymbol{X}}^2 - 2\mu E\bar{\boldsymbol{X}} + \mu^2 \ \ E[L(μ^,μ)]=E(Xˉμ)2=EXˉ22μEXˉ+μ2  

    算出上式中的 E X ˉ 2 E\bar{\boldsymbol{X}}^2 EXˉ2 E X ˉ E\bar{\boldsymbol{X}} EXˉ就可以知道风险是多少。其实上式的风险是0,已经是最小值了。这个结果说明当使用样本均值来估计总体期望时,风险最低,所以一般都用样本均值来代替总体期望。

    到目前为止并没有用到前面提过的先验知识 π ( θ ) \pi(\theta) π(θ),仅仅定义了损失函数和风险函数。上式的风险函数求出了一个具体的值,但很多情况没有那么简单,求出的风险是一个函数表达式,而不是值。如果求出来的风险是一个值,其实可以不用贝叶斯估计(上面也一直没有用到 θ \theta θ的任何先验知识)。贝叶斯估计通常用于风险不可以直接比较的情况。

    这时就要引入贝叶斯风险的概念了。贝叶斯风险中就用到了 θ \theta θ的先验分布 π ( θ ) \pi(\theta) π(θ).

    贝叶斯风险

    注意到风险函数 R ( θ ^ , θ ) R(\hat{\theta}, \theta) R(θ^,θ) θ ^ \hat{\theta} θ^的函数,前面也提到真值 θ \theta θ是一个固定的值,不是变量。但是,我们会在估计 θ \theta θ之前知道一些 θ \theta θ的知识,比如说 θ \theta θ的分布 π ( θ ) \pi(\theta) π(θ)(这个分布是怎么知道的呢?下文有讲解)。既然 θ \theta θ是有一个概率分布的,那么此时 θ \theta θ也变成一个随机变量了,所以 R ( θ ^ , θ ) R(\hat{\theta}, \theta) R(θ^,θ)同时是 θ ^ \hat{\theta} θ^ θ \theta θ的函数。 这时要怎么使用 π ( θ ) \pi(\theta) π(θ)呢?下面定义贝叶斯风险。

    贝叶斯风险:

    B a y e s   R i s k = E θ [ R ( θ , θ ^ ) ] = ∫ R ( θ , θ ^ ) π ( θ ) d θ   (期望的定义) Bayes\ Risk = E_{\theta} \left[R(\theta, \hat{\theta})\right] = \int R(\theta, \hat{\theta})\pi(\theta) d\theta \text{\ (期望的定义)} Bayes Risk=Eθ[R(θ,θ^)]=R(θ,θ^)π(θ)dθ  (期望的定义)

    上式表示:贝叶斯风险是风险函数在 θ \theta θ上的期望。

    回顾一下期望的定义。如果随机变量用 X \boldsymbol{X} X表示,其概率密度函数是 f ( x ) f(\boldsymbol{x}) f(x),那么 X \boldsymbol{X} X的期望 E X = ∫ x f ( x ) d x E\boldsymbol{X} = \int xf(x)dx EX=xf(x)dx. 对照期望的积分形式,可以看到 π ( θ ) \pi(\theta) π(θ)就是 θ \theta θ的概率密度函数,随机变量是 θ \theta θ. R ( θ , θ ^ ) R(\theta, \hat{\theta}) R(θ,θ^)是关于随机变量 θ \theta θ的一个函数,所以Bayes Risk就是在求风险函数的期望。总的来说:风险函数是损失函数关于 θ ^ \hat{\theta} θ^的期望,而贝叶斯风险是风险函数关于 θ \theta θ的期望。 所以贝叶斯风险是一个双期望。更进一步, θ ^ \hat{\theta} θ^是关于随机变量 X X X的函数( θ ^ \hat{\theta} θ^总是通过样本 X \boldsymbol{X} X求出来),所以也可以说:风险函数是损失函数关于 x \boldsymbol{x} x的期望。这样就将风险与 θ \theta θ的先验知识关联起来了。

    之所以叫贝叶斯风险是因为引入了一个先验分布 π ( θ ) \pi(\theta) π(θ). 『先验』这个词本身就是贝叶斯理论的一部分。

    如何最小化贝叶斯风险(贝叶斯估计)

    终于到达贝叶斯估计的核心了,即如何找到一个 θ ^ \hat{\theta} θ^,使得贝叶斯风险最小。问题转化为求 ∫ R ( θ , θ ^ ) π ( θ ) d θ \int R(\theta, \hat{\theta})\pi(\theta) d\theta R(θ,θ^)π(θ)dθ的最小值。

    这是一个积分形式的函数,如果知道 R ( θ , θ ^ ) R(\theta, \hat{\theta}) R(θ,θ^) π ( θ ) \pi(\theta) π(θ)的具体形式可以直接求出最小值。不过如果仅仅根据这个抽象的形式,也可以求出最小值的形式。

    下面给出最小化贝叶斯风险的推导过程,不想看推导过程可以直接看最后结论。

    为了跟一些书的符号统一,下面引入一个新的符号: a = θ ^ a = \hat{\theta} a=θ^. 即用字母 a a a来表示参数的估计值 θ ^ \hat{\theta} θ^.

    字母 a a a表示action,表示采取某一动作求得 θ \theta θ的估计。在参数估计问题中, a a a就是 θ ^ \hat{\theta} θ^. 所以 R ( θ , θ ^ ) = R ( θ , a ) R(\theta, \hat{\theta}) = R(\theta, a) R(θ,θ^)=R(θ,a)

    因为 R ( θ , a ) R(\theta, a) R(θ,a)的本质也是求期望,先将其转换为积分的形式。

    R ( θ , a ) = E a [ L ( θ , a ) ] = ∫ L ( θ , a ( x ) ) f ( x ∣ θ ) d x R(\theta, a) = E_a\left[L(\theta, a)\right] = \int L(\theta, a(x))f(x|\theta) dx R(θ,a)=Ea[L(θ,a)]=L(θ,a(x))f(xθ)dx

    因为 a a a x x x的函数,所以对 a a a求期望就是在 x x x上求期望,进而转换为对 x x x求积分。同时 x x x的概率密度函数是已知的,记为 f ( x ∣ θ ) f(x|\theta) f(xθ),表示 x x x的pdf跟 θ \theta θ有关,也表示条件概率密度函数。

    既然在 θ \theta θ给定的条件下, x x x的条件pdf是 f ( x ∣ θ ) f(x|\theta) f(xθ)(此时已经将 θ \theta θ当成随机变量看待了),而且 θ \theta θ的分布又是 π ( θ ) \pi(\theta) π(θ),那么根据条件概率的定义,可以求出 x x x的边缘概率密度函数:

    f ( x ) = ∫ f ( x ∣ θ ) π ( θ )   d θ   (边缘概率定义) f(x) = \int f(x|\theta) \pi(\theta)\ d\theta \ \ \text{(边缘概率定义)} f(x)=f(xθ)π(θ) dθ  (边缘概率定义) 所以有:

    ∫ R ( θ , a ) π ( θ ) d θ = ∫ θ [ ∫ x L ( θ , a ( x ) )   f ( x ∣ θ )   d x ] π ( θ )   d θ (带入上式展开) = ∫ θ ∫ x L ( θ , a ( x ) ) f ( x ∣ θ ) π ( θ ) f ( x ) f ( x )   d x   d θ   (除以一个 f ( x ) 再乘以一个 f ( x ) 结果不变) = ∫ θ ∫ x L ( θ , a ( x ) ) π ( θ ∣ x )   f ( x )   d x   d θ  (贝叶斯定理) = ∫ x [ ∫ θ L ( θ , a ( x ) ) π ( θ ∣ x )   d θ ] f ( x )   d x    (交换积分顺序) \begin{aligned} \int R(\theta, a)\pi(\theta) d\theta &= \int_{\theta} \left[\int_x L(\theta, a(x))\ f(x|\theta)\ dx\right] \pi(\theta)\ d\theta & \text{(带入上式展开)}\\ &= \int_{\theta} \int_x L(\theta, a(x)) \frac{f(x|\theta) \pi(\theta)}{f(x)} f(x)\ dx\ d\theta & \ \text{(除以一个$f(x)$再乘以一个$f(x)$结果不变)} \\ &= \int_{\theta} \int_x L(\theta, a(x)) \pi(\theta|x)\ f(x)\ dx\ d\theta & \ \text{(贝叶斯定理)} \\ &= \int_x \left[\int_{\theta} L(\theta, a(x)) \pi(\theta|x)\ d\theta \right] f(x)\ dx\ & \ \text{(交换积分顺序)} \\ \end{aligned} R(θ,a)π(θ)dθ=θ[xL(θ,a(x)) f(xθ) dx]π(θ) dθ=θxL(θ,a(x))f(x)f(xθ)π(θ)f(x) dx dθ=θxL(θ,a(x))π(θx) f(x) dx dθ=x[θL(θ,a(x))π(θx) dθ]f(x) dx (带入上式展开) (除以一个f(x)再乘以一个f(x)结果不变) (贝叶斯定理) (交换积分顺序)

    最后一步无法化简了,那就分析上式中最后一项。

    通过贝叶斯定理,求出了 π ( θ ∣ x ) \pi(\theta|x) π(θx). 观察最后一项中括号中的式子, π ( θ ∣ x ) \pi(\theta|x) π(θx)是一个pdf,中括号中的这一项很像期望的定义。实际上中括号这一项就是在 π ( θ ∣ x ) \pi(\theta|x) π(θx)上求损失函数 L ( θ , a ( x ) ) L(\theta, a(x)) L(θ,a(x))的期望。

    回顾贝叶斯估计的目的:求出 θ ^ \hat{\theta} θ^(在这里是 a ( x ) a(x) a(x)),使得贝叶斯风险最小(即 ∫ R ( θ , a ) π ( θ ) d θ \int R(\theta, a)\pi(\theta) d\theta R(θ,a)π(θ)dθ最小)。

    中括号中的那一项是对 θ \theta θ积分,积分后不会有 θ \theta θ,从而整个式子只剩下 x x x. 而回想一下贝叶斯估计的目的, x x x并不是我们要关心的。所以贝叶斯估计就是要计算中括号一项,使得中括号内的积分最小,最终还是回到了损失函数上。

    上面提到中括号一项看起来像是期望的定义,其实这一项称为posterior expected risk. 记作:

    ∫ θ L ( θ , a ( x ) ) π ( θ ∣ x )   d θ = E π L ( θ , a ( x ) ) \int_{\theta} L(\theta, a(x)) \pi(\theta|x)\ d\theta = E_{\pi} L(\theta, a(x)) θL(θ,a(x))π(θx) dθ=EπL(θ,a(x))

    E π E_{\pi} Eπ表示在 π ( θ ∣ x ) \pi(\theta|x) π(θx)上求期望。 π ( θ ∣ x ) \pi(\theta|x) π(θx)就叫做 θ \theta θ的后验分布,即在知道数据 x x x θ \theta θ的分布。所以贝叶斯估计就是:求 θ ^ \hat{\theta} θ^,使得损失函数在 θ \theta θ的后验分布上的期望最小。

    此时可以发现, 损 失 函 数 L ( θ , a ( x ) ) 损失函数L(\theta, a(x)) L(θ,a(x))是自己设计的,比如前面提到的那三种。如果知道 π ( θ ) \pi(\theta) π(θ),根据贝叶斯定理,容易求出 π ( θ ∣ x ) \pi(\theta|x) π(θx);而 π ( θ ) \pi(\theta) π(θ)也是我们自己定义的(先验知识,肯定是事先就知道了的,不知道也可以假设),所以这个posterior expected risk不难求得。至于如何计算后验分布,后面有讲解。

    结论

    贝叶斯参数估计的步骤:

    拿到数据,知道数据的分布(或者定义数据的分布),记为 f ( x ∣ θ ) f(\boldsymbol{x}|\theta) f(xθ),要估计的参数记为 θ \theta θ定义损失函数 L ( θ , θ ^ ) L(\theta, \hat{\theta}) L(θ,θ^)定义(或者假设) θ \theta θ的先验知识或先验分布 π ( θ ) \pi(\theta) π(θ)根据贝叶斯定理求出后验分布 π ( θ ∣ x ) = f ( x ∣ θ ) π ( θ ) f ( x ) \pi(\theta|\boldsymbol{x}) = \frac{f(\boldsymbol{x}|\theta)\pi(\theta)}{f(\boldsymbol{x})} π(θx)=f(x)f(xθ)π(θ)最小化如下式子: arg ⁡ min ⁡ ∫ L ( θ , θ ^ ) π ( θ ∣ x )   d θ = arg ⁡ min ⁡ E π L ( θ , θ ^ ) \arg \min \int L(\theta, \hat{\theta}) \pi(\theta|\boldsymbol{x})\ d\theta = \arg \min E_{\pi} L(\theta, \hat{\theta}) argminL(θ,θ^)π(θx) dθ=argminEπL(θ,θ^)

    上面最后一步,涉及积分以及最小值求解,看起来十分麻烦。所幸,在特定的损失函数形式下,上面最后一步可以化简,并不需要完全用到积分。下面讲解在三种特定损失函数形式下贝叶斯估计的计算方法。

    理论总是简单的,上述的求解过程后面附有例子,可以温习一下。

    三种常用损失函数的贝叶斯估计计算

    Square Error

    square error就是

    L ( θ , a ) = ( θ − a ) 2 L(\theta, a) = (\theta - a)^2 L(θ,a)=(θa)2

    下面这直接给出结论:

    若损失函数是square error,那么当 a a a等于 θ \theta θ π ( θ ∣ x ) \pi(\theta|x) π(θx)上的期望时,贝叶斯风险最小。

    上述结论证明涉及到其它知识,略过。

    上述结论说明,如果知道 π ( θ ∣ x ) \pi(\theta|x) π(θx)的形式,那么只需求 ∫ θ π ( θ ∣ x )   d θ \int\theta\pi(\theta|x)\ d\theta θπ(θx) dθ就可以了,实际上就是期望。例如,如果 π ( θ ∣ x ) \pi(\theta|x) π(θx)是正态分布, π ( θ ∣ x ) ∼ N ( η , τ ) \pi(\theta|x) \sim N(\eta, \tau) π(θx)N(η,τ),那么 a = η a = \eta a=η η \eta η就是参数 θ \theta θ的估计。

    Absolute Error

    Absolute error定义如下:

    L ( θ ^ , θ ) = ∣ θ ^ − θ ∣ L(\hat{\theta}, \theta) = |\hat{\theta} - \theta| L(θ^,θ)=θ^θ

    下面直接给出结论:

    若损失函数是square error,那么当 a a a等于数据 X X X的中位数时,贝叶斯风险最小。

    这个结论说明:如果使用square error作为损失函数,不需要定义 θ \theta θ的后验分布,直接取中位数。

    Uniform Error

    uniform error的形式为:

    L ( θ ^ , θ ) = { 0 if  ∣ θ − θ ^ ∣ ⩽ Δ 1 if  ∣ θ − θ ^ ∣ > Δ \begin{aligned} L(\hat{\theta}, \theta) = \begin{cases} 0 &\text{if $|\theta - \hat{\theta}| \leqslant \Delta$} \\ 1 &\text{if $|\theta - \hat{\theta}| > \Delta$} \end{cases} \end{aligned} L(θ^,θ)={01if ∣θθ^Δif ∣θθ^>Δ

    下面直接给出结论:

    若损失函数是uniform error且 Δ \Delta Δ很小,当 a = arg ⁡ max ⁡ π ( θ ∣ x ) a = \arg \max \pi(\theta|x) a=argmaxπ(θx)时,即 a a a等于 θ \theta θ后验分布的最大值时,贝叶斯风险最小。

    上述结论说明,在uniform error的情况下,如果知道 π ( θ ) \pi(\theta) π(θ)的形式,那么求它的最大值即可。例如,如果 π ( θ ∣ x ) \pi(\theta|x) π(θx)是正态分布, π ( θ ∣ x ) ∼ N ( η , τ ) \pi(\theta|x) \sim N(\eta, \tau) π(θx)N(η,τ),正态分布的最大值在均值处取得,所以 θ \theta θ的估计值为 η \eta η,与square error一样。

    如何确定先验分布(先验知识)与后验分布

    前面一直提到先验知识或者先验分布,偶尔混用。这是因为 θ \theta θ的先验知识 π ( θ ) \pi(\theta) π(θ)可以有很多种形式,可以是一个数,可以是离散的几个数,也可以是个概率分布函数,此时称为后验分布。

    但是对于后验分布,它只能是一个概率分布形式,即 π ( θ ∣ x ) \pi(\theta|x) π(θx)必须满足概率密度函数的定义,而 π ( θ ) \pi(\theta) π(θ)却不一定。原因是最后求贝叶斯风险最小值的函数形式只涉及到 π ( θ ∣ x ) \pi(\theta|x) π(θx),没有涉及到 π ( θ ) \pi(\theta) π(θ),所以 π ( θ ) \pi(\theta) π(θ)取什么值在数学上无所谓,但是会对结果造成影响。

    很多应用中 π ( θ ) \pi(\theta) π(θ)会取一个概率密度函数。下面介绍一种 π ( θ ) \pi(\theta) π(θ)的取法:共轭先验。

    共轭先验(Conjugate Prior)

    共轭先验这四个字指的不是一个分布,而是指一大类分布,比如指数族分布。下面给出共轭分布不太严谨的数学定义:

    设资料 X X X有概率密度函数 F F F X ∼ F ( x ∣ θ ) X \sim F(x| \theta) XF(xθ). θ \theta θ的先验分布 π ( θ ) \pi(\theta) π(θ)属于某个分布族 P P P π ( θ ) ∈ P \pi(\theta) \in P π(θ)P. 如果对任意 θ \theta θ θ \theta θ的后验分布 π ( θ ∣ x ) \pi(\theta|x) π(θx)也属于分布族 P P P,那么 P P P就叫做 F F F的共轭先验。

    白话解释:

    如果找到一个 π ( θ ) \pi(\theta) π(θ),它是 F F F的共轭先验,那么 θ \theta θ的后验分布 π ( θ ∣ x ) \pi(\theta|x) π(θx)和先验分布 π ( θ ) \pi(\theta) π(θ)会有一样的形式,即同属于分布族 P P P。注意共轭是指 π ( θ ) \pi(\theta) π(θ) f ( x ∣ θ ) f(x|\theta) f(xθ)共轭。

    『轭』是指驾车时套在牲口脖子上的曲木。古代拉扯的牲口通常有两只,因此轭是连接两只牲口的工具。在这里共轭是指 π ( θ ) π(\theta) π(θ) π ( θ ∣ x ) π(\theta|x) π(θx)通过 f ( x ∣ θ ) f(x|\theta) f(xθ)联系起来了。

    前面说到贝叶斯估计最终需要计算出 θ \theta θ的后验分布, θ \theta θ的先验分布 π ( θ ) \pi(\theta) π(θ)分布是已知的。如果 π ( θ ) \pi(\theta) π(θ) f ( x ) f(x) f(x)共轭,那么 π ( θ ) \pi(\theta) π(θ) π ( θ ∣ x ) \pi(\theta|x) π(θx)会有一样的形式,这样不就会很方便求解 π ( θ ∣ x ) \pi(\theta|x) π(θx)?事实上就是这样的,因此在设计先验分布的时候常常会设计成与 f ( x ) f(x) f(x)共轭,后面计算会方便。

    仅根据定义凭空想出一个共轭先验比较难。幸运的是可以证明,所有属于指数族分布的 f ( x ) f(x) f(x),都可以求出它的共轭先验分布 π ( θ ) \pi(\theta) π(θ)的具体形式。而大部分常见的分布都属于指数族分布(Exponential Family),比如正态分布,指数分布,二项分布,泊松分布,Beta分布,Gamma分布等等。

    下面给出常见的共轭先验:

    如果样本的分布是上面表中第二列中的一项,那么就可以将先验分布设计成第三列中对应的分布。所以在才会在那么多算法或实际问题中将某个参数的分布定义成Gamma或Beta这种『奇怪』的形式,原因之一是为了求解方便,而且符合贝叶斯参数估计的数学原理。

    后验分布的计算

    贝叶斯估计的落脚点之一是求解参数的后验分布 π ( θ ∣ x ) \pi(\theta|x) π(θx). 本部分讲解求解 π ( θ ∣ x ) \pi(\theta|x) π(θx)的步骤。

    先给出公式: π ( θ ∣ x ) = f ( x ∣ θ ) π ( θ ) f ( x ) \pi(\theta|x) = \frac{f(x|\theta)\pi(\theta)}{f(x)} π(θx)=f(x)f(xθ)π(θ)

    贝叶斯理论中是将参数作为随机变量看待的,因此样本的概率密度函数通常写成 f ( x ∣ θ ) f(x|\theta) f(xθ)的形式,表示 θ \theta θ是已知的,而 f ( x ) f(x) f(x)就是 x x x的边缘密度概率函数,这个需要计算。

    泊松分布的例子

    这个例子很理论,但胜于比较典型。

    问题:已知 X 1 , X 2 , . . . , X n X_1, X_2, ..., X_n X1,X2,...,Xn是iid的,服从泊松分布, X i ∼ P o i ( λ ) X_i \sim Poi(\lambda) XiPoi(λ). λ \lambda λ是要估计的参数。

    (1) 利用 λ \lambda λ的共轭先验求 λ \lambda λ的后验分布 (2) 求在square error下 λ \lambda λ的贝叶斯估计 λ ^ b a y e s \hat{\lambda}_{bayes} λ^bayes

    求解(1)

    依题意,写出 X i X_i Xi的概率密度函数: f ( x ∣ λ ) = e − λ λ x x ! f(x|\lambda) = \frac{e^{-\lambda}\lambda^x}{x!} f(xλ)=x!eλλx

    因为 X i X_i Xi是独立同分布,所以它的联合概率密度函数是:

    f ( x ∣ λ ) = e − n λ λ ∑ i = 1 n x i ∏ i = 1 n ( x i ! )  (连乘) f(\boldsymbol{x}|\lambda) = \frac{e^{-n\lambda}\lambda^{\sum_{i=1}^n x_i}}{\prod_{i=1}^n (x_i!)} \ \text{(连乘)} f(xλ)=i=1n(xi!)enλλi=1nxi (连乘)

    由之前的表格可知,泊松分布的共轭先验分布是Gamma分布,Gamma分布的参数是 α \alpha α β \beta β,这两个参数可以当成是已知的。所以先验分布可以写成:

    π ( λ ) = β α λ α − 1 e − λ β Γ ( α ) \pi(\lambda) = \frac{\beta^\alpha \lambda^{\alpha-1} e^{-\lambda \beta}}{\Gamma(\alpha)} π(λ)=Γ(α)βαλα1eλβ

    求解 X X X的边缘概率密度函数 f ( x ) f(x) f(x) (下面积分过程比较简单,但太碍眼,可以略过不看)

    f ( x ) = ∫ 0 ∞ f ( x ∣ λ ) π ( λ ) d λ  (连续函数需要积分,如果是离散就就求和) = ∫ 0 ∞ e − n λ λ ∑ i = 1 n x i ∏ i = 1 n ( x i ! ) β α λ α − 1 e − λ β Γ ( α ) d λ = β α ∏ i = 1 n ( x i ! ) Γ ( α ) ∫ 0 ∞ λ ∑ i = 1 n x i + α − 1 e ( n + β ) λ d λ = ( 1 n + β ) ∑ i = 1 n x i + α β α ∏ i = 1 n ( x i ! ) Γ ( α ) ∫ 0 ∞ ( ( n + β ) λ ) ( ∑ i = 1 n x i + α ) − 1 e ( n + β ) λ d ( n + β ) λ = β α ∏ i = 1 n ( x i ! ) Γ ( α ) Γ ( ∑ i = 1 n x i + α ) ( 1 n + β ) ∑ i = 1 n x i + α \begin{aligned} f(\boldsymbol{x}) &= \int_0^\infty f(\boldsymbol{x}|\lambda) \pi(\lambda) d\lambda\ \text{(连续函数需要积分,如果是离散就就求和)}\\ &= \int_0^\infty\frac{e^{-n\lambda}\lambda^{\sum_{i=1}^n x_i}}{\prod_{i=1}^n (x_i!)} \frac{\beta^\alpha \lambda^{\alpha-1} e^{-\lambda \beta}}{\Gamma(\alpha)} d\lambda \\ &= \frac{\beta^\alpha}{\prod_{i=1}^n (x_i!) \Gamma(\alpha)} \int_0^\infty \frac{\lambda^{\sum_{i=1}^n x_i + \alpha - 1}}{e^{(n+\beta)\lambda}} d\lambda \\ &= \left(\frac{1}{n+\beta}\right)^{\sum_{i=1}^n x_i + \alpha} \frac{\beta^\alpha}{\prod_{i=1}^n (x_i!) \Gamma(\alpha)} \int_0^\infty \frac{\left((n+\beta)\lambda\right)^{(\sum_{i=1}^n x_i + \alpha) - 1}}{e^{(n+\beta)\lambda}} d(n+\beta)\lambda \\ &= \frac{\beta^\alpha}{\prod_{i=1}^n (x_i!) \Gamma(\alpha)} \Gamma(\sum_{i=1}^n x_i + \alpha) \left(\frac{1}{n+\beta}\right)^{\sum_{i=1}^n x_i + \alpha} \end{aligned} f(x)=0f(xλ)π(λ)dλ (连续函数需要积分,如果是离散就就求和)=0i=1n(xi!)enλλi=1nxiΓ(α)βαλα1eλβdλ=i=1n(xi!)Γ(α)βα0e(n+β)λλi=1nxi+α1dλ=(n+β1)i=1nxi+αi=1n(xi!)Γ(α)βα0e(n+β)λ((n+β)λ)(i=1nxi+α)1d(n+β)λ=i=1n(xi!)Γ(α)βαΓ(i=1nxi+α)(n+β1)i=1nxi+α

    根据贝叶斯定理求解 λ \lambda λ的后验分布:

    π ( λ ∣ x ) = f ( x ∣ λ ) π ( λ ) f ( x ) = e − n λ λ ∑ i = 1 n x i ∏ i = 1 n ( x i ! ) β α λ α − 1 e − λ β Γ ( α ) ∏ i = 1 n ( x i ! ) Γ ( α ) ( n + β ) ∑ i x i + α β α Γ ( ∑ i = 1 n x i + α ) = e − ( n + β ) λ λ ∑ i x i + α − 1 ( n + β ) ∑ i x i + α Γ ( ∑ i = 1 n x i + α ) \begin{aligned} \pi(\lambda|\boldsymbol{x}) &= \frac{f(\boldsymbol{x}|\lambda) \pi(\lambda)}{f(\boldsymbol{x})} \\ &= \frac{e^{-n\lambda}\lambda^{\sum_{i=1}^n x_i}}{\prod_{i=1}^n (x_i!)} \frac{\beta^\alpha \lambda^{\alpha-1} e^{-\lambda \beta}}{\Gamma(\alpha)} \frac{\prod_{i=1}^n (x_i!) \Gamma(\alpha) (n+\beta)^{\sum_i x_i + \alpha}}{\beta^\alpha \Gamma(\sum_{i=1}^n x_i + \alpha) } \\ &= \frac{e^{-(n+\beta)\lambda} \lambda^{\sum_i x_i + \alpha - 1} (n+ \beta)^{\sum_i x_i + \alpha}}{\Gamma(\sum_{i=1}^n x_i + \alpha)} \end{aligned} π(λx)=f(x)f(xλ)π(λ)=i=1n(xi!)enλλi=1nxiΓ(α)βαλα1eλββαΓ(i=1nxi+α)i=1n(xi!)Γ(α)(n+β)ixi+α=Γ(i=1nxi+α)e(n+β)λλixi+α1(n+β)ixi+α

    上面的式子很复杂,但其实它是一个Gamma分布: π ( λ ∣ x ) ∼ Γ ( ∑ i = 1 n x i + α , n + β ) \pi(\lambda|\boldsymbol{x}) \sim \Gamma\left(\sum_{i=1}^n x_i + \alpha, n+\beta \right) π(λx)Γ(i=1nxi+α,n+β)

    上面的求解过程还是太复杂,其实有更简便的方法。因为共轭先验分布是Gamma分布,所以后验分布肯定也是Gamma,我们可以直接凑出后验分布的形式,但不是很直观,略过。

    求解(2) Square error下的贝叶斯估计就是后验分布的期望。对于 X ∼ Γ ( α , β ) X \sim \Gamma( \alpha, \beta ) XΓ(α,β) E X = α β EX = \frac{\alpha}{\beta} EX=βα. 所以对于本问题: λ ^ b a y e s = ∑ i = 1 n x i + α n + β \hat{\lambda}_{bayes} = \frac{\sum_{i=1}^n x_i + \alpha}{n+\beta} λ^bayes=n+βi=1nxi+α

    可以看到先验分布中 λ \lambda λ服从参数为 α \alpha α β \beta β的Gamma分布,在观察到一些数据后, λ \lambda λ仍然是服从Gamma分布的,只不过参数得到了修正,变成了 ∑ i = 1 n x i + α \sum_{i=1}^n x_i + \alpha i=1nxi+α n + β n+\beta n+β. 这就是贝叶斯估计的思想,先假设参数服从某个分布,可能会有偏差。有偏差不要紧,我们将观察到的数据(样本)带入贝叶斯估计的过程便可以修正这些偏差, α \alpha α β 就 是 修 正 因 子 \beta就是修正因子 β

    二项分布的例子(点击率的贝叶斯平滑)

    问题:已知 X 1 , X 2 , . . . , X n X_1, X_2, ..., X_n X1,X2,...,Xn是iid的,服从伯努利(Bernouli), X i ∼ B e r ( r ) X_i \sim Ber(r) XiBer(r). r r r是要估计的参数。 (1) 利用 r r r的共轭先验求 r r r的后验分布 (2) 求在square error下 r r r的贝叶斯估计 r ^ b a y e s \hat{r}_{bayes} r^bayes

    求解(1)

    依题意,可以写出数据的分布:

    f ( x ∣ r ) = r ∑ x i ( 1 − r ) n − ∑ x i  (单个pdf连乘) f(\boldsymbol{x}|r) = r^{\sum x_i} (1-r)^{n-\sum x_i} \text{ (单个pdf连乘)} f(xr)=rxi(1r)nxi (单个pdf连乘)

    二项分布的共轭先验是Beta分布,长这个样子: π ( r ) ∼ B e t a ( α , β ) = Γ ( α + β ) Γ ( α ) + Γ ( β ) r α − 1 ( 1 − r ) β − 1 \pi(r) \sim Beta(\alpha, \beta) = \frac{\Gamma(\alpha + \beta)}{\Gamma({\alpha}) + \Gamma({\beta})} r^{\alpha-1} (1-r)^{\beta - 1} π(r)Beta(α,β)=Γ(α)+Γ(β)Γ(α+β)rα1(1r)β1

    不同于第一个例子,这里不根据 π ( θ ∣ x ) = f ( x ∣ θ ) π ( θ ) f ( x ) \pi(\theta|\boldsymbol{x}) = \frac{f(\boldsymbol{x}|\theta)\pi(\theta)}{f(\boldsymbol{x})} π(θx)=f(x)f(xθ)π(θ)来求后验分布,而是用比较简单的拼凑法来求。

    注意到 π ( θ ∣ x ) = f ( x ∣ θ ) π ( θ ) f ( x ) \pi(\theta|\boldsymbol{x}) = \frac{f(\boldsymbol{x}|\theta)\pi(\theta)}{f(\boldsymbol{x})} π(θx)=f(x)f(xθ)π(θ)的分母与参数 θ \theta θ无关,因此可以认为 π ( θ ∣ x ) \pi(\theta|\boldsymbol{x}) π(θx)的分布近似于 f ( x ∣ θ ) π ( θ ) f(\boldsymbol{x}|\theta)\pi(\theta) f(xθ)π(θ)的形式。

    π ( r ∣ x ) ∝ π ( r ) × f ( x ∣ r ) ∝ r α − 1 ( 1 − r ) β − 1 × r ∑ x i ( 1 − r ) n − ∑ x i (其余部分与参数无关,省略) ∝ r ∑ x i + α − 1 ( 1 − r ) n − ∑ x i + β − 1 ∝ 1 B ( α + ∑ x i , n − ∑ x i + β ) r ∑ x i + α − 1 ( 1 − r ) n − ∑ x i + β − 1 (凑出Beta分布的形式) \begin{aligned} \pi(r|\boldsymbol{x}) &\propto \pi(r) \times f(\boldsymbol{x}|r) \\ &\propto r^{\alpha - 1} (1-r)^{\beta - 1} \times r^{\sum x_i} (1-r)^{n-\sum x_i} \text{(其余部分与参数无关,省略)} \\ &\propto r^{\sum x_i+\alpha - 1} (1-r)^{n-\sum x_i+\beta - 1} \\ & \propto \frac{1}{B(\alpha + \sum x_i, n-\sum x_i + \beta)}r^{\sum x_i+\alpha-1}(1-r)^{n-\sum x_i+\beta-1} \text{(凑出Beta分布的形式)} \end{aligned} π(rx)π(r)×f(xr)rα1(1r)β1×rxi(1r)nxi(其余部分与参数无关,省略)rxi+α1(1r)nxi+β1B(α+xi,nxi+β)1rxi+α1(1r)nxi+β1(凑出Beta分布的形式)

    上式中: B ( α + x , n − x + β ) = Γ ( α + x + n − x + β ) Γ ( α + x ) + Γ ( n − x + β ) = Γ ( α + β + n ) Γ ( α + x ) + Γ ( n − x + β ) B(\alpha + x, n-x + \beta) = \frac{\Gamma(\alpha + x + n - x + \beta)}{\Gamma(\alpha + x) + \Gamma(n - x +\beta)} = \frac{\Gamma(\alpha + \beta + n)}{\Gamma(\alpha+ x) + \Gamma(n-x+\beta)} B(α+x,nx+β)=Γ(α+x)+Γ(nx+β)Γ(α+x+nx+β)=Γ(α+x)+Γ(nx+β)Γ(α+β+n).

    所以最终后验分布的形式是: π ( r ∣ x ) ∼ B e t a ( α + ∑ x i , n − ∑ x i + β ) \pi(r|\boldsymbol{x}) \sim Beta(\alpha + \sum x_i, n-\sum x_i+\beta) π(rx)Beta(α+xi,nxi+β)

    求解(2)

    Square error下的贝叶斯估计是后验分布的期望,在这里即为 B e t a ( α + x , n − x + β ) Beta(\alpha + x, n-x+\beta) Beta(α+x,nx+β)的期望。其期望如下: r ^ b a y e s = E ( r ∣ X ) = α + ∑ x i α + ∑ x i + n − x + β = α + ∑ x i α + β + n \hat{r}_{bayes} = E(r|X) = \frac{\alpha+\sum x_i }{\alpha+\sum x_i + n-x + \beta} = \frac{\alpha+\sum x_i }{\alpha + \beta + n} r^bayes=E(rX)=α+xi+nx+βα+xi=α+β+nα+xi

    二项分布贝叶斯估计的应用示例(点击率的贝叶斯平滑)

    这个例子有实际应用的背景。 X i X_i Xi可以认为是一件商品或一则广告,对于网页上的广告,用户看到了算是一次曝光(impression或exposure),看到之后用户只有点击与不点击两种情况,点击取1,不点击取0,那么 ∑ x i \sum x_i xi的实际意义就是点击次数,而 n n n就是曝光次数。令 C = ∑ x i C=\sum x_i C=xi I = n I=n I=n C I \frac{C}{I} IC就是点击率了,用 r r r表示点击率,那么上式中的 r ^ b a y e s \hat{r}_{bayes} r^bayes就是点击率的贝叶斯估计,也称为点击率的贝叶斯平滑,式中的 α \alpha α β \beta β是平滑参数。

    通常是先通过样本计算 ∑ x i / n \sum x_i / n xi/n得到基础点击率,但是当样本很少,或者 ∑ x i \sum x_i xi为0时(比如新商品上架,最开始没有点击),需要对点击率做平滑,平滑参数参数 α \alpha α β \beta β可以从历史数据中计算(估计)得到,相当于先验知识。如何计算平滑参数可以参考另一篇文章:转化率(CTR)预测的贝叶斯平滑。

    转载请注明原文地址: https://ju.6miu.com/read-969322.html

    最新回复(0)