Я использую реализацию LDA Spark, как показано в примере кода здесь. Я хочу получить согласованные темы/распределения тем для моих обучающих данных. Я тренируюсь на двух машинах и хочу, чтобы результат был одинаковым.
Я понимаю, что LDA использует случайный компонент для обучения/вывода, это объясняется в этом on-the-same-corpus/15069580#15069580">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
Есть ли способ получить последовательное распределение тем для моего обучающего набора данных?