主题建模(LDA)中的可复制性/再现性

数据挖掘 主题模型 低密度脂蛋白
2022-02-27 13:22:22

如果我没记错的话,主题建模 (LDA) 是不可复制的,即它在不同的运行中给出不同的结果。这是从哪里来的(这种随机性从何而来,为什么有必要?)以及可以做些什么来解决这个问题或在运行中获得更多的稳定性?
谢谢您的帮助。

3个回答

LDA 是贝叶斯模型。这意味着所需的结果是感兴趣的随机向量上的后验概率分布(主题的概率等,已经看到了一些数据)。

许多贝叶斯模型的推理是由马尔可夫链蒙特卡罗完成的。事实上,LDA 上的wiki表明 Gibbs 采样是一种流行的 LDA 推理技术。MCMC 抽取随机样本以提供后验分布的近似值。

变分推理方法通常应该是确定性的,但我对这个特定模型的VB 推理不太熟悉。

此外,通常可以通过设置随机数生成种子(如果您的目的是科学的)来复制随机算法的运行。

在任何一种情况下,如果贝叶斯模型的结果显示感兴趣的参数存在巨大的可变性,它可能会告诉您该模型不适合数据集,或者数据集对于您要拟合的模型来说不够大.

编辑:我不知道您的软件后端正在使用哪种推理方法(Gibbs、VB 等),因此无法确定正在进行的随机化类型(如果有)。

出于科学目的,您可能需要阅读更多有关贝叶斯推理的内容。标准软件(例如 scikits.learn 中的 LDA)将为您提供推理输出的摘要(例如,大多数编码人员只希望将最佳文档分配给主题)。幕后还有更多信息,您可能可以访问这些信息,并且可能很有用。

例如(大致)对于 Gibbs 采样方法的科学应用,我们通常会运行多个链,删除每个链生成的前 N ​​个样本,并检查生成的样本是否看起来像是来自同一分布。如果您担心对种子等的依赖,并且您的后端是 Gibbs 采样器,您将需要查看此模型的 MCMC 收敛诊断。

使用 mallet 时,可以使用命令行标志修复随机种子--random-seed这使您的结果具有可重复性。

它没有也不能消除这样一个事实,即不同的随机种子产生不同的主题模型。

在我看来,关于 Gibbs Sampling 的答案具有误导性。

原因是 Gibbs Sampling由于重采样而导致一些错误。所有使用 MCMC 技术的贝叶斯方法都面临这个问题,这真的不是什么大问题,因为在标准条件下,您可以限制 MCMC 错误。

但这不是那些标准条件之一,因为潜在狄利克雷分配导致多模态后验!因此,标准采样方法通常会找到单一模式并围绕该单一模式进行采样。采样技术很可能会遗漏其他模式,这些模式实际上可能比发现的模式具有更高的后验概率。通常,在这些类型的问题中,从不同的初始参数开始运行多个开始并比较解决方案。还有更高级的采样器也试图解决这个问题,例如偶尔尝试远离当前模式进行采样以希望达到另一种模式的采样器。奇怪的是,如果你找到一种模式,它可能是一个很好的解决方案,即使不是最优的,但这肯定是没有保障的!

关于使结果可复制,如果你想得到相同的解决方案,你必须从同一个地方开始,使用相同的随机种子。