《Parameter estimation for text analysis》阅读笔记(三)

本文内容为Parameter estimation for text analysis阅读笔记第三篇,如有错误或疏漏之处,恳请各位批评指正!

简介:

虽然贝叶斯模型的计算往往非常棘手(evidence往往难以求得),但由于我们可以自由选择我们的先验(prior belief),我们往往采用共轭先验分布(conjugate prior distributions)。

1. 共轭(Conjugacy)

假设p(\vartheta)p(x|\vartheta)的共轭先验,那么在Bayes's rule中,后验函数p(\vartheta|x) 和先验函数p(\vartheta) 往往具有相同的形式(同时Bayes' rule中的分母计算也较为简单),并且后验将在先验的基础上通过参数化(parameterization)的方式将观测数据包含在后验分布的参数中。除此之外,共轭的方法同样也会给hyperparameter一种较好的解释。在原文中给出的例子里,后验可以被视作先验中的超参数(作为伪计数(pseudo counts))与观测数据计数n^{(c)} 的结合。

共轭先验-似然函数对使得我们可以通过marginalise的方法消去observations中的likelihood的参数,转而直接使用hyperparameters来描述observations的分布函数。以该文中的例子进行解释:

\LARGE \LARGE p(C|\alpha, \beta)\\ =\int_0^1p(C|p)p(p|\alpha, \beta)\text{d}p\\ =\int_0^1\ p^{n^{(1)}}(1-p)^{n^{(0)}}\frac{1}{B(\alpha, \beta)}p^{\alpha-1}(1-p)^{\beta-1}\text{d}p\\ =\frac{1}{B(\alpha, \beta)}\int_0^1p^{n^{(1)}+\alpha-1}(1-p)^{n^{(0)}+\beta-1}\text{d}p\\ =\frac{B(n^{(1)}+\alpha, n^{(0)}+\beta)}{B(\alpha, \beta)}\\ =\frac{\Gamma(n^{(1)}+\alpha)\Gamma(n^{(0)}+\beta)}{\Gamma(n^{(1)}+n^{(0)}+\alpha+\beta)}\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}

由最终的式子可以看出,在利用共轭先验的情况下,我们可以仅仅利用hyperparameters来表示observations的分布,从而绕开了计算似然函数的参数p时所可能遇到的问题。换句话说,当利用共轭分布时,分母难以计算的问题被解决了。因此,我们可以仅仅根据prior和observations来对未来出现的(Bernoulli)实验结果进行预测,即:

\LARGE p(\widetilde{c}=1|C, \alpha, \beta)\\ =\frac{p(\widetilde{c}=1, C|\alpha, \beta)}{p(C|\alpha, \beta)}\\ =\frac{\frac{\Gamma(n^{(1)}+1+\alpha)}{\Gamma(n^{(1)}+1+n^{(0)}+\alpha+\beta)}}{\frac{\Gamma(n^{(1)}+\alpha)}{\Gamma(n^{(1)}+\alpha+n^{(0)}+\beta)}}\\ =\frac{n^{(1)}+\alpha}{n^{(1)}+\alpha+n^{(0)}+\beta}

由上式可以发现,此处我们没有对参数p进行任何估计,也就是说,我们直接跨过了参数估计这一步,同样是利用Bayesian inference的方法,但通过公式推导避开了可能需要进行计算的参数p,而直接通过Bayes' rule,利用observations和prior对可能遇到的新数据进行了预测,相当于是对Bayesian inference的一种简化。这是共轭先验-似然函数对的优势。

此处我们引入binomial distribution,它描述的是:假设我们的N次Bernoulli实验中,有n^{(1)}次是正面朝上的(并不知道是哪n^{(1)}次),那么在这么多次实验下,该硬币正面朝上的概率为p的可能性有多大:

\LARGE p(n^{(1)}|p, N)=\binom{N}{n^{(1)}}p^{n^{(1)}}(1-p)^{n^{(0)}}\triangleq Bin(n^{(1)}|p, N)

同Bernoulli 分布一样,binomial分布的共轭先验也是Beta分布。需要注意的一点是,由于我们只知道统计后的频率结果,也即只知道其中有n^{(1)}次是硬币朝上的情况,因此我们要考虑所有可能导致“n^{(1)}次是硬币朝上”的结果出现的实验,这样的实验数量可以通过组合数\binom{N}{n^{(1)}}的计算得到,因此该分布会有一个因子是\binom{N}{n^{(1)}}

2. 多变量的情况

如果我们考虑Bernoulli实验的结果不止2种,而是有K种,那么我们就会得到一个K维的Bernoulli实验(multinomial experiement),就像是在掷骰子。如果我们重复进行该实验,即可得到一个关于观测事件(observed events)的多项式分布,该分布是binomial distribution的generalize:

\LARGE p(\vec{n}|\vec{p}, N)=\binom{N}{\vec{n}}\prod_{k=1}^Kp_k^{n^{(k)}}\triangleq Mult(\vec{n}|\vec{p}, N)

其中,\vec{p}\vec{n}满足\sum_kp_k=1\sum_kn^{(k)}=N

而一个单独的multinomial trial将Bernoulli distribution generalizes到一个discrete categorical distribution上:

\LARGE p(\vec{n}|\vec{p})=\prod_{k=1}^Kp_k^{n^{(k)}}=Mult(\vec{n}|\vec{p}, 1)

其中\vec{n}只有在被选到的那个event z上的值为1,其余地方的值均为0,因此我们可以将上式进行简化:

\LARGE p(z|\vec{p})=p_z\triangleqMult(z|\vec{p})

此时引入一个多项式随机变量C。当对该multinomial experiment重复N次后,该随机变量C的likelihood函数为:

《Parameter estimation for text analysis》阅读笔记(三)_第1张图片

需要注意的是,不同于binomial generalizes出来的multinomial distribution,这里的distribution并没有加系数,因为这里的概率表示的是某一个特定的N次multinomial experiment得出来的结果,而非在某一种统计结果下,各种实验可能性之和。换句话说,这里每一次sample出来的都是不一样的随机变量的取值,这些随机变量间是i.i.d的,且这些随机变量都仅含一次K维的Bernoulli experiment。而刚才出现组合数的概率分布式中,我们只有唯一的一个随机变量,但这个随机变量包含了多次K维的Bernoulli experiments。所以说,这个乘积(likelihood)并不是multinomial distribution,而是说这个乘积中的每一项都是Multinomial的。

对于上式所示的likelihood,由于其中的乘积项服从multinomial distribution,所以我们可以用该distribution的共轭先验Dirichlet distribution,来对参数\vec{p}的分布进行设定。

Dirichlet函数是Beta函数在多维度上的generalize,其表示形式如下:

\LARGE p(\vec{p}|\vec{\alpha})\\ =Dir(\vec{p}|\vec{\alpha})\triangleq\frac{\Gamma(\sum_{k=1}^K\alpha_k)}{\prod_{k=1}^K\Gamma(\alpha_k)}\prod_{k=1}^Kp_k^{\alpha_k-1}\\ \triangleq\frac{1}{\Delta(\vec{\alpha})}\prod_{k=1}^Kp_k^{\alpha_k-1}, \Delta(\vec{\alpha})=\frac{\prod_{k=1}^K\Gamma(\alpha_k)}{\sum_{k=1}^K\Gamma(\alpha_k)}

在Dirichlet distribution中,有一类特殊的Dirichlet distribution,被称为symmetric Dirichlet distribution,此时的\vec{\alpha}参数将由标量{\alpha}替代。假设我们的参数\vec{p}有K维的话,那么此时有p的先验分布函数:

《Parameter estimation for text analysis》阅读笔记(三)_第2张图片

其中,\Delta_K(\vec{\alpha})=\frac{\Gamma(\alpha)^K}{\Gamma(K\alpha)}

3. 文本建模

从此处开始,我们将讨论文本建模中的内容。假设我们所能观察到的文字串为\mathcal{W}, 其中包含了N个独立同分布的文字,它们都是从一个随机变量W中sample出来的(类比于上一节中的“多项式随机变量C”)。我们同时也可以将这样sample出来的文字看作是从一个大小为V的词表\mathcal{V}(类比于event z)中sample出来的。这样sample出来的N个单词的likelihood可以表示为:

\LARGE L(\vec{p}|\vec{w})=p(\mathcal{W}|\vec{p})=\prod_{t=1}^Vp_t^{n^{(t)}}

其中,\sum_{t=1}^Vp_t =1\sum_{t=1}^Vn^{(t)}=N

类比于上一节所述的multinomial distribution公式的变换,我们不难得知,这里sample出来的每一个单词同样也服从multinomial distribution。通过这个likelihood公式,我们可以估计出一组\vec{p}的值,因此,这里进行参数估计的前提是:在整个corpus中的所有单词,都统一是从同一个multinomial distribution中sample出来的(也即\vec{p}的值唯一)。

我们将这种模型称为“unigram model”。在unigram模型中,它所做出的假设是,在整个corpus上,likelihood函数是唯一的,也即p(\mathcal{X}|\vec{p})中的\vec{p}是fix住的 (可能有人会问:为什么\vec{p}是fix住的?那用\mathcal{L}(\vec{p}|\mathcal{X})来解释的话,\vec{p}不应该是变量?首先我们要清楚,likelihood函数中,当\vec{p}作为变量时,是因为我们要对\vec{p}进行估计。就好比说一个线性模型公式中,它的每一个变量都带有一个系数,但只有当我们在估计这些系数的时候,这些系数(\vec{p})才是“变量”,这些变量(\mathcal{X})才是“常数”,除此之外,正常情况下,当这些系数固定时,自然这个线性模型就定型了,自然就成了唯一的了。而当我们得到了两组不同的系数时,才可以说,我们有两个不同的线性模型。同样,当我们只会得到唯一一组\vec{p}时,我们的likelihood函数就是唯一的)。

这样的模型有一个问题:在一个corpus中,我们的document往往不只有一个,而对于不同的document,如果它们所描述的内容本身就大相径庭,那么这些documents的单词的分布自然差异较大,此时它们共有同一组\vec{p}就显然是一种不合理的假设。

正如在第(二)节所讲的顺序那样,此时我们不再只单纯关注一个likelihood,而是同时引入关于参数\vec{p}的先验。那么这个参数的先验应该长什么样子呢?联想到共轭先验分布的一些优良性质,此时我们尝试采用Dirichlet distribution,并假设\vec{p}是服从这个分布的:\vec{p}\sim Dir(\vec{p}|\vec{\alpha})。可能此时有人会想着,接下来就可以求MAP了。可以是可以,但既然有了共轭先验,我们求Bayes' rule中的分母就变得容易多了,因此我们完全有能力将后验分布的整个表达式求出来(等有了后验表达式后,MAP就可以很轻易地根据概率密度最大值求得):

\LARGE p(\vec{p}|\mathcal{W}, \vec{\alpha})\\ =\frac{\prod_{n=1}^Np(w_n|\vec{p})p(\vec{p}|\vec{\alpha})}{\int_{p}\prod_{n=1}^Np(w_n|\vec{p})p(\vec{p}|\vec{\alpha})\text{d}p}\\ =\frac{1}{Z}\prod_{t=1}^Vp_t^{n^{(t)}}\frac{1}{\Delta(\vec{\alpha})}p_t^{\alpha_t-1}\\ =\frac{1}{\Delta(\vec{\alpha}+\vec{n})}\prod_{t=1}^Vp_t^{\alpha_t+n^{(t)}-1}\\ =Dir(\vec{p}|\vec{\alpha}+\vec{n})

(没理解这里)这种参数更新的方式被称为:P\acute{o}lya\ urn\ scheme,即我们有一个缸(urn), 里面装有V种颜色的W个小球,我们每次从中sample出一个小球\widetilde{w},观察它的颜色,然后将它放回,并同时给urn中再放一个一模一样的小球。所以urn中的小球数量是增加的。作者说,这里的Dirichlet所呈现的是一种“rich get richer”(或者可以说是clustering)的动作。

(个人理解)类比于文本建模,

显然,固定一个参数\vec{p}, 然后对生成文本的概率进行计算(unigram)是有许多问题的,所以我们希望能够直接通过我们所得到的observations和prior,来直接对生成文本的概率进行计算。此时我们可以通过利用Dirichlet distribution中的hyperparameter(伪计数)\vec{\alpha}以及marginalizing掉参数\vec{p}的方法来实现我们的目标:

\LARGE p(\mathcal{W}|\vec{\alpha})=\int_{\vec{p}\in \mathcal{P}}p(\mathcal{W}|\vec{p})p(\vec{p}|\vec{\alpha})\text{d}^V\vec{p}

由于参数\vec{p}具有约束条件\sum_kp_k=1, 因此该参数所在的范围\mathcal{P}是embeds在K维空间中的一个K-1维的单纯形,这个单纯形由所有p_k=1的点连线所形成,如下图所示:

《Parameter estimation for text analysis》阅读笔记(三)_第3张图片

所以我们继续推导上面的公式:

\LARGE p(\mathcal{W}|\vec{\alpha})\\ =\int_{\vec{p}\in\mathcal{P}}\prod_{n=1}^NMult(W=w_n|\vec{p}, 1)Dir(\vec{p}|\vec{\alpha})\text{d}\vec{p}\\ =\int_{\vec{p}\in\mathcal{P}}\prod_{v=1}^Vp_v^{n^{(v)}}\frac{1}{\Delta(\vec{\alpha})}\prod_{v=1}^Vp_v^{\alpha_v-1}\text{d}^V\vec{p}\\ =\frac{1}{\Delta(\vec{\alpha})}\int_{\vec{p}\in\mathcal{P}}\prod_{v=1}^Vp_v^{n^{(v)}+\alpha_v-1}\text{d}^V\vec{p}\\ =\frac{\Delta(\vec{n}+\vec{\alpha})}{\Delta(\vec{\alpha})}, \vec{n}=\{n^{(v)}\}_{v=1}^V

p(C|\alpha, \beta)的求解类似,通过上式对文本分布的建模,我们只需要得知先验分布的参数和observations的信息,而在避开似然函数参数的求解的前提下,即计算得到文本概率分布公式。

你可能感兴趣的:(《Parameter estimation for text analysis》阅读笔记(三))