一、预备知识
1、LDA应用方向:
2、与朴素贝叶斯文本分类的对比
D->T->W
3、
Γ
\Gamma
Γ函数
Γ
\Gamma
Γ函数
4、
β
\beta
β分布
5、共轭先验分布
后验=似然*先验
两点分布和二项分布(见常见概率分布)的共轭先验分布是 β \beta β分布,即:
β \beta β分布=两点分布(二项分布)* β \beta β分布
6、Dirichlet分布(狄利克雷分布/多元
β
\beta
β分布)
若取 α 1 = α 2 = . . . = α k \alpha_1=\alpha_2=...=\alpha_k α1=α2=...=αk,则得到对称Dirichlet分布。
- 调参
从上图中可以看出,想要主题鲜明在满足聚类要求的情况下,取 α \alpha α尽量小。若文档主题比较均衡取 α \alpha α尽量大。
二、LDA
LDA模型是文本集合的生成概率模型,假设每个文本由主题的一个多项分布表示,每个主题由单词的一个多项式分布表示,特别假设文本的主题分布的先验分布是狄利克
雷分布,主题的单词分布的先验分布也是狄利克雷分布。先验分布的导入使LDA能够更好的应对主题模型学习中的过拟合现象。LDA是无监督学习。
1、LDA生成文档
假设文档中的词是不相关的。
在LDA模型中,一篇文档生成的方式如下,提前给定K个主题(往往通过先验知识获得)和长度为N的词典(所有文档中所有词的个数)(词典是分词得到的。分词包:jieba):
- 从狄利克雷分布 α \alpha α中取样生成文档 m m m的主题分布 θ m \theta_m θm
- 从主题的多项式分布 θ m \theta_m θm中取样生成文档 m m m第 n n n个词的主题 z m , n z_{m,n} zm,n
- 从狄利克雷分布 β \beta β中取样生成主题 z m , n z_{m,n} zm,n对应的词语分布 ϕ k \phi_k ϕk
- 从词语的多项式分布
ϕ
k
\phi_k
ϕk中采样最终生成词语
w
m
,
n
w_{m,n}
wm,n
其中 N m N_m Nm为第M篇文档的词的个数,主题分布 θ m \theta_m θm是K维的,每个主题对应的词分布 ϕ k \phi_k ϕk是N维的。
总结:LDA生成文档的过程中,先从dirichlet先验中“随机”抽取出主题分布,然后从主题分布中“随机”抽取出主题,最后从确定后的主题对应的词分布中“随机”抽取出词。
补充:假设给定三个主题【爱情,武侠,机器学习】,词典中词个数为5【北京,天津,SVM,段誉,泡泡】
1、 怎么确定某篇文档的3个主题的分布的参数,如【0.1, 0. 5, 0.4】
我的理解:利用Dirichlet分布(给定参数$\alpha$),K给3,会得到如上上图(调参图)中的概率密度曲线,采样其中一个点,取坐标值就可得到【p1,p2,1-p1-p2】。
2、怎么确定某个主题对应的词分布。
如爱情主题对应【北京,天津,SVM,段誉,泡泡】=【0.3,0.1,0,0.4,0.2】
同取主题分布的一样。
3、这么取了之后,若随机采样,怎么确定主题下对应的词分布是相关的。
2、已知文档怎么推断主题(求解参数 ϕ \phi ϕ, θ \theta θ)
采用Gibbs采样,Gibbs采样这篇博客写的特别好。
算法流程:
超参数选择
主题个数选择