隐式狄利克雷分布(LDA)的随机变分推断(SVI)算法原理与参数估计过程
字数 1878 2025-11-09 12:31:36

隐式狄利克雷分布(LDA)的随机变分推断(SVI)算法原理与参数估计过程

1. 问题描述
隐式狄利克雷分布(Latent Dirichlet Allocation, LDA)是一种主题模型,用于从文本集合中自动发现潜在主题。给定文档集合,LDA假设每篇文档是多个主题的混合,每个主题是词语的概率分布。模型参数包括文档-主题分布(θ)和主题-词语分布(φ),两者分别服从狄利克雷先验。传统变分推断(VI)需遍历整个数据集计算后验分布,计算成本高。随机变分推断(Stochastic Variational Inference, SVI)通过随机梯度下降,仅用少量数据(如单篇文档)迭代更新参数,适用于大规模数据。

2. 关键概念与模型设定

  • 生成过程

    1. 对每个主题k,从狄利克雷分布采样φ_k ~ Dir(β)(主题-词语分布)。
    2. 对每篇文档d:
      • 采样主题分布θ_d ~ Dir(α)(文档-主题分布)。
      • 对文档中每个词位置n:
        • 采样主题z_{d,n} ~ Multinomial(θ_d)。
        • 采样词语w_{d,n} ~ Multinomial(φ_{z_{d,n}})。
  • 目标:估计后验分布p(θ, φ, z | w, α, β),由于后验难直接计算,采用变分推断近似。

3. 变分分布与证据下界(ELBO)

  • 变分分布:假设后验可分解为
    q(θ, φ, z) = ∏d q(θ_d | γ_d) ∏k q(φ_k | λ_k) ∏{d,n} q(z{d,n} | ϕ_{d,n}),
    其中γ_d为文档d的主题分布参数,λ_k为主题k的词语分布参数,ϕ_{d,n}为词n的主题分配参数。
  • ELBO最大化:通过优化变分参数{γ, λ, ϕ}使ELBO接近真实对数似然。ELBO表达式为:
    ELBO = E_q[log p(w, θ, φ, z)] - E_q[log q(θ, φ, z)]。

4. 随机变分推断(SVI)步骤
SVI将全局参数(λ_k,主题-词语分布)和局部参数(γ_d, ϕ_{d,n},文档相关)分离,通过随机采样文档子集更新全局参数:

步骤1:初始化全局参数λ_k

  • 对每个主题k,随机初始化λ_k(如全1向量)。

步骤2:迭代更新
对每次迭代t:

  1. 随机采样文档:从数据集中均匀采样一篇文档d(或一小批文档)。
  2. 局部变分推断(固定全局参数λ):
    • 计算当前文档的局部变分参数γ_d和ϕ_{d,n}:
      • 初始化γ_d = α + D/N(D为文档长度,N为词数)。
      • 迭代更新ϕ_{d,n}和γ_d直至收敛:
        • 对每个词n:ϕ_{d,n,k} ∝ exp(E_q[log θ_{d,k}] + E_q[log φ_{k,w_{d,n}}]),
          其中E_q[log θ_{d,k}] = Ψ(γ_{d,k}) - Ψ(∑j γ{d,j})(Ψ为Digamma函数),
          E_q[log φ_{k,v}] = Ψ(λ_{k,v}) - Ψ(∑v λ{k,v})。
        • 更新γ_d = α + ∑n ϕ{d,n}。
  3. 全局参数更新(自然梯度下降):
    • 计算主题k的局部充分统计量:λ̂_k = η + D_d ∑n ϕ{d,n,k} · one-hot(w_{d,n}),
      其中η是狄利克雷先验参数(如β),D_d为文档d的词数。
    • 更新全局参数:λ_k^{(t)} = (1 - ρ_t) λ_k^{(t-1)} + ρ_t λ̂_k,
      其中ρ_t为学习率(需满足Robbins-Monro条件,如ρ_t = (t + τ)^{-κ},τ为延迟参数,κ∈(0.5,1])。

5. 收敛与输出

  • 重复步骤2直至ELBO变化小于阈值或达到最大迭代次数。
  • 输出全局参数λ_k(用于计算主题-词语分布φ_k)和所有文档的局部参数γ_d(用于文档-主题分布θ_d)。

6. 关键点说明

  • 随机性优势:SVI通过单篇文档的局部统计量近似全局梯度,减少内存需求,适合流式数据。
  • 学习率设计:需保证ρ_t递减但满足∑ρ_t = ∞(充分探索)、∑ρ_t^2 < ∞(减少噪声),如ρ_t = t^{-0.7}。
  • 与批量VI区别:批量VI需遍历全数据集计算充分统计量,而SVI每步仅需少量数据,收敛更快但波动较大。

通过以上步骤,SVI实现了对LDA后验分布的高效近似估计,适用于大规模文本主题分析。

隐式狄利克雷分布(LDA)的随机变分推断(SVI)算法原理与参数估计过程 1. 问题描述 隐式狄利克雷分布(Latent Dirichlet Allocation, LDA)是一种主题模型,用于从文本集合中自动发现潜在主题。给定文档集合,LDA假设每篇文档是多个主题的混合,每个主题是词语的概率分布。模型参数包括文档-主题分布(θ)和主题-词语分布(φ),两者分别服从狄利克雷先验。传统变分推断(VI)需遍历整个数据集计算后验分布,计算成本高。随机变分推断(Stochastic Variational Inference, SVI)通过随机梯度下降,仅用少量数据(如单篇文档)迭代更新参数,适用于大规模数据。 2. 关键概念与模型设定 生成过程 : 对每个主题k,从狄利克雷分布采样φ_ k ~ Dir(β)(主题-词语分布)。 对每篇文档d: 采样主题分布θ_ d ~ Dir(α)(文档-主题分布)。 对文档中每个词位置n: 采样主题z_ {d,n} ~ Multinomial(θ_ d)。 采样词语w_ {d,n} ~ Multinomial(φ_ {z_ {d,n}})。 目标 :估计后验分布p(θ, φ, z | w, α, β),由于后验难直接计算,采用变分推断近似。 3. 变分分布与证据下界(ELBO) 变分分布 :假设后验可分解为 q(θ, φ, z) = ∏ d q(θ_ d | γ_ d) ∏ k q(φ_ k | λ_ k) ∏ {d,n} q(z {d,n} | ϕ_ {d,n}), 其中γ_ d为文档d的主题分布参数,λ_ k为主题k的词语分布参数,ϕ_ {d,n}为词n的主题分配参数。 ELBO最大化 :通过优化变分参数{γ, λ, ϕ}使ELBO接近真实对数似然。ELBO表达式为: ELBO = E_ q[ log p(w, θ, φ, z)] - E_ q[ log q(θ, φ, z) ]。 4. 随机变分推断(SVI)步骤 SVI将全局参数(λ_ k,主题-词语分布)和局部参数(γ_ d, ϕ_ {d,n},文档相关)分离,通过随机采样文档子集更新全局参数: 步骤1:初始化全局参数λ_ k 对每个主题k,随机初始化λ_ k(如全1向量)。 步骤2:迭代更新 对每次迭代t: 随机采样文档 :从数据集中均匀采样一篇文档d(或一小批文档)。 局部变分推断 (固定全局参数λ): 计算当前文档的局部变分参数γ_ d和ϕ_ {d,n}: 初始化γ_ d = α + D/N(D为文档长度,N为词数)。 迭代更新ϕ_ {d,n}和γ_ d直至收敛: 对每个词n:ϕ_ {d,n,k} ∝ exp(E_ q[ log θ_ {d,k}] + E_ q[ log φ_ {k,w_ {d,n}} ]), 其中E_ q[ log θ_ {d,k}] = Ψ(γ_ {d,k}) - Ψ(∑ j γ {d,j})(Ψ为Digamma函数), E_ q[ log φ_ {k,v}] = Ψ(λ_ {k,v}) - Ψ(∑ v λ {k,v})。 更新γ_ d = α + ∑ n ϕ {d,n}。 全局参数更新 (自然梯度下降): 计算主题k的局部充分统计量:λ̂_ k = η + D_ d ∑ n ϕ {d,n,k} · one-hot(w_ {d,n}), 其中η是狄利克雷先验参数(如β),D_ d为文档d的词数。 更新全局参数:λ_ k^{(t)} = (1 - ρ_ t) λ_ k^{(t-1)} + ρ_ t λ̂_ k, 其中ρ_ t为学习率(需满足Robbins-Monro条件,如ρ_ t = (t + τ)^{-κ},τ为延迟参数,κ∈(0.5,1 ])。 5. 收敛与输出 重复步骤2直至ELBO变化小于阈值或达到最大迭代次数。 输出全局参数λ_ k(用于计算主题-词语分布φ_ k)和所有文档的局部参数γ_ d(用于文档-主题分布θ_ d)。 6. 关键点说明 随机性优势 :SVI通过单篇文档的局部统计量近似全局梯度,减少内存需求,适合流式数据。 学习率设计 :需保证ρ_ t递减但满足∑ρ_ t = ∞(充分探索)、∑ρ_ t^2 < ∞(减少噪声),如ρ_ t = t^{-0.7}。 与批量VI区别 :批量VI需遍历全数据集计算充分统计量,而SVI每步仅需少量数据,收敛更快但波动较大。 通过以上步骤,SVI实现了对LDA后验分布的高效近似估计,适用于大规模文本主题分析。