我是靠谱客的博主 飞快芹菜,最近开发中收集的这篇文章主要介绍机器学习主题模型之LDA概念,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

隐含狄利克雷分布(Latent Dirichlet allocation)是一种生成式统计模型,是泛化的pLSA模型,区别在于LDA假设主题分布是稀疏的Dirichlet prior,即所有文档只覆盖一小部分的主题,且这些主题只频繁地使用一小部分的单词。

LDA是三层贝叶斯模型,基于变分方法的近似推理和经验贝叶斯参数估计的EM算法,使用“先验分布”和“数据对数似然”得出“后验分布”,再用后验分布作为新的先验分布,往复迭代。这就要求先验分布和后验分布具有相同的形式,即二者为共轭分布。

 

一、相关概念

    1、二项分布Binomial distribution

二项分布是重复n次独立的伯努利试验,每次试验只有两种可能的结果,期望为np,方差为np(1-p)。二项分布可以作为LDA中的数据对数似然。

        b(n,p)=binom{n}{k}p^{k}(1-p)^{n-k}

    2、Beta分布

Beta分布是一组定义在(0,1)or[0,1]区间的连续概率分布,有两个参数α,β>0,可看做是一系列pattern相似的二项分布(n、p未知),认为α与成功的事件数相关、β与失败的事件数相关:

        beta(alpha ,beta )=frac{gamma (alpha +beta )}{gamma (alpha )(beta )}x^{alpha -1}(1-x)^{beta -1}

        gamma (x)=(x-1)!

        e(x)=frac{alpha }{alpha +beta }, , , var(x)=frac{alpha beta }{(alpha +beta )^{^{2}}(alpha +beta +1)}

Beta前面的系数起标准化作用,使得这个分布的概率密度积分为1。除去前面的系数以外,Beta分布和二项分布具有相同的形式,因此可知Beta分布是伯努利分布、二项分布的共轭先验分布的密度函数;若将Beta分布作为先验分布、二项分布作为似然函数,那么后验分布仍是Beta分布:

        b(k|n,p)cdot beta(p|alpha ,beta )\=binom{n}{k}p^{k}(1-p)^{n-k}cdot frac{gamma (alpha +beta )}{gamma (alpha )gamma (beta )}p^{alpha -1}(1-p)^{beta -1} \=frac{gamma (alpha +beta +n)}{gamma (alpha +k)gamma (beta +n-k)}p^{alpha +k -1}(1-p)^{beta +n-k-1}\\=beta(p|alpha +k,beta+n-k )

   

    3、多项分布Multinational distribution

           是二项分布的推广,N次试验可能的结果有K种(K≥2),每种数量分别为m_{_{i}},i∈(1,2,...,K);取到每类的概率分别为p_{i}in (0,1)。多项分布的期望为np_{i},方差为np_{i}(1-p_{i}),协方差为-np{_{i}}p_{j} (ineq j)

        pn(n:p)=frac{n!}{m_{1}!cdot cdot cdot m_{k}!}p_{1}^{m_{1}}cdot cdot cdot p_{k}^{m_{k}}

    4、Dirichlet分布

           是Beta分布的推广,N次试验可能的结果有K类(K≥2),每种的浓度concentration参数分别为alpha _{i}>0,i∈(1,2,...,K);取到每类的概率分别为p_{i}in (0,1)。Dirichlet分布是多项分布的共轭分布:

        dir(p|alpha )=frac{gamma left ( sum_{i=1}^{k}alpha _{i} right )}{prod_{i=1}^{k}gamma (alpha _{i})}prod_{i=1}^{k}p_{i}^{alpha _{i}-1}

        e_{dir(p|alpha )}=frac{alpha _{i}}{sum_{k}^{ }alpha _{k}}

        var_{dir(p|alpha )}=frac{alpha _{i}left ( sum_{k}^{ } alpha _{k}-alpha _{i}right )}{left ( sum_{k}^{ }alpha _{k} right )^{2}left ( sum_{k}^{ }alpha _{k}+1 right )}

        pn(n:p)cdot dir(p|alpha )\=frac{n!}{prod_{i=1}^{k}m_{i}!}prod_{i=1}^{k}p_{i}^{m_{i}}cdot frac{gamma left ( sum_{i=1}^{k}alpha _{i} right )}{prod_{i=1}^{k}gamma (alpha _{i})}prod_{i=1}^{k}p_{i}^{alpha _{i}-1}\=frac{gamma left ( sum_{i=1}^{k}m_{i}+alpha _{i} right )}{prod_{i=1}^{k}gamma (m_{i}+alpha _{i})}prod_{i=1}^{k}p_{i}^{m_{i}+alpha _{i}-1}\\=dir(p|alpha +m)

Dirichlet分布常用作贝叶斯理论中的先验分布,如果没有任何先验信息有利于一个类超过其他类的情况,则一般将所有的浓度参数初始化为相等的值(对称的Dirichlet分布)。可认为浓度参数是样本的集中程度,当ɑ=1时,对称的Dirichlet分布相当于一个均匀分布,在它的support上的所有点都是相等的——扁平的Dirichlet分布;当ɑ>1时,则倾向于密集分布,单个类别内所有值都是相似的;当ɑ<1时,则倾向于稀疏分布,单个类别内所有值都接近于0,大多数样本集中在少数类别中。

 

二、LDA主题模型

LDA是一种比较常用的主题模型,每篇文档是由一系列潜在主题构成,而每个主题又是一个在词上的多项分布。假设文集/语料库(corpus)D中共有M篇文档,第m个文档有n_{m}个单词,这些文档一共涉及K个主题,词汇表中所有词总数为V。

    1、模型参数解释

(1)alpha in mathbb{r}^{k}0<alpha _{k}<1为每篇文档主题分布的Dirichlet prior的参数,即一篇文档中主题k的先验权值,一般所有主题的α相等且比较稀疏(e.g. 0.1,每篇文档只有少量主题);

(2)eta in mathbb{r}^{v}0<eta _{v}ll 1为每个主题单词分布的Dirichlet prior的参数,即一个主题中单词v的先验权值,一般所有单词的β相等且非常稀疏(e.g. 0.001,每个主题只有很少的单词);

(3)theta _{m}in mathbb{r}^{mtimes k}为第m篇文档的主题分布,theta _{mk}=p(z_{k}|theta _{m})

(4)beta _{k}in mathbb{r}^{ktimes v}为主题k的单词分布,beta _{ki}=p(w_{i}|z_{k})

(5)z_{mn} 是第m篇文档中第n(nin n_{m})个单词所属的主题;

(6)w_{mn} 是根据p(w_{mn}|z_{mn},beta _{k}) 选择的单词,用深色表示是因为它是模型中唯一可观测的值。

 

    2、模型生成过程

LDA从生成式模型的角度看待文档和主题,认为语料库中所有文档是隐含主题的随机混合,每个主题是由所有单词分布体现的。文档m的生成过程为:

(1)根据参数为α的Dirichlet分布选择一个主题分布,theta _{m}sim dir(alpha )

(2)根据参数为η的Dirichlet分布选择一个单词分布,beta _{k}sim dir(eta )

(3)按照下列步骤生成文档m中的n_{m}个单词:

        a、根据theta _{m} 指派主题,得到文档m中单词n的主题 z_{mn}sim multinomial(theta _{m})

        b、根据指派的主题z_{mn} 所对应的单词分布beta _{k} 生成单词 w_{mn}sim multinomial(beta _{z_{mn}})

 

 

三、LDA参数估计

给定训练数据w=left {w_{1},w_{2},...,w_{m} right },LDA的模型参数可通过极大似然法估计,即寻找α和η最大化对数似然:

        ll(alpha ,eta )=sum_{m=1}^{m}ln p(w_{m}|alpha ,eta )

求出α和η后,根据词频w_{mn} 推断文集所对应的主题结构,即使用贝叶斯算法估计theta _{m}beta _{k}z_{mn}的参数:

        p(theta ,z,beta |w,alpha ,eta )=frac{p(theta ,z,beta ,w,alpha ,eta )}{p(w,alpha ,eta)}=frac{p(theta ,z,beta,w|alpha ,eta )}{p(w|alpha ,eta )}

由于分母p(w|alpha ,eta ) 难以求解,因此可以采用Gibbs采样法或变分法进行近似推断。

scikit-learn API

 

参考资料

https://en.wikipedia.org/wiki/Latent_Dirichlet_allocation

lda数学八卦

http://www.cnblogs.com/pinard/p/6831308.html

《机器学习_周志华》

最后

以上就是飞快芹菜为你收集整理的机器学习主题模型之LDA概念的全部内容,希望文章能够帮你解决机器学习主题模型之LDA概念所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部