机器学习主题模型之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} (i\neq 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}^{M\times K}为第m篇文档的主题分布,\theta _{mk}=p(z_{k}|\theta _{m})

(4)\beta _{k}\in \mathbb{R}^{K\times V}为主题k的单词分布,\beta _{ki}=p(w_{i}|z_{k})

(5)z_{mn} 是第m篇文档中第n(n\in 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

《机器学习_周志华》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值