赞
踩
主题模型就是利用大量已知的P(w|d)信息,训练出P(c|d) 和P(w|c)。
LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,也称为一个三层贝叶斯概率模型,包含词、主题 和文档三层结构。所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“文章以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到。文档到主题服从多项式分布,主题到词服从多项式分布。
链接:https://www.jianshu.com/p/39a8372d7ccd
用途:LDA是一种非监督机器学习技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。
对于语料库中的每篇文档,LDA定义了如下的生成过程:
LDA认为每篇文章是由多个主题混合而成的,而每个主题可以由多个词的概率表征,所以整个程序的输入和输出如下所示:
类型 | 意义 |
输入 | 分词后的文章集(通常为一篇文章一行),主题数K,超参数α 和 β |
输出 | 1、每篇文章的各个词被置顶的主题编号 2、每篇文章的主题概率分布 3、每个主题下的词概率分布. 4、程序中词语word的id映射表. 5、每个主题下从高到低topn特征词 |
链接:https://www.jianshu.com/p/d8485c623669
LDA训练过程 是无监督学习过程,没有准确率的概念只能人工进行判断 或者用特征做分类看看效果好坏。
LDA训练算法:
(1)随机初始化α和β(一般α取值为50/主题数,β取值为0.1);
(2)以下步骤迭代直到收敛:
(2.1)对训练集中的每篇文档:
(2.1.1)利用当前的α和β值计算每篇文档的主题分布、每个词所属的主题分布(具体算法见下文);
(2.2)累积所有文档中,属于主题k(k=1…K)的词的个数,得到向量gammas;以及词i(i=1…V)属于主题k的次数,得到矩阵betas;
(2.3)根据当前的gammas,利用Newton-Raphson迭代方法求得当前的最优α值;
(2.4)对矩阵betas的列归一化,直接得到当前的β值,即每个主题的词的分布;
(3)输出达到收敛时的α和β的值。
步骤(2.1.1)的算法与基于训练好的模型来进行预测的算法是相同的。它也是一个EM迭代算法,具体算法如下:
LDA预测算法:
(1)以平均分布初始化K维向量nt,ntk是当前文档中属于类别k的词的个数,nt可视为未归一化的文档的主题分布;
(2)以下步骤迭代直到nt达到稳定:
(2.1)根据当前的α值(决定主题的先验分布),以及当前的nt值(当前文档的主题分布),以及当前的β值(主题的词的分布),计算文档中的各个词的主题分布,得到矩阵q, qij=文档中的第i个词属于主题k的概率(具体计算方法参考LDA论文以及variational inference方法);
(2.2)利用矩阵q的值更新向量nt的值。
(3)将nt归一化作为文档的主题分布,矩阵q则为文档中每个词的主题分布。
原文链接:https://blog.csdn.net/mm_bit/article/details/47312385
下面的理解比较容易,可是上面生成word 的是什么东东呐?
输入:m篇文档出现的所有词汇 ,每篇文档中各个词汇出现的频率,设定topic的个数(依据经验),迭代次数
输出: 训练得到每个词与那些主题相关,即(t,w)样本对, topic-word共现频率矩阵就是训练得到的LDA模型
输入:该文档中各个词汇出现的频率
输出:该文档的主题分布(该文档与那些主题相关以及相关度);利用训练得到的(t,w)相关度矩阵 和 该文档的单词 不断更新 该文档的主题分布。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。