LDA 原理说明
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LDA 原理说明相关的知识,希望对你有一定的参考价值。
参考技术ALDA为latent Dirichlet allocation的简称,是一个生成式模型,是一种主题模型,无监督度学习方法。其基本假设是一篇文档是一个词袋,由多个词组成,与词的顺序无关,它可以有多个主题(topic),并且文档中的词都和这些主题相关。这里使用sparse dirichlet的原因是,一个主题中的词的概率分布是被修剪过得,所以仅有一小部分词的概率较大,这就和实际场景更加贴近
先定义几个简写表示:
① 词袋表示为D,词袋中有V个词,里面有M篇文档,每个文档的长度为Ni(文档中含有N个词);
② α为每个文档的主题分布的先验dirichlet分布的参数;(这里简单说明一下dirichlet分布,见文章最后)
③ β为每个主题词分布的先验dirichlet分布的参数 ;
④ Θi文档i的主题分布,为多项式分布,但受到参数为α的Dirichlet先验分布控制;
⑤ φk为主题k的词分布,k∈[0,K],为多项式分布,但受到参数为β的Dirichlet先验分布控制;
⑥ ωij为具体的词,这是和①中的已知量,其他的均为变量;
⑦ zij为第i篇文档的第j个词的主题;
统计说明如下:
从dirichlet分布α中取样生成文档i的主题分布Θ i (Θ i ~Dir(α),α<1)
从主题k的多项式分布φ k 中取样生成的文档i的第j个词的主题z ij
从dirichlet分布β中取样生成主题词z ij 的词语分布φz ij
从词语的多项式分布φz ij 中重采样最终生成词语ω ij
那么,模型的联合分布(生成词w的概率)为:
最终,文档i的单词分布集对Θ i 、φ求积分,对z ij 求和,(因为有一篇文档假设由K个主题组成,每个主题k满足多项式分布,并且文档包含j个词)得到:
根据p(ω i |α,β)的最大似然估计,最终可以通过EM/吉布斯采样估计出模型中的参数。
对文档中的所有词遍历一遍为其随机分配一个主题(zij),即zij符合mult(1/K),将文档i中k主题出现的次数、文档i中主题数量和、k主题对应的某个词的次数、主题k的总词数,这4个变量都加1。
之后,开始重复迭代寻优。
例如,文档i的词ωij对应的主题为k,根据LDA中topic sample的概率分布sample出新的主题,更新对应的上述4个变量分布加1
迭代完成后,输出主题-词参数矩阵φ和文档-主题矩阵Θ
beta分布的x∈[0,1],是实数,概率密度为x (α-1)(1-x) (β-1),其中α,β>0,这和bernoulli 分布形式上类似,但是bernoulli的x取值为0或1。
当选择不同α和β时,beta分布的pdf为:
说明:
pdf为连续型变量的概率密度函数
beta分布是针对一个x变量,dirichlet分布是针对多个随机变量,通常标记为Dir(α),表示连续多元概率分布,参数α>0,是beta分布的扩展,通常被用于贝叶斯统计中的一种先验分布。
对于两个随机变量(k=2)的pdf分布如下图:
dirichlet分布的pd如下所示:
共轭:假定一个先验分布A,将该先验分布的参数带入另外的一个分布中,得到后验证分布,如果该后验分布和该先验分布有相同的形式,则称为共轭(conjugacy)。
beta分布是bernoulli(二项式分布)的共轭先验分布为共轭,dirichlet为multinomial(多项式分布)的共轭先验分布。
参考链接:
<u>https://en.wikipedia.org/wiki/Latent_Dirichlet_allocation</u>
https://blog.csdn.net/MeituanTech/article/details/80804170
wiki中文版
LDA和PCA降维的原理和区别
LDA算法的主要优点有:
- 在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。
- LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。
LDA算法的主要缺点有:
- LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。
- LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。
- LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。
- LDA可能过度拟合数据。
PCA算法的主要优点有:
- 仅仅需要以方差衡量信息量,不受数据集以外的因素影响。
- 各主成分之间正交,可消除原始数据成分间的相互影响的因素。
- 计算方法简单,主要运算是特征值分解,易于实现。
- 当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,舍弃能在一定程度上起到降噪的效果。
PCA算法的主要缺点有:
- 主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。
- 方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。
LDA与PCA
相同点:
- 两者均可以对数据进行降维。
- 两者在降维时均使用了矩阵特征分解的思想。
- 两者都假设数据符合高斯分布。
不同点:
- LDA是有监督的降维方法,而PCA是无监督的降维方法。(LDA输入的数据是带标签的,PCA输入的数据是不带标签的)
- LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。(PCA采用的是最大的特征所对应的特征向量来进行降维的处理。降到的维数和选择的最大特征的个数有关)
- LDA除了可以用于降维,还可以用于分类。(降维后得到一个新的样品数据,要确定某一个未知的样本属于那一类,对该样本进行同样的线性变换,根据其投影到的位置来进行分来(判别分析问题?))
- LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。
以上是关于LDA 原理说明的主要内容,如果未能解决你的问题,请参考以下文章