30、潜在狄利克雷分配

潜在狄利克雷分配

  • 潜在狄利克雷分配(latent Dirichlet allocation,LDA)是文本集合的生成概率模型。假设每个文本由话题的一个多项分布表示,每个话题由单词的一个多项分布表示,特别假设文本的话题分布的先验分布是狄利克雷分布,话题的单词分布的先验分布也是狄利克雷分布
  • LDA的文本集合生成过程:首先随机生成一个文本的话题分布,之后在该文本的每个位置,依据该文本的话题分布随机生成一个话题,然后在该位置依据该话题的单词分布随机生成一个单词,直至文本的最后一个位置,生成整个文本。重复以上过程直至生成所有文本。
  • LDA模型是含有隐变量的概率图模型。模型中,每个话题的单词分布、每个文本的话题分布、文本每个位置的话题都是隐变量,文本每个位置的单词是观测变量。利用LDA进行话题分析,就是对给定文本集合,学习到每个文本的话题分布,以及每个话题的单词分布。

1 狄利克雷分布

1.1 分布定义

首先介绍作为 LDA 模型基础的多项分布和狄利克雷分布 。

1.1.1 多项分布

多项分布( multinomial distribution) 是一种多元离散随机变量的概率分布,是二项分布 ( binomial distribution) 的扩展 。

多项分布:若多元离散随机变量 X = ( X 1 , X 2 , … , X k ) X = (X_1 , X_2 , … , X_k ) X=(X1X2Xk) 的概率质量函数为
P ( X 1 = n 1 , X 2 = n 2 , … , X k = n k ) = n ! n 1 ! n 2 ! . . . n k ! p 1 n 1 p 2 n 2 . . . p k n k = n ! ∏ i = 1 k n i ! ∏ i = 1 k p i n i P(X_1=n_1,X_2=n_2, …,X_k=n_k )=\frac{n!}{n_1!n_2!...n_k!}p_1^{n_1}p_2^{n_2}...p_k^{n_k}=\frac{n!}{\prod_{i=1}^kn_i!}\prod_{i=1}^kp_i^{n_i} P(X1=n1,X2=n2,,Xk=nk)=n1!n2!...nk!n!p1n1p2n2...pknk=i=1kni!n!i=1kpini
其中 p = ( p 1 , p 2 , . . . , p k ) , p i ≥ 0 , i = 1 , 2 , . . . , k p=(p_1,p_2,...,p_k),p_i \geq0, i = 1, 2, . . . ,k p=(p1,p2,...,pk),pi0,i=1,2,...,k ∑ i = 1 k p i = 1 \sum_{i=1}^kp_i = 1 i=1kpi=1, ∑ i = 1 k n i = n \sum_{i=1}^k n_i= n i=1kni=n,则称随机变量 X X X 服从参数为 ( n , p ) (n , p) (np) 的多项分布,记作 X ∼ M u l t ( n , p ) X\sim Mult(n, p) XMult(np)

当试验的次数 n n n 为 1 时,多项分布变成类别分布 (categorical distribution) 。类别分布表示试验可能出现的 k k k 种结果的概率。显然多项分布包含类别分布。

1.1.2 狄利克雷分布

狄利克雷分布 ( Dirichlet distribution) 是一种多元连续随机变量的概率分布,是贝塔分布 ( beta distribution) 的扩展。在贝叶斯学习中,狄利克雷分布常作为多项分布的先验分布使用。

狄利克雷分布:若多元连续随机变量 θ = ( θ 1 , θ 2 . … . θ k ) \theta = (\theta_1, \theta_2. … .\theta_k) θ=(θ1,θ2..θk) 的概率密度函数为
p ( θ ∣ α ) = Γ ( ∑ i = 1 k α i ) ∏ i = 1 k Γ ( α i ) ∏ i = 1 k θ i α i − 1 p(\theta|\alpha)=\frac{\Gamma(\sum_{i=1}^k\alpha_i)}{\prod_{i=1}^k\Gamma (\alpha_i)}\prod_{i=1}^k\theta_i^{\alpha_i-1} p(θα)=i=1kΓ(αi)Γ(i=1kαi)i=1kθiαi1
其中 ∑ i = 1 k θ i = 1 , θ i ≥ 0 \sum_{i=1}^k\theta_i=1,\theta_i \geq 0 i=1kθi=1,θi0, α = ( α 1 , α 2 , . . . , α k ) \alpha = (\alpha_1,\alpha_2,...,\alpha_k) α=(α1,α2,...,αk), α i > 0 , i = 1 , 2 , . . . , k \alpha_i >0,i=1,2,...,k αi>0i=1,2,...,k,则称随机变量 θ \theta θ服从参数为 α \alpha α的狄利克雷分布,记作 θ ∼ D i r ( α ) \theta\sim Dir(\alpha) θDir(α)

式中 Γ ( s ) \Gamma(s) Γ(s)是伽马函数,定义为
Γ ( s ) = ∫ 0 ∞ x s − 1 e − x d x , s > 0 \Gamma(s) = \int_0^∞x^{s-1}e^{-x}dx,s>0 Γ(s)=0xs1exdx,s>0
具有性质
Γ ( s + 1 ) = s Γ ( s ) \Gamma(s+1)=s\Gamma(s) Γ(s+1)=sΓ(s)
s s s是自然数时,有
Γ ( s + 1 ) = s ! \Gamma(s+1)=s! Γ(s+1)=s!
由于满足条件 θ i ≥ 0 \theta_i \geq 0 θi0 ∑ i = 1 k θ i = 1 \sum_{i=1}^k\theta_i=1 i=1kθi=1,所以狄利克雷分布 θ \theta θ存在于 ( k − 1 ) (k-1) (k1)维单纯形上。

B ( α ) = ∏ i = 1 k Γ ( α i ) Γ ( ∑ i = 1 k α i ) B(\alpha)=\frac{\prod_{i=1}^k\Gamma (\alpha_i)}{\Gamma(\sum_{i=1}^k\alpha_i)} B(α)=Γ(i=1kαi)i=1kΓ(αi),则狄利克雷分布的密度函数可以写成
p ( θ ∣ α ) = 1 B ( α ) ∏ i = 1 k θ i α i − 1 p(\theta|\alpha)=\frac{1}{B(\alpha)}\prod_{i=1}^k\theta_i^{\alpha_i-1} p(θα)=B(α)1i=1kθiαi1
B ( α ) B(\alpha) B(α)是规范化因子,称为多元贝塔函数(或扩展的贝塔函数)。由密度函数的性质
∫ Γ ( ∑ i = 1 k α i ) ∏ i = 1 k Γ ( α i ) ∏ i = 1 k θ i α i − 1 d θ = Γ ( ∑ i = 1 k α i ) ∏ i = 1 k Γ ( α i ) ∫ ∏ i = 1 k θ i α i − 1 d θ = 1 \int \frac{\Gamma(\sum_{i=1}^k\alpha_i)}{\prod_{i=1}^k\Gamma (\alpha_i)}\prod_{i=1}^k\theta_i^{\alpha_i-1}d \theta = \frac{\Gamma(\sum_{i=1}^k\alpha_i)}{\prod_{i=1}^k\Gamma (\alpha_i)}\int\prod_{i=1}^k\theta_i^{\alpha_i-1}d \theta=1 i=1kΓ(αi)Γ(i=1kαi)i=1kθiαi1dθ=i=1kΓ(αi)Γ(i=1kαi)i=1kθiαi1dθ=1

B ( α ) = ∫ ∏ i = 1 k θ i α i − 1 d θ B(\alpha)=\int\prod_{i=1}^k\theta_i^{\alpha_i-1}d \theta B(α)=i=1kθiαi1dθ
上式是多元贝塔函数的积分表达式。

1.1.3 二项分布和贝塔分布

二项分布是多项分布的特殊情况,贝塔分布是狄利克雷分布的特殊情况。

二项分布是指如下概率分布。 X X X 为离散随机变量,取值为 m m m,其概率质量函数为
P ( X = m ) = ( n m ) p m ( 1 − p ) n − m , m = 0 , 1 , 2 , . . . , n P(X=m)=\left(\begin{aligned} n\\m\end{aligned}\right)p^m(1-p)^{n-m},m=0,1,2,...,n P(X=m)=(nm)pm(1p)nm,m=0,1,2,...,n
其中 n n n p p p是参数

贝塔分布是指如下概率分布 X X X 为连续随机变量 ,取值范围为 [ 0 , 1 ] [0 , 1] [01], 其概率密度函数为
p ( x ) = { 1 B ( s , t ) x ( s − 1 ) ( 1 − x ) t − 1 , 0 ≤ x ≤ 1 0 , 其他 p(x)=\left \{ \begin{aligned} & \frac{1}{B(s,t)}x^{(s-1)(1-x)^{t-1}},&0 \leq x \leq 1 \\ &0,&其他 \end{aligned} \right. p(x)= B(s,t)1x(s1)(1x)t1,0,0x1其他
其中 s > 0 s>0 s>0 t > 0 t>0 t>0是参数, B ( s , t ) = Γ ( s ) Γ ( t ) Γ ( s + t ) B(s,t)=\frac{\Gamma(s)\Gamma(t)}{\Gamma(s+t)} B(s,t)=Γ(s+t)Γ(s)Γ(t),是贝塔函数,定义为
B ( s , t ) = ∫ 0 1 x ( s − 1 ) ( 1 − x ) t − 1 d x B(s,t)=\int_0^1x^{(s-1)}(1-x)^{t-1}dx B(s,t)=01x(s1)(1x)t1dx
s , t s,t st是自然数时,
B ( s , t ) = ( s − 1 ) ! ( t − 1 ) ! ( s + t − 1 ) ! B(s,t)=\frac{(s-1)!(t-1)!}{(s+t-1)!} B(s,t)=(s+t1)!(s1)!(t1)!
n n n 为 1 时, 二项分布变成伯努利分布 ( Bernoulli distribution) 或 0-1 分布 。伯努利分布表示试验可能出现的 2 种结果的概率。显然 二项分布包含伯努利分布。下图给出几种概率分布的关系 。

在这里插入图片描述

1.2 共轭先验

狄利克雷分布有一些重要性质: (1)狄利克雷分布属于指数分布族;(2) 狄利克雷分布是多项分布的共轭先验

共轭先验:如果后验分布与先验分布属于同类,则先验分布与后验分布称为共轭分布,先验分布称为共轭先验。如果多项分布的先验分布是狄利克雷分布,则其后验分布也为狄利克雷分布,两者构成共轭分布 。作为先验分布的狄利克雷分布的参数又称为超参数。使用共轭分布的好处是便于从先验分布计算后验分布。

W = { w 1 , w 2 , . . . , w k } W=\{w_1,w_2,...,w_k\} W={w1,w2,...,wk}是由 k k k 个元素组成的集合。随机变量 X X X 服从 W W W上的多项分布 , X ∼ M u l t ( n , θ ) X \sim Mult(n,\theta) XMult(n,θ),其中 n = ( n 1 , n 2 , . . . , n k ) n=(n_1,n_2,...,n_k) n=(n1,n2,...,nk) θ = ( θ 1 , θ 2 , . . . , θ k ) \theta=(\theta_1,\theta_2,...,\theta_k) θ=(θ1,θ2,...,θk)是参数。参数 n n n 为从 W W W 中重复独立抽取样本的次数, n i n_i ni为样本中 w i w_i wi出现的次数 ( i = 1 , 2 , . . . , k i = 1,2,...,k i=1,2,...,k); 参数 θ i \theta_i θi w i w_i wi出现的概率 ( i = 1 , 2 , . . . , k ) (i=1 , 2,...,k) (i=1,2,...,k)

将样本数据表示为 D D D , 目标是计算在样本数据 D D D 给定条件下参数 θ \theta θ的后验概率 p ( θ ∣ D ) p(\theta|D) p(θD) 。 对于给定的样本数据 D D D , 似然函数是
p ( D ∣ θ ) = θ 1 n 1 θ 2 n 2 . . . θ k n k = ∏ i = 1 k θ i n i p(D|\theta)=\theta_1^{n_1}\theta_2^{n_2}...\theta_k^{n_k}=\prod_{i=1}^k\theta_i^{n_i} p(Dθ)=θ1n1θ2n2...θknk=i=1kθini
假设随机变量 θ \theta θ服从狄利克雷分布 p ( θ ∣ α ) p(\theta|α) p(θα) ,其中 α = ( α 1 , α 2 , … . α k ) α=(α_1,α_2,….α_k) α=(α1,α2,.αk) 为参数。则 θ \theta θ的先验概率分布为
p ( θ ∣ α ) = Γ ( ∑ i = 1 k α i ) ∏ i = 1 k Γ ( α i ) ∏ i = 1 k θ i α i − 1 = 1 B ( α ) ∏ i = 1 k θ i α i − 1 = D i r ( θ ∣ α ) , α i > 0 p(\theta|\alpha)=\frac{\Gamma(\sum_{i=1}^k\alpha_i)}{\prod_{i=1}^k\Gamma (\alpha_i)}\prod_{i=1}^k\theta_i^{\alpha_i-1}=\frac{1}{B(\alpha)}\prod_{i=1}^k\theta_i^{\alpha_i-1}=Dir(\theta|\alpha),\alpha_i>0 p(θα)=i=1kΓ(αi)Γ(i=1kαi)i=1kθiαi1=B(α)1i=1kθiαi1=Dir(θα),αi>0
根据贝叶斯规则,在给定样本数据 D D D 和参数 α α α 条件下, θ \theta θ的后验概率分布是
p ( θ ∣ D , α ) = p ( D , θ ∣ α ) p ( D ∣ α ) = p ( D ∣ θ ) p ( θ ∣ α ) p ( D ∣ α ) = ∏ i = 1 k θ i n i 1 B ( α ) θ i α i − 1 ∫ ∏ i = 1 k θ i n i 1 B ( α ) θ i α i − 1 d θ = 1 B ( α + n ) ∏ i = 1 k θ i α i + n i − 1 = D i r ( θ ∣ α + n ) \begin{aligned} p(\theta|D,\alpha)&=\frac{p(D,\theta | \alpha)}{p(D|\alpha)}\\ &=\frac{p(D|\theta)p(\theta|\alpha)}{p(D|\alpha)}\\ &=\frac{\prod_{i=1}^k\theta_i^{n_i}\frac{1}{B(\alpha)}\theta_i^{\alpha_i-1}}{\int\prod_{i=1}^k\theta_i^{n_i}\frac{1}{B(\alpha)}\theta_i^{\alpha_i-1}d\theta}\\ &=\frac{1}{B(\alpha+n)}\prod_{i=1}^k\theta_i^{\alpha_i+n_i-1}\\ &=Dir(\theta|\alpha+n) \end{aligned} p(θD,α)=p(Dα)p(D,θα)=p(Dα)p(Dθ)p(θα)=i=1kθiniB(α)1θiαi1dθi=1kθiniB(α)1θiαi1=B(α+n)1i=1kθiαi+ni1=Dir(θα+n)
可以看出先验分布和后验分布都是狄利克雷分布,两者有不同的参数,所以狄利克雷分布是多项分布的共轭先验。狄利克雷后验分布的参数等于狄利克雷先验分布参数 α = ( α 1 , α 2 , … . α k ) α=(α_1,α_2,….α_k) α=(α1,α2,.αk)加上多项分布的观测计数 n = ( n 1 , n 2 , . . . , n k ) n=(n_1,n_2,...,n_k) n=(n1,n2,...,nk), 好像试验之前就已经观察到计数 α = ( α 1 , α 2 , … . α k ) α=(α_1,α_2,….α_k) α=(α1,α2,.αk),因此也把 α α α 叫做先验伪计数 (prior pseudo-counts) 。

2 潜在狄利克雷分配模型

2.1 基本想法

LDA 模型表示文本集合的自动生成过程:首先,基于单词分布的先验分布(狄利克雷分布)生成多个单词分布,即决定多个话题内容;之后,基于话题分布的先验分布(狄利克雷分布)生成多个话题分布,即决定多个文本内容;然后,基于每一个话题分布生成话题序列,针对每一个话题,基于话题的单词分布生成单词,整体构成一个单词序列,即生成文本,重复这个过程生成所有文本。文本的单词序列是观测变量,文本的话题序列是隐变量,文本的话题分布和话题的单词分布也是隐变量。

在这里插入图片描述

LDA 模型是概率图模型,其特点是以狄利克雷分布为多项分布的先验分布,学习就是给定文本集合,通过后验概率分布的估计,推断模型的所有参数。利用 LDA 进行话题分析,就是对给定文本集合,学习到每个文本的话题分布,以及每个话题的单词分布。

LDA与PLSA的异同:LDA(潜在狄利克雷分配)是PLSA(概率潜在语义分析)的扩展。

  • ①相同点:两者都假设话题是单词的多项分布,文本是话题的多项分布。
  • ②不同点:LDA使用狄利克雷分布作为先验分布,而PLSA不使用先验分布(或者说假设先验分布是均匀分布),两者对文本生成有不同假设;学习过程LDA基于贝叶斯学习,而PLSA基于极大似然估计;LDA的优点是,使用先验概率分布,可以防止学习过程产生过拟合

2.2 模型定义

2.2.1 模型要素
  1. 潜在狄利克雷分配 (LDA) 使用三个集合:
    • 一是单词集合 W = { w 1 , . . , w v , . . . , w V } W=\{w_1,..,w_v,...,w_V\} W={w1,..,wv,...,wV},其中 w v w_v wv是第 v v v 个单词, v = 1 , 2 , … , V v =1, 2,… ,V v=1,2,,V , V V V 是单词的个数 。
    • 二是文本集合 D = { w 1 , . . . , w m … , w M } D = \{\mathbf{w}_1,...,\mathbf{w}_m …,\mathbf{w}_M\} D={w1,...,wm,wM} ,其中 w m \mathbf{w}_m wm 是第 m m m 个文本 , m = 1 , 2 , … , M m= 1, 2,…,M m=1,2,,M, M M M 是文本的个数。文本 w m \mathbf{w}_m wm 是一个单词序列 w m = ( w m 1 , . . , w m n , . . . , w m N m ) \mathbf{w}_m=(w_{m1},..,w_{mn},...,w_{mN_m}) wm=(wm1,..,wmn,...,wmNm) ,其中 w m n w_{mn} wmn 是文本 w m \mathbf{w}_m wm 的第 n n n 个单词 , n = 1 , 2 , … , N m n = 1,2,… ,N_m n=1,2,,Nm N m N_m Nm 是文本 w m \mathbf{w}_m wm 中单词的个数。
    • 三是话题集合 Z = { z 1 , … , z k , … , z K } Z = \{z_1,…,z_k,…, z_K\} Z={z1,,zk,,zK},其中 z k z_k zk 是第 k k k 个话题 , k = 1 , 2 , … , K k = 1, 2,… ,K k=1,2,,K K K K 是话题的个数 。
  2. 每一个话题 z k z_k zk 由一个单词的条件概率分布 p ( w ∣ z k ) p(w|z_k) p(wzk) 决定, w ∈ W w \in W wW。分布 p ( w ∣ z k ) p(w|z_k) p(wzk)服从多项分布 (严格意义上类别分布) ,其参数为 φ k \varphi _k φk。参数 φ k \varphi _k φk 服从狄利克雷分布(先验分布) ,其超参数为 β \beta β。参数 φ k \varphi _k φk 是一个 V V V 维向量 φ k = ( φ k 1 , φ k 2 , . . . , φ k V ) \varphi _k=(\varphi _{k1},\varphi _{k2},...,\varphi _{kV}) φk=(φk1,φk2,...,φkV) , 其中 φ k v \varphi _{kv} φkv 表示话题 z k z_k zk 生成单词 w v w_v wv 的概率。所有话题的参数向量构成一个 K × V K \times V K×V 矩阵 φ = { φ k } k = 1 K \mathbf{\varphi}=\{\varphi_k\}^K_{k=1} φ={φk}k=1K 。超参数 β \beta β 也是一个 V 维向量 β = ( β 1 , β 2 , . . . , β V ) β = (\beta_1,\beta_2,...,\beta_V) β=(β1,β2,...,βV)
  3. 每一个文本 w m \mathbf{w}_m wm 由一个话题的条件概率分布 p ( z ∣ w m ) p(z |\mathbf{w}_m ) p(zwm) 决定 , z ∈ Z z \in Z zZ。分布 p ( z ∣ w m ) p(z |\mathbf{w}_m ) p(zwm)服从多项分布 (严格意义上类别分布) ,其参数为 θ m \theta_m θm。 参数 θ m \theta_m θm 服从狄利克雷分布〈先验分布) ,其超参数为 α α α。参数 θ m \theta_m θm 是一个 K K K 维向量 θ m = ( θ m 1 , θ m 2 , . . . , θ m K ) \theta_m=(\theta_{m1},\theta_{m2},...,\theta_{mK}) θm=(θm1,θm2,...,θmK), 其中 θ m k \theta_{mk} θmk 表示文本 w m \mathbf{w}_m wm 生成话题 z k z_k zk 的概率 。 所有文本的参数向量构成一个 M × K M \times K M×K 矩阵 θ = { θ m } m = 1 M \mathbf{\theta}=\{\theta_m\}^M_{m=1} θ={θm}m=1M 。 超参数 α α α 也是一个 K K K 维向量 α = ( α 1 , α 2 , … , α K ) α= (α_1 ,α_2,…,α_K) α=(α1,α2,,αK)
  4. 每一个文本 w m \mathbf{w}_m wm 中的每一个单词 w m n w_{mn} wmn 由该文本的话题分布 p ( z ∣ w m ) p(z|\mathbf{w}_m) p(zwm) 以及所有话题的单词分布 p ( w ∣ z k ) p(w|z_k) p(wzk) 决定。
2.2.2 生成过程

LDA文本集合的生成过程如下:

给定单词集合 W W W,文本集合 D D D,话题集合 Z Z Z,狄利克雷分布的超参数 α \alpha α β \beta β

  • (1)生成话题的单词分布

    随机生成 K K K个话题的单词分布。具体过程如下,按照狄利克雷分布 D i r ( β ) Dir(\beta) Dir(β) 随机生成一个参数向量 φ k = ( φ k 1 , φ k 2 , . . . , φ k V ) \varphi _k=(\varphi _{k1},\varphi _{k2},...,\varphi _{kV}) φk=(φk1,φk2,...,φkV) φ k ∼ D i r ( β ) \varphi _k∼Dir(\beta) φkDir(β) ,作为话题 z k z_k zk 的单词分布 p ( w ∣ z k ) , w ∈ W , k = 1 , 2 , . . . , K p(w|z_k),w∈W,k=1,2,...,K p(wzk),wW,k=1,2,...,K

  • (2)生成文本的话题分布

    随机生成 M M M个文本的话题分布。具体过程如下,按照狄利克雷分布 D i r ( α ) Dir(\alpha) Dir(α) 随机生成一个参数向量 θ m = ( θ m 1 , θ m 2 , . . . , θ m K ) \theta_m=(\theta_{m1},\theta_{m2},...,\theta_{mK}) θm=(θm1,θm2,...,θmK) θ m ∼ D i r ( α ) \theta_m∼Dir(\alpha) θmDir(α) ,作为文本 w m w_m wm 的话题分布 p ( z ∣ w m ) , m = 1 , 2 , . . . , M p(z|w_m),m=1,2,...,M p(zwm),m=1,2,...,M

  • (3)生成文本的单词序列

    随机生成 M M M个文本的 N m N_m Nm 个单词。文本 w m ( m = 1 , 2 , . . . , M ) w_m(m=1,2,...,M) wm(m=1,2,...,M)的单词 w m n ( n = 1 , 2 , . . . , N m ) w_{mn}(n=1,2,...,N_m) wmn(n=1,2,...,Nm) 的生成过程如下:

    • (3-1)首先按照多项式分布 M u l t ( θ m ) Mult(\theta_m) Mult(θm)随机生成一个话题 z m n , z m n ∼ M u l t ( θ m ) z_{mn},z_{mn}∼Mult(\theta_m) zmn,zmnMult(θm)
    • (3-2)然后按照多项式分布 M u l t ( φ z m n ) Mult(\varphi _{z_{mn}}) Mult(φzmn)随机生成一个单词 w m n , w m n ∼ M u l t ( φ z m n ) w_{mn},w_{mn}∼Mult(\varphi _{z_{mn}}) wmn,wmnMult(φzmn) 。文本 w m w_m wm本身是单词序列 w m = ( w m 1 , w m 2 , . . . , w m N m ) w_m=(w_{m1},w_{m2},...,w_{mN_m}) wm=(wm1,wm2,...,wmNm),对应着隐式的话题序列 z m = ( z m 1 , z m 2 , . . . , z m N m ) z_m=(z_{m1},z_{m2},...,z_{mN_m}) zm=(zm1,zm2,...,zmNm)

LDA 的文本生成过程中,假定话题个数 K K K 给定,实际通常通过实验选定 。 狄利克雷分布的超参数 α α α β \beta β 通常也是事先给定的。在没有其他先验知识的情况下,可以假设向量 α α α β \beta β 的所有分量均为 1, 这时的文本的话题分布 θ m \theta_m θm 是对称的,话题的单词分布 φ k \varphi _k φk也是对称的。

2.2.3 概率图模型

LDA 作为概率图模型的板块表示 ( plate notation) 。图中结点表示随机变量 ,实心结点是观测变量,空心结点是隐变量;有向边表示概率依存关系;矩形(板块)表示重复,板块内数字表示重复的次数。

在这里插入图片描述

图中的 LDA 板块表示,结点 α α α β \beta β 是模型的超参数,结点 φ k \varphi _k φk 表示话题的单词分布的参数,结点 θ m \theta_m θm 表示文本的话题分布的参数,结点 z m n z_{mn} zmn 表示话题,结点 w m n w_{mn} wmn 表示单词。结点 β β β 指向结点 φ k \varphi _k φk,重复 K K K 次,表示根据超参数 β β β 生成 K K K 个话题的单词分布的参数 φ k \varphi _k φk;结点 α α α 指向结点 θ m \theta_m θm ,重复 M M M 次,表示根据超参数 α α α 生成 M M M个文本的话题分布的参数 θ m \theta_m θm;而结点 θ m \theta_m θm 指向结点 z m n z_{mn} zmn ,重复 N m N_m Nm 次,表示根据文本的话题分布 θ m \theta_m θm 生成 N m N_m Nm 个话题 z m n z_{mn} zmn;结点 z m n z_{mn} zmn 指向结点 w m n w_{mn} wmn ,同时 K K K 个结点 φ k \varphi _k φk也指向结点 w m n w_{mn} wmn, 表示根据话题 z m n z_{mn} zmn 以及 K K K 个话题的单词分布 φ k \varphi _k φk 生成单词 w m n w_{mn} wmn

板块表示的优点是简洁,板块表示展开之后,成为普通的有向图表示(下图) 。有向图中结点表示随机变量,有向边表示概率依存关系。可以看出 LDA 是相同随机变量被重复多次使用的概率图模型。

在这里插入图片描述

2.2.4 随机变量序列的可交换性

一个有限的随机变量序列是可交换的 ( exchangeable ) ,是指随机变量的联合概率分布对随机变量的排列不变。
P ( x 1 , x 2 , . . . , x N ) = P ( x π ( 1 ) , x π ( 2 ) , . . . , x π ( N ) ) P(x_1,x_2,...,x_N)=P(x_{\pi(1)},x_{\pi(2)},...,x_{\pi(N)}) P(x1,x2,...,xN)=P(xπ(1),xπ(2),...,xπ(N))
这里 π ( 1 ) , π ( 2 ) , . . . , π ( N ) \pi(1),\pi(2),...,\pi(N) π(1),π(2),...,π(N)代表自然数 1 , 2 , … , N 1,2,… ,N 1,2,,N 的任意一个排列。 一个无限的随机变量序列是无限可交换 ( infinitely exchangeable) 的,是指它的任意一个有 限子序列都是可交换的 。

如果一个随机变量序列 X 1 , X 2 , … , X N , … X_1,X_2,… ,X_N ,… X1,X2,,XN,是独立同分布的 , 那么它们是无限可交换的。反之不然。

随机变量序列可交换的假设在贝叶斯学习中经常使用 。 根据 De Finetti 定理,任意一个无限可交换的随机变量序列对一个随机参数是条件独立同分布的。即任意一个无限可交换的随机变量序列 X 1 , X 2 , … , X i , … X_1,X_2,… ,X_i ,… X1,X2,,Xi, 的基于一个随机参数 Y Y Y 的条件概率,等于基于这个随机参数 Y Y Y 的各个随机变量 X 1 , X 2 , … , X N , … X_1,X_2,… ,X_N ,… X1,X2,,XN, 的条件概率的乘积 。
P ( X 1 , X 2 , … , X N , … ∣ Y ) = P ( X 1 ∣ Y ) P ( X 2 ∣ Y ) . . . P ( X i ∣ Y ) . . . P(X_1,X_2,… ,X_N ,…|Y)=P(X_1|Y)P(X_2|Y)...P(X_i|Y)... P(X1,X2,,XN,Y)=P(X1Y)P(X2Y)...P(XiY)...
LDA 假设文本由无限可交换的话题序列组成 。 由 De Finetti 定理知 , 实际是假设文本中的话题对一个随机参数是条件独立同分布的。所以在参数给定的条件下 , 文本中的话题的顺序可以忽略。作为对比,概率潜在语义模型假设文本中的话题是独立同分布的,文本中的话题的顺序也可以,忽略。

2.2.5 概率公式

LDA 模型整体是由观测变量和隐变量组成的联合概率分布,可以表为
p ( w , z , θ , φ ∣ α , β ) = ∏ k = 1 K p ( φ k ∣ β ) ∏ m = 1 M p ( θ m ∣ α ) ∏ n = 1 N m p ( z m n ∣ θ m ) p ( w m n ∣ z m n , φ ) p(\mathbf{w},\mathbf{z},\theta,\varphi|\alpha,\beta)=\prod_{k=1}^Kp(\varphi_k|\beta)\prod_{m=1}^Mp(\theta_m|\alpha)\prod_{n=1}^{N_m}p(z_{mn}|\theta_m)p(w_{mn}|z_{mn},\varphi) p(w,z,θ,φα,β)=k=1Kp(φkβ)m=1Mp(θmα)n=1Nmp(zmnθm)p(wmnzmn,φ)
其中观测变量 w \mathbf{w} w 表示所有文本中的单词序列,隐变量 z \mathbf{z} z 表示所有文本中的话题序列,隐变量 θ \theta θ 表示所有文本的话题分布的参数,隐变量 φ \varphi φ 表示所有话题的单词分布的参数, α α α β β β 是超参数。式中 p ( φ k ∣ β ) p(\varphi_k|\beta) p(φkβ) 表示超参数 β β β 给定条件下第 k k k 个话题的单词分布的参数 φ k \varphi_k φk 的生成概率, p ( θ m ∣ α ) p(\theta_m|\alpha) p(θmα) 表示超参数 α α α 给定条件下第 m m m 个文本的话题分布的参数 θ m \theta_m θm 的生成概率 , p ( z m n ∣ θ m ) p(z_{mn}|\theta_m) p(zmnθm) 表示第 m m m 个文本的话题分布 θ m \theta_m θm 给定条件下文本的第 n n n 个位置的话题 z m n z_{mn} zmn 的生成概率 , p ( w m n ∣ z m n , φ ) p(w_{mn}|z_{mn},\varphi) p(wmnzmn,φ) 表示在第 m m m 个文本的第 n n n 个位置的话题 z m n z_{mn} zmn 及所有话题的单词分布的参数 φ \varphi φ 给定条件下第 m m m 个文本的第 n n n 个位置的单词 w m n w_{mn} wmn 的生成概率。

m m m个文本的联合概率分布可以表为
p ( w m , z m , θ m , φ ∣ α , β ) = ∏ k = 1 K p ( φ k ∣ β ) p ( θ m ∣ α ) ∏ n = 1 N m p ( z m n ∣ θ m ) p ( w m n ∣ z m n , φ ) p(\mathbf{w}_m,\mathbf{z}_m,\theta_m,\varphi|\alpha,\beta)=\prod_{k=1}^Kp(\varphi_k|\beta)p(\theta_m|\alpha)\prod_{n=1}^{N_m}p(z_{mn}|\theta_m)p(w_{mn}|z_{mn},\varphi) p(wm,zm,θm,φα,β)=k=1Kp(φkβ)p(θmα)n=1Nmp(zmnθm)p(wmnzmn,φ)
其中 w m \mathbf{w}_m wm 表示该文本中的单词序列 , z m \mathbf{z}_m zm 表示该文本的话题序列 , θ m \theta_m θm 表示该文本的话题分布参数。

LDA 模型的联合分布含有隐变量,对隐变量进行积分得到边缘分布。

参数 θ m \theta_m θm φ \varphi φ 给定条件下第 m m m 个文本的生成概率是
p ( w m ∣ θ m , φ ) = ∏ n = 1 N m [ ∑ k = 1 K p ( z m n = k ∣ θ m ) p ( w m n ∣ φ k ) ] p(\mathbf{w}_m|\theta_m,\varphi)=\prod_{n=1}^{N_m}\left[\sum_{k=1}^Kp(z_{mn}=k|\theta_m)p(w_{mn}|\varphi_k)\right] p(wmθm,φ)=n=1Nm[k=1Kp(zmn=kθm)p(wmnφk)]
超参数 α α α β β β 给定条件下第 m m m 个文本的生成概率是
p ( w m ∣ α , β ) = ∏ k = 1 K ∫ p ( φ k ∣ β ) [ ∫ p ( θ m ∣ α ) ∏ n = 1 N m [ ∑ l = 1 K p ( z m n = l ∣ θ m ) p ( w m n ∣ φ l ) ] d θ m ] d φ k p(\mathbf{w}_m|\alpha,\beta)=\prod_{k=1}^K\int p(\varphi_k|\beta) \left[ \int p(\theta_m|\alpha)\prod_{n=1}^{N_m}\left[ \sum_{l=1}^Kp(z_{mn}=l|\theta_m)p(w_{mn}|\varphi_l)\right]d\theta_m\right]d\varphi_k p(wmα,β)=k=1Kp(φkβ)[p(θmα)n=1Nm[l=1Kp(zmn=lθm)p(wmnφl)]dθm]dφk
超参数 α α α β β β 给定条件下所有文本的生成概率是
p ( w ∣ α , β ) = ∏ k = 1 K ∫ p ( φ k ∣ β ) [ ∏ m = 1 M ∫ p ( θ m ∣ α ) ∏ n = 1 N m [ ∑ l = 1 K p ( z m n = l ∣ θ m ) p ( w m n ∣ φ l ) ] d θ m ] d φ k p(\mathbf{w}|\alpha,\beta)=\prod_{k=1}^K\int p(\varphi_k|\beta) \left[ \prod_{m=1}^M\int p(\theta_m|\alpha)\prod_{n=1}^{N_m}\left[ \sum_{l=1}^Kp(z_{mn}=l|\theta_m)p(w_{mn}|\varphi_l)\right]d\theta_m\right]d\varphi_k p(wα,β)=k=1Kp(φkβ)[m=1Mp(θmα)n=1Nm[l=1Kp(zmn=lθm)p(wmnφl)]dθm]dφk

3 LDA 的吉布斯抽样算法

  • 输入:文本的单词序列 w = { w 1 , . . . , w m … , w M } \mathbf{w} = \{\mathbf{w}_1,...,\mathbf{w}_m …,\mathbf{w}_M\} w={w1,...,wm,wM} w m = ( w m 1 , . . , w m n , . . . , w m N m ) \mathbf{w}_m=(w_{m1},..,w_{mn},...,w_{mN_m}) wm=(wm1,..,wmn,...,wmNm);
  • 输出:文本的话题序列 z = { z 1 , . . . , z m … , z M } \mathbf{z} = \{\mathbf{z}_1,...,\mathbf{z}_m …,\mathbf{z}_M\} z={z1,...,zm,zM} z m = ( z m 1 , . . , z m n , . . . , z m N m ) \mathbf{z}_m=(z_{m1},..,z_{mn},...,z_{mN_m}) zm=(zm1,..,zmn,...,zmNm)的后验概率分布 p ( z ∣ w , α , β ) p(\mathbf{z}|\mathbf{w},\alpha,\beta) p(zw,α,β) 的样本计数,模型的参数 φ \varphi φ θ \theta θ 的估计值;
  • 参数:超参数 α α α β \beta β , 话题个数 K K K
  1. 设所有计数矩阵的元素 n m k n_{mk} nmk n k v n_{kv} nkv,计数向量的元素 n m n_m nm n k n_k nk初值为 0;

  2. 对所有文本 w m \mathbf{w}_m wm m = 1 , 2 , … , M m = 1, 2,… , M m=1,2,,M,对第 m m m 个文本中的所有单词 w m n w_{mn} wmn n = 1 , 2 , … , N m n=1,2 ,…,N_m n=1,2,,Nm

    • 抽样话题 z m n ∼ M u l t ( 1 K ) z_{mn} \sim Mult(\frac{1}{K}) zmnMult(K1)
    • 增加文本-话题计数 n m k = n m k + 1 n_{mk} = n_{mk} + 1 nmk=nmk+1
    • 增加文本-话题和计数 n m = n m + 1 n_m= n_m +1 nm=nm+1
    • 增加话题-单词计数 n k v = n k v + 1 n_{kv} = n_{kv} + 1 nkv=nkv+1
    • 增加话题-单词和计数 n k = n k + 1 n_k = n_k+ 1 nk=nk+1
  3. 循环执行以下操作,直到进入燃烧期。对所有文本 w m \mathbf{w}_m wm m = 1 , 2 , … , M m = 1, 2,… , M m=1,2,,M,对第 m m m 个文本中的所有单词 w m n w_{mn} wmn n = 1 , 2 , … , N m n=1,2 ,…,N_m n=1,2,,Nm

    • (a) 当前的单词 w m n w_{mn} wmn 是第 v v v 个单词,话题指派 z m n z_{mn} zmn 是第 k k k 个话题;

      • 减少文本-话题计数 n m k = n m k − 1 n_{mk} = n_{mk} - 1 nmk=nmk1,
      • 减少文本-话题和计数 n m = n m − 1 n_m= n_m -1 nm=nm1
      • 减少话题-单词计数 n k v = n k v − 1 n_{kv} = n_{kv} - 1 nkv=nkv1,
      • 减少话题-单词和计数 n k = n k − 1 n_k = n_k- 1 nk=nk1;
    • (b) 按照满条件分布进行抽样
      p ( z i ∣ z − i , w , α , β ) ∝ n k v + β v ∑ v = 1 V ( n k v + β v ) . n m k + α k ∑ k = 1 K ( n m k + α k ) p(z_i|\mathbf{z}_{-i},\mathbf{w},\alpha,\beta) \propto \frac{n_{kv}+\beta_v}{\sum_{v=1}^V(n_{kv}+\beta_v)} . \frac{n_{mk}+\alpha_k}{\sum_{k=1}^K(n_{mk}+\alpha_k)} p(zizi,w,α,β)v=1V(nkv+βv)nkv+βv.k=1K(nmk+αk)nmk+αk
      得到新的第 k ′ k' k 个话题,分配给 z m n z_{mn} zmn

    • (c)增加计数 n m k ′ = n m k ′ + 1 n_{mk'} = n_{mk'} + 1 nmk=nmk+1 n m = n m + 1 n_m= n_m +1 nm=nm+1 n k ′ ′ v = n k ′ v + 1 n_{k''v} = n_{k'v} + 1 nk′′v=nkv+1 n k ′ = n k ′ + 1 n_{k'} = n_{k'}+ 1 nk=nk+1

    • (d)得到更新的两个计数矩阵 N K × V = [ n k v ] N_{K\times V} = [n_{kv}] NK×V=[nkv] N M × K = [ n m k ] N_{M \times K} = [n_{mk}] NM×K=[nmk] ,表示后验概率分布 p ( z ∣ w , α , β ) p(\mathbf{z}|\mathbf{w},\alpha,\beta) p(zw,α,β) 的样本计数;

  4. 利用得到的样本计数,计算模型参数
    θ m k = n m k + α k ∑ k = 1 K ( n m k + α k ) φ k v = n k v + β v ∑ v = 1 V ( n k v + β v ) \theta_{mk}=\frac{n_{mk}+\alpha_k}{\sum_{k=1}^K(n_{mk}+\alpha_k)}\\ \varphi_{kv}=\frac{n_{kv}+\beta_v}{\sum_{v=1}^V(n_{kv}+\beta_v)} θmk=k=1K(nmk+αk)nmk+αkφkv=v=1V(nkv+βv)nkv+βv

4 LDA 的变分 EM 算法

LDA 的变分 EM 算法如下:

  • 输入:给定文本集合 D = { w 1 , . . . , w m … , w M } D = \{\mathbf{w}_1,...,\mathbf{w}_m …,\mathbf{w}_M\} D={w1,...,wm,wM}
  • 输出:变分参数 γ \gamma γ , η \eta η,模型参数 α α α, φ \varphi φ

交替选代 E 步和 M 步,直到收敛。

  • (1) E 步

    固定模型参数 α α α, φ \varphi φ ,通过关于变分参数 γ \gamma γ , η \eta η 的证据下界的最大化,估计变分参数 γ \gamma γ , η \eta η

  • (2) M 步

    固定变分参数 γ \gamma γ , η \eta η ,通过关于模型参数 α α α, φ \varphi φ 的证据下界的最大化,估计模型参数 α α α, φ \varphi φ

    根据变分参数 γ \gamma γ , η \eta η ,可以估计模型参数 θ = ( θ 1 , . . . , θ m , . . . , θ M ) \theta=(\theta_1,...,\theta_m,...,\theta_M) θ=(θ1,...,θm,...,θM) z = ( z 1 , . . . , z m … , z M ) \mathbf{z} = (\mathbf{z}_1,...,\mathbf{z}_m …,\mathbf{z}_M) z=(z1,...,zm,zM)

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
潜在狄利克分配(Latent Dirichlet Allocation,LDA)是一种文本主题分析算法,其基本思想是假设每篇文档都由若干个主题混合而成,每个主题又由若干个单词组成。LDA的目标是通过观察文档中的单词,推断文档所包含的主题以及每个主题包含的单词。 LDA的算法流程如下: 1. 初始化参数 首先需要确定主题数K,以及每个主题包含的单词概率分布。这些参数可以通过人工设定或者随机赋值来确定。 2. 统计单词出现次数 统计每篇文档中每个单词的出现次数,得到单词-文档矩阵。 3. 随机分配主题 对于每个单词,随机分配一个主题。 4. 迭代更新参数 重复以下步骤直到收敛: (1)对于每个单词,计算其属于每个主题的概率,即给定文档和主题,该单词出现的概率。根据贝叶斯定理,该概率可以由单词在主题中出现的概率和主题在文档中出现的概率相乘得到。 (2)对于每个主题,计算其包含每个单词的概率。根据贝叶斯定理,该概率可以由单词在主题中出现的概率和主题在文档中出现的概率相乘得到。 (3)根据计算出的单词-主题和主题-单词概率分布,重新分配每个单词的主题。 5. 输出主题-单词矩阵 重复以上步骤之后,得到每个主题包含的单词概率分布和每篇文档包含的主题分布。这些信息可以用来生成文本摘要、文本分类等应用。 LDA的优点在于能够自动地发现文本中的主题,并且可以处理大规模的文本数据。其缺点是对于文本的预处理要求较高,需要去除停用词、词干提取等。此外,LDA算法也存在一定的计算复杂度和收敛速度问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

healed萌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值