1. 程式人生 > >R語言︱LDA主題模型——最優主題數選取(topicmodels)+LDAvis視覺化(lda+LDAvis)

R語言︱LDA主題模型——最優主題數選取(topicmodels)+LDAvis視覺化(lda+LDAvis)

這篇文章來自微軟研究院和哥倫比亞大學的學者共同完成。作者中的Chong Wang以及John Paisley都有長期從事Graphical Models以及Topic Models的研究工作。

這篇文章想要做的事情非常直觀,那就是想把在深度學習中非常有效的序列模型——RNN和在文件分析領域非常有效的Topic Models結合起來。這裡面的原因就是,RNN比較能夠抓住文件的“區域性資訊”(Local Structure),而Topic Models對於文件的“全域性資訊”(Global Structure)則更能有效把握。之前也有一些這樣的嘗試了,不過這篇文章提出了一種簡單直觀的模型。

首先,每一個文件有一個基於高斯分佈的Topic Vector。這一步就和傳統的latent Dirichlet allocation (LDA)有了區別,因為傳統上這個Vector常常是基於Dirichlet分佈。然後對於文件裡面的每一個字,都採用了類似RNN的產生構造方法。首先,要產生每個字的一個隱含狀態。這個隱含狀態的產生,都基於之前的一個字本身,以及前面一個字的隱含狀態。產生了隱含狀態以後,這篇文章這裡做了這麼一個假設,那就是有兩個型別的語言模型來控制文件裡具體字的產生。一種是一個類似Stop Word的語言模型(Language Model),一種是普通的Topical語言模型。那麼,在一個字的隱含狀態產生以後,作者們有設計了一個基於當前字的隱含狀態的伯努利分佈,來決定當前這個字,是不是Stop Word。如果這個字是Stop Word,那這個字就從Stop Word的語言模型產生,如果這個詞不是Stop Word,那就從Stop Word以及

Topical語言模型產生。也就是說,作者們認為,Stop Word的影響是肯定有的,但Topical的影響則不一定有。這就是這個TopicRNN模型的一個簡單描述。

文章採用了Variational Auto-encoder的方式來做Inference。這裡就不復述了。

值得注意的是,文章本身提出的模型可以適用不同的RNN,比如文章在試驗裡就展示了普通的RNN、LSTM以及GRU的實現以及他們的結果。總的來說,使用了TopicRNN的模型比單獨的RNN或者簡單使用LDA的結果作為Feature要好,而且GRU的實現要比其他RNN的型別要好。

目前沒有開原始碼,關注中!