Вывод динамической тематической модели - формат Blei

Я работаю с пакетом Dynamic Topic Models, разработанным Blei. Я новичок в LDA, однако я это понимаю.

Я хотел бы знать, что хранит вывод по имени lda-seq/topic-000-var-obs.dat?

Я знаю, что lda-seq/topic-001-var-e-log-prob.dat хранит журнал вариационного апостериорного анализа, и, применяя к нему экспоненту, я получаю вероятность слова в теме 001.

Спасибо


person user2217543    schedule 27.03.2013    source источник


Ответы (2)


Topic-000-var-e-log-prob.dat хранит журнал вариационной апостериорной темы 1.

Topic-001-var-e-log-prob.dat хранит журнал вариационной апостериорной темы 2.

person user3032969    schedule 25.11.2013

Конкретного ответа нигде не нашел. Однако, поскольку в документации sample.sh указано

The code creates at least the following files:
- topic-???-var-e-log-prob.dat: the e-betas (word distributions) for topic ??? for all times.  
...
- gam.dat

без упоминания файла topic-000-var-obs.dat предполагает, что это не является обязательным для большинства анализов.

Спекуляция

obs предложить наблюдения. Немного покопавшись в результатах example/model_run, я построил сумму по эпохам для каждого слова/токена, используя:

temp = scan("dtm/example/model_run/lda-seq/topic-000-var-obs.dat")
temp.matrix = matrix(temp, ncol = 10, byrow = TRUE) 
plot(rowSums(temp.matrix))

и результат примерно такой:

суммы строк

Общая тенденция неотрицательных значений уменьшается, и многие значения достигают нижнего предела (в данном случае до -11.00972 = log(1.67e-05)). Это позволяет предположить, что эти значения являются весовыми коэффициентами или какой-либо другой мерой влияния на модель. Модель удаляет некоторые токены, а влияние/важность других уменьшается по индексу. Более поздняя тенденция может быть вызвана предварительной обработкой, такой как сортировка токенов по tf-idf при создании словаря.

Интересно, что значения суммы строк различаются как для токенов с минимальным значением, так и для набора с более положительными значениями:

другой пример

temp = scan("~/Documents/Python/inference/project/dtm/example/model_run/lda-seq/topic-009-var-obs.dat")
temp.matrix = matrix(temp, ncol = 10, byrow = TRUE) 
plot(rowSums(temp.matrix))
person vincentmajor    schedule 16.02.2017