赞
踩
在老师讲主题模型的时候看到这个LDA,刹时觉得很熟悉,在机器学习中,其实有两个LDA,一个是平时接触比较多的Linear Discriminant Analysis即线性判别分析,另一个便是这篇文章的主角Latent Dirichlet Allocation即隐含狄利克雷分布。
用于推测文档(document)的主题分布,以及主题(topic)的词(word)分布;换个角度来说其实这个模型解决了文档和词汇的软聚类,即文档的主题分布概率可以当作文档聚类的指标,而词汇则归属于其隶属的主题而达到软聚类的效果。
从而用于大量文档没有人力分类的情况。
人们在写一篇文章时,肯定不是随意单词或语句的堆砌,而是有一个或多个核心主题,这也是主题模型的基本思想,即一个document并不是直接和word相关,而是一篇document有一个或多个topic,每个topic具有对应的主题单词分布(如凸优化topic,凸函数、凸集等单词分布较多),然后从这些分布中抽取单词形成一篇document,也就是说是这么的一个过程:
topic->word->document
下面详细解释下LDA模型生成文档的过程:假设m篇文档,对应单词数n,主题数k(在训练过程中需提前制定,本文先不介绍训练过程,只介绍思想)
符号 | 含义 |
---|---|
α \alpha α | 文档-主题分布的超参数 |
θ m \theta_m θm | 文档m的主题分布 |
z m , n z_{m,n} zm,n | 文档m第n个词的主题 |
w m , n w_{m,n} wm,n | 文档m第n个词 |
β \beta β | 主题-词语分布的超参数 |
φ k \varphi_k φk | 主题k的词分布 |
LDA采用的是贝叶斯派的思想,即认为主题分布和词分布都不是确定的,它们本身也服从一个分布。
具体语言描述步骤如下:
1.选择文档
d
m
d_m
dm;
2.以
α
\alpha
α为超参数的Dirichlet分布采样生成文档
d
m
d_m
dm的主题分布
θ
m
\theta_m
θm;
3.多项式主题分布
θ
m
\theta_m
θm生成文档m第n个词的主题
z
m
,
n
z_{m,n}
zm,n;
4.以
β
\beta
β为超参数的Dirichlet分布采样生成主题
θ
m
\theta_m
θm的词语分布
φ
k
\varphi_k
φk;
5.多项式分布
φ
k
\varphi_k
φk采样生成文档m第n个词
w
m
,
n
w_{m,n}
wm,n;
需要注意的是,本篇文章讲述的是LDA正向生成文档的思想过程,是理解LDA模型训练的前提,笔者感觉训练的过程还是挺难的,如果只是想要了解的同学看本篇就好,想要深究的可以移步参考的文章。
X
m
d
=
S
m
k
⋅
T
k
d
X_{md}=S_{mk}·T_{kd}
Xmd=Smk⋅Tkd
其中矩阵X,m行d列,每行为一篇文章,列代表单词;
矩阵S可以视为样本的新表示,每一行视为对应topic的系数;
矩阵T可以视为空间变换函数,每行视为一个topic;
等式右边的矩阵乘法即可以理解为一片文章是不同topic的线性组合,矩阵乘法相当于实现了k个topic线性组合的效果。
以这种角度,可以将topic模型视为对样本的学习和新表示,也可以视为一种降维。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。