原创内容,转载注明出处
最近看了labeled LDA 和Hierarchically LDA,看之前一头雾水,想要查些介绍,可是发现这两个模型在其他博文里都只是简单的介绍,没有找到较为详细的介绍。所以想写这篇博文,希望对初学者有所帮助。如果有理解不到位的也希望得到大家的指正。
这篇文章是建立在读者已经对LDA有了很好的理解之上的,如果还没有看过基础版LDA请自行查阅第一篇博文和参考文献。
那么如果理解了基础版LDA,这两个改进版就不是什么大问题了。
labeled LDA发表于2009年ACL,对于文档-主题分布增加了一个监督项。比如,已经知道一个文档的标签是(0,1,1,0),那么它的主题分布和标签一一对应,所以如果标签是四维,那么主题也有四个,和四个标签对应。那么在Gibbs Sampling的时候就单词只在这篇文章对应的主题中采样,从而得到最后的主题分布。例如以(0,1,1,0)为标签的文档对应的主题分布可能是(0,0.1234,0.7829,0)。
如上图,为了保证在标签主题中采样,α和之前的LDA不同:,其中L为一个矩阵:例如上例,四个标签中第二个第三个属于当前文档,那么L为那么显然此时
有了这些其余的就和LDA完全相同了,可以开始采样了~
得到当前的文档主题分布和主题词汇分布后,对于新的文档进行训练是没有标签限制的,和LDA完全相同。
Hierarchically LDA发表于2011年的NIPS。也是通过标签集合来限定主题的采样。
结构如图所示,β是全局的主题分布,θ是每篇文章的主题分布,φ是主题的词汇分布。η服从正态分布。y代表标签是否属于当前类别,+1是属于,-1是不属于。在树形层次结构中,只有父节点有一个标签时,子节点才能有这个标签,如果子节点有这个标签,那么父节点一定有这个标签。α‘是狄利克雷分布参数,β是狄利克雷分布,θ服从Dir(αβ),φ和LDA中的狄利克雷分布相同。a是一个辅助参数。根据已知的label和(是文章中某一主题的单词占所有主题的比例)来生成特定的条件标签的过程如下:
采样的公式为:
其他参数更新为: