LDA小结及在gensim中的应用

  首先,感谢Rickjin的《LDA数学八卦》,能兼具如此数学功底和写作功底的人,着实不多。这是我的个人的思路小结,没有数学推导,如果想仔细研究,推荐大家去阅读那篇八卦,写的很精彩。

  LDA是NLP领域一个非常重要的非监督算法。一直想仔细研究一番。
  看完Rickjin的《LDA数学八卦》,不说理解透彻,这个算法前前后后的思考过程还是比较清晰的。
  
  首先,why?LDA出现的原因是啥呢?
  其实是这样,我们人类在写文章的时候,构思过程是这样,我们首先想一个中心思想,围绕这个中心思想,可以选择多个主题,再根据主题选择下面相应的字词。例如,我们写一篇游记,我们会写自然风光主题30%,历史主题30%,个人感受30%,其他10%。在不同的主题下,相同词语出现的概率是不一样的。

  因此,总结一下就是:一篇文档可能有多个主题,而在多个主题下边有词语的不同概率分布。

  
  下边遇到一个有趣的事情,统计分为两个流派:频率派和贝叶斯学派。这两个派别解决如上问题,分别产生的算法是PLSA和LDA。区别在哪呢?就在于对这个参数的认识。频率学派的代表PLSA,根据频率最大似然估计概率,得到结果。PLSA比较好理解。
  而贝叶斯学派认为,参数也时符合某种分布的,因此,PLSA的参数需要加上先验分布,而那就是LDA了。
  重点就是这个先验分布。
  由于主题的参数和词语的参数是多项式分布,而多项式分布的先验概率分布,比较好的选择是它的共轭分布—狄利克雷分布。我们做出这个假设后,就是LDA算法了。
  任何一个机器学习算法,少不了两个:
  
  1、求参
  2、解码
  
  现在就是贝叶斯学派的求参过程了,先说这个。
  为何是狄利克雷分布?
  因为狄利克雷分布和beta分布一样,随着参数的改变,形状变化很大,所以可以拟合很多很多分布。把它作为先验分布,合适,大不了参数改改,换个形状拟合;另一个就是,因为前面主题模型是多项式分布,而多项式分布的共轭分布就是狄利克雷分布。
  何为共轭分布?
  共轭分布是指数据符合多项式分布的时候,参数的先验分布和后验分布都能保持狄利克雷分布的形式。这种形式不变的好处是,我们能够在先验分布中赋予参数很明确的物理意义,这个物理意义可以延续到后验分布中进行解释,同时从先验变换到后验的过程中,从数据中补充的知识也容易有物理解释。
  可以这么理解吧,我们假设参数的先验分布是狄利克雷分布,然后我们有符合多项式分布的后验知识,然后我们求参数的后验分布。而狄利克雷分布是多项式分布的共轭分布,所以,这个后验分布依然是狄利克雷分布。
  理解LDA的所有数学过程其实就是理解狄利克雷分布和多项式分布的共轭结构。
  采样就是取值。
  未完待续。

你可能感兴趣的:(机器学习,自然语言处理)