LDA学习总结(二)

 上一篇介绍完基础版后,罗列一些公式和model。

正经的理解LDA,分为以下5个步骤:

  一个函数:gamma函数

  四个分布:二项分布、多项分布、beta分布、Dirichlet分布

  一个概念和一个理念:共轭先验和贝叶斯框架

  两个模型:pLSA、LDA

  一个采样:Gibbs采样

共轭分布与共轭先验:

 

所谓共轭分布就是指,我们这个先验概率和后验概率具有相同的函数形式。  这里表示后验概率正比于 似然函数 乘 先验概率,其中这个似然函数是一个生成方程,通过这样一个东西,来改变我们先验概率分布的一个东西。

整体过程相当于我们对世界的固有认知 结合 我们对世界的认识,得出我们对世界新的认知

例如,P(先) = C * x^a * (1-x)^b , p(后) = C * x^m * (1-x)^n,这样是比较好计算的。

具体让先验概率和后验概率产生共轭关系,还是需要乘上似然函数

Gamma函数:

阶乘函数在实数上的推广

对于整数而言:

对于实数而言:

二项分布 (Binomial distribution):

二项分布是从伯努利分布推进的。伯努利分布,又称两点分布或0-1分布,是一个离散型的随机分布。其中的随机变量只有两类取值,非正即负。而二项分布是重复了n次的伯努利分布试验。二项分布的概率密度为:

多项分布,是二项分布扩展到多维的情况

多项分布是指单次试验中的随机变量d额取值不再是0-1,而是有多种离散值可能(1,2,3…k)。

多项分布的概率密度函数为:

Beta分布,二项分布的共轭先验分布

给定参数α>0和β>0,取值范围为[0, 1]的随机变量x的概率密度函数:

其中:

 

Dirichlet分布,是beta分布在高纬度上的推广

其中

 

贝叶斯派的思考方式:

几个主题模型(循序渐进):

Unigram Model

对于文档w = (w1, w2, …, wn),用p(wn)表示词wn的先验概率,则生成文档的概率为:

一元模型,在给定文档的同时也指定了主题,其图模型为(图中被涂色的w表示可观测变量,N表示一篇文档中总共N个单词,M表示M篇文档)。上图中的wn表示在文本中观察到的第n个词,n∈[1,N]表示该文本中一共有N个单词。加上方框表示重复,即一共有N个这样的随机变量。

假设语料中总的词频是M, 在所有的N个词中,如果我们关注每个词wmn的发生次数 ,那么 正好是一个多项分布。当然,我们很重要的一个任务就是估计模型中的参数,也就是问上帝拥有的这个骰子的各个面的概率是多大,按照统计学家中频率派的观点,使用最大似然估计最大化

在 Unigram Model 中假设了文档之间是独立可交换的,而文档中的词也是独立可交换的。如果语料中有多篇文档,那么就把所有文档中出现的词的概率相乘。

Mixture of unigrams model

该模型的生成过程是:给某个文档先选择一个主题z,再根据该主题生成文档,该文档中的所有词都来自一个主题。假设主题有z1,z2,z3,…,zk,生成文档的概率为:

 

这种模型承认了主题这一概念。生成这个文档的概率就是这篇文档属于不同主题的概率分别乘以在该主题下词汇分布的累乘。Note: 这个图的意思是,对一篇文档中的词,都是由一个主题z(放在小方框外面了)产生。其实这两种模型相当于统计了当前样本的一个信息。

PLSA模型

刚刚的mixture unigram模型里面,一篇文章只给出了一个主题。但是现实生活中,一篇文档可能有多个主题,只不过“出现的几率”不一样。

跟LDA模型最为接近的便是下面要阐述的这个PLSA模型,LDA模型就是给PLSA加上贝叶斯框架。在Mixture of unigrams model中,我们假定一篇文档只由一个主题生成,可实际上,一篇文档往往有多个主题,只是这多个主题各自在文档中出现的概率大小不一样。比如介绍一个国家的文档中,往往会分别从教育、经济、交通等多个主题进行介绍。Hoffman 于 1999 年给出的PLSA(Probabilistic Latent Semantic Analysis) 模型中首先进行了明确的数学化。Hoffman 认为一篇文档(Document) 可以由多个主题(Topic) 混合而成, 而每个Topic 都是词汇上的概率分布,文章中的每个词都是由一个固定的 Topic 生成的。下图是英语中几个Topic 的例子。

PLSA的文档生成模型

假设你要写M篇文档,由于一篇文档由各个不同的词组成,所以你需要确定每篇文档里每个位置上的词。再假定你一共有K个可选的主题,有V个可选的词,咱们来玩一个扔骰子的游戏。

     

假设你每写一篇文档会制作一颗K面的“文档-主题”骰子(扔此骰子能得到K个主题中的任意一个),和K个V面的“主题-词项” 骰子(每个骰子对应一个主题,K个骰子对应之前的K个主题,且骰子的每一面对应要选择的词项,V个面对应着V个可选的词)。比如可令K=3,即制作1个含有3个主题的“文档-主题”骰子,这3个主题可以是:教育、经济、交通。然后令V = 3,制作3个有着3面的“主题-词项”骰子,其中,教育主题骰子的3个面上的词可以是:大学、老师、课程,经济主题骰子的3个面上的词可以是:市场、企业、金融,交通主题骰子的3个面上的词可以是:高铁、汽车、飞机。

上面这个投骰子产生词的过程简化下便是:“先以一定的概率选取主题,再以一定的概率选取词”。事实上,一开始可供选择的主题有3个:教育、经济、交通,那为何偏偏选取教育这个主题呢?其实是随机选取的,只是这个随机遵循一定的概率分布。比如3个主题的概率分布是{教育:0.5,经济:0.3,交通:0.2},我们把各个主题z在文档d中出现的概率分布称之为主题分布,且是一个多项分布

同样的,从主题分布中随机抽取出教育主题后,依然面对着3个词:大学、老师、课程,这3个词都可能被选中,但它们被选中的概率也是不一样的。比如3个词的概率分布是{大学:0.5,老师:0.3,课程:0.2},我们把各个词语w在主题z下出现的概率分布称之为词分布,这个词分布也是一个多项分布

右图这个例子就是一个大概的说明,在生成一篇文档的不同单词时,我们可能会用到3个主题,这3个主题出现的概率是不一样的,但这个概率值其实是不变的

 

下面来看一下pLSA的概率图:

 

文档d和单词w自然是可被观察到的,但主题z却是隐藏的。如下图所示(图中被涂色的d、w表示可观测变量,未被涂色的z表示未知的隐变量,N表示一篇文档中总共N个单词,M表示M篇文档)

由于p(di)可事先计算求出,而p(wj|zk)和p(zk|di)未知,所以θ=(p(wj|zk), p(zk|di))就是我们要估计的参数(值),通俗点说,就是要最大化这个θ。

参数估计方法有极大似然估计MLE、最大后验证估计MAP、贝叶斯估计等等。因为该待估计的参数中含有隐变量z,所以我们可以考虑EM算法。

猜你喜欢

转载自www.cnblogs.com/Vancuicide/p/9437533.html
LDA
今日推荐