浅谈gibbs sampling(LDA实验)

原创 2013年03月22日 10:39:35

先把问题描述一下:

如果我们已知了topic内的每个词的词频,比如下图中topic1 中money 2 次,loan 3次...那么任意给一个文档我们可以对里面每一个词算一个产生这个词的概率即 P(w=wi|t=tj)

如下图,doc1 中的money 百分之百的来自于topic1 。doc2 中的词用topic1 无法全部解释,必须借助topic2 。

但现在问题是,如果我们只有一堆文档,Doc1,Doc2,Doc3,且拍脑袋的大概知道会有2个topic,那么怎么产生着两个topic才能最好的解释这三个文档呢?

       

因此我们要计算一个概率,即文档中的这个词活脱脱的呈现在我们面前的概率P(wi),我们尽可能想办法让这个概率最大。就好像XX厂长成功了,我们要罗织功劳,让XX厂长成功这件事,最可信。

 那么这个概率计算的方法如下图,简单来说就是 P(wi) = P(wi|topic) * P(topic|doc)*p(doc),我们省略p(doc)【求解没有意义】于是得到下面公式。




现在问题又来了,如果给定一个文档di的一个词wi,他最大可能是来自哪个topic呢?

即 求解P(topic|(di,wi))?

我们知道,P(topic|(wi,di))和P((wi,di)|topic)有关系,那么P((wi,di)|topic)=P(wi|topic)P(doc|topic),即我们要使得P(wi|topic)P(doc|topic) 这两个东东的liklyhood最大。

也就是论文中的CWT和CDT,而下图公式左边 (CWT+β)/(∑CWT+Wβ) 表示的含义就是P(wi|topic),即topic产生wi的能力。后面一个是P(doc|topici)。


为了验证有效性,我对论文中的这个例子做了实验,很遗憾没有做到他的结果,但我感觉应该是对的,其中α,大家可以调大调小了试试看,调大了的结果是每个文档接近同一个topic,即让p(wi|topici)发挥的作用小,这样p(di|topici)发挥的作用就大。 其中的β,调大的结果是让p(di|topici)发挥的作用变下,而让p(wi|topici)发挥的作用变大,体现在每个topic更集中在几个词汇上面,或者而每个词汇都尽可能的百分百概率转移到一个topic上。

大家可以看下论文,用我的代码实际感觉下数据的变化。


以下to @老师木 @王威廉 @李沐mu @等高手:

我觉得论文中的结果也很奇怪,如果在更新wi的类标号的时候,比如更新第一个doc的第二词,money,money出现了6次(2黑,4白),如果第一个更新为白,后面怎么可能更新为黑呢?如果不可能,为什么论文作者在64次迭代后,会有一些文档同一个word会打上不同的类标签,比如doc2,的bank,打了4黑1白? 

我尝试过update放在每个更新之后,发现也做不到,很神奇,也许论文作者原始文档的term出现顺序不是我写的那样。



代码和论文地址:

https://github.com/pennyliang/MachineLearning-C---code/tree/master/gibbs_sampling


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

http://blog.csdn.net/pipisorry/article/details/51373090 马氏链收敛定理 马氏链定理: 如果一个非周期马氏链具有转移概率矩阵P,且它的任何两个...
  • pipisorry
  • pipisorry
  • 2016年05月12日 00:24
  • 31620

Gibbs Sampling(吉布斯采样)

为什么要写关于Gibbs Sampling的文章呢?首先Gibbs Sampling是有用滴,Gibbs Sampling在机器学习中主要用于学习阶段的推理,比如求期望(平均值)和积分;再者网上的关于...
  • x_yz_
  • x_yz_
  • 2013年12月19日 18:04
  • 13794

贝叶斯推断--Gibbs Sampling

贝叶斯推断 gibbs sampling初识
  • u010533386
  • u010533386
  • 2016年05月19日 03:33
  • 17890

深度学习方法:受限玻尔兹曼机RBM(三)模型求解,Gibbs sampling

欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld。 技术交流QQ群:433250724,欢迎对算法、技术、应用感兴趣的同学加入。 本篇重点讲一下RBM模型...
  • xbinworld
  • xbinworld
  • 2015年12月19日 08:56
  • 8169

吉布斯采样(Gibbs Sampling)及相关算法

http://blog.163.com/lipse_huang/blog/static/191657545201341021645737/ 吉布斯采样(Gibbs Sampling)...
  • liufengl138
  • liufengl138
  • 2016年11月08日 21:54
  • 523

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

http://blog.csdn.net/pipisorry/article/details/51539739 吉布斯采样的实现问题 本文主要说明如何通过吉布斯采样来采样截断多维高斯分布的参数(已...
  • pipisorry
  • pipisorry
  • 2016年05月30日 20:08
  • 4149

机器学习方法(八):随机采样方法整理(MCMC、Gibbs Sampling等)

转载请注明出处:Bin的专栏,http://blog.csdn.net/xbinworld 本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅。其实参考资料中的资料写...
  • xbinworld
  • xbinworld
  • 2015年02月07日 22:20
  • 8203

Gibbs sampling [Gibbs采样]

关于Gibbs sampling, 首先看一下Wiki上的解释:Gibbs sampling or Gi...
  • chl033
  • chl033
  • 2010年04月20日 13:55
  • 27430

GIBBS SAMPLING FOR THE UNINITIATED 的学习笔记

Gibbs Sampling是用来进行参数学习的一种重要手段,而对于这部分知识的学习并不是一个简单的过程,有很多人都是浅尝辄止,没有了解它的本质,本篇文章将为您讲解Gibbs Sampling的基本策...
  • qiuzhijieluojianping
  • qiuzhijieluojianping
  • 2014年12月07日 18:06
  • 1347

概率语言模型及其变形系列(2)-LDA及Gibbs Sampling

本系列博文介绍常见概率语言模型及其变形模型,主要总结PLSA、LDA及LDA的变形模型及参数Inference方法。初步计划内容如下第一篇:PLSA及EM算法第二篇:LDA及Gibbs Samping...
  • yangliuy
  • yangliuy
  • 2012年12月17日 13:08
  • 57391
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈gibbs sampling(LDA实验)
举报原因:
原因补充:

(最多只允许输入30个字)