gpt4 book ai didi

scala - 报告 spark LDA 模型的对数似然/困惑度(本地模型与分布式模型不同?)

转载 作者:行者123 更新时间:2023-12-02 00:56:58 28 4
gpt4 key购买 nike

给定训练语料库 docsWithFeatures,我在 Spark 中训练了一个 LDA 模型(通过 Scala API),如下所示:

import org.apache.spark.mllib.clustering.{LDA, DistributedLDAModel, LocalLDAModel}
val n_topics = 10;
val lda = new LDA().setK(n_topics).setMaxIterations(20)
val ldaModel = lda.run(docsWithFeatures)

val distLDAModel = ldaModel.asInstanceOf[DistributedLDAModel]

现在我想报告模型的对数似然和困惑度。

我可以这样得到对数似然:

scala> distLDAModel.logLikelihood
res11: Double = -2600097.2875547716

但这就是事情变得奇怪的地方。我还想要 perplexity,它只针对本地模型实现,所以我运行:

val localModel  = distLDAModel.toLocal

这让我得到了这样的(日志)困惑:

scala> localModel.logPerplexity(docsWithFeatures)
res14: Double = 0.36729132682898674

但是本地模型也支持对数似然计算,我是这样运行的:

scala> localModel.logLikelihood(docsWithFeatures)
res15: Double = -3672913.268234148

那么这里发生了什么?两个对数似然值不应该相同吗?分布式模型的文档说

“logLikelihood:在给定推断主题和文档主题分布的情况下,记录训练语料库的可能性”

对于本地模型,它说:

“logLikelihood(documents):在给定推断主题的情况下计算所提供文档的下限。”

我猜这些是不同的,但我不清楚如何或为什么。我应该使用哪一个?也就是说,在给定训练文档的情况下,哪个是模型的“真实”可能性?

总而言之,有两个主要问题:

1 - 这两个对数似然值有何不同以及为什么不同,我应该使用哪个?

2 - 在报告困惑时,我认为我应该使用 logPerplexity 结果 的指数是否正确? (但为什么模型给出的是对数困惑而不是简单的困惑?我是不是漏掉了什么?)

最佳答案

1) 这两个对数似然值不同,因为它们计算两个不同模型的对数似然。 DistributedLDAModel 正在有效地计算对数似然 w.r.t.一个模型,其中主题的参数和每个文档的混合权重是常量(正如我在另一篇文章中提到的,DistributedLDAModel 本质上是正则化 PLSI,尽管您需要使用 logPrior 也考虑了正则化),而 LocalLDAModel 认为每个文档的主题参数和混合权重都是随机变量。因此,在 LocalLDAModel 的情况下,您必须整合(边缘化)主题参数和文档混合权重,以便计算对数似然(这就是变分近似/下限必要的原因,尽管即使没有近似值,对数似然也不相同,因为模型只是不同。)

至于你应该使用哪一个,我的建议(不知道你最终想做什么)是使用附加到你最初训练的类的对数似然法(即 DistributedLDAModel。)作为旁注,我可以看到通过 toLocalDistributedLDAModel 转换为 LocalLDAModel 的主要(唯一?)原因是为一组新的(训练外的)文档启用主题混合权重的计算(有关更多信息,请参阅我在该线程上的帖子:Spark MLlib LDA, how to infer the topics distribution of a new unseen document?),该操作不是(但可能是) DistributedLDAModel 支持。

2) log-perplexity 只是负对数似然除以语料库中的标记数。如果将 log-perplexity 除以 math.log(2.0),则结果值也可以解释为编码语料库(作为词袋)所需的每个标记的近似位数给定模型。

关于scala - 报告 spark LDA 模型的对数似然/困惑度(本地模型与分布式模型不同?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33725122/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com