首页 > 解决方案 > Gibbs 采样迭代次数如何影响潜在 Dirichlet 分配?

问题描述

MALLET的文档提到以下内容:

--num-iterations [NUMBER]

采样迭代的次数应该是完成采样所花费的时间和主题模型的质量之间的权衡。

MALLET 还提供了一个示例

// Run the model for 50 iterations and stop (this is for testing only, 
//  for real applications, use 1000 to 2000 iterations)
model.setNumIterations(50);

很明显,太少的迭代会导致糟糕的主题模型。

然而,增加 Gibbs 采样迭代的数量是否必然有益于主题模型的质量(通过困惑度、主题连贯性或下游任务来衡量)?或者模型质量是否会随着--num-iterations设置的太高而降低?

在个人项目中,平均超过 10 倍的交叉验证将迭代次数从 100 增加到 1000 不会影响下游任务的平均准确度(测量为平均倒数等级)。然而,在交叉验证拆分中,性能发生了显着变化,尽管随机种子是固定的并且所有其他参数保持不变。我缺少关于吉布斯抽样的哪一部分背景知识来解释这种行为?

我在没有超参数优化和 MALLET 提供的并行 LDA 实现的情况下对 alpha 和 beta 使用对称先验。

标签: ldahyperparametersmallet

解决方案


1000 次迭代设置被设计为对于大多数集合大小来说是一个安全的数字,并且还用于传达“这是一个很大的整数,所以不要认为它非常精确”。较小的数字可能会很好。我曾经运行一个模型进行 1000000 次迭代,并且完全有一半的令牌分配从未改变过 1000 次迭代模型。

您能否更具体地了解交叉验证结果?是不是不同的折叠有不同的 MRR,它们在迭代次数上是单独稳定的?或者单个折叠 MRR 因迭代次数而异,但它们在整体平均值上是平衡的?不同的折叠有不同的“难度”并不罕见。如果数据不同,修复随机种子也不会产生影响。


推荐阅读