本文涉及的知识点有,最大似然,贝叶斯估计,共轭分布,EM算法,变分推断等。
极大似然估计、极大后验估计和贝叶斯估计
在进行下面的推导之前,首先要了解参数估计的相关内容,见最大似然估计(MLE)、最大后验估计(MAP)和贝叶斯估计
LDA初探
在PLSA模型中,doc-topic分布和topic-word分布(也就是在主题模型(二)概率潜在语义分析(PLSA或PLSI)中求解的 p ( z k ∣ d i ) 和 p ( w j ∣ z k ) p(z_k|d_i)和p(w_j|z_k) p(zk∣di)和p(wj∣zk))一旦被求解,就是固定的,是一个常数。但是在贝叶斯学派认为,未知的参数应该是一个随机变量,应该考虑其先验知识,而且根据贝叶斯估计的方法,随机变量应该也服从一个分布,而不是一个常数。
也就是说:文档 d i d_i di的主题分布 θ → i = ( p ( z 1 ∣ d i ) , p ( z 2 ∣ d i ) , . . . , p ( z K ∣ d i ) ) \overrightarrow{\theta}_{i}=(p(z_1|d_i), p(z_2|d_i),...,p(z_K|d_i)) θi=(p(z1∣di),p(z2∣di),...,p(zK∣di))应该服从一个先验分布 p ( θ → i ) p(\overrightarrow{\theta}_{i}) p(θi),主题的单词分布 β → k = ( p ( w 1 ∣ z k ) , p ( w 2 ∣ z k ) , . . . , p ( w N ∣ z k ) ) \overrightarrow{\beta}_{k}=(p(w_1|z_k),p(w_2|z_k),...,p(w_N|z_k)) βk=(p(w1∣zk),p(w2∣zk),...,p(wN∣zk))应该也服从一个先验分布。
这里解释一下,有人可能有疑问: θ → i \overrightarrow{\theta}_{i} θi不是服从多项式分布吗,怎么又服从一个先验分布了?其实是这样的, θ → i \overrightarrow{\theta}_{i} θi并不是服从多项式分布,而是多项式分布的参数,多项式分布的随机变量不是 θ → i \overrightarrow{\theta}_{i} θi,而是重复n次实验后,K种实验结果的频次。贝叶斯学派认为,虽然 θ → i \overrightarrow{\theta}_{i} θi是多项式分布的参数,但是这个参数也是一个随机变量,服从一个分布。比如在贝叶斯学派眼中,高斯分布的协方差阵也是服从一个分布的,叫逆威沙特分布。所以 θ → i \overrightarrow{\theta}_{i} θi服从的分布可以理解为是分布的参数(比如多项式分布)的先验分布(比如狄利克雷分布)。
通常为了计算方便,使用共轭分布来进行贝叶斯估计,多项式分布的共轭先验是狄利克雷分布。
在LDA中,文档的主题的生成过程 p ( z ∣ d i ) p(z|d_i) p(z∣di)是服从多项式分布的,这个多项式分布的参数是 θ i \theta_{i} θi, θ i = ( θ i , 1 , θ i , 2 , . . . θ i , K ) \theta_{i}=(\theta_{i,1}, \theta_{i,2},...\theta_{i,K}) θi=(θi,1,θi,2,...θi,K)是一个 K K K维的向量, θ i , k = p ( z k ∣ d i ) \theta_{i,k}=p(z_k|d_i) θi,k=p(zk∣di)表示文档 d i d_i di生成话题 z k z_k zk的概率。 θ i \theta_{i} θi本身也服从一个先验分布,叫做狄利克雷分布,但是这个狄利克雷分布本身也是有参数的,其参数记为 α \alpha α, α \alpha α是一个 K K K维的向量。
主题 k k k的单词的生成过程 p ( w ∣ z k ) p(w|z_k) p(w∣zk)是服从多项式分布的,这个多项式分布的参数是 β k \beta_{k} βk, β k = ( β k , 1 , β k , 2 , . . . β k , N ) \beta_{k}=(\beta_{k,1}, \beta_{k,2},...\beta_{k,N}) βk=(βk,1,βk,2,...βk,N)是一个 N N N维的向量, β k , j = p ( w j ∣ z k ) \beta_{k,j}=p(w_j|z_k) βk,j=p(wj∣zk)表示主题 z k z_k zk生成单词 w j w_j wj的概率。 β k \beta_{k} βk本身也服从一个狄利克雷分布,这个狄利克雷分布的参数是 η \eta η, η \eta η是一个 N N N维的向量。
所以从上面的分析可以看出,LDA在PLSA的基础上加入了先验信息,是PLSA的贝叶斯版本。
下面我们也按照在讲解PLSA的时候,分布讲解5项内容。
- 主题模型的输入
- 主题模型的基本假设
- 主题模型的表示
1. 概率图模型
2. 生成过程 - 参数估计
- 新样本的推断
1. 主题模型的输入
在LDA模型中,输入与PLSA的相同,都是文档-词共线矩阵,矩阵元素是词在文档中的词频或者TF-IDF值。
2. 主题模型的基本假设
这一部分也与PLSI的相同,就是词袋假设,没有考虑词序,交换词序不会影响最终结果。
3. 主题模型的表示
3.1 LDA的概率图模型
上图就是LDA的概率图模型,简单解释一下。
- LDA的概率图模型中,可观测变量只有文档的单词
- α , β \alpha, \beta α,β是模型的参数, θ , β , z \theta, \beta, z θ,β,z是隐变量
- LDA的参数也分为3个级别, α , η , β \alpha, \eta, \beta α,η,β是模型级别的参数,作用域是整个文档集。 θ \theta θ是文档级别的参数,表示某一篇文档的主题分布,作用域是一篇文档。 z z z是词级别的参数,作用域是某一个词,表示那个词的主题。
-
α
⟶
θ
⟶
z
\alpha \longrightarrow \theta \longrightarrow z
α⟶θ⟶z组成了狄利克雷-多项式共轭,也就是
p
(
θ
∣
α
)
p(\theta|\alpha)
p(θ∣α)是狄利克雷分布,
p
(
θ
∣
α
)
=
D
i
r
(
θ
∣
α
)
=
Γ
(
∑
k
=
1
K
α
k
)
∏
k
=
1
K
Γ
(
α
k
)
∏
k
=
1
K
θ
k
α
k
−
1
p(\theta|\alpha)=Dir(\theta|\alpha)={\Gamma(\sum_{k=1}^K \alpha_k) \over \prod_{k=1}^K \Gamma(\alpha_k)} \prod_{k=1}^K\theta_k^{\alpha_{k}-1}
p(θ∣α)=Dir(θ∣α)=∏k=1KΓ(αk)Γ(∑k=1Kαk)k=1∏Kθkαk−1
p ( z ∣ θ ) p(z|\theta) p(z∣θ)是多项式分布(严格意义上是类别分布,因为只做了一次实验)。
p ( z = k ∣ θ ) = M u l t ( z = k ∣ θ ) = θ k p(z=k|\theta)= Mult(z=k|\theta) = \theta_k p(z=k∣θ)=Mult(z=k∣θ)=θk -
η
⟶
β
⟶
w
\eta \longrightarrow \beta \longrightarrow w
η⟶β⟶w组成了狄利克雷-多项式共轭。也就是
p
(
β
∣
η
)
p(\beta|\eta)
p(β∣η)是狄利克雷分布,
V
V
V表示词表长度。
p ( β k ∣ η ) = D i r ( β k ∣ η ) = Γ ( ∑ j = 1 V η j ) ∏ j = 1 V Γ ( η j ) ∏ j = 1 V β k , j η j − 1 p(\beta_k|\eta)=Dir(\beta_k|\eta)={\Gamma(\sum_{j=1}^V \eta_j) \over \prod_{j=1}^V\Gamma(\eta_j)} \prod_{j=1}^V\beta_{k,j}^{\eta_{j}-1} p(βk∣η)=Dir(βk∣η)=∏j=1VΓ(ηj)Γ(∑j=1Vηj)j=1∏Vβk,jηj−1
p ( w ∣ β ) p(w|\beta) p(w∣β)是多项式分布,(严格意义上是类别分布,因为只做了一次实验)。
p ( w j ∣ β k ) = M u l t ( w j ∣ β k ) = β k , j p(w_j|\beta_k)= Mult(w_j|\beta_k) = \beta_{k,j} p(wj∣βk)=Mult(wj∣βk)=βk,j
3.2 LDA的生成过程
-
根据参数为 α \alpha α狄利克雷分布采样得到文档 d i d_i di的主题分布 θ i \theta_{i} θi
-
根据参数为 η \eta η的狄利克雷分布采样得到主题 z k z_k zk的词分布 β k \beta_{k} βk,每个话题采样一次,一共采样 K K K次。
-
假设文档 d i d_i di的单词数是 n d i n_{d_i} ndi,对文档 d i d_i di中每个单词的位置重复下面的过程:
- 根据参数为 θ i \theta_{i} θi多项式分布随机生成一个话题 z k z_k zk,选择的主题 z k z_k zk的词分布 β k \beta_k βk,
- 根据参数为 β k \beta_k βk的多项式分布随机生成一个单词 w j w_{j} wj
-
重复上面的步骤 M M M次,就得到了一篇文档集。
4. 参数估计
在EM算法总结一文中,得到了EM算法的一般框架,在E步要求隐变量的后验分布。在LDA中,隐变量是 θ , β , z \theta, \beta, z θ,β,z,所以我们要求解 p ( θ , β , z ∣ W , α , η ) p(\theta, \beta, z|W, \alpha, \eta) p(θ,β,z∣W,α,η)
p ( θ , β , z ∣ W , α , η ) = p ( θ , β , z , W ∣ α , η ) p ( W ∣ α , η ) (1) \tag{1} p(\theta, \beta, z|W, \alpha, \eta) = {p(\theta, \beta, z, W| \alpha, \eta) \over p(W|\alpha, \eta)} p(θ,β,z∣W,α,η)=p(W∣α,η)p(θ,β,z,W∣α,η)(1)
根据概率图模型和生成过程 ,可以得到
p
(
θ
,
β
,
z
,
W
∣
α
,
η
)
=
[
∏
k
=
1
K
p
(
β
k
∣
η
)
]
∏
i
=
1
M
[
p
(
θ
i
∣
α
)
∏
j
=
1
N
d
i
p
(
z
i
,
j
∣
θ
i
)
p
(
w
i
,
j
∣
z
i
,
j
,
β
)
]
(2)
\tag{2} p(\theta, \beta, z, W| \alpha, \eta) =[\prod_{k=1}^Kp(\beta_k|\eta)]\prod_{i=1}^{M} [p(\theta_i|\alpha)\prod_{j=1}^{N_{d_i}}p(z_{i,j}|\theta_i)p(w_{i,j}|z_{i,j}, \beta)]
p(θ,β,z,W∣α,η)=[k=1∏Kp(βk∣η)]i=1∏M[p(θi∣α)j=1∏Ndip(zi,j∣θi)p(wi,j∣zi,j,β)](2)
p
(
W
∣
α
,
η
)
=
∫
θ
∫
β
∑
z
p
(
θ
,
β
,
z
,
W
∣
α
,
η
)
d
β
d
θ
=
∫
θ
∫
β
∑
z
[
∏
k
=
1
K
p
(
β
k
∣
η
)
]
∏
i
=
1
M
[
p
(
θ
i
∣
α
)
∏
j
=
1
N
d
i
p
(
z
i
,
j
∣
θ
i
)
p
(
w
i
,
j
∣
z
i
,
j
,
β
)
]
d
θ
d
β
=
∫
β
[
∏
k
=
1
K
p
(
β
k
∣
η
)
]
∫
θ
∏
i
=
1
M
[
p
(
θ
i
∣
α
)
∏
j
=
1
N
d
i
∑
l
=
1
K
p
(
z
i
,
j
=
l
∣
θ
i
)
p
(
w
i
,
j
∣
β
l
)
]
d
θ
d
β
=
∏
k
=
1
K
∫
β
k
p
(
β
k
∣
η
)
[
∏
i
=
1
M
∫
θ
i
p
(
θ
i
∣
α
)
∏
j
=
1
N
d
i
[
∑
l
=
1
K
p
(
z
i
,
j
=
l
∣
θ
i
)
p
(
w
i
,
j
∣
β
l
)
]
d
θ
i
]
d
β
k
(3)
\tag{3} \begin{aligned} p(W|\alpha,\eta) = & \int_{\theta}\int_{\beta}\sum_{z}p(\theta,\beta,z,W|\alpha,\eta)d\beta d\theta \\ = & \int_{\theta}\int_{\beta}\sum_{z}[\prod_{k=1}^Kp(\beta_k|\eta)]\prod_{i=1}^{M} [p(\theta_i|\alpha)\prod_{j=1}^{N_{d_i}}p(z_{i,j}|\theta_i)p(w_{i,j}|z_{i,j}, \beta)]d\theta d\beta \\ = & \int_{\beta}[\prod_{k=1}^Kp(\beta_k|\eta)] \int_{\theta}\prod_{i=1}^{M} [p(\theta_i|\alpha)\prod_{j=1}^{N_{d_i}}\sum_{l=1}^Kp(z_{i,j}=l|\theta_i)p(w_{i,j}|\beta_l)]d\theta d\beta \\ = & \prod_{k=1}^{K} \int_{\beta_k}p(\beta_k|\eta)[\prod_{i=1}^{M}\int_{\theta_i}p(\theta_i|\alpha)\prod_{j=1}^{N_{d_i}}[\sum_{l=1}^{K}p(z_{i,j}=l|\theta_i)p(w_{i,j}|\beta_l)]d\theta_i]d\beta_k \end{aligned}
p(W∣α,η)====∫θ∫βz∑p(θ,β,z,W∣α,η)dβdθ∫θ∫βz∑[k=1∏Kp(βk∣η)]i=1∏M[p(θi∣α)j=1∏Ndip(zi,j∣θi)p(wi,j∣zi,j,β)]dθdβ∫β[k=1∏Kp(βk∣η)]∫θi=1∏M[p(θi∣α)j=1∏Ndil=1∑Kp(zi,j=l∣θi)p(wi,j∣βl)]dθdβk=1∏K∫βkp(βk∣η)[i=1∏M∫θip(θi∣α)j=1∏Ndi[l=1∑Kp(zi,j=l∣θi)p(wi,j∣βl)]dθi]dβk(3)
由于
θ
,
β
,
z
\theta, \beta, z
θ,β,z之间的耦合性,(1)式是没有办法直接求解的,但是如果不求就没有办法使用EM算法了。因此使用变分推断的方法,具体就是引入平均场理论的变分推断,这个推断假设,所有的隐藏变量都是通过各自的独立分布形成的,如下图所示:
我们假设隐藏变量
θ
\theta
θ是由独立分布
γ
\gamma
γ形成的,
β
\beta
β是由独立分布
λ
\lambda
λ形成的,
z
z
z是由独立分布
ϕ
\phi
ϕ形成的。这样就得到了隐藏变量的联合变分分布
q
q
q为:
q
(
θ
,
β
,
z
∣
γ
,
λ
,
ϕ
)
=
∏
k
=
1
K
q
(
β
k
∣
λ
k
)
∏
i
=
1
M
q
(
θ
i
,
z
i
∣
γ
i
,
ϕ
i
)
=
∏
k
=
1
K
q
(
β
k
∣
λ
k
)
∏
i
=
1
M
[
q
(
θ
i
∣
γ
i
)
∏
j
=
1
N
d
i
q
(
z
i
,
j
∣
ϕ
i
,
j
)
]
(4)
\begin{aligned} \tag{4} q(\theta, \beta, z|\gamma, \lambda, \phi)= & \prod_{k=1}^{K}q(\beta_{k}|\lambda_{k})\prod_{i=1}^{M}q(\theta_i,z_i|\gamma_i, \phi_i) \\ = & \prod_{k=1}^{K}q(\beta_{k}|\lambda_{k})\prod_{i=1}^{M}[q(\theta_i|\gamma_i)\prod_{j=1}^{N_{d_i}} q(z_{i,j}|\phi_{i,j})] \end{aligned}
q(θ,β,z∣γ,λ,ϕ)==k=1∏Kq(βk∣λk)i=1∏Mq(θi,zi∣γi,ϕi)k=1∏Kq(βk∣λk)i=1∏M[q(θi∣γi)j=1∏Ndiq(zi,j∣ϕi,j)](4)
在变分推断这篇文章中,推导了变分推断的ELBO:
E
L
B
O
=
∫
Z
q
(
Z
)
l
o
g
p
(
X
,
Z
∣
Θ
)
q
(
Z
)
d
Z
=
E
q
[
l
o
g
p
(
X
,
Z
∣
Θ
)
]
−
E
q
[
l
o
g
q
(
Z
)
]
(5)
\tag{5} ELBO = \int_Zq(Z)log{p(X,Z|\Theta) \over q(Z)}dZ =E_{q}[logp(X,Z|\Theta)]-E_{q}[logq(Z)]
ELBO=∫Zq(Z)logq(Z)p(X,Z∣Θ)dZ=Eq[logp(X,Z∣Θ)]−Eq[logq(Z)](5)
这
里
的
Z
这里的Z
这里的Z指的不仅仅是一个隐变量,而是像LDA中多个隐变量,
Θ
\Theta
Θ是模型的参数,也就是在LDA模型中,
q
(
Z
)
=
q
(
θ
,
β
,
z
∣
γ
,
λ
,
ϕ
)
q(Z)=q(\theta, \beta, z|\gamma, \lambda, \phi)
q(Z)=q(θ,β,z∣γ,λ,ϕ),
p
(
X
,
Z
∣
Θ
)
=
p
(
θ
,
β
,
z
,
W
∣
α
,
η
)
p(X,Z|\Theta)=p(\theta, \beta, z, W|\alpha, \eta)
p(X,Z∣Θ)=p(θ,β,z,W∣α,η)
将(2)式和(4)式带入(5)式得到了LDA的变分EM算法的下界:
L
(
γ
,
λ
,
ϕ
;
α
,
η
)
=
E
q
[
l
o
g
p
(
θ
,
β
,
z
,
W
∣
α
,
η
)
]
−
E
q
[
l
o
g
q
(
θ
,
β
,
z
∣
γ
,
λ
,
ϕ
)
]
=
E
q
[
l
o
g
p
(
θ
∣
α
)
]
+
E
q
[
l
o
g
p
(
β
∣
η
)
]
+
E
q
[
l
o
g
p
(
z
∣
θ
)
]
+
E
q
[
l
o
g
p
(
W
∣
z
,
β
)
]
−
E
q
[
l
o
g
q
(
θ
∣
γ
)
]
−
E
q
[
l
o
g
q
(
β
∣
λ
)
]
−
E
q
[
l
o
g
q
(
z
∣
ϕ
)
]
(6)
\tag{6} \begin{aligned} L(\gamma, \lambda, \phi; \alpha,\eta) = & E_{q}[logp(\theta, \beta, z, W|\alpha, \eta)]-E_{q}[logq(\theta, \beta, z|\gamma, \lambda, \phi)] \\ = & E_{q}[logp(\theta|\alpha)]+E_{q}[logp(\beta|\eta)]+E_{q}[logp(z|\theta)]+E_{q}[logp(W|z,\beta)] \\ & - E_{q}[logq(\theta|\gamma)]-E_{q}[logq(\beta|\lambda)]-E_{q}[logq(z|\phi)] \end{aligned}
L(γ,λ,ϕ;α,η)==Eq[logp(θ,β,z,W∣α,η)]−Eq[logq(θ,β,z∣γ,λ,ϕ)]Eq[logp(θ∣α)]+Eq[logp(β∣η)]+Eq[logp(z∣θ)]+Eq[logp(W∣z,β)]−Eq[logq(θ∣γ)]−Eq[logq(β∣λ)]−Eq[logq(z∣ϕ)](6)
(6)式可以分解成这样是因为对分布取了
l
o
g
log
log,而原来的(2)和(4)式内部都是乘积的形式,取
l
o
g
log
log之后就变成了和式,所以可以将所有的相同的变量提取到一起进行求期望。
(6)式展开之后有7项,为了简化篇幅,以
E
q
[
l
o
g
p
(
β
∣
η
)
]
E_{q}[logp(\beta|\eta)]
Eq[logp(β∣η)]为例讲解。在讲解之前,先了解一下指数分布簇相关的内容:指数分布簇是指形如下面形式的概率分布:
p
(
x
∣
θ
)
=
h
(
x
)
e
η
(
θ
)
∗
T
(
x
)
−
A
(
θ
)
p(x|\theta) = h(x)e^{\eta(\theta)*T(x)-A(\theta)}
p(x∣θ)=h(x)eη(θ)∗T(x)−A(θ)
其中,
A
(
θ
)
A(\theta)
A(θ)是归一化因子,保证积分为1,引入指数分布簇,是因为指数分布簇具有这样的性质:
E
p
(
x
∣
θ
)
[
T
(
x
)
]
=
d
A
(
θ
)
d
η
(
θ
)
E_{p(x|\theta)}[T(x)] = { dA(\theta) \over d\eta(\theta)}
Ep(x∣θ)[T(x)]=dη(θ)dA(θ)
常见的分布,比如高斯分布、多项式分布、狄利克雷分布、伯努利分布、泊松分布、指数分布都是指数分布簇。有了这个性质,意味着(6)式中期望的计算可以转化为求导来完成。下面来求解
E
q
[
l
o
g
p
(
β
∣
η
)
]
E_{q}[logp(\beta|\eta)]
Eq[logp(β∣η)]
E
q
[
l
o
g
p
(
β
∣
η
)
]
=
E
q
[
l
o
g
∏
k
=
1
K
(
Γ
(
∑
j
=
1
V
η
j
)
∏
j
=
1
V
Γ
(
η
j
)
∏
j
=
1
V
β
k
,
j
η
j
−
1
)
]
=
K
l
o
g
Γ
(
∑
j
=
1
V
η
j
)
−
K
∑
j
=
1
V
Γ
(
η
j
)
+
∑
k
=
1
K
E
q
[
∑
j
=
1
V
(
η
j
−
1
)
l
o
g
β
k
,
j
]
(7)
\tag{7} \begin{aligned} E_{q}[logp(\beta|\eta)] = &E_{q}[log\prod_{k=1}^{K}({\Gamma(\sum_{j=1}^V \eta_j) \over \prod_{j=1}^V\Gamma(\eta_j)} \prod_{j=1}^V\beta_{k,j}^{\eta_{j}-1})] \\ = & Klog \Gamma(\sum_{j=1}^V \eta_j) - K\sum_{j=1}^{V}\Gamma(\eta_j)+\sum_{k=1}^{K}E_{q}[\sum_{j=1}^{V}(\eta_{j}-1)log\beta_{k,j}] \end{aligned}
Eq[logp(β∣η)]==Eq[logk=1∏K(∏j=1VΓ(ηj)Γ(∑j=1Vηj)j=1∏Vβk,jηj−1)]KlogΓ(j=1∑Vηj)−Kj=1∑VΓ(ηj)+k=1∑KEq[j=1∑V(ηj−1)logβk,j](7)
(7)式中的期望部分可以转化为求导来完成。即:
其中:
最终得到ELBO中第一项的展开式为:
其他6项的表达式为:
到这里,我们求得到了隐变量
θ
,
β
,
z
\theta, \beta, z
θ,β,z的期望的表达式,ELBO貌似可以求解了,但是前提是要知道变分参数
γ
,
λ
,
ϕ
\gamma, \lambda, \phi
γ,λ,ϕ和模型参数
α
,
η
\alpha, \eta
α,η的值,下面就用变分EM算法来迭代更新变分参数和模型参数。
E-STEP: 获取最优变分参数
EM算法是求解隐变量的后验,这里不同的是计算变分分布的参数
γ
,
λ
,
ϕ
\gamma, \lambda, \phi
γ,λ,ϕ。令ELBO对各个变分参数求导,并令偏导数为0,可以得到迭代表达式,多次迭代就得到了最优变分参数。这里不详细推导,直接给出表达式。
(8)
其中,
w
n
i
=
1
w_{n}^i = 1
wni=1当且仅当文档中第
n
n
n个词为词汇表中的第
i
i
i个词。
(9)
(10)
由于变分参数
λ
\lambda
λ决定了
β
\beta
β的分布,对于整个语料库是共享的,所以有:
(11)
最终我们的E步就是用(8)(9)(11)式来更新三个变分参数。当我们得到三个变分参数后,不断循环迭代更新,直到这三个变分参数收敛。当变分参数收敛后,下一步就是M步,固定变分参数,更新模型参数
α
,
η
\alpha, \eta
α,η了。
M-STEP: 更新模型参数
由于我们在E步,已经得到了当前最佳变分参数,现在我们在M步就来固定变分参数,极大化ELBO得到最优的模型参数 α , η \alpha, \eta α,η。求解最优的模型参数 α , η \alpha, \eta α,η的方法有很多,梯度下降法,牛顿法都可以。LDA这里一般使用的是牛顿法,即通过求出ELBO对于 α , η \alpha, \eta α,η的一阶导数和二阶导数的表达式,然后迭代求解 α , η \alpha, \eta α,η在M步的最优解。
参考:https://www.cnblogs.com/pinard/p/6873703.html#!comments