Hi Radim,
I seem to have emailed you privately, so I'll post my question in this thread as well, sorry for the inconvenience. I've been working with the lda model myself and came across this thread and the two threads Satarupa mentioned in this first post. There is still something I don't quite understand though.
If I understand you correctly, the lda.expElogbeta gives the posterior distribution. That is, it gives the topic-word distribution for each topic: p(word|topic). The lda.state.get_lambda() has the same dimensions and also gives weights, but needs to be normalized in order to get the topic-word distributions for each topic. In order to compare the two methods I computed rowsums of the lda.expElogbeta matrix and the normalized lda.state.get_lambda() matrix. I assumed they were the same, but the rowsums of the lda.state.get_lambda() matrix are all exactly 1 (as expected), whereas the rowsums of the lda.expElogbeta are all around 0,99. Could you explain what the difference between the methods is? Initially I thought they were the same, which made me wonder why you'd recommend Satarupa to use lda.state.get_lambda() and normalize instead of the lda.expElogbeta method (which would be a lot quicker) to get the topic-word distributions.
Many thanks in advance for the clarification!
Myrthe