无监督第四节:LDA (Latent Dirichlet Allocation快速理解)(主题模型)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无监督第四节:LDA (Latent Dirichlet Allocation快速理解)(主题模型)相关的知识,希望对你有一定的参考价值。

参考技术A

LDA 是一种基于概率的生成式模型,所以在LDA的过程中会涉及到很多概率的知识,不太熟悉的话建议先学习概率知识。LDA在NLP中应用广泛,主要是用于主题模型(topic modeling)。
关于主题模型和主题分类的区别请参考 https://monkeylearn.com/blog/introduction-to-topic-modeling/

LDA的主要作用是通过soft clustering 的方式使得每个数据点属于不仅仅局限于一个聚类。这是和其他的聚类方式,如kmeans,pLSI不一样的地方。
另外LDA的soft clustering 允许分类的成分比较模糊,这样的好处是可以发现一些潜在的东西。

1.根据文档中的单词找到一个文档属于的主题。

1.找到属于某个文档的单词(这个是已经知道的)
2.找到属于某个主题的单词,或者单词属于某个主题的概率(这个是需要计算的)

对单词的概率得分进行排序,选取得分最高的top n来表示该主题的单词。或者也可以通过设定一个分数阈值来选取代表主题的单词。

1.扫描所有文档,随机给每个单词赋予 k 个主题中的一个(k个主题是提前设定的)
2.对于每个文档 d ,扫描每个单词 w 并且计算:
(1) : 在文档d中属于主题t单词的比例。 得到在文档d中多少单词属于主题t。
(2) 主题t在所有的文档中来源于单词w的比例。 得到多少文档属于t是因为单词w。
LDA中文档是有多个主题混合而成,一个主题也是由多个单词混个而成。如果一个单词w很高几率属于主题t,那么含有这个单词w 的文档也会很大几率属于t。
3.更新属于主题t的单词w的概率

1.alpha 控制一个文档中主题的数量。alpha越大,文档中包含的主题越多。
2.beta 控制每个主题中单词的数量。beta越大,主题中包含的单词就越多。
通常情况下,我们希望文档能够被清晰的表达成很少的几个主题,同时每个主题可以由几个关键的部分来表达。

reference:
https://towardsdatascience.com/latent-dirichlet-allocation-lda-9d1cd064ffa2
http://www.jmlr.org/papers/volume3/blei03a/blei03a.pdf
https://monkeylearn.com/blog/introduction-to-topic-modeling/

无监督第五节:LDA (Latent Dirichlet Allocation算法细节)(主题模型)

参考技术A

LDA是生成式概率模型。基本的观点是一个文档由多个隐主题生成,每个主题是由单词的分布式表达。

LDA假设在语料库D中每个文档的生成过程如下:

1.主题数量k已知

2.单词的概率由参数 控制


参数 是一个k 维的向量,并且每个元素大于0, 服从Gamma 分布

已知参数 , 联合分布主题混合的参数 , 表示主题的参数 z,表示文档的参数w:

对 积分,并对z求和得到关于文档的边缘分布:

所有文档的边缘分布相乘,得到整个语料库的概率:

参数 和参数 是语料库级别的参数,在生成语料库的过程中使用。

变量 是文档级别的参数,每个文档采样一次。

变量 和 是单词级别的参数,每个文档中每个单词都采样一次.

一组随机变量如果联合分布和变量的排列顺序无关,则称这组变量是可交换的。

在LDA中,我们假设单词是由主题生成的,并且这些主题在文档中是无限可交换的,

其中 是关于主题多项式分布的随机变量。

通过对隐主题变量z积分。可以得到单词分布:

这是一个随机量,因为他依赖于

我们定义接下来的生成过程, 对于一个文档 w

1.选择θ∼Dir(α)

2.对于每个N的单词 :

(a)从 中选择一个单词

这个过程定义一篇文档的边缘分布看成一个连续的混合分布

inference的关心的问题使用LDA来计算隐变量z的后验分布:

这个分布通常很难计算。通过normaliza 分布,并且计算边缘分布。

这个后验分布很难计算,但是通过一些变分推断的方法还是可以得到。

基本的观点是使用jensen\'s 不等式来获得一个调整的下界,变分参数通过优化过程来试图找到最接近的可能的下界。

一个简单的方式是通过鲜花原始的计算图,将一些边和节点移去。在LDA中,原始的图是左图,通过把 移去,生成右边含有自由变分参数的图。
新的计算图使用如下变分分布:

是狄利克雷参数,多项式参数(φ1 , . . . , φ N ) 是自由变量参数。

得到简化的概率分布后,下一步是开始的优化问题是决定变分参数 的值。

优化这个变分参数是通过最小化KL散度来实现,并且吧他们设为0,得到以下的更新参数。

在文本的语言中,优化参数 是文档制定的。特别的,我们认为狄利克雷参数 是一个文档的主题表达。

经验贝叶斯方法来估计LDA中的参数。给定一个语料D,我们希望找到参数 来最大化边缘似然概率:

计算 比较困难,可以通过变分EM算法来估计。

1.E step,对于每个文档,找到最优的变分参数 。

2.M step, 最大化结果的下界。

重复上述几步直到下界收敛。

以上是关于无监督第四节:LDA (Latent Dirichlet Allocation快速理解)(主题模型)的主要内容,如果未能解决你的问题,请参考以下文章

潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型

潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型

主题建模:LDA ( Latent Dirichlet Allocation)

潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型

自然语言处理NLP之主题模型LDA(Latent Dirichlet Allocation)语义分析词义消歧词语相似度

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)