bubbleeee

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

LDA模型用来推测文档的主题分布,将文档集中每篇文档的主题以概率的形式给出,最终可以根据主题分布来对文档进行聚类或分类

LDA 采用词袋模型。所谓词袋模型,是将一篇文档,我们仅考虑一个词汇是否出现,而不考虑其出现的顺序。在词袋模型中,“我喜欢你”和“你喜欢我”是等价的。与词袋模型相反的一个模型是n-gram,n-gram考虑了词汇出现的先后顺序。

 认为主题可以由一个词汇分布来表示,而文章可以由主题分布来表示。

比如有两个主题,美食和美妆。LDA说两个主题可以由词汇分布表示,他们分别是:

{面包:0.4,火锅:0.5,眉笔:0.03,腮红:0.07}
{眉笔:0.4,腮红:0.5,面包:0.03,火锅:0.07}

同样,对于两篇文章,LDA认为文章可以由主题分布这么表示:

《美妆日记》{美妆:0.8,美食:0.1,其他:0.1}

《美食探索》{美食:0.8,美妆:0.1,其他:0.1}

 

LDA模型会涉及到大量概率论方面知识,包括二项分布,gamma函数,多项式分布,Beta分布,狄利克雷分布,Gibbs抽样,EM算法等。

 

二项分布

 多项式分布

 Gamma函数

              

 beta分布

"""对于参数\alpha > 0, \beta > 0, 取值范围为[0, 1]的随机变量x的概率密度函数为"""

其中,

狄利克雷分布

 其中,

beta分布和dirichlet分布均满足一个性质
对于beta分布,均值可以表示为α/(α/β)
对于dirichlet分布也类似

共轭分布

在贝叶斯概率理论中,如果后验概率P(Θ|x)和先验概率P(Θ)满足同样的分布律,那么先验分布和后验分布满足共轭分布

其中,beta分布是二项分布的共轭先验分布,狄利克雷分布是多项式分布的共轭先验分布

以二项分布和beta分布来说,如果数据满足二项分布,那么参数的先验分布和后验分布都能保持beta分布的形式,这样就能在先验分布中赋予参数明确的物理意义,并且可以延续到后验分布中进行解释。

 

LDA 训练的过程:

  • 1. 对语料库中的每篇文档中的每个词汇ω,随机的赋予一个topic编号z
  • 2. 重新扫描语料库,对每个词ω,使用Gibbs Sampling公式对其采样,求出它的topic,在语料中更新
  • 3. 重复步骤2,直到Gibbs Sampling收敛
  • 4. 统计语料库的topic-word共现频率矩阵,该矩阵就是LDA的模型;

                                                                

LDA 中,生成文档的过程如下:

  • 1. 按照先验概率p(di)选择一篇文档di
  • 2. 从Dirichlet分布α中取样生成文档di主题多项式分布θi,主题分布θi由超参数为α的Dirichlet分布生成
  • 3. 从主题的多项式分布θi取样生成文档di第 j 个词的主题zi,j
  • 4. 从Dirichlet分布β中取样生成主题zi,j对应的词语分布Φzi,j,词语分布Φzi,j由参数为β的Dirichlet分布生成
  • 5. 从词语的多项式分布Φzi,j以及zi,j中采样最终生成词语ωi,j

  循环,生成一个文档的m个词语,最终生成k个主题下的n个文档                                                          

 

 

主题划分的衡量

主题困惑度:为对于一篇文章d,所训练出来的模型对文档d属于哪个主题有多不确定,这个不确定成都就是困惑度。困惑度越低,说明聚类的效果越好。最小困惑度所对应的Topic就是最优的主题数

 

分母是测试集中所有单词之和,即测试集的总长度,不用排重。其中p(w)指的是测试集中每个单词出现的概率,计算公式如下

 

p(z|d)表示的是一个文档中每个主题出现的概率,p(w|z)表示的是词典中的每一个单词在某个主题下出现的概率

 

posted on 2022-04-25 15:59  bubbleeee  阅读(181)  评论(0编辑  收藏  举报