上一期介绍了什么是Topic模型。基本上所有Topic模型都包含“潜在”这个词,因为它们挖掘的是隐藏的规律。在理解了Topic之后,我们将介绍LDA模型。本次介绍将跳过模型的数学部分。
上一期提到,Topic是文章背后的隐藏属性。然而,Topic模型并不是要揭示某段文字具体讨论的内容。LDA所做的工作是将“跑步机”、“椭圆机”等词汇归类到同一主题之下。换句话说,LDA所做的工作是聚类,即把词汇分群。那么,LDA是如何实现这一点的呢?
LDA(潜在狄利克雷分配)本质上是一个概率模型。它通过计算P(词|主题)和P(主题|文档)来完成词汇的分类。我们可以通过一个网络上的例子来说明这一点:
假设我们目前看到的是三个文档,每个文档包含两个主题:食物和宠物。
文档1主要围绕食物主题(主题A),文档2主要围绕宠物主题(主题B)。文档3在A、B主题中平均分布,除了有一个未分配的单词“Fish”。通过现有信息,我们可以确定文档3中的“Fish”应该归属于哪个主题。
首先,我们需要计算该词在不同主题中出现的概率:
接下来,我们需要计算该词所在文档的主题分布:
由于文档3的主题分布均匀,所以两个主题的概率都是0.5。
通过上述概率计算,我们可以将文档3中的“Fish”分配到主题A中。
接下来,算法会对文档中所有词汇重复这一过程,计算概率并分配主题。在多次迭代后,最终结果趋于稳定,这就是LDA的结果。
LDA模型实际上是一个概率分布模型。其关键步骤包括: - 计算每个词在所有文档中属于哪个主题。 - 计算每个词所在的文档属于哪个主题。
在初始步骤中,随机给所有词分配一个主题,然后计算上述两个概率。LDA模型的优势在于它可以处理多义词或相同词汇在不同语境下的问题。例如,一篇关于花卉的文章中的“化肥”可能与一篇关于农业的文章中的“化肥”归属于不同主题。LDA模型可以突出那些分布差异较大的词,例如示例中的“Eat”,显然应归于食物主题。
总之,LDA模型通过上述两个概率的循环计算,将所有文档中的所有词汇进行分类,并且在面对新文档时可以计算其主题分布。
实际上,理解LDA模型的概念并不困难。其通过两个主要的概率原则,将所有词汇分配到不同的主题中。该模型的一个重要问题是其是否能收敛,这需要大量的数学证明。因此,本系列不会涉及这个问题,而是侧重于实用性。
下一期将为大家带来一个LDA模型的实际应用案例。