使用潜在狄利克雷分配的输入参数

机器算法验证 机器学习 贝叶斯 聚类 文本挖掘 狄利克雷分布
2022-02-12 21:49:00

使用主题建模(Latent Dirichlet Allocation)时,主题的数量是用户需要指定的输入参数。

在我看来,我们还应该提供 Dirichlet 过程必须对其进行采样的候选主题集的集合?我的理解正确吗?在实践中,如何设置这种候选主题集?

1个回答

据我所知,您只需要提供一些主题和语料库。无需指定候选主题集,尽管可以使用一个,如您在Grun 和 Hornik (2011)第 15 页底部开始的示例中所见。

14 年 1 月 28 日更新。我现在做的事情与下面的方法有点不同。请参阅此处了解我目前的方法:https ://stackoverflow.com/a/21394092/1036500

在没有训练数据的情况下找到最佳主题数量的一种相对简单的方法是在给定数据的情况下,通过具有不同主题数量的模型循环查找具有最大对数似然的主题数量。考虑这个例子R

# download and install one of the two R packages for LDA, see a discussion
# of them here: http://stats.stackexchange.com/questions/24441
#
install.packages("topicmodels")
library(topicmodels)
#
# get some of the example data that's bundled with the package
#
data("AssociatedPress", package = "topicmodels")

在直接生成主题模型和分析输出之前,我们需要确定模型应该使用的主题数量。这是一个循环不同主题编号的函数,获取每个主题编号的模型的对数似然性并将其绘制出来,以便我们选择最好的。最好的主题数量是具有最高对数似然值的主题,以获取内置到包中的示例数据。在这里,我选择评估从 2 个主题到 100 个主题的每个模型(这将需要一些时间!)。

best.model <- lapply(seq(2,100, by=1), function(k){LDA(AssociatedPress[21:30,], k)})

现在我们可以提取生成的每个模型的对数似然值并准备绘制它:

best.model.logLik <- as.data.frame(as.matrix(lapply(best.model, logLik)))

best.model.logLik.df <- data.frame(topics=c(2:100), LL=as.numeric(as.matrix(best.model.logLik)))

现在做一个图,看看在多少个主题上出现最高对数似然:

library(ggplot2)
ggplot(best.model.logLik.df, aes(x=topics, y=LL)) + 
  xlab("Number of topics") + ylab("Log likelihood of the model") + 
  geom_line() + 
  theme_bw()  + 
  opts(axis.title.x = theme_text(vjust = -0.25, size = 14)) + 
  opts(axis.title.y = theme_text(size = 14, angle=90))

在此处输入图像描述

看起来它在 10 到 20 个主题之间。我们可以检查数据以找到具有最高对数可能性的主题的确切数量,如下所示:

best.model.logLik.df[which.max(best.model.logLik.df$LL),]
# which returns
       topics        LL
12     13           -8525.234

所以结果是 13 个主题最适合这些数据。现在我们可以继续创建包含 13 个主题的 LDA 模型并研究该模型:

lda_AP <- LDA(AssociatedPress[21:30,], 13)   # generate the model with 13 topics 
get_terms(lda_AP, 5)                         # gets 5 keywords for each topic, just for a quick look
get_topics(lda_AP, 5)                        # gets 5 topic numbers per document

依此类推,确定模型的属性。

这种方法基于:

Griffiths、TL 和 M. Steyvers 2004。寻找科学主题。美国国家科学院院刊101(增刊 1):5228 –5235。