如何使用潜在狄利克雷分配计算保留的困惑度?

机器算法验证 文本挖掘 主题模型
2022-02-13 03:39:16

在进行潜在狄利克雷分配(LDA)时,我对如何计算保持样本的困惑度感到困惑。关于该主题的论文轻而易举,让我觉得我错过了一些明显的东西......

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

困惑度可以通过以下公式给出:

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

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

这里 是文档的数量(大概是在测试样本中),表示文档 d 中的单词,N_d 是文档MwddNdd

我不清楚如何合理地计算,因为我们没有保留文档的主题混合。理想情况下,我们将对所有可能的主题混合的 Dirichlet 先验进行积分,并使用我们学到的主题多项式。然而,计算这个积分似乎不是一件容易的事。p(wd)

或者,我们可以尝试为每个保存的文档(给定我们学习的主题)学习最佳主题混合,并使用它来计算困惑度。这是可行的,但它并不像 Horter 等人和 Blei 等人的论文所暗示的那样微不足道,而且我还不清楚结果是否与上述理想情况等价。

2个回答

这确实是经常被掩盖的东西。

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

如建议的那样,要正确处理保留的文档,您确实需要“针对所有可能的主题混合先于 Dirichlet 进行集成”。http://people.cs.umass.edu/~wallach/talks/evaluation.pdf回顾了一些解决这个有点不愉快的整体的方法。事实上,我正要自己尝试实现它,祝你好运!

我们知道 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|α,β)近似于你从变分推理中得到的可能性。