主題模型(topic model)到底還有沒有用,該怎麼用?

一個推薦服務,本來是用LDA主題模型來發現用戶興趣的,最後發現粒度太粗,還沒有關鍵詞效果好...就想問現在的主題模型,它的應用場景在哪?是不是有比LDA更好的?和關鍵詞比,主題模型的優缺點在哪?


題主這個問題非常好!!!我在去年這個時候也在苦惱這個這個問題,感覺topic model基本靠吹,根本不work。。。可是通過這一年的學習,感覺我還是too young too naive~~~

1. 最前沿的Topic Model是大規模並行化

回答題主說的,粒度太粗,為什麼粒度會粗呢~一定是題主用了general的文本去train一個topic數量很少的topic model~~~ 就像你要我給世間所有東西分30個類別,那我只能把羊 牛都分成動物,但是呢題主的task要求分清的是山羊,綿羊,而topic model確只能分清動物。。。所以直接呵呵呵。。。那我們有什麼辦法解決呢~那就是並行化topic model~我的淺見是 topic model目前所有做模型變形去適應各個task的都不適合工業界,topic model最需要解決的問題是如何快速計算上千或者上萬topic時的gibbs sampling速度~~~用來解決題主所說的粗的問題。

還是用剛剛的例子,可以說關鍵詞抽取的問題是粒度太細,不能合併同類項,他能做的是他認識了身高1米體重200斤的是綿羊,你再給它個身高0.5米的就認不出了。而話題數少的topic model只能告訴你這是動物~所以我們需要用大規模語料去train一個topic上萬的東西,來分清綿羊~

我相信騰訊那個號稱世界上最大的LDA,一定做了並行化,且topic數量巨大,而且取得了比較好的效果

2. Topic Model最適合的變種是加入先驗信息

我相信題主使用的是完全無監督的Topic Model,然而這實在是過於不work~~~浪費了現實生活中那麼多的標註數據,有監督的模型一定比無監督的好~所以!可以試試Supervised Topic Model利用你在現實中已有的標註來提高模型準確度~比如利用知乎的tag來train個有監督Topic Model~~~一定會詞聚類效果好不少。

論文:

Mcauliffe, Jon D., and David M. Blei. "Supervised topic models." Advances in neural information processing systems. 2008.

Ramage, Daniel, et al. "Labeled LDA: A supervised topic model for credit attribution in multi-labeled corpora." Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing: Volume 1-Volume 1. Association for Computational Linguistics, 2009.

Lacoste-Julien, Simon, Fei Sha, and Michael I. Jordan. "DiscLDA: Discriminative learning for dimensionality reduction and classification."Advances in neural information processing systems. 2009.

開源的的有監督的LDA:

iir/llda.py at master · shuyo/iir · GitHub

chbrown/slda · GitHub

3. 短文本別用~~~

重要的事情說三遍,短文本別用=。=要用也要用twitter lda~~~~


謝邀。

據我所知大部分關於文檔的實際應用場景下,用topic modeling抽topic,然後添加到基於關鍵詞的系統上都只能看到微弱的效果提升。注意是添加到已有的關鍵詞系統中的相對提升。如果單獨用topic不用詞袋模型的話很可能比只用詞袋模型要差...

最新的topic model也不行...

長文本短文本都不行...

啊,兩三百年過去了,我們還在用詞袋模型來表示文章... what a shame!

長文本的representation有沒有新的突破, 最近的希望就是knowledge base和embedding了...


同意熊辰炎的回答 歡迎來到現實世界 在工業界 你可能需要重新評估你曾了解的各個演算法

如果你想要真正提高你的系統 短期內把把時間花在尋找更大的數據 理解問題以更好的做feature engineering 會比尋找fancy的演算法有效的多

很多又漂亮又有道理的演算法just don"t work

好吧 我突然覺得狼廠的簡單可依賴也蠻有道理的


哥哥們,我不知道為什麼這麼多人黑LDA。

除去沒有提供依據和證據的黑,總結一下我覺得要用好它的關鍵點,排名不分先後

1,文本要長,要長。不長要想辦法拼湊變長

2,語料要好,多下功夫去掉翔

3,規模要大。兩層意思,一是文檔數大,二是主題數多

。關注三個東西: plda+能支持中等規模; lightlda能支持大規模(本寶寶有點小貢獻,插播個廣告); warplda應該也可以,不過沒開源,實現應該不複雜。

4,應用場景要靠譜。直覺上講,分類等任務還是要有監督的,不太適合無監督的方法去辦。而類似基於內容的推薦應用,這種感覺的東西,LDA是靠譜的。

如果需要,願意交流更多,甚至分享一些成果


= = , 以下回答不一定正確, 請各位不要嘲笑, 我只是從我認為的方面回答。

1. 如果是漢語的話, 會不會是你切詞力度的問題, 切的太細或者切詞的準確率不夠。

2. 題主並沒有貼訓練數據大小, 是不是太小, 或者沒收斂, 這都是有可能的。

3. 最一般那個LDA, 有topic數上不去的問題, 題主不知道有沒有進行一下topic去重之類的工作, 如果有的話, 是不是可以選用一寫比如peacock裡面介紹的, 挖掘長尾用的主題模型。

4. 切完了詞之後,肉眼觀測一下數據是否能搞出來, 如果肉眼感覺都不行, 那就是不行, 不要特別相信模型的能力。

5. finally, 建議直接用規則搞一版, 然後針對薄弱點強行想點方法做一下。 LDA做輔助用, 畢竟先能用, 後提高是比較容易提升的。

At last, 簡單可依賴才是墜吼的!


恭喜你,如果隨便搞搞關鍵詞都能有好效果,系統提升幅度可期,升職加薪在招手啊。

正題:沒有不好用的模型,只有不適用的場景和不會調參洗數據的人。


實話實話,粒度都很粗,我畢業做的新浪微博的分類和發現,採用了各種方法優化主題模型,預分類,有監督的,無監督的,得出的結論是優化的再多不如好好弄弄語料實在,語料優質怎麼分怎麼有,語料就是一坨翔神仙也救不了你


我們目前在處理特徵的時候LDA配合傳統的LIWC linguistic features和一些整理出來的先驗語義特徵一起使用做一個結合,在實驗中取得的結果還是不錯的。有用沒用感覺更多的還是取決於解決什麼問題,數據集本身如何。確實很多情況下只用LDA的話顯得有些單薄了。


實際上可以通過主題模型更好地提取關鍵詞,相關論文直接Google 「TWE(topical word embedding)」

PS: (普通演算法 + 超強語料) &>&> (完美演算法 + 低質語料)


如何做topic去重呢?我最近做新浪微博的聚類,發現裡面有重複topic。比如Topic26 天秤 天蠍 獅子 金牛 巨蟹 水瓶 雙子 射手 處女 白羊;Topic29 星座 金牛座 處女座 巨蟹座 獅子座 雙子座 射手座 雙魚座 水瓶座 天蠍座


一些專業領域,如醫學,漢語分詞都是g點,還只能基於字。精度只能呵呵


用lda做推薦的時候,也就比隨機推薦auc高0.1(估計是能力有限)....不過用來做文本分類的時候效果還不錯,


這本書去看看,上面寫了一些不錯的應用:LDA演算法漫遊指南


推薦閱讀:

bp演算法中為什麼會產生梯度消失?
一個沒有基礎的工科研究生如何學習神經網路?
word2vec 相比之前的 Word Embedding 方法好在什麼地方?
在使用relu的網路中,是否還存在梯度消失的問題?
關於語音識別特徵提取該如何入門?

TAG:人工智慧 | 機器學習 | 自然語言處理 | 主題模型 |