LDA 【介紹】※※※

    轉自http://blog.csdn.net/huagong_adu/article/details/7937616

   主題模型有兩種:pLSA(ProbabilisticLatent Semantic Analysis)和LDA(Latent Dirichlet Allocation),下面主要介紹LDA。

(二)LDA介紹

        如何生成M份包含N個單詞的文檔,LatentDirichlet Allocation這篇文章介紹了3方法:

        方法一:unigram model

        該模型使用下面方法生成1個文檔:

        For each ofthe N words w_n: 
                Choose a word w_n ~ p(w); 

        其中N表示要生成的文檔的單詞的個數,w_n表示生成的第n個單詞w,p(w)表示單詞w的分佈,可以通過語料進行統計學習得到,比如給一本書,統計各個單詞在書中出現的概率。

        這種方法通過訓練語料獲得一個單詞的概率分佈函數,然後根據這個概率分佈函數每次生成一個單詞,使用這個方法M次生成M個文檔。其圖模型如下圖所示:


        方法二:Mixture of unigram

        unigram模型的方法的缺點就是生成的文本沒有主題,過於簡單,mixture of unigram方法對其進行了改進,該模型使用下面方法生成1個文檔:

        Choose a topicz ~ p(z); 

        For each ofthe N words w_n: 

                Choose a word w_n ~ p(w|z); 

        其中z表示一個主題,p(z)表示主題的概率分佈,z通過p(z)按概率產生;N和w_n同上;p(w|z)表示給定z時w的分佈,可以看成一個k×V的矩陣,k爲主題的個數,V爲單詞的個數,每行表示這個主題對應的單詞的概率分佈,即主題z所包含的各個單詞的概率,通過這個概率分佈按一定概率生成每個單詞。

        這種方法首先選選定一個主題z,主題z對應一個單詞的概率分佈p(w|z),每次按這個分佈生成一個單詞,使用M次這個方法生成M份不同的文檔。其圖模型如下圖所示:


        從上圖可以看出,z在w所在的長方形外面,表示z生成一份N個單詞的文檔時主題z只生成一次,即只允許一個文檔只有一個主題,這不太符合常規情況,通常一個文檔可能包含多個主題。

        方法三:LDA(Latent Dirichlet Allocation)

        LDA方法使生成的文檔可以包含多個主題,該模型使用下面方法生成1個文檔:

        Chooseparameter θ ~ p(θ); 

        For each ofthe N words w_n: 

                Choose a topic z_n ~ p(z|θ); 

                Choose a word w_n ~ p(w|z); 

        其中θ是一個主題向量,向量的每一列表示每個主題在文檔出現的概率,該向量爲非負歸一化向量;p(θ)是θ的分佈,具體爲Dirichlet分佈,即分佈的分佈;N和w_n同上;z_n表示選擇的主題,p(z|θ)表示給定θ時主題z的概率分佈,具體爲θ的值,即p(z=i|θ)= θ_i;p(w|z)同上。

        這種方法首先選定一個主題向量θ,確定每個主題被選擇的概率。然後在生成每個單詞的時候,從主題分佈向量θ中選擇一個主題z,按主題z的單詞概率分佈生成一個單詞。其圖模型如下圖所示:


        從上圖可知LDA的聯合概率爲:


        把上面的式子對應到圖上,可以大致按下圖理解:


        從上圖可以看出,LDA的三個表示層被三種顏色表示出來:

        1. corpus-level(紅色):α和β表示語料級別的參數,也就是每個文檔都一樣,因此生成過程只採樣一次。

        2.document-level(橙色):θ是文檔級別的變量,每個文檔對應一個θ,也就是每個文檔產生各個主題z的概率是不同的,所有生成每個文檔採樣一次θ。

        3. word-level(綠色):z和w都是單詞級別變量,z由θ生成,w由z和β共同生成,一個 單詞w對應一個主題z。

        通過上面對LDA生成模型的討論,可以知道LDA模型主要是從給定的輸入語料中學習訓練兩個控制參數α和β學習出了這兩個控制參數就確定了模型,便可以用來生成文檔。其中α和β分別對應以下各個信息:

        α:分佈p(θ)需要一個向量參數,即Dirichlet分佈的參數,用於生成一個主題θ向量;

        β:各個主題對應的單詞概率分佈矩陣p(w|z)。

        把w當做觀察變量,θ和z當做隱藏變量,就可以通過EM算法學習出α和β,求解過程中遇到後驗概率p(θ,z|w)無法直接求解,需要找一個似然函數下界來近似求解,原文使用基於分解(factorization)假設的變分法(varialtional inference)進行計算,用到了EM算法。每次E-step輸入α和β,計算似然函數,M-step最大化這個似然函數,算出α和β,不斷迭代直到收斂。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章