我试图理解为什么Latent Dirichlet Allocation(LDA)在像Twitter这样的短文本环境中表现不佳。我已经阅读了论文“短文本的主题模型”,但是,我仍然不理解“单词共现的稀疏性”。
从我的观点来看,LDA的生成部分对于任何类型的文本都是合理的,但是在短文本中导致不良结果的是抽样程序。我猜测LDA样本是基于两个部分的单词主题:(1)同一doc中其他单词的主题(2)该单词的其他出现的主题分配。由于短文本的(1)部分无法反映它的真实分布,因此导致每个单词的主题分配不佳。
如果您发现了这个问题,请随时发表您的想法,并帮助我理解这一点。
答案 0 :(得分:20)
LDA等概率模型利用统计推断来发现潜在的数据模式。简而言之,他们从观察中推断模型参数。例如,有一个黑盒子包含许多不同颜色的球。你从盒子里拿出一些球,然后推断出球的颜色分布。这是统计推断的典型过程。统计推断的准确性取决于您的观察数量。
现在考虑LDA对短文本的问题。 LDA将文档建模为主题的混合,然后每个单词都来自其主题之一。你可以想象一个黑盒子包含从这种模型生成的大量单词。现在你已经看到了一个只有几个单词的简短文档。观察结果显然太少,无法推断出参数。这是我们提到的数据稀疏性问题。
实际上,除了缺乏观察之外,问题还来自模型的过度复杂性。通常,更灵活的模型需要更多的观察来推断。 Biterm Topic Model尝试通过降低模型复杂性来简化主题推理。首先,它将整个语料库建模为主题的混合。由于在语料库中推断主题混合比在短文档上推断主题混合更容易。其次,它假设每个biterm都来自一个主题。推断biterm的主题也比在LDA中推断单个单词的主题更容易,因为添加了更多的上下文。
我希望这个解释对你有意义。谢谢你提到我们的论文。
答案 1 :(得分:6)
进行一些挖掘,Hong and Davison (2010)出现了一个很好的例子,说明这些在推文分类方面效果不佳。不幸的是,他们并没有真正深入了解它为什么不起作用。
我怀疑LDA对短文件的效果不佳有两个原因。
首先,在处理较小的文档时,额外的主题图层不会对分类添加任何内容,并且不会有什么帮助可能会受到伤害。如果你有很短的文档,比如推文,那么将文档分解为主题真的很难。毕竟,除了推文中的一个主题之外,没有多少空间可供选择。由于主题层不能对分类做出很大贡献,因此在系统中出现错误的空间。
其次,在语言学上,Twitter用户更喜欢剥离不必要的绒毛"发推时。在处理完整文档时,有一些特征 - 词,单词搭配等 - 可能是特定的,常见的,并且经常在一个类型中重复。但是,在发推文时,这些常见元素会首先被删除,因为当删除绒毛时,仍然会有什么有趣的,新的和更多的困惑。
例如,让我们看一下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的。如果你正在解析这些网址,那么你就可以了 - 而且.py也会给你。然而,在一个更具表现力的媒体中,我可能已经说出了#34; Python"在某个地方。第二个也是编程相关,但在业务端更多。不过,它甚至没有提到任何特定于编程的内容。最后一个也是编程相关的,但更多的是与编程艺术联系在一起,表达了一种双重绑定程序员在编码时所面临的问题。它与第二个一样困难,特征明智。
在最后两个例子中,如果我没有写过微博帖子,那么会立即跟进那些对分类器非常有用的示例,或者自己包含更多数据。然而,Twitter并没有空间容纳这种东西,并且推特所属的类型的内容被剥离了。
所以,最后,我们有两个问题。长度是LDA的一个问题,因为主题增加了额外的,不必要的自由度,并且推文是任何分类器的问题,因为作者通常会有选择地删除通常用于分类的特征。