Wednesday, May 27, 2015

Week 09: Latent Dirichlet allocation

題目:Latent Dirichlet Allocation


作者:David M. Blei,Andrew Y. Ng,Michael I. Jordan


文章概要:


          本篇文章主要目的是用更緊湊的方式表現高維資料,從而實現降維的目的。如圖1所示,將圖A這種方法作者稱為locally linear embedding(LLE),它是一種unsupervised的方法,將高維度的輸入用低維度、較緊湊的方式表達。此處需要注意的是,它是一種降維的方法,不是clustering的方法。


主要算法:


         對於如何生成M份包含N個單詞的文檔,這篇文章主要介紹了3種方法:

        (1)n-gram model

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

        For each of the N words w_n: 
                Choose a word w_n p(w); 

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

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



       (2) Mixture of unigram

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

        Choose a topic z p(z); 

        For each of the N words w_n: 

                Choose a word w_n p(w|z); 

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

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




      (3)LDA(Latent Dirichlet Allocation)

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

        Choose parameter θ p(θ); 

        For each of the N words w_n: 

                Choose a topic z_n p(z|θ); 

                Choose a word w_n p(w|z); 

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

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


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


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




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

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

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

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

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

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

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

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


實驗結果:


         本文主要做了如下實驗:

         (1)對document進行topic 分類:


          (2)與不同模型在Topic分類上的perplexity比較:





           (3)在Reuters-21578 dataset的分類正確率:


創新之處和心得:


           本文LDA在topic model上現今有非常大的用處,模型很簡單但卻很實用,是機器學習者必須了解和懂的模型。





No comments:

Post a Comment