【几个问题待解决:1.LDA的先计算联合概率体现在哪里 2.对于theta 的采样的理解,下文中的theta1 ,theta2等其实是指theta向量中的第一个,第二个等,也就是不同文章的不同单词的主题,固定其他,分别重新从计算的概率分布再次抽取主题】
LDA是一种非监督机器学习技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息。但是词袋方法没有考虑词与词之间的顺序,因此我们可以考虑对于语料库的表示采用tf-idf的方式表示。
1. 输入:LDA的最小单元输入是文档,不管文档里有多少个字
2. 模型参数:
:是针对每个文档都有一个主题的概率分布,这时得到参数
,是一个K维的向量,K是主题个数
:V*K的矩阵,其中,K是主题个数,V是词库里的单词个数,矩阵中的每个位置是该单词分为某个主题的概率
(注意:LDA时无监督算法,不需要标注,数据放到模型中会自动学习每个文档的主题分布和主题的词分布,也就是模型参数)
3. 假设:
每个文档属于多个主题。
为了更好的理解LDA是一个贝叶斯模型,我们类比LDA和朴素贝叶斯,LDA不像朴素贝叶斯那样,每个文档只有一个主题,就是概率最大的主题,这里每个文档都有一个对应主题的概率分布,这就意味着LDA是一个Soft Classifying,而不是Hard Classifying
同样,这也类似于K-Means和GMM,K-Means也是根据对一个数据点只将其分类为概率最大的类别,而GMM则是对一个数据点所有可能的类别进行判断,这是模型设计就决定的特点。
4. LDA的生成过程
理解生成模型一定要理解它的生成过程。
首先明确我们的目标是使用LDA模型生成一个文档,第一步是选定主题,根据文档的主题分布抽取单个或多个主题,其次生成单词,根据抽取的主题和参数生成单词(这里注意:选择主题和选择主题下的单词并不是就一定选择概率最大的,只可以说概率越大的越有可能被选择到)
1)定义变量:
K:主题个数
N:文档个数
Ni:文档i中包含的单词个数
模型参数:i和
超参数: 和
隐含变量:Zij和Wij
2)四个依赖关系