41

我已经阅读了 LDA,并且我了解当一个人输入一组文档时如何生成主题的数学原理。

参考资料说,LDA 是一种算法,给定一组文档,仅此而已(无需监督),可以发现该集合中文档表达的“主题”。因此,通过使用 LDA 算法和吉布斯采样器(或变分贝叶斯),我可以输入一组文档,作为输出,我可以获得主题。每个主题都是一组具有指定概率的术语。

我不明白的是,如果以上是真的,那为什么很多主题建模教程都在谈论将数据集分为训练集和测试集呢?

谁能解释一下 LDA 如何用于训练模型的步骤(基本概念),然后可以用来分析另一个测试数据集?

4

2 回答 2

40

将数据拆分为训练集和测试集是评估学习算法性能的常见步骤。对于监督学习来说,它更加明确,您在训练集上训练模型,然后查看它在测试集上的分类与真实类标签的匹配程度。对于无监督学习,这样的评估有点棘手。在主题建模的情况下,性能的常见衡量标准是困惑度。您在训练集上训练模型(如 LDA),然后您会看到模型在测试集上的“困惑”程度。更具体地说,您测量测试文档的字数如何由主题所代表的字分布表示。

困惑度有利于模型或参数设置之间的相对比较,但它的数值并没有多大意义。我更喜欢使用以下有点手动的评估过程来评估主题模型:

  1. 检查主题:查看每个主题中可能性最高的单词。它们听起来像是形成了一个有凝聚力的“主题”还是只是一些随机的词组?
  2. 检查主题分配:从训练中拿出一些随机文档,看看 LDA 分配给他们的主题。手动检查指定主题中的文档和最热门的单词。看起来主题是否真的描述了文档实际上在谈论什么?

我意识到这个过程并不像人们想象的那么好和量化,但老实说,主题模型的应用也很少是量化的。我建议根据您应用的问题评估您的主题模型。

祝你好运!

于 2012-06-25T22:51:01.733 回答
0

使用训练数据进行评估可能会受到过度拟合的一般规则也适用于像 LDA 这样的无监督学习——尽管它并不那么明显。LDA 优化了一些目标,即。生成概率,在训练数据上。可能在训练数据中,两个词表示一个主题,比如美国政治的“白宫”。假设这两个词只出现一次(在训练数据中)。然后,如果您对训练数据进行评估,那么任何完全依赖于它们仅指示政治而没有其他任何东西的假设的算法都会做得很好。但是,如果还有其他主题,例如“架构”,那么您可能会质疑,这是否真的是正确的学习内容。拥有一个测试数据集可以在一定程度上解决这个问题:

  1. 由于“白宫”关系在训练数据中似乎很少见,因此在测试数据中可能根本不会出现。如果是这样,评估会显示您的模型在多大程度上依赖于虚假关系,与更一般的关系相比,这些虚假关系实际上可能没有帮助。
  2. “白宫”出现在测试数据中,比如“美国政治”出现一次,建筑文档中出现一次。那么它只表明“美国政治”的假设太强了,性能指标会更差,表明你的模型过度拟合。
于 2020-08-24T08:23:14.117 回答