飞鸟各投林

导航

LDA算法里面Dirichlet分布的两个参数alpha和beta怎样确定?

本文参考自:https://www.zhihu.com/question/21692336/answer/19387415
 
方法一:  
  alpha 是 选择为 50/ k, 其中k是你选择的topic数,beta一般选为0.01吧,,这都是经验值,貌似效果比较好,收敛比较快一点。。有一篇paper, lda-based document models for ad-hoc retrieval里面的实验系数设置有提到一下啊

方法二:

  alpha属于超参数,可以经验贝叶斯估计,在Blei原作里面是用EM算法估计超参数的。E步就是固定超参数,对其中的变分参数gamma和phi进行推断,然后在M步,利用E步得到的变分参数最大化边缘似然函数,对alpha和beta进行估计。E步和M步迭代进行,最后可以收敛到一个定值。这就是变分EM方法,Blei原作里面也是这么做的。经过训练以后,当给一个新的文档,就可以使用训练中得到的alpha和beta直接对新文档进行变分,从而对其进行聚类。

在这里beta仍然是参数,完全贝叶斯方法还要在beta上加一个狄利克雷先验,这时仍然可以用变分EM估计beta的先验。

在上面的过程中,E步用到的是变分推断,这一步可以用Gibbs推断代替,这时可以得到参数theta和beta。然后再用M步最大化边缘似然函数,得到超参数alpha和beta的先验参数,在不同的文章里上面的符号表示的不太一样,注意区分一下。LDA的Gibbs推断详细算法可以参考“parameter estimation for text analysis”






 

posted on 2017-03-30 17:08  飞鸟各投林  阅读(4806)  评论(0编辑  收藏  举报