注意:$\alpha$和$\beta$已知,常用为(和LDA EM算法不同)

1.   为什么可用

LDA模型求解的目标为得到$\phi$和$\theta$

假设现在已知每个单词对应的主题$z$,则可以求得$\theta$的后验分布,求期望得到$E(\theta)$作为每份文档的主题

$E(\theta_{mk})=\frac{n_m^k+\alpha_k}{n_m+\alpha_k}$

同样,可以求得$\phi$的后验分布,求期望$E(\phi)$作为每个主题下生成对应单词的概率

$E(\phi_{kt})=\frac{n_k^t+\beta_t}{n_k+\beta_t}$

现在问题转换为,如何获取$z$

2.   公式推导

Gibbs Sampling固定住除了$z_i$以外的其他$z$,记为$\vec {z_{\neg i}}$,使用以下概率分布生成新的$z_i$:

$p(z_i|\vec {z_{\neg i}},\vec w)\quad=\ \frac{p(\vec z,\vec w)}{p(\vec {z_{\neg i}},\vec {w_{\neg i}}|w_i)p(w_i)}$         $(1)$

由于每个单词之间的生成相互独立,所以$p(\vec {z_{\neg i}},\vec {w_{\neg i}}|w_i)=p(\vec {z_{\neg i}},\vec {w_{\neg i}})$

又$\alpha$的每个分量都想等,$\beta$的每个分量都相等,所以对于两个单词有$p(w_i)=p(w_j)$

$(1)\ \propto \frac{p(\vec z,\vec w)}{p(\vec {z_{\neg i}},\vec {w_{\neg i}})}$

$p(\vec z,\vec w,\phi,\theta|\alpha,\beta)=\prod_{k=1}^K p(\phi_k|\beta)\prod_{m=1}^M p(\theta_m|\alpha)\prod_{n=1}^{N_m}p(z_{mn}|\theta_m)p(w_{mn}|z_{mn},\phi)\\ \quad\quad=(\prod_{k=1}^K p(\phi_k|\beta)\prod_{m=1}^M \prod_{n=1}^{N_m} p(w_{mn}|z_{mn},\phi))^{[1]}\\ \quad\quad\quad *(\prod_{m=1}^M p(\theta_m|\alpha) \prod_{n=1}^{N_m}  p(z_{mn}|\theta_m))^{[2]}$

上式中[1]是和$\phi$有关的部分,[2]是和$\theta$有关的部分,对$\phi$,$\theta$积分可得到$p(\vec z,\vec w|\alpha,\beta)$

$[1]=\prod_{k=1}^K \frac{\bigtriangleup \beta+n_k^{(t)}}{\bigtriangleup \beta} \int p(\phi_k|\beta+n_k^{(t)})d\phi_k =\prod_{k=1}^K \frac{\bigtriangleup \beta+n_k^{(t)}}{\bigtriangleup \beta}$,$n_k^{(t)}$为所有单词中,主题为k,单词是t的个数

$[2]=\prod_{m=1}^M \frac{\bigtriangleup \alpha+n_m^{(k)}}{\bigtriangleup \ alpha} \int p(\theta_m|\alpha+n_m^{(k)})d\theta_m=\prod_{m=1}^M \frac{\bigtriangleup \alpha+n_m^{(k)}}{\bigtriangleup \ alpha}$,$n_m^{(k)}$是文档m中,主题为k的个数

结合公式(1):

$p(z_i=k|\vec {z_{\neg i}},\vec w) \propto\quad \frac{\prod_{k=1}^K \bigtriangleup \beta+n_k^{(t)}}{\prod_{k=1}^K \bigtriangleup \beta+n_{k\neg i}^{(t)}}\frac{\prod_{m=1}^M \bigtriangleup \beta+n_k^{(t)}}{\prod_{m=1}^M \bigtriangleup \beta+n_{k\neg i}^{(t)}} \propto \frac{n_{k\neg i}^{(t)}+\beta_t}{\sum_{t=1}^{V} n_{k\neg i}^{(t)}+\beta_t} \frac{n_{m\neg i}^{(k)}+\alpha_k}{\sum_{k=1}^{K} n_{m\neg i}^{(k)}+\alpha_k}$

3.   算法流程

i.   初始化z

ii.  更新z

iii. 得到$\phi$,$\theta$

LDA Gibbs Sampling的更多相关文章

  1. LDA的Gibbs Sampling求解

    <LDA数学八卦>对于LDA的Gibbs Sampling求解讲得很详细,在此不在重复在轮子,直接贴上该文这部分内容. Gibbs Sampling 批注: 1.              ...

  2. 随机采样和随机模拟:吉布斯采样Gibbs Sampling实现文档分类

    http://blog.csdn.net/pipisorry/article/details/51525308 吉布斯采样的实现问题 本文主要说明如何通过吉布斯采样进行文档分类(聚类),当然更复杂的实 ...

  3. 随机采样和随机模拟:吉布斯采样Gibbs Sampling

    http://blog.csdn.net/pipisorry/article/details/51373090 吉布斯采样算法详解 为什么要用吉布斯采样 通俗解释一下什么是sampling. samp ...

  4. Gibbs Sampling深入理解

    二维Gibbs Sampling算法 Gibbs Sampling是高维概率分布的MCMC采样方法.二维场景下,状态(x, y)转移到(x’, y’),可以分为三种场景 (1)平行于y轴转移,如上图中 ...

  5. PRML读书会第十一章 Sampling Methods(MCMC, Markov Chain Monte Carlo,细致平稳条件,Metropolis-Hastings,Gibbs Sampling,Slice Sampling,Hamiltonian MCMC)

    主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:05:00  今天的主要内容:Markov Chain Monte Carlo,M ...

  6. 随机采样方法整理与讲解(MCMC、Gibbs Sampling等)

    本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅.其实参考资料中的资料写的比我好,大家可以看一下!好东西多分享!PRML的第11章也是sampling,有时间后面写到P ...

  7. LDA-math-MCMC 和 Gibbs Sampling

    http://cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/ 3.1 随机模拟 随机模拟(或者统计模拟)方法有一个很酷的别名是蒙特卡罗方法(Mon ...

  8. 随机采样和随机模拟:吉布斯采样Gibbs Sampling实现高斯分布参数推断

    http://blog.csdn.net/pipisorry/article/details/51539739 吉布斯采样的实现问题 本文主要说明如何通过吉布斯采样来采样截断多维高斯分布的参数(已知一 ...

  9. Gibbs sampling

    In statistics and in statistical physics, Gibbs sampling or a Gibbs sampler is aMarkov chain Monte C ...

随机推荐

  1. nginx的请求接收流程(二)

    在ngx_http_process_request_line函数中,解析完请求行之后,如果请求行的uri里面包含了域名部分,则将其保持在请求结构的headers_in成员的server字段,heade ...

  2. 几个常用道的macro

    几个常用道的macro1.macro(1)#error msg 指令使編譯器停止執行並打印一條語句,(2)printf("%d,%s",_LINE_,_FILE_)打印當前行號和文 ...

  3. js调试

    在chrome下的调试案例 1.console.log() $("#typeid").change(function(){ var id = $(this).val(); cons ...

  4. codevs2822 爱在心中

      2822 爱在心中 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description “每个人都拥有一个梦,即使彼此不相同,能够与你分享,无 ...

  5. hdu 2660 Accepted Necklace(dfs)

    Problem Description I have N precious stones, and plan to use K of them to make a necklace for my mo ...

  6. TagBuilder 性能如此低下?

    本文来自:http://www.cnblogs.com/zhuisha/archive/2010/03/12/1684022.html 需要通过ASP.NET MVC生成一个列表,MVC里面根正苗红的 ...

  7. C语言高速入口系列(七)

    C语言高速入口系列(七) C语言指针进阶 本章引言: 在前面第5节中我们对C语言的指针进行了初步的学习理解;作为C语言的灵魂, C指针肯定没那么简单,在这一节中,我们将会对指针进行进一步的学习,比方二 ...

  8. 有用的BitConverter

    肯定有用的到的转换,记录下来. ///double =>ieee754 double d = 0.12345; byte[] IEEE754 = BitConverter.GetBytes(d) ...

  9. T-SQL索引

    索引 使用索引可以提高查询速度,不是越多越好,会损耗存储空间.应用于出现在where子句中的列建立索引.可以使用sql server 内置工具Profiler捕捉在SQL Server实例上执行的活动 ...

  10. C#操作项目配置文件

    前言 对于项目配置文件的读取和修改,.net 提供了ConfigurationManager(位于System.Configuration命名空间) 和WebConfigurationManager( ...