代码之家  ›  专栏  ›  技术社区  ›  Ben

LDA:为什么要对新文档进行推理抽样?

  •  2
  • Ben  · 技术社区  · 9 年前

    给定一个标准的LDA模型,只有1000个主题和几百万个文档,使用Mallet/collapsed Gibbs采样器进行训练:

    当推断一个新文档时:为什么不跳过采样,简单地使用模型的术语主题计数来确定新文档的主题分配?我理解,对新文档应用吉布斯抽样是考虑到新文档的主题混合,这反过来影响了主题的组成方式(beta,term-freq分布)。然而,由于在推断新文档时主题是固定的,我不明白为什么这应该是相关的。

    抽样的一个问题是概率性——有时会记录推断出的主题分配,重复调用时会有很大差异。因此,我想了解采样与仅使用确定性方法相比的理论和实际价值。

    谢谢Ben

    2 回复  |  直到 9 年前
        1
  •  3
  •   drevicko    8 年前

    仅仅使用最后一个吉布斯样本的术语主题计数不是一个好主意。这样的方法没有考虑主题结构:如果一个文档有来自一个主题的多个单词,那么很可能会有来自该主题的更多单词[1]。

    例如,假设两个单词在两个主题中的概率相等。给定文档中第一个单词的主题分配会影响另一个单词的话题概率:另一个词更可能与第一个词处于同一主题中。这种关系也以另一种方式运作。这种情况的复杂性就是为什么我们使用吉布斯采样这样的方法来估计这类问题的值。

    至于你对主题作业的评论不尽相同,这是无济于事的,可以看作是一件好事:如果一个单词的主题作业不一样,你就不能依赖它。您所看到的是,该词的主题后验分布没有明确的胜利者,因此您应该谨慎对待特定的任务:)

    [1] 假设beta是文档主题分发的先行者,它鼓励了主题模型通常选择的稀疏性。

        2
  •  3
  •   David Mimno    8 年前

    真正的问题是计算复杂性。如果一个文档中的N个标记中的每一个都可以有K个可能的主题,那么就有K到N个可能的话题配置。有了两个主题和一个答案大小的文件,你就有了比宇宙中原子数量更多的可能性。

    然而,从这个搜索空间中进行采样是非常有效的,并且如果你平均连续三到五次吉布斯扫描,通常会得到一致的结果。你要做一些计算上不可能的事情,而这会给你带来一些不确定性。

    如前所述,您 可以 通过设置一个固定的随机种子来获得“确定性”结果,但这实际上并不能解决任何问题。