LDA Gibbs Sampling
注意:$\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的更多相关文章
- LDA的Gibbs Sampling求解
<LDA数学八卦>对于LDA的Gibbs Sampling求解讲得很详细,在此不在重复在轮子,直接贴上该文这部分内容. Gibbs Sampling 批注: 1. ...
- 随机采样和随机模拟:吉布斯采样Gibbs Sampling实现文档分类
http://blog.csdn.net/pipisorry/article/details/51525308 吉布斯采样的实现问题 本文主要说明如何通过吉布斯采样进行文档分类(聚类),当然更复杂的实 ...
- 随机采样和随机模拟:吉布斯采样Gibbs Sampling
http://blog.csdn.net/pipisorry/article/details/51373090 吉布斯采样算法详解 为什么要用吉布斯采样 通俗解释一下什么是sampling. samp ...
- Gibbs Sampling深入理解
二维Gibbs Sampling算法 Gibbs Sampling是高维概率分布的MCMC采样方法.二维场景下,状态(x, y)转移到(x’, y’),可以分为三种场景 (1)平行于y轴转移,如上图中 ...
- 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 ...
- 随机采样方法整理与讲解(MCMC、Gibbs Sampling等)
本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅.其实参考资料中的资料写的比我好,大家可以看一下!好东西多分享!PRML的第11章也是sampling,有时间后面写到P ...
- LDA-math-MCMC 和 Gibbs Sampling
http://cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/ 3.1 随机模拟 随机模拟(或者统计模拟)方法有一个很酷的别名是蒙特卡罗方法(Mon ...
- 随机采样和随机模拟:吉布斯采样Gibbs Sampling实现高斯分布参数推断
http://blog.csdn.net/pipisorry/article/details/51539739 吉布斯采样的实现问题 本文主要说明如何通过吉布斯采样来采样截断多维高斯分布的参数(已知一 ...
- Gibbs sampling
In statistics and in statistical physics, Gibbs sampling or a Gibbs sampler is aMarkov chain Monte C ...
随机推荐
- SQL Server 分区表的创建方法与管理
背景知识: 分区表.可以把表中的数据按范围保存到不同的文件组中. 举个例子吧: 2014年以前的数据保存到文件组A 2014~2015的数据保存到文件组B 2015年以后的数据保存到文件组C 好处: ...
- Silverlight中的拖拽实现的图片上传
原文 http://blog.csdn.net/dujingjing1230/article/details/5443003 在Silverlight中因为可以直接从系统的文件夹里面拖出来一个文件直接 ...
- [Linux]shell编程基础/linux基础入门
声明执行程序 #!/bin/bash 用来告诉系统使用/bin/bash 程序来执行该脚本.譬如python 脚本,可以这样写: #!/usr/bin/python 赋值和引用 赋值公式: 变量名 ...
- RHEL 6.3使用CentOS yum源 (redhat yum安装失败)
由于Redhat的yum在线更新是收费的,如果没有注册的话是不能使用的,即不能在线安装软件.所以yum install 命令每次都安装失败 下面介绍一种更改yum源的方式: 系统说明: 系统:Red ...
- OA 权限控制
对于加入删除 初始化password等操作的权限 控制 第一种方法就是在每一个超链接前加 推断 如 <s:if test="#session.user.hasPrivilegeByNa ...
- Android 基本控件
http://www.cnblogs.com/LT-blogs/archive/2012/08/07/2626118.html http://blog.csdn.net/android_tutor/a ...
- CSS实现限制字数功能
<div style="width:200px; white-space:nowrap;overflow:hidden;text-overflow:ellipsis; border:1 ...
- 贪吃蛇 WPF
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- js在线题目
在线题目: https://www.nowcoder.com/ta/js-assessment
- php预定义常量&变量
PHP中可以使用预定义常量获取PHP中的信息,常用的预定义常量如下表所示. 常量名 功能 _FILE_ 默认常量,PHP程序文件名 _LINE_ 默认常量,PHP程序行数 PHP_VERSION ...