LDA主题建模 - 培训和测试

时间:2012-06-22 18:52:20

标签: lda topic-modeling

我读过LDA,并且我理解在输入文档集合时如何生成主题的数学。

参考文献说LDA是一种算法,在给定文档集合的情况下(不需要监督),可以发现该集合中文档表达的“主题”。因此,通过使用LDA算法和Gibbs采样器(或变分贝叶斯),我可以输入一组文档,作为输出,我可以得到主题。每个主题都是一组具有指定概率的术语。

我不明白的是,如果上述情况属实,那么为什么许多主题建模教程谈论将数据集分成训练和测试集?

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

2 个答案:

答案 0 :(得分:36)

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

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

  1. 检查主题:查看每个主题中可能性最高的单词。他们听起来像是一个有凝聚力的“主题”,还是只是一些随意的词组?
  2. 检查主题分配:从培训中提取一些随机文档,并查看LDA为其分配的主题。手动检查分配的主题中的文档和顶部单词。看起来主题真的描述了文档实际上在说什么吗?
  3. 我意识到这个过程并不像人们想象的那么好和量化,但说实话,主题模型的应用也很少量化。我建议根据您应用的问题评估您的主题模型。

    祝你好运!

答案 1 :(得分:0)

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

  1. 由于在训练数据中“白宫”关系似乎很少,因此在测试数据中可能根本不会发生。如果是这样,评估将显示您的模型在多大程度上依赖于虚假关系,与更一般的虚假关系相比,这实际上可能没有用。
  2. “白宫”出现在测试数据中,例如,“白宫”发生在“美国政治”中,一次出现在有关建筑的文档中。然后,仅表示“美国政治”的假设就太强了,绩效指标将变得更糟,这表明您的模型过于拟合。