topic model
的介紹性文章已經很多,在此僅做粗略介紹,本文假設讀者已經較為熟悉
topic medel。
topic model
(lda)認為乙個離散資料集合(如文件集合,集合,為行文方便,本文統統以文件集合作為描述物件,其他的資料集合只需換掉對應的術語即可)是由隱含在資料集合背後的
topic set
生成的,這個
set中的每乙個
topic
都是詞的概率分布。對於文件中的每一篇文件,先抽取乙個
topics proportion \theta
;然後對於這個文件中的每乙個詞的位置
w_i, lda
先從\theta
中選擇乙個
topic
,然後再從這個
topic
對應的詞分布中選擇乙個詞去填充;按照上述步驟直到整個文件集合產生完畢。
上述是lda生成乙個文件集合過程的簡要介紹,下面我會把目前出現的
topic models
進行分門別類。
我認為topic models
主要可以分為四大類:
1)無監督的、無層次結構的
topic model;2
)無監督的、層次結構的
topic model;3
)有監督的、無層次結構的
topic model;4
)有監督的、層次結構的
topic model。
對於1)主要有:
plsa, lda, correlated topic model, pam
,concept topic model等
對於2)主要有:
hlda
,hdp
,hpam等
對於3)主要有:
s-lda, disc-lda, mm-lda, author-model,
labeled lda,
plda等等
對於4)主要有:
hllda, hslda
以上模型對應的文章名字,用
直接搜尋即可得到,這裡就不列出。
很多人都在或者想使用已有的
topic model
,當然最理想的應該是我們自己設計適合我們問題的
topic model
來解決問題。
然而這是很難的乙個問題,一方面我們需要較為合理地設計適合問題的模型;另外一方面還需要較為強的數學基礎去為自己的模型做相關的數學推導,如引數學習和推理。
在這裡,就我自己的經驗,總結了一下topic model
設計中的一些設計原則:
a.在
topic model
的設計中,非常關鍵的一點是怎麼看待topic,下面是一些總結:
1).把topic
看為乙個詞的分布,這是最基本的;如
lda等模型
2).不僅把topic
看做是乙個詞的分布,而且
topic
還可以是一堆
topic
的分布,即建立了
topic
之間的層次關係;如
hpam
模型等
3).把
topic
對應於標籤,即乙個
topic
有對應的乙個標籤,這樣就可以建立有監督的
topic model
;如labeled lda
模型等
b.另外,在
topic model
中建立有監督模型的方法大概有兩類:一類是生成式的;一類是判別式的
對第一類,主要是把標籤看為了乙個
topic
,從而建立乙個概率模型,用資料去訓練得到引數,然後去應用;如
labeled lda, hllda等
對第二類,主要是先應用
topic model
的方法建模相應的變數,然後認為標籤和這些變數存在某種關係,如回歸關係(s-
lda)或者正態分佈等;例如
hslda
等模型
c.
如何建立層次關係
目前主要有這樣幾種方法:
1).用hierarchical dirichlet process
去建立層次關係,比較有名的模型,如
hdp,
hlda等;
2).
人工指定存在某種層次關係,然後去刻劃之間的關係,如
hpam
/pam
模型;
3).
在有監督的模型,這種層次關係已經存在(例如標籤是乙個層次結構),一種處理方法是認為這些標籤都是
topic
,然後用概率模型去刻劃變數之間的關係,如
labeled lda;
至於如何進行推理和學習,常用的方法有
em演算法,變分推斷方法,
gibbs
取樣方法等,最主要還是最後兩種方法,
其中最簡單的是
gibbs
取樣方法,最容易理解,然後是
em演算法,最後變分推斷方法是最難的,需要較多數學基礎,由於內容多,這裡只作簡單的介紹,以後有時間再詳細的寫寫。 em
演算法:這個是
plsa
**裡面用到的方法,在數學領域早已有之,它其實不是乙個演算法,而是一類問題進行近似計算的理論框架,主要的思想就是在
q函式的基礎上進行迭代,最後逼近最優值,值得注意的是,最後的值不一定是全域性最優值,很大可能是區域性最優,這個演算法相對較為簡單,花上幾個小時應該能夠弄明白;
變分推斷方法:這個方法的基本思想是,如果乙個分布很難求,我們就找乙個容易求的近似分布來代替它,如何來刻劃近似呢?就是用
kl度量來衡量兩個分布的近似程度,在得到容易求的近似分布之後,問題就變簡單了。
gibbs
取樣方法:這個演算法的基本思想是:用來自一系列的容易取樣的條件分布的樣本來得到對應的全概率分布的樣本,從而用這些樣本來求取相應的統計量,這裡的理論基礎是這一系列的條件分布在經過一段時間取樣後會達到平衡分布,這個平衡分布就是要求取的全概率分布。這裡說得較為簡單抽象,具體詳細內容請參考蒙特卡羅方法的相關書籍。
by mxl
,pku
,sewm group
依賴倒轉原則 設計模式的原則和分類
設計模式的六大原則 開閉原則就是說對擴充套件開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的 而是要擴充套件原有 實現乙個熱插拔的效果。所以一句話概括就是 為了使程式的擴充套件性好,易於維護和公升級。想要達到這樣的效果,我們需要使用介面和抽象類等,後面的具體設計中我們會提到這點。不要存在...
主題 03 如何設計模型
模型是一種將事物形象化的有效手段,利用模型可將現實世界中的事物及事物之間的關係準確地表達出來。模型設計本質上就是系統地實施抽象的過程。很多時候,工程師面對的需求都是以具象的現實世界事物概念來描述的,遵循的是人類世界的語境。為了將需求落地,工程師需要開展一系列的工作,其中,模型設計尤為重要,可劃分為以...
設計模式 設計原則與分類
簡要 真的很簡要 介紹一些設計模式的基本原則與設計模式的分類。應對變化,提高復用。如何用 實現 一些基本思想 高層 主模組 抽象的部分 底層 次要模組 細節實現部分 單一職責原則 srp 乙個類應該僅有乙個引起變化的原因 e.g.file 和 fileinfo 開放封閉原則 ocp 對擴充套件開放,...