LDA 对短文本的缺点是什么?

What's the disadvantage of LDA for short texts?

我想了解为什么 Latent Dirichlet Allocation (LDA) 在像 Twitter 这样的短文本环境中表现不佳。我已经阅读了论文'A biterm topic model for short text',但是,我仍然不明白"the sparsity of word co-occurrences"。

在我看来,LDA 的生成部分对于任何类型的文本都是合理的,但导致短文本结果不好的是采样过程。我猜 LDA 基于两部分对一个词的主题进行采样:(1)同一文档中其他词的主题(2)该词其他出现的主题分配。由于短文本的(1)部分不能反映它的真实分布,导致每个词的主题分配不佳。

如果您找到了这个问题,请随时post您的想法并帮助我理解这一点。

进行一些挖掘后,Hong and Davison (2010) 是一个很好的例子,说明这些在推文分类方面效果不佳。不幸的是,他们并没有真正深入了解为什么它不起作用。

我怀疑 LDA 不能很好地处理短文档有两个原因。

首先,在处理较小的文档时,额外的主题层不会为分类添加任何内容,而且无济于事可能会造成伤害。如果你有非常短的文档,比如推文,就很难将文档分解成主题。毕竟,推文中除了一个主题之外没有太多空间。由于主题层对分类贡献不大,因此它为系统中出现错误留出了空间。

其次,从语言上讲,Twitter 用户在发推文时更喜欢脱掉 "unnecessary fluff"。在处理完整文档时,有些特征——单词、单词搭配等——可能是特定的、常见的,并且经常在一个类型中重复。但是,在发推文时,这些常见元素首先被丢弃,因为有趣的、新的和更令人困惑的是当绒毛被去除后剩下的东西。

例如,让我们看看my own tweets,因为我相信无耻的自我推销:

Progressbar.py is a fun little package, though I don't get 
a chance to use it too often. it even does ETAs for you 
https://pypi.python.org/pypi/progressbar …

From a capitalist perspective, the social sciences exist so 
idiot engineers don't waste money on building **** no one needs.

Abstract enough to be reusable, specific enough to be useful.

第一个是关于Python。如果您正在解析 URL,您将得到它——并且 .py 也会将它提供给您。然而,在更具表现力的媒介中,我可能会把 "Python" 这个词放在某个地方。第二个也是与编程相关的,但更多的是在业务端。不过,它一次也没有提到任何特定于编程的内容。最后一个也是与编程相关的,但更多地与编程艺术联系在一起,表达了程序员在编码时面临的一种双重束缚。它和第二个一样困难,功能方面。

在最后两个例子中,如果我没有写微博 post,这些例子会立即跟进对分类器非常有用的例子,或者它们本身包含更多数据.但是,Twitter 没有空间容纳此类内容,并且删除了代表推文所属类型的内容。

所以,最后,我们有两个问题。长度是 LDA 的问题,因为主题增加了额外的、不必要的自由度,而推文是任何分类器的问题,因为作者有选择地删除了通常在分类中有用的特征。

LDA 等概率模型利用统计推断来发现数据的潜在模式。简而言之,他们从观察中推断出模型参数。例如,有一个黑盒子,里面装着许多不同颜色的球。你从盒子里抽出一些球,然后推断出球的颜色分布。这是一个典型的统计推断过程。统计推断的准确性取决于您观察的次数。

现在考虑 LDA 在短文本上的问题。 LDA 将文档建模为主题的混合体,然后每个词都来自其主题之一。你可以想象一个黑盒子包含大量从这样的模型生成的单词。现在你已经看到了一个只有几个词的简短文档。观察结果显然太少而无法推断参数。就是我们提到的数据稀疏性问题。

其实,除了缺乏观察之外,问题还在于模型过于复杂。通常,更灵活的模型需要更多的观察来推断。 Biterm Topic Model 试图通过降低模型的复杂性来简化主题推理。首先,它将整个语料库建模为主题的混合体。因为在语料库中推断主题混合比在短文档中推断主题混合更容易。其次,它假设每个双项都来自一个主题。推断双项的主题也比推断 LDA 中单个词的主题更容易,因为添加了更多上下文。

希望我的解释对您有意义。感谢您提及我们的论文。