通俗理解LDA主题模型

理解LDA,可以分为如下5个步骤:

  • 一个函数:gamma函数
  • 四个分布:二项分布、多项分布、beta分布、Dirichlet分布
  • 两个模型:PLSA、LDA
  • 一个采样:Gibbs采样

本文按照上述五个步骤来阐述,希望读者看完本文后,能对LDA有个尽量清晰完整的理解。

gamma函数

整体把握LDA

关于LDA·有两种含义,一种是线性判别分析(Liner Discriminant Analysis),一种是概率主题模型:隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),本文讲后者。

首先,简单说下LDA的整体思想,明白整体框架后,咱们再一步步抽丝剥茧,展开来论述。

根据维基百科的介绍,LDA由Blei, David M.、Ng, Andrew Y.、Jordan于2003年提出,是一种主题模型,它可以将文档集 中每篇文档的主题以概率分布的形式给出从而通过分析一些文档抽取出它们的主题(分布)出来后,便可以根据主题(分布)进行主题聚类或文本分类。同时,它是一种典型的词袋模型,即一篇文档是由一组词构成,词与词之间没有先后顺序的关系。

此外,一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。

人类是怎么生成文档的呢?LDA的这三位作者在原始论文中给了一个简单的例子。比如假设事先给定了这几个主题:Arts、Budgets、Children、Education,然后通过学习训练,获取每个主题Topic对应的词语。如下图所示:
通俗理解LDA主题模型_第1张图片
然后以一定的概率选取上述某个主题,再议一定的概率选取那个主题下的某个单词,不断地重复这两步,最终生成如下图所示的一篇文章(其中不同颜色的词语分别对应上图中不同主题的词):
通俗理解LDA主题模型_第2张图片
而当我们看到一篇文章后,往往喜欢推测这篇文章是如何生成的,我们可能会认为作者先确定这篇文章的几个主题,然后围绕这几个主题遣词造句,表达成文。

LDA就是要干这件事:根据给定的一篇文档,反推其主题分布。

通俗来说,可以假定认为人类是根据上述文档生成过程写成了各种各样的文章,现在某小撮人想让计算机利用LDA干一件事:你计算机给我推测分析网络上各篇文章分别都写了些啥主题,且各篇文章中各个主题出现的概率大小(主题分布)是啥

但是,就是这么一个看似普通的LDA,一度吓退了不少想深入探究其内部原理的初学者。难在哪呢,难就难在LDA内部涉及到的数学知识点太多了。

LDA模型中,一篇文档生成的方式如下:

  • 从狄利克雷分布 α \alpha α中取样生成文档 i i i 的主题分布 θ i \theta_{i} θi
  • 从主题的多项式分布 θ i \theta_{i} θi中取样生成文档 i i i j j j 个词的主题 z i , j z_{i,j} zi,j
  • 从狄利克雷分布 β \beta β中取样生成主题 z i , j z_{i,j} zi,j对应的词语分布 ϕ z i , j \phi_{z_{i, j}} ϕzi,j
  • 从词语的多项式分布 ϕ z i , j \phi_{z_{i, j}} ϕzi,j中采样最终生成词语 w i , j w_{i,j} wi,j

其中,类似 B e t a Beta Beta分布是二项式分布的共轭先验概率分布,而狄利克雷分布(Dirichlet分布)是多项式分布的共轭先验概率分布。

此外,LDA的图模型结构如下图所示:
通俗理解LDA主题模型_第3张图片
嗯, 不错,短短6句话整体概括了整个LDA的主体思想!但也就是上面短短6句话,却接连不断或重复出现了二项分布、多项式分布、beta分布、狄利克雷分布(Dirchlet分布)、共轭先验概率分布、取样,下面,我们依次分别介绍他们。

二项分布(Binomial distribution)

二项分布是从伯努利分布推出来的。
伯努利分布:在一次实验中,事件A出现的概率为 p p p,不出现的概率为 q = 1 − p q=1-p q=1p.若以 β \beta β记事件A出现的次数,则 β \beta β仅取0,1两值,相应的概率分布为:
b k = P β = k = p k q ( 1 − k ) ) , k = 0 , 1 \left.b_{k}=P \beta=k=p^{k} q^{(1-k)} \right), k=0,1 bk=Pβ=k=pkq(1k)),k=0,1

二项分布是指在只有两个结果的 n n n次独立的伯努利试验中,所期望的结果出现次数的概率。在单次试验中,结果 A A A出现的概率为 p p p,结果 B B B出现的概率为 q q q p + q = 1 p+q=1 p+q=1。那么在 n = 10 n=10 n=10,即10次试验中,结果A出现0次、1次、……、10次的概率各是多少呢?这样的概率分布呈现出什么特征呢?这就是二项分布所研究的内容。

还是先举个例子吧。

掷一枚硬币,出现正面和反面的概率各为0.5,那么掷1次,出现正面的概率肯定是0.5。掷2次、掷3次呢?

掷2次出现的结果有4个,正正、正反、反正、反反。因为p=0.5,所以每个结果出现的概率是0.5×0.5=0.25,那正面出现2次、1次、0次的概率分别是0.25、0.5、0.25。

掷3次出现的结果有8个,正正正、正正反、正反正、正反反、反正正、反正反、反反正、反反反。每个结果出现的概率是0.5×0.5×0.5=0.125,那正面出现3次、2次、1次、0次的概率分别是0.125、0.375、0.375、0.125。

统计学家们总结出了计算概率的一般公式
b ( x , n , p ) = C n x p x q n − x b(x, n, p)=C_{n}^{x} p^{x} q^{n-x} b(x,n,p)=Cnxpxqnx

其中 b b b表示二项分布的概率, n n n表示试验次数, x x x表示出现某个结果的次数。是组合,表示在 n n n次试验中出现x次结果的可能的次数。如10次试验,出现0次正面的次数有1次,出现1次正面的次数有10次,……,出现5次正面的次数有252次,等等。其计算也有一个通式:
C n x = n × ( n − 1 ) × ⋯ × ( n − x + 1 ) x × ( x − 1 ) × ⋯ × 1 C_{n}^{x}=\frac{n \times(n-1) \times \cdots \times(n-x+1)}{x \times(x-1) \times \cdots \times 1} Cnx=x×(x1)××1n×(n1)××(nx+1)
也可以写成:
C n x = n ! ( n − x ) ! x ! C_{n}^{x}=\frac{n !}{(n-x) ! x !} Cnx=(nx)!x!n!

多项分布,是二项分布拓展到多维的情况

多项分布是指单次实验中的随即变量的取值不再是0-1的,而是有多种离散值可能(1,2,3,…,k).比如投掷6个面的骰子实验,N次实验结果服从K=6的多项分布。其中,
∑ i = 1 k p i = 1 , p i > 0 \sum_{i=1}^{k} p_{i}=1, p_{i}>0 i=1kpi=1,pi>0

多项分布的概率密度函数为:
P ( x 1 , x 2 , … , x k ; n , p 1 , p 2 , … , p k ) = n ! x 1 ! ⋯ x k ! p 1 x 1 ⋯ p k x k P\left(x_{1}, x_{2}, \ldots, x_{k} ; n, p_{1}, p_{2}, \ldots, p_{k}\right)=\frac{n !}{x_{1} ! \cdots x_{k} !} p_{1}^{x_{1}} \cdots p_{k}^{x_{k}} P(x1,x2,,xk;n,p1,p2,,pk)=x1!xk!n!p1x1pkxk

Beta分布,二项分布的共轭先验分布

有一枚硬币,假设抛了三次,三次都是花,那么就能够说明它两面都是花吗?

1. 贝叶斯推断
按照传统的算法,抛了三次得到三次花,那么花的概率应该是:
p = 3 3 = 100 % p=\frac{3}{3}=100 \% p=33=100%
但是抛三次实在是太少了,完全有可能是运气问题,我们应该怎么办呢?

贝叶斯认为在实验之前,应根据不同的情况对硬币有所假设。不同的假设会得到不同的推断。

比如和滑不留手的韦小宝玩。韦小宝可能拿出各种做过手脚的硬币,让我们猜不透,只能假设对硬币一无所知。这种假设之下,我们就只能根据实验结果来猜测。

因此,实验结果是扔三次,三次花,倾向于认为韦小宝有可能作弊:
通俗理解LDA主题模型_第4张图片
大侠陈静楠用的可能是公平硬币:
通俗理解LDA主题模型_第5张图片
而坏坏的多隆,真的有可能用两面花来和你玩:
通俗理解LDA主题模型_第6张图片
各种假设称为先验分布,结合刚才扔三次,三次花的实验数据,推断出硬币的后验分布,这就是贝叶斯推断:
在这里插入图片描述
2. Beta分布

那么问题来了,先验分布,后验分布用数学怎么表示:
通俗理解LDA主题模型_第7张图片
对于扔硬币,Beta分布非常适合用来完成这个任务。

2.1 先验分布

Beta分布简记为:
Beta ⁡ ( a , b ) \operatorname{Beta}(a, b) Beta(a,b)

根据 a , b a,b a,b参数的不同,形态各异:
通俗理解LDA主题模型_第8张图片
这个特性非常适合用来做先验分布。比如,在韦小宝面前,我们对硬币一无所知。

贝叶斯说,一无所知也就是意味着任何 概率都是一样的,都是有可能的,所以选用均匀分布
通俗理解LDA主题模型_第9张图片
Beta(1,1)真好就是均匀分布:
通俗理解LDA主题模型_第10张图片
正直的陈静楠,可能用的是公平硬币,也就是说概率在0,1之间(0表示字,1表示花),Beta(5,5)可以表示这样的分布:
通俗理解LDA主题模型_第11张图片
而坏坏的多隆,可能用了两面花,也就是说概率可能集中到1附近,Beta(5,1)可以表示这样的分布:
通俗理解LDA主题模型_第12张图片
也就是说可以用Beta分布来模拟各种先验分布:

  • 一无所知:Beta(1,1)
  • 公平硬币:Beta(5,5)
  • 两面花:Beta(5,1)

2.2 后验分布

用Beta分布来模拟扔硬币的先验分布之后,通过贝叶斯推断,得到的后验分布依然是Beta分布:
在这里插入图片描述
具体到这里:
在这里插入图片描述
再具体到韦小宝的情况就是:
在这里插入图片描述
其中,用(3,0)来表示实验数据,意思是3次花,0次字。

图像上的变化就是:
通俗理解LDA主题模型_第13张图片
可以看到,作弊的可能性还是非常大的。

陈静楠的情况:
通俗理解LDA主题模型_第14张图片
结合试验数据之后,图像的中心从0.5往0.6方向移动了,作弊可能性有所增加,不过总体来看应该是公平硬币的可能性大。

多隆的情况:
通俗理解LDA主题模型_第15张图片
更向1集中,作弊的可能性非常高。

3. 代数细节

贝叶斯推断:
在这里插入图片描述
应用到二项分布的数学细节如下。假设实验数据X|P服从二项分布:
X ∣ p ∼ bin ⁡ ( n , p ) X \mid p \sim \operatorname{bin}(n, p) Xpbin(n,p)
上面的式子根据贝叶斯定理可以表示为:
通俗理解LDA主题模型_第16张图片
其中K为花的次数,分母和实验数据无关,可以视作常数:

因此,写成下面这样更容易看清楚重点(其中 ∝ \propto 表示两者之间成比例):
通俗理解LDA主题模型_第17张图片
3.2 Beta分布

Beta长成这个样子:
在这里插入图片描述
其中,B为Beta函数

1 B ( α , β ) = Γ ( α + β ) Γ ( α ) Γ ( β ) Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t \frac{1}{B(\alpha, \beta)}=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha) \Gamma(\beta)} \quad \Gamma(z)=\int_{0}^{\infty} t^{z-1} e^{-t} d t B(α,β)1=Γ(α)Γ(β)Γ(α+β)Γ(z)=0tz1etdt

注: Γ ( x ) \Gamma(x) Γ(x)便是所谓的gamma函数,下文会具体阐述。

随着a,b的变换,Beta分布形态各异:
通俗理解LDA主题模型_第18张图片
3.3 共轭先验

对于二项式分布,用 B e t a Beta Beta分布作为先验分布,通过贝叶斯推断之后,后验分布依然是Beta分布:
在这里插入图片描述
这种特性称为共轭先验。

并且:
在这里插入图片描述

Dirichlet分布,是beta分布在高维度上的推广

Dirichlet分布的密度函数形式和Beta分布的密度函数如出一辙:
f ( x 1 , x 2 , … , x k ; α 1 , α 2 , … , α k ) = 1 B ( α ) ∏ i = 1 k x i α i − 1 f\left(x_{1}, x_{2}, \ldots, x_{k} ; \alpha_{1}, \alpha_{2}, \ldots, \alpha_{k}\right)=\frac{1}{B(\alpha)} \prod_{i=1}^{k} x_{i}^{\alpha^{i}-1} f(x1,x2,,xk;α1,α2,,αk)=B(α)1i=1kxiαi1

其中
B ( α ) = ∏ i = 1 k Γ ( α i ) Γ ( ∑ i = 1 k α i ) , ∑ x i = 1 B(\alpha)=\frac{\prod_{i=1}^{k} \Gamma\left(\alpha^{i}\right)}{\Gamma\left(\sum_{i=1}^{k} \alpha^{i}\right)}, \sum x_{i}=1 B(α)=Γ(i=1kαi)i=1kΓ(αi),xi=1

至此,我么可以看到二项分布和多项分布很相似**,Beta分布和Dirichlet分布**很相似,而至于Beta分布是二项分布的共轭先验概率分布,而狄利克雷分布(Dirichlet分布)是多项式分布的共轭先验概率分布这点在下文中说明。

ok,接下来,咱们就按照本文开头所说的思路。

  • 一个函数:gamma函数
  • 四个分布:二项分布、多项分布、beta分布、Dirichlet分布
  • 一个概念和理念:共轭先验和贝叶斯框架
  • 两个模型:pLSA、LDA(文档-主题,主题-词语)
  • 一个采样:Gibbs采样

gamma函数

咱们先来考虑一个问题

  1. 问题:随机变量 X 1 , X 2 , ⋯   , X n   ∼ X_{1}, X_{2}, \cdots, X_{n}^{\text { }} \sim X1,X2,,Xn Uniform(0,1),服从均匀分布
    f ( x ) = 1 b − a , a < x < b f ( x ) = 0 ,  else  \begin{array}{c} f(x)=\frac{1}{b-a}, af(x)=ba1,a<x<bf(x)=0, else 

2.把这n个随机变量排序后得到顺序统计量 X ( 1 ) , X ( 2 ) ⋯   , X ( n ) X_{(1)}, X_{(2)} \cdots, X_{(n)} X(1),X(2),X(n)

3.请问 X ( k ) X_{(k)} X(k)的分布是什么

为解决这个问题,可以尝试计算 X ( k ) X_{(k)} X(k)落在区间 [ x , x + Δ x ] [x, x+\Delta x] [x,x+Δx]的概率。即求下面式子的值:
P ( x ≤ X ( k ) ≤ x + Δ x ) = ? P\left(x \leq X_{(k)} \leq x+\Delta x\right)=? P(xX(k)x+Δx)=?
首先,把 [0,1] 区间分成三段 [0,x),[x,x+Δx],(x+Δx,1],然后考虑下简单的情形:即假设 n n n 个数中只有1个落在了区间 [x,x+Δx]内,由于这个区间内的数 X k X_{k} Xk是第k大的,所以[0,x)中应该有 k−1 个数,(x+Δx,1] 这个区间中应该有n−k 个数。如下图所示:
通俗理解LDA主题模型_第19张图片
从而问题转换为下面事件E:
E = { X 1 ∈ [ x , x + Δ x ] X i ∈ [ 0 , x ) ( i = 2 , ⋯   , k ) X j ∈ ( x + Δ x , 1 ] ( j = k + 1 , ⋯   , n ) } \begin{array}{l} E=\left\{X_{1} \in[x, x+\Delta x]\right. \\ X_{i} \in[0, x) \quad(i=2, \cdots, k) \\ \left.X_{j} \in(x+\Delta x, 1] \quad(j=k+1, \cdots, n)\right\} \end{array} E={X1[x,x+Δx]Xi[0,x)(i=2,,k)Xj(x+Δx,1](j=k+1,,n)}
对于上述事件E,有:
P ( E ) = ∏ i = 1 n P ( X i ) = x k − 1 ( 1 − x − Δ x ) n − k Δ x = x k − 1 ( 1 − x ) n − k Δ x + o ( Δ x ) \begin{aligned} P(E) &=\prod_{i=1}^{n} P\left(X_{i}\right) \\ &=x^{k-1}(1-x-\Delta x)^{n-k} \Delta x \\ &=x^{k-1}(1-x)^{n-k} \Delta x+o(\Delta x) \end{aligned} P(E)=i=1nP(Xi)=xk1(1xΔx)nkΔx=xk1(1x)nkΔx+o(Δx)

其中, o ( Δ x ) o(\Delta x) o(Δx)表示 Δ x \Delta x Δx的高阶无穷小。显然,由于不同的排列组合,即n个数中有一个落在[x,x+Δx]区间的有n种取法。余下n-1个落在[0,x)的有 ( n − 1 k − 1 ) \left(\begin{array}{l}n-1 \\ k-1\end{array}\right) (n1k1)种组合,所以和事件E等价的事件一共有 n ( n − 1 k − 1 ) n\left(\begin{array}{l}n-1 \\ k-1\end{array}\right) n(n1k1)个。

如果有2个数落在区间[x,x+Δx]呢?如下图所示:
通俗理解LDA主题模型_第20张图片
类似于事件E,对于2个数落在区间[x,x+Δx]的事件 E ′ E^{\prime} E:
E ′ = { X 1 , X 2 ∈ [ x , x + Δ x ] , X i ∈ [ 0 , x ) ( i = 3 , ⋯   , k ) , X j ∈ ( x + Δ x , 1 ] ( j = k + 1 , ⋯   , n ) } \begin{array}{c} E^{\prime}=\left\{X_{1}, X_{2} \in[x, x+\Delta x]\right. \\, X_{i} \in[0, x) \quad(i=3, \cdots, k) ,\\ \left.X_{j} \in(x+\Delta x, 1] \quad(j=k+1, \cdots, n)\right\} \end{array} E={X1,X2[x,x+Δx],Xi[0,x)(i=3,,k),Xj(x+Δx,1](j=k+1,,n)}

有:
P ( E ′ ) = x k − 2 ( 1 − x − Δ x ) n − k ( Δ x ) 2 = o ( Δ x ) P\left(E^{\prime}\right)=x^{k-2}(1-x-\Delta x)^{n-k}(\Delta x)^{2}=o(\Delta x) P(E)=xk2(1xΔx)nk(Δx)2=o(Δx)

从上述的事件 E E E、事件 E ′ E^{\prime} E中,可以看出,只要落在[x,x+Δx]内的数字超过一个,则对应的事件的概率就是 o ( Δ x ) o(\Delta x) o(Δx)。于是乎有:
P ( x ≤ X ( k ) ≤ x + Δ x ) = n ( n − 1 k − 1 ) P ( E ) + o ( Δ x ) = n ( n − 1 k − 1 ) x k − 1 ( 1 − x ) n − k Δ x + o ( Δ x ) \begin{array}{l} P\left(x \leq X_{(k)} \leq x+\Delta x\right) \\ =n\left(\begin{array}{l} n-1 \\ k-1 \end{array}\right) P(E)+o(\Delta x) \\ =n\left(\begin{array}{l} n-1 \\ k-1 \end{array}\right) x^{k-1}(1-x)^{n-k} \Delta x+o(\Delta x) \end{array} P(xX(k)x+Δx)=n(n1k1)P(E)+o(Δx)=n(n1k1)xk1(1x)nkΔx+o(Δx)
从而得到 X k X_{k} Xk的概率密度函数 f x f_{x} fx为:
f ( x ) = lim ⁡ Δ x → 0 P ( x ≤ X ( k ) ≤ x + Δ x ) Δ x = n ( n − 1 k − 1 ) x k − 1 ( 1 − x ) n − k = n ! ( k − 1 ) ! ( n − k ) ! x k − 1 ( 1 − x ) n − k x ∈ [ 0 , 1 ] \begin{aligned} f(x) &=\lim _{\Delta x \rightarrow 0} \frac{P\left(x \leq X_{(k)} \leq x+\Delta x\right)}{\Delta x} \\ &=n\left(\begin{array}{c} n-1 \\ k-1 \end{array}\right) x^{k-1}(1-x)^{n-k} \\ &=\frac{n !}{(k-1) !(n-k) !} x^{k-1}(1-x)^{n-k} \quad x \in[0,1] \end{aligned} f(x)=Δx0limΔxP(xX(k)x+Δx)=n(n1k1)xk1(1x)nk=(k1)!(nk)!n!xk1(1x)nkx[0,1]

至此,本文开头提出的问题得到解决。然而仔细观察 X k X_{k} Xk的概率密度函数,发现式子的最终结果有阶乘,联想到阶乘在实数上的推广 Γ ( x ) \Gamma(x) Γ(x)函数:
Γ ( x ) = ∫ 0 ∞ t x − 1 e − t d t \Gamma(x)=\int_{0}^{\infty} t^{x-1} e^{-t} d t Γ(x)=0tx1etdt
通过分布积分的方法,可以推导出这个函数有如下的递归性质:
Γ ( x + 1 ) = x Γ ( x ) \Gamma(x+1)=x \Gamma(x) Γ(x+1)=xΓ(x)

两种结合是否会产生奇妙的效果呢?于是很容易证明, Γ ( x ) \Gamma(x) Γ(x)函数可以当成是阶乘在实数集上的延伸,具有如下性质:
Γ ( n ) = ( n − 1 ) ! \Gamma(n)=(n-1) ! Γ(n)=(n1)!

故将代入到 X k X_{k} Xk的概率密度函数 f x f_{x} fx中,可得:
f ( x ) = Γ ( n + 1 ) Γ ( k ) Γ ( n − k + 1 ) x k − 1 ( 1 − x ) n − k f(x)=\frac{\Gamma(n+1)}{\Gamma(k) \Gamma(n-k+1)} x^{k-1}(1-x)^{n-k} f(x)=Γ(k)Γ(nk+1)Γ(n+1)xk1(1x)nk
然后取 α = k , β = n − k + 1 \alpha=k, \beta=n-k+1 α=k,β=nk+1,转换 f x f_{x} fx得到:
f ( x ) = Γ ( α + β ) Γ ( α ) Γ ( β ) x α − 1 ( 1 − x ) β − 1 f(x)=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha) \Gamma(\beta)} x^{\alpha-1}(1-x)^{\beta-1} f(x)=Γ(α)Γ(β)Γ(α+β)xα1(1x)β1

如果熟悉beta分布的朋友,可能会惊呼:哇,竟然推出了beta分布。

beta分布

beta分布

在概率论中,beta是指一组定义在(0,1)区间的连续概率分布,有两个参数 α \alpha α, β \beta β,且 α \alpha α, β \beta β>0.

beta分布的概率密度函数是:
f ( x ; α , β ) = x α − 1 ( 1 − x ) β − 1 ∫ 0 1 u α − 1 ( 1 − u ) β − 1 d u = Γ ( α + β ) Γ ( α ) Γ ( β ) x α − 1 ( 1 − x ) β − 1 = 1 B ( α , β ) x α − 1 ( 1 − x ) β − 1 \begin{aligned} f(x ; \alpha, \beta) &=\frac{x^{\alpha-1}(1-x)^{\beta-1}}{\int_{0}^{1} u^{\alpha-1}(1-u)^{\beta-1} d u} \\ &=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha) \Gamma(\beta)} x^{\alpha-1}(1-x)^{\beta-1} \\ &=\frac{1}{\mathrm{B}(\alpha, \beta)} x^{\alpha-1}(1-x)^{\beta-1} \end{aligned} f(x;α,β)=01uα1(1u)β1duxα1(1x)β1=Γ(α)Γ(β)Γ(α+β)xα1(1x)β1=B(α,β)1xα1(1x)β1

其中的 Γ \Gamma Γ便是 Γ ( x ) \Gamma(x) Γ(x)函数:
Γ ( x ) = ∫ 0 ∞ t x − 1 e − t d t \Gamma(x)=\int_{0}^{\infty} t^{x-1} e^{-t} d t Γ(x)=0tx1etdt

随机变量x服从参数为beta分布。通常写为: X ∼ Be ⁡ ( α , β ) X \sim \operatorname{Be}(\alpha, \beta) XBe(α,β)

Beta-Binomial共轭

回顾下上开头所提出的问题:问题1 随机变量 X 1 , X 2 , ⋯   , X n ∼ X_{1}, X_{2}, \cdots, X_{n}^{\text {}} \sim X1,X2,,Xnuniform(0,1) , 把 这 n 个 随 机 变 量 排 序 后 得 到 顺 序 统 计 量 ,把这n 个随机变量排序后得到顺序统计量 n X ( 1 ) , X ( 2 ) ⋯ X ( n ) X_{(1)}, X_{(2)} \cdots X_{(n)} X(1),X(2)X(n),然后请问$ X k X_{k} Xk 的分布是什么。

如果,咱们要在这个问题的基础上增加一些观测数据,变成问题2:

  • X 1 , X 2 , ⋯   , X n ∼ X_{1}, X_{2}, \cdots, X_{n}^{\text {}} \sim X1,X2,,Xnuniform(0,1) , 对 应 的 顺 序 统 计 量 是 ,对应的顺序统计量是 , X ( 1 ) , X ( 2 ) ⋯ X ( n ) X_{(1)}, X_{(2)} \cdots X_{(n)} X(1),X(2)X(n),需要猜测 p = X ( k ) p=X_{(k)} p=X(k)
  • Y 1 , Y 2 , ⋯   , Y n ∼ Y_{1}, Y_{2}, \cdots, Y_{n}^{\text {}} \sim Y1,Y2,,Ynuniform(0,1) , Y i ,Y_{i} ,Yi中有 m 1 m_{1} m1个比p小, m 2 m_{2} m2个比p大;
  • 那么,请问 P ( p ∣ Y 1 , Y 2 , ⋯   , Y m ) P\left(p \mid Y_{1}, Y_{2}, \cdots, Y_{m}\right) P(pY1,Y2,,Ym)的分布是什么。

根据, Y i Y_{i} Yi中有 m 1 m_{1} m1个比p小, m 2 m_{2} m2个比p大,换言之, Y i Y_{i} Yi中有 m 1 m_{1} m1个比 X k X_{k} Xk小, m 2 m_{2} m2个比 X k X_{k} Xk大,所以 X k X_{k} Xk X 1 , X 2 , ⋯   , X n , Y 1 , Y 2 , ⋯   , Y m iid    ~ U n i f o r m ( 0 , 1 ) X_{1}, X_{2}, \cdots, X_{n}, Y_{1}, Y_{2}, \cdots, Y_{m}^{\text {iid }} ~~Uniform (0,1) X1,X2,,Xn,Y1,Y2,,Ymiid  Uniform(0,1)中第 K + m 1 K+m_{1} K+m1大的数。

根据上节最终得到的结论“只要落在[x,x+Δx]内的数字超过一个,则对应的事件的概率就是 o(Δx)”,继而推出事件服从beta分布,从而可知 p = X ( k ) p=X_{(k)} p=X(k)的概率密度函数为:
Beta ⁡ ( p ∣ k + m 1 , n − k + 1 + m 2 ) \operatorname{Beta}\left(p \mid k+m_{1}, n-k+1+m_{2}\right) Beta(pk+m1,nk+1+m2)

1.为了猜测 p = X ( k ) p=X_{(k)} p=X(k),在获得一定的观测数据前,我们对 P P P的认知是: f ( p ) = Beta ⁡ ( p ∣ k , n − k + 1 ) f(p)=\operatorname{Beta}(p \mid \boldsymbol{k}, \boldsymbol{n}-\boldsymbol{k}+1) f(p)=Beta(pk,nk+1),此称为 p p p的先验分布;
2.然后为了获得这个结果, Y i Y_{i} Yi中有 m 1 m_{1} m1个比p小, m 2 m_{2} m2个比p大,针对 Y i Y_{i} Yi是做了 m m m次贝努利实验,所以 m 1 m_{1} m1服从二项分布 B ( m , p ) B(m, p) B(m,p)
3.在给定了来自数据提供的 ( m 1 , m 2 ) \left(m_{1}, m_{2}\right) (m1,m2)的知识后, P P P的后验分布变为。
f ( p ∣ m 1 , m 2 ) = Beta ⁡ ( p ∣ k + m 1 , n − k + 1 + m 2 ) f\left(p \mid m_{1}, m_{2}\right)=\operatorname{Beta}\left(p \mid k+m_{1}, n-k+1+m_{2}\right) f(pm1,m2)=Beta(pk+m1,nk+1+m2)

回顾下贝叶斯派思考问题的固定模式:

先验分布 + 样本信息  后验分布
上述思考模式意味着,新观察到的样本信息将修正人们以前对事物的认知。换言之,在得到新的样本信息之前,人们对 θ \theta θ的认知是先验分布 π ( θ ) \pi(\theta) π(θ),在得到新的样本信息 X X X后,人们对 θ \theta θ的认知为 π ( θ ∣ x ) \pi(\theta \mid x) π(θx)

类比到现在这个问题上,我们也可以试着写下:
Beta ⁡ ( p ∣ k , n − k + 1 ) + Count ⁡ ( m 1 , m 2 ) = Beta ⁡ ( p ∣ k + m 1 , n − k + 1 + m 2 ) \operatorname{Beta}(p \mid k, n-k+1)+\operatorname{Count}\left(m_{1}, m_{2}\right)=\operatorname{Beta}\left(p \mid k+m_{1}, n-k+1+m_{2}\right) Beta(pk,nk+1)+Count(m1,m2)=Beta(pk+m1,nk+1+m2)

其中 ( m 1 , m 2 ) \left(m_{1}, m_{2}\right) (m1,m2)对应的是二项分布 B ( m 1 + m 2 , p ) B\left(m_{1}+m_{2}, p\right) B(m1+m2,p)的计数。

更一般的,对于非负实数 α \alpha α β \beta β,我们有如下关系
Beta ⁡ ( p ∣ α , β ) + Count ⁡ ( m 1 , m 2 ) = Beta ⁡ ( p ∣ α + m 1 , β + m 2 ) \operatorname{Beta}(p \mid \alpha, \beta)+\operatorname{Count}\left(m_{1}, m_{2}\right)=\operatorname{Beta}\left(p \mid \alpha+m_{1}, \beta+m_{2}\right) Beta(pα,β)+Count(m1,m2)=Beta(pα+m1,β+m2)

针对于这种观测到的数据符合二项分布参数的先验分布和后验分布都是Beta分布的情况,就是Beta-Binomial共轭

换言之,Beta分布是二项式分布的共轭先验概率分布

二项分布和Beta分布是共轭分布意味着,如果我们为二项分布的参数 p p p选取的先验分布是Beta分布,那么以p为参数的二项分布用贝叶斯估计得到的后验分布仍然服从Beta分布。

此外,如何理解参数 α \alpha α β \beta β所表达的意义呢? α \alpha α β \beta β可以认为形状参数,通俗但不严格的理解是, α \alpha α β \beta β共同控制Beta分布的函数“长的样子”:形状千奇百怪,高低胖瘦,如下图所示:
通俗理解LDA主题模型_第21张图片

共轭先验分布

什么又是共轭呢?轭的意思是束缚、控制,共轭从字面上理解,则是共同约束,或互相约束。

在贝叶斯概率理论中,如果后验概率 P ( θ ∣ x ) P(θ|x) P(θx)和先验概率 p ( θ ) p(θ) p(θ)满足同样的分布律,那么,先验分布和后验分布被叫做共轭分布,同时,先验分布叫做似然函数的共轭先验分布。

比如,某观测数据服从概率分布 P ( θ ) P(θ) P(θ)时,当观测到新的 X X X数据时,我们一般会遇到如下问题:

  • 可否根据新观测数据 X X X,更新参数 θ θ θ

  • 根据新观测数据可以在多大程度上改变参数 θ θ θ,即
    θ ← θ + Δ θ \theta \leftarrow \theta+\Delta \theta θθ+Δθ

  • 当重新估计 θ θ θ的时候,给出新参数值 θ θ θ的新概率分布,即 P ( θ ∣ x ) P(θ|x) P(θx)

事实上,根据根据贝叶斯公式可知:
P ( θ ∣ x ) = P ( x ∣ θ ) ⋅ P ( θ ) P ( x ) ∝ P ( x ∣ θ ) ⋅ P ( θ ) P(\theta \mid x)=\frac{P(x \mid \theta) \cdot P(\theta)}{P(x)} \propto P(x \mid \theta) \cdot P(\theta) P(θx)=P(x)P(xθ)P(θ)P(xθ)P(θ)

其中, P ( x ∣ θ ) P(x|θ) P(xθ)表示以预估 θ θ θ为参数的 x x x概率分布,可以直接求得, P ( θ ) P(θ) P(θ)是已有原始的 θ θ θ概率分布。

所以,如果我们选取 P ( x ∣ θ ) P(x|θ) P(xθ)的共轭先验作为 P ( θ ) P(θ) P(θ)的分布,那么 P ( x ∣ θ ) P(x|θ) P(xθ)乘以 P ( θ ) P(θ) P(θ),然后归一化的结果 P ( θ ∣ x ) P(θ|x) P(θx)跟和 P ( θ ) P(θ) P(θ)的形式一样。

换句话说,先验分布是 P ( θ ) P(θ) P(θ),后验分布是 P ( θ ∣ x ) P(θ|x) P(θx)先验分布跟后验分布同属于一个分布族,故称该分布族是θ的共轭先验分布(族)

举个例子。投掷一个非均匀硬币,可以使用参数为 θ θ θ的伯努利模型, θ θ θ为硬币为正面的概率,那么结果 x x x的分布形式为:
P ( x ∣ θ ) = θ x ⋅ ( 1 − θ ) 1 − x P(x \mid \theta)=\theta^{x} \cdot(1-\theta)^{1-x} P(xθ)=θx(1θ)1x

其共轭先验为beta分布,具有两个参数 α \alpha α β \beta β,称为超参数(hyperparameters)。且这两个参数决定了 θ θ θ参数,其Beta分布形式为
P ( θ ∣ α , β ) = θ α − 1 ( 1 − θ ) β − 1 ∫ 0 1 θ α − 1 ( 1 − θ ) β − 1 d θ P(\theta \mid \alpha, \beta)=\frac{\theta^{\alpha-1}(1-\theta)^{\beta-1}}{\int_{0}^{1} \theta^{\alpha-1}(1-\theta)^{\beta-1} d \theta} P(θα,β)=01θα1(1θ)β1dθθα1(1θ)β1

然后计算后验概率
P ( θ ∣ x ) ∝ P ( x ∣ θ ) ⋅ P ( θ ) ∝ ( θ x ( 1 − θ ) x ) ( θ α − 1 ( 1 − θ ) β − 1 ) = θ x + a − 1 ( 1 − θ ) 1 − x + β − 1 \begin{array}{l} P(\theta \mid x) \\ \propto P(x \mid \theta) \cdot P(\theta) \\ \propto\left(\theta^{x}(1-\theta)^{x}\right)\left(\theta^{\alpha-1}(1-\theta)^{\beta-1}\right) \\ =\theta^{x+a-1}(1-\theta)^{1-x+\beta-1} \end{array} P(θx)P(xθ)P(θ)(θx(1θ)x)(θα1(1θ)β1)=θx+a1(1θ)1x+β1
归一化这个等式后会得到另一个Beta分布,从而证明了Beta分布确实是伯努利分布的共轭先验分布。

从beta分布推广到Dirichlet 分布

接下来,咱们来考察beta分布的一个性质。

如果 p ∼ Beta ⁡ ( t ∣ α , β ) p \sim \operatorname{Beta}(t \mid \alpha, \beta) pBeta(tα,β),则有:
E ( p ) = ∫ 0 1 t ∗ Beta ⁡ ( t ∣ α , β ) d t = ∫ 0 1 t ∗ Γ ( α + β ) Γ ( α ) Γ ( β ) t α − 1 ( 1 − t ) β − 1 d t = Γ ( α + β ) Γ ( α ) Γ ( β ) ∫ 0 1 t α ( 1 − t ) β − 1 d t \begin{aligned} E(p) &=\int_{0}^{1} t * \operatorname{Beta}(t \mid \alpha, \beta) d t \\ &=\int_{0}^{1} t * \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha) \Gamma(\beta)} t^{\alpha-1}(1-t)^{\beta-1} d t \\ &=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha) \Gamma(\beta)} \int_{0}^{1} t^{\alpha}(1-t)^{\beta-1} d t \end{aligned} E(p)=01tBeta(tα,β)dt=01tΓ(α)Γ(β)Γ(α+β)tα1(1t)β1dt=Γ(α)Γ(β)Γ(α+β)01tα(1t)β1dt

注意到上式最后结果的右边积分
∫ 0 1 t α ( 1 − t ) β − 1 d t \int_{0}^{1} t^{\alpha}(1-t)^{\beta-1} d t 01tα(1t)β1dt

其类似于概率分布 Beta ⁡ ( t ∣ α + 1 , β ) \operatorname{Beta}(t \mid \alpha+1, \beta) Beta(tα+1,β),而对于这个分布有
∫ 0 1 Γ ( α + β + 1 ) Γ ( α + 1 ) Γ ( β ) t α ( 1 − t ) β − 1 d t = 1 \int_{0}^{1} \frac{\Gamma(\alpha+\beta+1)}{\Gamma(\alpha+1) \Gamma(\beta)} t^{\alpha}(1-t)^{\beta-1} d t=1 01Γ(α+1)Γ(β)Γ(α+β+1)tα(1t)β1dt=1

从而求得
∫ 0 1 t α ( 1 − t ) β − 1 d t \int_{0}^{1} t^{\alpha}(1-t)^{\beta-1} d t 01tα(1t)β1dt

的结果为
Γ ( α + 1 ) Γ ( β ) Γ ( α + β + 1 ) \frac{\Gamma(\alpha+1) \Gamma(\beta)}{\Gamma(\alpha+\beta+1)} Γ(α+β+1)Γ(α+1)Γ(β)

最后将此结果带入 E ( p ) E(p) E(p)的计算式,得到:
E ( p ) = Γ ( α + β ) Γ ( α ) Γ ( β ) ⋅ Γ ( α + 1 ) Γ ( β ) Γ ( α + β + 1 ) = Γ ( α + β ) Γ ( α + β + 1 ) Γ ( α + 1 ) Γ ( α ) = α α + β \begin{aligned} E(p) &=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha) \Gamma(\beta)} \cdot \frac{\Gamma(\alpha+1) \Gamma(\beta)}{\Gamma(\alpha+\beta+1)} \\ &=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha+\beta+1)} \frac{\Gamma(\alpha+1)}{\Gamma(\alpha)} \\ &=\frac{\alpha}{\alpha+\beta} \end{aligned} E(p)=Γ(α)Γ(β)Γ(α+β)Γ(α+β+1)Γ(α+1)Γ(β)=Γ(α+β+1)Γ(α+β)Γ(α)Γ(α+1)=α+βα

最后的这个结果意味着对于Beta 分布的随机变量,其均值(期望)可以用 α α + β \frac{\alpha}{\alpha+\beta} α+βα来估计。

此外,狄利克雷Dirichlet 分布也有类似的结论,即如果 p ⃗ ∼ Dir ⁡ ( t ⃗ ∣ α ⃗ ) \vec{p} \sim \operatorname{Dir}(\vec{t} \mid \vec{\alpha}) p Dir(t α ),同样可以证明有下述结论成立:
E ( p ⃗ ) = ( α 1 ∑ i = 1 K α i , α 2 ∑ i = 1 K α i , ⋯   , α K ∑ i = 1 K α i ) E(\vec{p})=\left(\frac{\alpha_{1}}{\sum_{i=1}^{K} \alpha_{i}}, \frac{\alpha_{2}}{\sum_{i=1}^{K} \alpha_{i}}, \cdots, \frac{\alpha_{K}}{\sum_{i=1}^{K} \alpha_{i}}\right) E(p )=(i=1Kαiα1,i=1Kαiα2,,i=1KαiαK)

那什么是Dirichlet 分布呢?简单的理解Dirichlet 分布就是一组连续多变量概率分布,是多变量普遍化的beta分布。为了纪念德国数学家约翰·彼得·古斯塔夫·勒热纳·狄利克雷(Peter Gustav Lejeune Dirichlet)而命名。狄利克雷分布常作为贝叶斯统计的先验概率

Dirichlet 分布

Dirichlet 分布

根据维基百科上的介绍,维度K ≥ 2(x1,x2… x k − 1 x_{k-1} xk1维,共K个)的狄利克雷分布在参数α1, …, αK > 0上、基于欧几里得空间 R k − 1 R_{k-1} Rk1里的勒贝格测度有个概率密度函数,定义为:
f ( x 1 , … , x K − 1 ; α 1 , … , α K ) = 1 B ( α ) ∏ i = 1 K x i α i − 1 f\left(x_{1}, \ldots, x_{K-1} ; \alpha_{1}, \ldots, \alpha_{K}\right)=\frac{1}{\mathrm{B}(\alpha)} \prod_{i=1}^{K} x_{i}^{\alpha_{i}-1} f(x1,,xK1;α1,,αK)=B(α)1i=1Kxiαi1

其中,B( α \alpha α)相当于是多项beta函数
B ( α ) = ∏ i = 1 K Γ ( α i ) Γ ( ∑ i = 1 K α i ) \mathrm{B}(\alpha)=\frac{\prod_{i=1}^{K} \Gamma\left(\alpha_{i}\right)}{\Gamma\left(\sum_{i=1}^{K} \alpha_{i}\right)} B(α)=Γ(i=1Kαi)i=1KΓ(αi)

α = ( α 1 , … , α K ) \alpha=\left(\alpha_{1}, \ldots, \alpha_{K}\right) α=(α1,,αK)

此外, x 1 x_{1} x1+ x 2 x_{2} x2+…+ x k − 1 x_{k-1} xk1+ x k x_{k} xk=1, x 1 x_{1} x1, x 2 x_{2} x2, x k − 1 x_{k-1} xk1>0,且在(K-1)维的单纯形上,其他区域的概率密度为0。

当然,也可以如下定义Dirichlet 分布

其中的 Δ ( α ⃗ ) \Delta(\vec{\alpha}) Δ(α )称为Dirichlet 分布的归一化系数:
Δ ( α ⃗ ) = ∏ k − 1 dim ⁡ α ⃗ Γ ( α k ) Γ ( ∑ k − 1 dim ⁡ α ⃗ α k ) = i n t ∏ k = 1 V p k α k − 1 d p ⃗ \Delta(\vec{\alpha})=\frac{\prod_{k-1}^{\operatorname{dim} \vec{\alpha}} \Gamma\left(\alpha_{k}\right)}{\Gamma\left(\sum_{k-1}^{\operatorname{dim} \vec{\alpha}} \alpha_{k}\right)}=i n t \prod_{k=1}^{V} p_{k}^{\alpha k-1} \mathrm{d} \vec{p} Δ(α )=Γ(k1dimα αk)k1dimα Γ(αk)=intk=1Vpkαk1dp

且根据Dirichlet分布的积分为1(概率的基本性质),可以得到:
∫ p ⃗ ∏ k = 1 K p k α k − 1 d p ⃗ = Δ ( α ⃗ ) \int_{\vec{p}} \prod_{k=1}^{K} p_{k}^{\alpha_{k}-1} d \vec{p}=\Delta(\vec{\alpha}) p k=1Kpkαk1dp =Δ(α )

Dirichlet-Multinomial 共轭

下面,在之前的基础上继续深入,引出问题3。

  • X 1 , X 2 , ⋯   , X n iid  ~ X_{1}, X_{2}, \cdots, X_{n}^{\text {iid }}~ X1,X2,,Xniid  Uniform(0,1)
  • 排序后对应的顺序统计量 X ( 1 ) , X ( 2 ) , ⋯   , X ( n ) X_{(1)}, X_{(2)}, \cdots, X_{(n)} X(1),X(2),,X(n),
  • ( X ( k 1 ) , X ( k 1 + k 2 ) ) \left(X_{\left(k_{1}\right)}, X_{\left(k_{1}+k_{2}\right)}\right) (X(k1),X(k1+k2))的联合分布是什么?

为了简化计算,取 x 3 x_{3} x3满足 x 1 x_{1} x1+ x 2 x_{2} x2+ x 3 x_{3} x3=1,但只有 x 1 x_{1} x1, x 2 x_{2} x2是变量,如下图所示:
通俗理解LDA主题模型_第22张图片
从而有:

P ( X ( k 1 ) ∈ ( x 1 , x 1 + Δ x ) , X ( k 1 + k 2 ) ∈ ( x 2 , x 2 + Δ x ) ) = n ( n − 1 ) ( n − 2 k 1 − 1 , k 2 − 1 ) x 1 k 1 − 1 x 2 k 2 − 1 x 3 n − k 1 − k 2 ( Δ x ) 2 = n ! ( k 1 − 1 ) ! ( k 2 − 1 ) ! ( n − k 1 − k 2 ) ! x 1 k 1 − 1 x 2 k 2 − 1 x 3 n − k 1 − k 2 ( Δ x ) 2 \begin{array}{l} P\left(X_{\left(k_{1}\right)} \in\left(x_{1}, x_{1}+\Delta x\right), X_{\left(k_{1}+k_{2}\right)} \in\left(x_{2}, x_{2}+\Delta x\right)\right) \\ =n(n-1)\left(\begin{array}{c} n-2 \\ k_{1}-1, k_{2}-1 \end{array}\right) x_{1}^{k_{1}-1} x_{2}^{k_{2}-1} x_{3}^{n-k_{1}-k_{2}}(\Delta x)^{2} \\ =\frac{n !}{\left(k_{1}-1\right) !\left(k_{2}-1\right) !\left(n-k_{1}-k_{2}\right) !} x_{1}^{k_{1}-1} x_{2}^{k_{2}-1} x_{3}^{n-k_{1}-k_{2}}(\Delta x)^{2} \end{array} P(X(k1)(x1,x1+Δx),X(k1+k2)(x2,x2+Δx))=n(n1)(n2k11,k21)x1k11x2k21x3nk1k2(Δx)2=(k11)!(k21)!(nk1k2)!n!x1k11x2k21x3nk1k2(Δx)2

于是我们得到 ( X ( k 1 ) , X ( k 1 + k 2 ) ) \left(X_{\left(k_{1}\right)}, X_{\left(k_{1}+k_{2}\right)}\right) (X(k1),X(k1+k2))的联合分布为:
f ( x 1 , x 2 , x 3 ) = n ! ( k 1 − 1 ) ! ( k 2 − 1 ) ! ( n − k 1 − k 2 ) ! x 1 k 1 − 1 x 2 k 2 − 1 x 3 n − k 1 − k 2 = Γ ( n + 1 ) Γ ( k 1 ) Γ ( k 2 ) Γ ( n − k 1 − k 2 + 1 ) x 1 k 1 − 1 x 2 k 2 − 1 x 3 n − k 1 − k 2 \begin{aligned} f\left(x_{1}, x_{2}, x_{3}\right) &=\frac{n !}{\left(k_{1}-1\right) !\left(k_{2}-1\right) !\left(n-k_{1}-k_{2}\right) !} x_{1}^{k_{1}-1} x_{2}^{k_{2}-1} x_{3}^{n-k_{1}-k_{2}} \\ &=\frac{\Gamma(n+1)}{\Gamma\left(k_{1}\right) \Gamma\left(k_{2}\right) \Gamma\left(n-k_{1}-k_{2}+1\right)} x_{1}^{k_{1}-1} x_{2}^{k_{2}-1} x_{3}^{n-k_{1}-k_{2}} \end{aligned} f(x1,x2,x3)=(k11)!(k21)!(nk1k2)!n!x1k11x2k21x3nk1k2=Γ(k1)Γ(k2)Γ(nk1k2+1)Γ(n+1)x1k11x2k21x3nk1k2

观察上述式子的最终结果,可以看出上面这个分布其实就是3维形式的 Dirichlet 分布
Dir ⁡ ( x 1 , x 2 , x 3 ∣ k 1 , k 2 , n − k 1 − k 2 + 1 ) \operatorname{Dir}\left(x_{1}, x_{2}, x_{3} \mid k_{1}, k_{2}, n-k_{1}-k_{2}+1\right) Dir(x1,x2,x3k1,k2,nk1k2+1)

α 1 = k 1 , α 2 = k 2 , α 3 = n − k 1 − k 2 + 1 \alpha_{1}=k_{1}, \alpha_{2}=k_{2}, \alpha_{3}=n-k_{1}-k_{2}+1 α1=k1,α2=k2,α3=nk1k2+1,于是分布密度可以写为
f ( x 1 , x 2 , x 3 ) = Γ ( α 1 + α 2 + α 3 ) Γ ( α 1 ) Γ ( α 2 ) Γ ( α 3 ) x 1 α 1 − 1 x 2 α 2 − 1 x 3 α 3 − 1 f\left(x_{1}, x_{2}, x_{3}\right)=\frac{\Gamma\left(\alpha_{1}+\alpha_{2}+\alpha_{3}\right)}{\Gamma\left(\alpha_{1}\right) \Gamma\left(\alpha_{2}\right) \Gamma\left(\alpha_{3}\right)} x_{1}^{\alpha_{1}-1} x_{2}^{\alpha_{2}-1} x_{3}^{\alpha_{3}-1} f(x1,x2,x3)=Γ(α1)Γ(α2)Γ(α3)Γ(α1+α2+α3)x1α11x2α21x3α31

这个就是一般形式的3维 Dirichlet 分布,即便 α ⃗ = ( α 1 , α 2 , α 3 ) \vec{\alpha}=\left(\alpha_{1}, \alpha_{2}, \alpha_{3}\right) α =(α1,α2,α3)延拓到非负实数集合,以上概率分布也是良定义的。

将Dirichlet分布的概率密度函数取对数,绘制对称Dirichlet分布的图像如下图所示

上图中,取K=3,也就是有两个独立参数x1,x2,分别对应图中的两个坐标轴,第三个参数始终满足x3=1-x1-x2且α1=α2=α3=α,图中反映的是参数α从α=(0.3, 0.3, 0.3)变化到(2.0, 2.0, 2.0)时的概率对数值的变化情况。

主题模型LDA

在开始下面的旅程之前,先来总结下我们目前所得到的最主要的几个收获:

通过上文,我们知道beta分布是二项式分布的共轭先验概率分布

对于非负实数 α \alpha α β \beta β,我们有如下关系
Beta ⁡ ( p ∣ α , β ) + Count ⁡ ( m 1 , m 2 ) = Beta ⁡ ( p ∣ α + m 1 , β + m 2 ) \operatorname{Beta}(p \mid \alpha, \beta)+\operatorname{Count}\left(m_{1}, m_{2}\right)=\operatorname{Beta}\left(p \mid \alpha+m_{1}, \beta+m_{2}\right) Beta(pα,β)+Count(m1,m2)=Beta(pα+m1,β+m2)

其中 ( m 1 , m 2 ) \left(m_{1}, m_{2}\right) (m1,m2)对应的是二项分布 B ( m 1 + m 2 , p ) B\left(m_{1}+m_{2}, p\right) B(m1+m2,p)的计数。针对于这种观测到的数据符合二项分布,参数的先验分布和后验分布都是Beta分布的情况,就是Beta-Binomial 共轭

我们还知道狄利克雷分布(Dirichlet分布)是多项式分布的共轭先验概率分布

α ⃗ \vec{\alpha} α 从整数集合延拓到实数集合,从而得到更一般的表达式如下:
Dir ⁡ ( p ⃗ ∣ α ⃗ ) + MultCount ⁡ ( m ⃗ ) = Dir ⁡ ( p ∣ α ⃗ + m ⃗ ) \operatorname{Dir}(\vec{p} \mid \vec{\alpha})+\operatorname{MultCount}(\vec{m})=\operatorname{Dir}(p \mid \vec{\alpha}+\vec{m}) Dir(p α )+MultCount(m )=Dir(pα +m )

针对于这种观测到的数据符合多项分布,参数的先验分布和后验分布都是Dirichlet 分布的情况,就是 Dirichlet-Multinomial 共轭

以及贝叶斯派思考问题的固定模式:

先验分布 π ( θ ) + \pi(\theta)+ π(θ)+ 样本信息 χ ⇒ \chi \Rightarrow χ 后验分布 π ( θ ∣ x ) \pi(\theta \mid x) π(θx)

上述思考模式意味着,新观察到的样本信息将修正人们以前对事物的认知。

换言之,在得到新的样本信息之前,人们对的认知是先验分布,在得到新的样本信息后,人们对 θ \theta θ的认知是先验分布 π ( θ ) \pi(\theta) π(θ),在得到新的样本信息 X X X后,人们对 θ \theta θ的认知为 π ( θ ∣ x ) \pi(\theta \mid x) π(θx)

顺便提下频率派与贝叶斯派各自不同的思考方式:

  • 频率派把需要推断的参数 θ θ θ看做是固定的未知常数,即概率 θ \theta θ虽然是未知的,但最起码是确定的一个值,同时,样本 X X X是随机的,所以频率派重点研究样本空间,大部分的概率计算都是针对样本 X X X的分布
  • 而贝叶斯派的观点则截然相反,他们认为待估计的参数 t h e t a theta theta是随机变量,服从一定的分布,而样本 X X X是固定的,由于样本是固定的,所以他们重点研究的是参数的分布。

OK,在杀到终极boss——LDA模型之前,再循序渐进理解基础模型:Unigram model、mixture of unigrams model,以及跟LDA最为接近的pLSA模型。

为了方便描述,首先定义一些变量:

  • w w w表示词, V V V表示所有单词的个数(固定值)
  • z z z表示主题, k k k是主题的个数(预先给定,固定值)
  • D = ( w 1 , ⋯   , w M ) D=\left(\mathbf{w}_{1}, \cdots, \mathbf{w}_{M}\right) D=(w1,,wM)表示语料库,其中的 M M M是语料库中的文档数(固定值)
  • w = ( w 1 , w 2 , ⋯   , w N ) \mathbf{w}=\left(w_{1}, w_{2}, \cdots, w_{N}\right) w=(w1,w2,,wN)表示文档,其中的 N N N表示一个文档中的词数(随机变量)
各个基础模型
Unigram model

对于文档 w = ( w 1 , w 2 , ⋯   , w N ) \mathbf{w}=\left(w_{1}, w_{2}, \cdots, w_{N}\right) w=(w1,w2,,wN),用 p ( w n ) p(w_{n}) p(wn)表示词的先验概率,生成文档 w w w的概率为:
p ( w ) = ∏ n = 1 N p ( w n ) p(\mathbf{w})=\prod_{n=1}^{N} p\left(w_{n}\right) p(w)=n=1Np(wn)

其图模型为(图中被涂色的w表示可观测变量,N表示一篇文档中总共N个单词,M表示M篇文档):
通俗理解LDA主题模型_第23张图片
或为:
通俗理解LDA主题模型_第24张图片

unigram model假设文本中的词服从Multinomial分布,而我们已经知道Multinomial分布的先验分布为Dirichlet分布。

上图中的 w n w_{n} wn表示在文本中观察到的第n个词,n∈[1,N]表示该文本中一共有N个单词。加上方框表示重复,即一共有N个这样的随机变量 w n w_{n} wn。其中, p p p α α α是隐含未知变量:

  • p是词服从的Multinomial分布的参数
  • α是Dirichlet分布(即Multinomial分布的先验分布)的参数。

一般 α α α由经验事先给定, p p p由观察到的文本中出现的词学习得到,表示文本中出现每个词的概率。

Mixture of unigrams model

该模型的生成过程是:给某个文档先选择一个主题 z z z,再根据该主题生成文档,该文档中的所有词都来自一个主题。假设主题有 z 1 , … , z k z_{1}, \ldots, z_{k} z1,,zk,生成文档 w w w的概率为:
p ( w ) = p ( z 1 ) ∏ n = 1 N p ( w n ∣ z 1 ) + ⋯ + p ( z k ) ∏ n = 1 N p ( w n ∣ z k ) = ∑ z p ( z ) ∏ n = 1 N p ( w n ∣ z ) p(\mathbf{w})=p\left(z_{1}\right) \prod_{n=1}^{N} p\left(w_{n} \mid z_{1}\right)+\cdots+p\left(z_{k}\right) \prod_{n=1}^{N} p\left(w_{n} \mid z_{k}\right)=\sum_{z} p(z) \prod_{n=1}^{N} p\left(w_{n} \mid z\right) p(w)=p(z1)n=1Np(wnz1)++p(zk)n=1Np(wnzk)=zp(z)n=1Np(wnz)

其图模型为(图中被涂色的w表示可观测变量,未被涂色的z表示未知的隐变量,N表示一篇文档中总共N个单词,M表示M篇文档):
在这里插入图片描述

PLSA模型

啊哈,长征两万五,经过前面这么长的铺垫,终于快要接近LDA模型了!因为跟LDA模型最为接近的便是下面要阐述的这个pLSA模型,理解了pLSA模型后,到LDA模型也就一步之遥——给pLSA加上贝叶斯框架,便是LDA

pLSA模型下生成文档

OK,在上面的Mixture of unigrams model中,我们假定一篇文档只有一个主题生成,可实际中,一篇文章往往有多个主题,只是这多个主题各自在文档中出现的概率大小不一样。

比如介绍一个国家的文档中,往往会分别从教育、经济、交通等多个主题进行介绍。那么在pLSA中,文档是怎样被生成的呢

假设你要写 M M M篇文档,由于一篇文档由各个不同的词组成,所以你需要确定每篇文档里每个位置上的词。

再假定你一共有 K K K个可选的主题,有 V V V个可选的词,咱们来玩一个扔骰子的游戏。

假设你每写一篇文档会制作一颗 K K K面的“文档-主题”骰子(扔此骰子能得到K个主题中的任意一个),和 K K K V V V面的“主题-词项” 骰子(每个骰子对应一个主题, K K K个骰子对应之前的 K K K个主题,且骰子的每一面对应要选择的词项, V V V个面对应着 V V V个可选的词)。

  • 比如可令 K K K=3,即制作1个含有3个主题的“文档-主题”骰子,这3个主题可以是:教育、经济、交通。然后令 V V V = 3,制作3个有着3面的“主题-词项”骰子,其中,教育主题骰子的3个面上的词可以是:大学、老师、课程,经济主题骰子的3个面上的词可以是:市场、企业、金融,交通主题骰子的3个面上的词可以是:高铁、汽车、飞机
    通俗理解LDA主题模型_第25张图片

每写一个词,先扔该“文档-主题”骰子选择主题,得到主题的结果后,使用和主题结果对应的那颗“主题-词项”骰子,扔该骰子选择要写的词。

先扔“文档-主题”的骰子,假设(以一定的概率)得到的主题是教育,所以下一步便是扔教育主题筛子,(以一定的概率)得到教育主题筛子对应的某个词:大学

上面这个投骰子产生词的过程简化下便是:“先以一定的概率选取主题,再以一定的概率选取词”。事实上,一开始可供选择的主题有3个:教育、经济、交通,那为何偏偏选取教育这个主题呢?其实是随机选取的,只是这个随机遵循一定的概率分布。比如可能选取教育主题的概率是0.5,选取经济主题的概率是0.3,选取交通主题的概率是0.2,那么这3个主题的概率分布便是{教育:0.5,经济:0.3,交通:0.2},我们把各个主题 z z z在文档 d d d中出现的概率分布称之为主题分布,且是一个多项分布

同样的,从主题分布中随机抽取出教育主题后,依然面对着3个词:大学、老师、课程,这3个词都可能被选中,但它们被选中的概率也是不一样的。比如大学这个词被选中的概率是0.5,老师这个词被选中的概率是0.3,课程被选中的概率是0.2,那么这3个词的概率分布便是{大学:0.5,老师:0.3,课程:0.2},我们把各个词语 w w w在主题 z z z下出现的概率分布称之为词分布,这个词分布也是一个多项分布。

所以,选主题和选词都是两个随机的过程,先从主题分布{教育:0.5,经济:0.3,交通:0.2}中抽取出主题:教育,然后从该教育主题对应的词分布{大学:0.5,老师:0.3,课程:0.2}中抽取出词:大学。

最后,你不停的重复扔“文档-主题”骰子和”主题-词项“骰子,重复 N N N次(产生N个词),完成一篇文档,重复这产生一篇文档的方法 M M M次,则完成 M M M篇文档。

上述过程抽象出来即是PLSA的文档生成模型。在这个过程中,我们并未关注词和词之间的出现顺序,所以pLSA是一种词袋方法。具体说来,该模型假设一组共现(co-occurrence)词项关联着一个隐含的主题类别 z k ∈ { z 1 , … , z K } z_{k} \in\left\{z_{1}, \ldots, z_{K}\right\} zk{z1,,zK}。同时定义:

  • P ( d i ) P\left(d_{i}\right) P(di)表示海量文档中某篇文档被选中的概率。
  • P ( w j ∣ d i ) P\left(w_{j} \mid d_{i}\right) P(wjdi)表示词 w j w_{j} wj在给定文档 d i d_{i} di中出现的概率。怎么计算得到呢?针对海量文档,对所有文档进行分词后,得到一个词汇列表,这样每篇文档就是一个词语的集合。对于每个词语,用它在文档中出现的次数除以文档中词语总的数目便是它在文档中出现的概率 P ( w j ∣ d i ) P\left(w_{j} \mid d_{i}\right) P(wjdi)
  • P ( z k ∣ d i ) P\left(z_{k} \mid d_{i}\right) P(zkdi)表示具体某个主题 z k z_{k} zk在给定文档 d i d_{i} di下出现的概率。
  • P ( w j ∣ z k ) P\left(w_{j} \mid z_{k}\right) P(wjzk)表示具体某个词 w j w_{j} wj在给定主题 z k z_{k} zk下出现的概率,与主题关系越密切的词,其条件概率 P ( w j ∣ z k ) P\left(w_{j} \mid z_{k}\right) P(wjzk)越大。

利用上述的第1、3、4个概率,我们便可以按照如下的步骤得到“文档-词项”的生成模型:

  • 1.按照概率 p ( d i ) p(d_{i}) p(di)选择一篇文档 d i d_{i} di
  • 2.选定文档 d i d_{i} di后,从主题分布中按照概率 P ( z k ∣ d i ) P\left(z_{k} \mid d_{i}\right) P(zkdi)选择一个隐含的主题类别 z k z_{k} zk
  • 3.选定 z k z_{k} zk后,从词分布中按照概率 P ( w j ∣ z k ) P\left(w_{j} \mid z_{k}\right) P(wjzk)选择一个词 w j w_{j} wj

所以pLSA中生成文档的整个过程便是选定文档生成主题,确定主题生成词

根据文档反推其主题分布

反过来,既然文档已经产生,那么如何根据已经产生好的文档反推其主题呢?这个利用看到的文档推断其隐藏的主题(分布)的过程(其实也就是产生文档的逆过程),便是主题建模的目的:自动地发现文档集中的主题(分布)

换言之,人类根据文档生成模型写成了各类文章,然后丢给了计算机,相当于计算机看到的是一篇篇已经写好的文章。现在计算机需要根据一篇篇文章中看到的一系列词归纳出当篇文章的主题,进而得出各个主题各自不同的出现概率:主题分布。即文档 d d d和单词 w w w是可被观察到的,但主题 z z z却是隐藏的。

如下图所示(图中被涂色的 d d d w w w表示可观测变量,未被涂色的 z z z表示未知的隐变量, N N N表示一篇文档中总共 N N N个单词, M M M表示M篇文档):
在这里插入图片描述
上图中,文档 d d d和词 w w w是我们得到的样本(样本随机,参数虽未知但固定,所以pLSA属于频率派思想。区别于下文要介绍的LDA中:样本固定,参数未知但不固定,是个随机变量,服从一定的分布,所以LDA属于贝叶斯派思想),可观测得到,所以对于任意一篇文档,其是已知的。

从而可以根据大量已知的文档-词项信息 P ( w j ∣ d i ) P\left(w_{j} \mid d_{i}\right) P(wjdi),训练出文档-主题 P ( z k ∣ d i ) P\left(z_{k} \mid d_{i}\right) P(zkdi)和主题-词项 P ( w j ∣ z k ) P\left(w_{j} \mid z_{k}\right) P(wjzk),如下公式所示:
P ( w j ∣ d i ) = ∑ k = 1 K P ( w j ∣ z k ) P ( z k ∣ d i ) P\left(w_{j} \mid d_{i}\right)=\sum_{k=1}^{K} P\left(w_{j} \mid z_{k}\right) P\left(z_{k} \mid d_{i}\right) P(wjdi)=k=1KP(wjzk)P(zkdi)

故得到文档中每个词的生成概率为:
P ( d i , w j ) = P ( d i ) P ( w j ∣ d i ) = P ( d i ) ∑ k = 1 K P ( w j ∣ z k ) P ( z k ∣ d i ) \begin{aligned} P\left(d_{i}, w_{j}\right) &=P\left(d_{i}\right) P\left(w_{j} \mid d_{i}\right) \\ &=P\left(d_{i}\right) \sum_{k=1}^{K} P\left(w_{j} \mid z_{k}\right) P\left(z_{k} \mid d_{i}\right) \end{aligned} P(di,wj)=P(di)P(wjdi)=P(di)k=1KP(wjzk)P(zkdi)

由于 p ( d i ) p(d_{i}) p(di)可事先计算求出,而 P ( w j ∣ z k ) P\left(w_{j} \mid z_{k}\right) P(wjzk) P ( z k ∣ d i ) P\left(z_{k} \mid d_{i}\right) P(zkdi)未知,所以 θ = ( P ( w j ∣ z k ) , P ( z k ∣ d i ) ) \theta=\left(P\left(w_{j} \mid z_{k}\right), P\left(z_{k} \mid d_{i}\right)\right) θ=(P(wjzk),P(zkdi))就是我们要估计的参数(值),通俗点说,就是要最大化这个 θ θ θ

用什么方法进行估计呢,常用的参数估计方法有极大似然估计 M L E MLE MLE、最大后验证估计 M A P MAP MAP、贝叶斯估计等等。因为该待估计的参数中含有隐变量 z z z,所以我们可以考虑EM算法。

EM算法的简单介绍

EM算法,全称为Expectation-maximization algorithm,为期望最大算法,其基本思想是:首先随机选取一个值去初始化待估计的值 θ ( 0 ) \theta^{(0)} θ(0),然后不断迭代寻找更优的 θ ( n + 1 ) \theta^{(n+1)} θ(n+1)使得其似然函数likelihood L ( θ ( n + 1 ) ) L\left(\theta^{(n+1)}\right) L(θ(n+1))比原来的 L ( θ ( n ) ) L\left(\theta^{(n)}\right) L(θ(n))要大。换言之,假定现在得到了 θ ( n ) \theta^{(n)} θ(n),想求 θ ( n + 1 ) \theta^{(n+1)} θ(n+1),使得
θ ( n + 1 ) = max ⁡ θ L ( θ ) − L ( θ ′ n ) ) \left.\theta^{(n+1)}=\max _{\theta} L(\theta)-L\left(\theta^{\prime n}\right)\right) θ(n+1)=θmaxL(θ)L(θn))

EM的关键便是要找到 L ( θ ) L(\theta) L(θ)的一个下界 Q ( θ ; θ n ) Q\left(\theta ; \theta^{n}\right) Q(θ;θn)(注: L ( θ ) = log ⁡ p ( X ∣ θ ) L(\theta)=\log p(X \mid \theta) L(θ)=logp(Xθ),其中, X X X表示已经观察到的随机变量),然后不断最大化这个下界,通过不断求解下界 Q ( θ ; θ n ) Q\left(\theta ; \theta^{n}\right) Q(θ;θn)的极大化,从而逼近要求解的似然函数 L ( θ ) L(\theta) L(θ)

所以EM算法的一般步骤为:

  • 1.随机选取或者根据先验知识初始化 θ ( 0 ) \theta^{(0)} θ(0)
  • 2.不断迭代下述两步
    • ①给出当前的参数估计 θ ( n ) \theta^{(n)} θ(n),计算似然函数 L ( θ ) L(\theta) L(θ)的下界 Q ( θ ; θ n ) Q\left(\theta ; \theta^{n}\right) Q(θ;θn)
    • ②重新估计参数 θ θ θ,即求 θ ( n + 1 ) \theta^{(n+1)} θ(n+1),使得 θ ( n + 1 ) = arg ⁡ θ max ⁡ Q ( θ ; θ n ) \theta^{(n+1)}=\arg _{\theta} \max Q\left(\theta ; \theta^{n}\right) θ(n+1)=argθmaxQ(θ;θn)
  • 3.上述第二步后,如果 L ( θ ) L(\theta) L(θ)收敛(即 Q ( θ ; θ n ) Q\left(\theta ; \theta^{n}\right) Q(θ;θn)收敛)则退出算法,否则继续回到第二步。

上述过程好比在二维平面上,有两条不相交的曲线,一条曲线在上(简称上曲线 L L L),一条曲线在下(简称下曲线 Q Q Q),下曲线为上曲线的下界。现在对上曲线未知,只已知下曲线,为了求解上曲线的最高点,我们试着不断增大下曲线,使得下曲线不断逼近上曲线,下曲线在某一个点达到局部最大值并与上曲线在这点的值相等,记录下这个值,然后继续增大下曲线,寻找下曲线上与上曲线上相等的值,迭代到 L ( θ ) L(\theta) L(θ)收敛(即 Q ( θ ; θ n ) Q\left(\theta ; \theta^{n}\right) Q(θ;θn)收敛)停止,从而利用当前下曲线上的局部最大值当作上曲线的全局最大值(换言之,EM算法不保证一定能找到全局最优值)。如下图所示:
通俗理解LDA主题模型_第26张图片
以下是详细介绍。

假定有训练集 { x ( 1 ) , … , x ( m ) } \left\{x^{(1)}, \ldots, x^{(m)}\right\} {x(1),,x(m)},包含 m m m个独立样本,希望从中找到该组数据的模型 p ( x , z ) p(x,z) p(x,z)的参数。

然后通过极大似然估计建立目标函数–对数似然函数:
ℓ ( θ ) = ∑ i = 1 m log ⁡ p ( x ; θ ) = ∑ i = 1 m log ⁡ ∑ z p ( x , z ; θ ) \begin{aligned} \ell(\theta) &=\sum_{i=1}^{m} \log p(x ; \theta) \\ &=\sum_{i=1}^{m} \log \sum_{z} p(x, z ; \theta) \end{aligned} (θ)=i=1mlogp(x;θ)=i=1mlogzp(x,z;θ)

这里, z z z是隐随机变量,直接找到参数的估计是很困难的。我们的策略是建立 ℓ ( θ ) \ell(\theta) (θ)的下界,并且求该下界的最大值;重复这个过程,直到收敛到局部最大值。

Q i Q_{i} Qi z z z的某一个分布, Q i Q_{i} Qi≥0,且结合Jensen不等式,有:
∑ i log ⁡ p ( x ( i ) ; θ ) = ∑ i log ⁡ ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) = ∑ i log ⁡ ∑ z ( i ) Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ≥ ∑ i ∑ z ( i ) Q i ( z ( i ) ) log ⁡ p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \begin{aligned} \sum_{i} \log p\left(x^{(i)} ; \theta\right) &=\sum_{i} \log \sum_{z^{(i)}} p\left(x^{(i)}, z^{(i)} ; \theta\right) \\ &=\sum_{i} \log \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \\ & \geq \sum_{i} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \end{aligned} ilogp(x(i);θ)=ilogz(i)p(x(i),z(i);θ)=ilogz(i)Qi(z(i))Qi(z(i))p(x(i),z(i);θ)iz(i)Qi(z(i))logQi(z(i))p(x(i),z(i);θ)

为了寻找尽量紧的下界,我们可以让使上述等号成立,而若要让等号成立的条件则是:
p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) = c \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)}=c Qi(z(i))p(x(i),z(i);θ)=c

换言之,有以下式子成立: Q i ( z ( i ) ) ∝ p ( x ( i ) , z ( i ) ; θ ) Q_{i}\left(z^{(i)}\right) \propto p\left(x^{(i)}, z^{(i)} ; \theta\right) Qi(z(i))p(x(i),z(i);θ),且由于有: ∑ z Q i ( z ( i ) ) = 1 \sum_{z} Q_{i}\left(z^{(i)}\right)=1 zQi(z(i))=1

所以可得:
Q i ( z ( i ) ) = p ( x ( i ) , z ( i ) ; θ ) ∑ z p ( x ( i ) , z ; θ ) = p ( x ( i ) , z ( i ) ; θ ) p ( x ( i ) ; θ ) = p ( z ( i ) ∣ x ( i ) ; θ ) \begin{aligned} Q_{i}\left(z^{(i)}\right) &=\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{\sum_{z} p\left(x^{(i)}, z ; \theta\right)} \\ &=\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{p\left(x^{(i)} ; \theta\right)} \\ &=p\left(z^{(i)} \mid x^{(i)} ; \theta\right) \end{aligned} Qi(z(i))=zp(x(i),z;θ)p(x(i),z(i);θ)=p(x(i);θ)p(x(i),z(i);θ)=p(z(i)x(i);θ)

最终得到EM算法的整体框架如下:
通俗理解LDA主题模型_第27张图片
OK,EM算法还会在本博客后面的博文中具体阐述。接下来,回到pLSA参数的估计问题上。

EM算法估计pLSA的两未知参数

首先尝试从矩阵的角度来描述待估计的两个未知变量 P ( w j ∣ z k ) P\left(w_{j} \mid z_{k}\right) P(wjzk) P ( z k ∣ d i ) P\left(z_{k} \mid d_{i}\right) P(zkdi)

假定用 ϕ k \phi_{k} ϕk表示词表 V V V在主题 z k z_{k} zk上的一个多项分布,则 ϕ k \phi_{k} ϕk可以表示成一个向量,每个元素 ϕ k , j \phi_{k, j} ϕk,j表示词项 w j w_{j} wj出现在主题 z k z_{k} zk中的概率,即
P ( w j ∣ z k ) = ϕ k , j , ∑ w j ∈ V ϕ k , j = 1 P\left(w_{j} \mid z_{k}\right)=\phi_{k, j}, \quad \sum_{w j \in \mathcal{V}} \phi_{k, j}=1 P(wjzk)=ϕk,j,wjVϕk,j=1

θ i \theta_{i} θi表示所有主题 z z z在文档 d i d_{i} di上的一个多项分布,则 θ i \theta_{i} θi可以表示成一个向量,每个元素 θ i , k \theta_{i,k} θi,k表示主题 z k z_{k} zk出现在文档 d i d_{i} di中的概率,即
P ( z k ∣ d i ) = θ i , k , ∑ z k ∈ Z θ i , k = 1 P\left(z_{k} \mid d_{i}\right)=\theta_{i, k}, \quad \sum_{z_{k} \in \mathcal{Z}} \theta_{i, k}=1 P(zkdi)=θi,k,zkZθi,k=1

这样,巧妙的把 P ( w j ∣ z k ) P\left(w_{j} \mid z_{k}\right) P(wjzk) P ( z k ∣ d i ) P\left(z_{k} \mid d_{i}\right) P(zkdi)转换成了两个矩阵。

换言之,最终我们要求解的参数是这两个矩阵:
Φ = [ ϕ 1 , ⋯   , ϕ K ] , z k ∈ Z \Phi=\left[\phi_{1}, \cdots, \phi_{K}\right], \quad z_{k} \in \mathcal{Z} Φ=[ϕ1,,ϕK],zkZ
Θ = [ θ i , ⋯   , θ M ] , d i ϵ D \Theta=\left[\theta_{i}, \cdots, \theta_{M}\right], d_{i} \epsilon D Θ=[θi,,θM],diϵD

由于词和词之间是相互独立的,所以整篇文档N个词的分布为:
P ( W ∣ d i ) = ∏ j = 1 N P ( d i , w j ) n ( d i , w j ) P\left(W \mid d_{i}\right)=\prod_{j=1}^{N} P\left(d_{i}, w_{j}\right)^{n\left(d_{i}, w_{j}\right)} P(Wdi)=j=1NP(di,wj)n(di,w

你可能感兴趣的:(机器学习)