1.https://blog.csdn.net/lei_chen/article/details/53168778
2.LDA理解以及源码分析(二)
3.GibbsLDA++的使用
4.http://weblab.com.cityu.edu.hk/blog/luheng/2011/06/24/%E7%94%A8gibbslda%E5%81%9Atopic-modeling/#comment-648
cd /home/work/zhangxiaomeng02/GibbsLDA++-0.2
src/lda -est -alpha 0.5 -beta 0.1 -ntopics 3 -niters 1000 -savestep 100 -twords 20 -dfile /home/work/zhangxiaomeng02/project/gibbs/demo/trainfile
循环:训练过程迭代N次
{
循环:遍历每一个训练样本(指doc)
{
循环:遍历训练样本中的每一个word
{
循环:gibbs采样过程,遍历每一个topic
{
会更新:
doc-topic矩阵、
word-topic矩阵、
doc-topic的边缘分布向量、
word-topic的边缘分布向量
当前word在topic上的分布向量
}
}
}
}
LDA的训练过程主要通过gibbs采样过程来完成。在内存中会存储:(1)所有训练样本;(2)doc-topic矩阵、word-topic矩阵、几个topic相关的分布向量等。整个训练过程由上面嵌套的四重循环组成。当训词典不大且练样本集合不大的时候,gibbs采样是一个cpu消耗集中的项目,而不是内存占用的项目。也就是说cpu是整个训练的瓶颈。