LDA漫游系列(五)-基于Gibbs Sampling的LDA模型

我们日常生活中总是产生大量的文本,如果每一个文本存储为一篇文档, 那么每篇文丹从人的观察来说就是有序的词的序列d=(w1,w2,...wn).

统计文本建模的目的就是追问这些观察到的语料库中的词序列是如何生成的,统计学被人们描述为猜测上帝的游戏,人类产生的所有语料文本我们都可以看成是一个伟大的上帝在天堂上抛掷骰子生成的,我们观察到的只是上帝玩这个游戏的结果-词序列构成的语料,而上帝玩这个游戏的过程对我们来说是个黑盒子。所以在统计文本建模中,我们希望猜测出上帝是怎么玩这个游戏的,具体一点,最核心的两个问题是:
(1)上帝都有什么样的骰子
(2)上帝是如何抛掷这些骰子的
第一个问题表示模型中都有哪些参数,即骰子中的每一面被掷出的概率,第二个问题表示游戏规则是什么,上帝可能有各种不同类型的骰子,上帝可以按照一定的规则抛掷这些骰子从而产生词序列。

1、Unigram Model

假设我们的一个词典中共有V个词,那么最简单的Unigram模型认为上帝按照如下的游戏规则产生文本:


这个抛掷骰子的实验类似于一个多项分布,记为

那么对于一篇文档d=(w1,w2,...wn),该文档被生成的概率就是:


而文档与文档之间我们认为是独立的,所以如果语料中有多篇文档,那么该语料生成的概率是:


在Unigram Model中,我们假设了文档之间是独立可交换的,而文档中的词也是独立可交换的,所以一篇文档相当于一个袋子,里面装了一些词,而词的顺序信息就无关紧要了,这样的模型也称为词袋模型(Bag-of-words)。

假设语料中总的词频是N,如果我们关注的每个词vi的发生次数是ni,那么每个词发生的概率正好对应于一个多项分布:

此时语料的概率是:



所以,我们现在的任务就是估计模型中的参数p了,即问上帝拥有的骰子各个面出现的概率有多大,统计学家种频率派的观点,可能这样得到概率的估计值:

而对于这样的估计方法,贝叶斯统计学派的统计学家是不会同意的,他们不认为上帝只有这么一个骰子,也就是说,以上模型参数p不是唯一固定的,他们认为上帝按照以下的规则进行游戏:

上帝的这个坛子里面,骰子可以是无穷多个,有些类型的骰子数量多,有些类型的骰子数量少,所以从概率分布的角度看,坛子里面的骰子p服从一个先验概率分布:

所以,在贝叶斯学派看来,语料的概率是这样计算的:由于我们并不知道上帝到底用了哪个骰子,所以每个骰子都是可能被使用的,只是使用的概率由先验分布来决定,对每一个具体的骰子,都有一个产生语料所对应的概率,所以最终数据产生的概率就是对每一个骰子上产生的数据概率进行积分累加求和:



由于每个词是我们可以看到的,词的选择服从一个多项分布,所以对先验分布一个比较好的选择就是其对应的共轭先验分布,即Dirichlet分布:


回顾之前在共轭先验分布一节中介绍的知识:



所以在给定了先验分布,各个词出现频次的数据服从多项分布,无需计算我们就可以推导出后验分布:

所以,参数的期望为:

也就是说对于每一个参数pi,我们用下式做参数估计:

进一步,我们可以计算出文本语料产生的概率:


2、LDA Topic Model

LDA的图模型如下:



这个图模型表示法有时也称作“盘子表示法”,图中的阴影圆圈可以表示观测变量(observed variable),非阴影圆圈表示潜在变量(latent variable),箭头表示两变量间的条件依赖性(conditional dependency),方框表示重复抽样,重复次数在方框的右下角。
在上面的图中:
M代表训练语料中的文章数;
K代表设置的主题个数;
V代表训练语料库中出现的所有词的词表;
θ是一个M*K的矩阵,θm代表第m篇文章的主题分布;
Φ是一个K*V的矩阵,Φk代表编号为k的主题之上的词分布;
α是每篇文档的主题分布的先验分布Dirichlet分布的参数(也被称为超参数),θi~Dir(α);
β是每个主题的词分布的先验分布Dirichlet分布的参数(也被称为超参数),Φk~Dir(β);
w是可被观测的词.

我们仍然用上帝掷骰子的过程来解释一下上面的图模型。在LDA模型中,上帝是按照如下的规则玩文档生成的游戏的:



假设语料库中有M篇文档,所有的word和对应的topic如下所示:

使用概率图模型表示,LDA模型的游戏过程如图所示:



这个概率图可以分解为两个主要的物理过程:


理解LDA最重要的就是理解这两个物理过程,LDA模型在基于K个topic生成语料中的M篇文档的过程中,由于是bag-of-words,有一些物理过程是相互独立可交换的,由此,LDA生成模型中,M篇文档会对英语M个独立的Dirichlet-Multionmial共轭结构,K个topic会对应于K个独立的Dirichlet-Multionmial共轭结构。所以理解LDA所需要的就是理解Dirichlet-Multionmial共轭。所以,现在我们进入细节,来看看LDA模型是如何被分解为M+K个Dirichlet-Multionmial共轭结构的。


所以我们可以得到:


由于语料中M篇文档的topics生成过程相互独立,所以我们得到M个相互独立的Dirichlet-Multionmial共轭结构,从而我们可以得到整个语料中的topics生成概率:

到目前为止,我们已经得到了M个Dirichlet-Multionmial共轭结构,剩下的K个在哪呢?在上帝按照之前的规则玩LDA游戏的时候,上帝是先完全处理完成一篇文档,再处理下一篇文档。文档中每个词的生成都要抛两次骰子,第一次抛doc-topic骰子得到topic,第二次抛一个topic-word骰子得到word,每次生成每篇文档中的一个词的时候这两次抛骰子的动作是紧邻轮换进行的。如果语料中一共有N个词,则上帝共需要抛掷2N次骰子。但实际上有一些抛骰子的顺序是可以交换的,我们可以等价的调整2N次抛骰子的次序,前N次用于得到topic,后N次用于得到N个word,所以上帝在玩LDA游戏的时候,可以等价的如下进行:



以上游戏是先生成了所有词的topic,然后对每个词在给定的topic条件下生成word,在语料中所有词的topic已经生成的条件下,任何两个word的生成动作都是可交换的,于是我们把语料中的词进行交换,把具有相同topic的词放在一起:



同样,我们可以得到:



而语料中K个topics生成words的过程相互独立,所以我们得到K个相互独立的Dirichlet-Multionmial共轭结构,从而我们可以得到整个语料中词生成概率:



所以结合两个物理过程,我们得到:

3、LDA Gibbs采样公式



4、LDA Gibbs采样模型训练

有了LDA模型,我们的目标有两个:
有了Gibbs Sampling公式,我们就可以给予语料训练LDA模型,并应用训练得到的模型对新的文档进行topic语义分析,训练的过程就是通过Gibbs采样获取语料中的(z,w)的样本,而模型的所有参数都可以基于最终采样得到的样本进行估计,训练的流程如下:


有了LDA模型,对于新来的文档,我们通过如下的流程来进行文档的主题分布:

以下是在另一个博客上得到的类似的训练流程,可能更加易于大家理解:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容