如何计算潜在的Dirichlet分配的坚持的困惑?


18

我对进行潜在狄利克雷分配(LDA)时如何计算保留样本的困惑度感到困惑。有关该主题的论文轻而易举,使我觉得我缺少明显的东西...

困惑被视为LDA性能的良好衡量标准。这样做的想法是,您保留一个保留样本,在其余数据上训练LDA,然后计算保留的复杂性。

困惑可以由以下公式给出:

per(Dtest)=exp{d=1Mlogp(wd)d=1MNd}

(摘自Horster等人的大型图像数据库上的图像检索)。

这里 M是文档的数量(测试样品中,据推测),wd表示在文件的话dNd在文档的单词数d

我不清楚如何合理地计算p(wd),因为我们没有所保留文档的主题组合。理想情况下,我们将对所有可能的主题混合在Dirichlet之前进行积分,并使用我们学到的主题多项式。但是,计算此积分似乎并不容易。

或者,我们可以尝试为每个坚持的文档(考虑到我们所学的主题)学习最佳的主题组合,并以此来计算困惑度。这是可行的,但是它并不像Horter等人和Blei等人的论文所暗示的那么琐碎,而且我还不清楚我的结果是否等同于上述理想情况。

Answers:


17

确实,这确实经常被掩盖。

有些人做起来有些厚颜无耻:在每个文档中保留一定比例的单词,并根据文档-主题混合以及主题-单词混合使用这些保留单词的预测概率。这显然不理想,因为它不评估任何保留文档的性能。

为了按照建议使用保留的文档正确执行此操作,您确实需要“在所有可能的主题混合之前先对Dirichlet进行集成”。http://people.cs.umass.edu/~wallach/talks/evaluation.pdf回顾了一些解决这个略微令人讨厌的积分的方法。实际上,我将尝试自己实现此功能,祝您好运!


3
感谢您解决这个问题!Wallach等人也有一篇关于主题模型评估的论文:主题模型的评估方法
drevicko 2012年

1
别担心。我已经在MALLET主题建模工具箱中找到了Wallach从左到右方法的一些代码,如果您乐于使用他们的LDA实现,那是一个轻松的胜利,尽管在集合上运行它似乎并不容易从LDA的其他变体中学习到的其他主题,这就是我想要做的。我最终使用他们提供的matlab代码作为参考,从他们的论文中实现了Chib风格的估算器,尽管这样做必须解决一些问题,如果您需要该代码,请告诉我。
马特

嗨@Matt,能否将我的matlab代码交给我,以评估LDA?谢谢
波斯公主,

@princessofpersia我认为作者解决了我提到的与matlab代码有关的问题,请参见此处:homepages.inf.ed.ac.uk/imurray2/pub/09etm
Matt

0

我们知道LDA的参数是通过变分推断来估计的。所以

logp(w|α,β)=E[logp(θ,z,w|α,β)]E[logq(θ,z)]+D(q(θ,z)||p(θ,z))

D(q(θ,z)||p(θ,z))=0logp(w|α,β)=E[logp(θ,z,w|α,β)]E[logq(θ,z)],这就是可能性。

logp(w|α,β)


1
我认为可以改善答案,以更具体地说明如何实际计算测试集的困惑度。
Momo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.