LDA_biji

博客围绕用Gibbs Sampling学习LDA展开。先介绍相关数学知识,如Gamma、Beta函数和分布等。指出LDA学习常用approximate inference算法,Gibbs Sampling是Markov - Chain Monte Carlo特例。阐述其学习LDA的过程,还比较了EM、Kmeans和Gibbs Sampling的原理。

数学知识

  1. Gamma 函数和分布(MLAPP 2.4.5)
  2. Beta 函数和分布(MLAPP 2.5.4)
  3. Beta-Binomial (MLAPP 3.3)
  4. Dirichlet-Multinomial (MLAPP 3.4)

学习

概率图模型的Inference问题。主要的算法分为exact inference和approximate inference两类。尽管LDA是最简单的Topic Model, 但是其用exact inference还是很困难的,一般我们采用approximate inference算法来学习LDA中的隐含变量。比如LDA原始论文Blei02中使用的mean-field variational expectation maximisation 算法和Griffiths02中使用的Gibbs Sampling,其中Gibbs Sampling 更为简单易懂。

Gibbs Sampling 是Markov-Chain Monte Carlo算法的一个特例。
依赖的数学理论有:t+1 时刻的状态以来于t时刻,独立于t-1时刻。
如果我们从一个具体的初始状态 x0 开始,沿着马氏链按照概率转移矩阵做跳转,那么我们得到一个转移序列 x0,x1,x2,⋯xn,xn+1⋯, 由于马氏链的收敛行为, xn,xn+1,⋯ 都将是平稳分布 π(x) 的样本。

这个算法的运行方式是每次选取概率向量的一个维度,给定其他维度的变量值 Sample 当前维度的值。不断迭代,直到收敛输出待估计的参数。
简言之:固定其他维度不变,更新当前维度。

Gibbs sampling method sets up the Markov chain as follows:

  1. at step t = 1, initialize X_1 to arbitrary values
  2. at step t, choose n randomly among 1, . . . , N
  3. draw a sample for X_t_n from P(Xn|X1, . . . , Xn−1, Xn+1, . . . , XN )
  4. iterate

用Gibbs Sampling学习LDA

初始时随机给文本中的每个单词分配主题,然后统计每个主题z下出现term t的数量以及每个文档m下出现主题z中的词的数量,每一轮计算,即排除当前词的主题分配,根据其他所有词的主题分配估计当前词分配各个主题的概率。当得到当前词属于所有主题z的概率分布后,根据这个概率分布为该词sample一个新的主题。然后用同样的方法不断更新下一个词的主题,直到发现每个文档下Topic分布和每个Topic下词的分布收敛,算法停止,输出待估计的参数和,最终每个单词的主题也同时得出。实际应用中会设置最大迭代次数。每一次计算的公式称为Gibbs updating rule.下面我们来推导LDA的联合分布和Gibbs updating rule。

比较 EM & Kmeans & Gibbs Sampling

  1. EM algorithm is a “soft version” that generalizes the K-means algorithm!
  2. EM的原理是变分,Gibbs Sampleing的原理是MCMC。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值