我正在使用Spark的LDA实现,如示例代码here所示。我想为我的培训数据获得一致的主题/主题分布。我在两台机器上进行培训,并希望输出相同。
我知道LDA使用随机组件进行训练/推理,在SO post中对其进行了解释。看起来通过手动设置种子值可以在python gensim中实现一致的结果。我已经在Spark中尝试了这个,但我的输出主题分布仍然略有不同。
ldaParams: LDA = new LDA().setK(10).setMaxIterations(60).setSeed(10L)
val distributedLDAModel: DistributedLDAModel = ldaParams.run(corpusInfo.docTermVectors).asInstanceOf[DistributedLDAModel]
val topicDistributions: Map[Long,Vector] = distributedLDAModel.topicDistributions.collect.toMap //produces different results on each run
有没有办法可以为我的训练数据集获得一致的主题分布?