LDA主題模型學習筆記4:求解模型參數(M-step)

這一步,我們根據E-step得到的γ,ϕ ,最大化L(γ,ϕ;α,β) ,得到α,β .

1,拉格朗日乘數法求解β

     首先把L(γ,ϕ;α,β) 簡化,只保留與β 有關的部分。因爲β 是每一行存一個主題的詞分佈,所以每一行的和是1,存在等式約束Vj=1βij=1 ,所以是帶等式約束的最大化問題,使用拉格朗日乘數法,可得到拉格朗日函數如下:
l1
用拉格朗日函數對β 求偏導,令偏導爲0,可得:
l2
     這裏的ϕdni 指的是對第d個文檔的變分參數ϕni ,也就是第n個單詞在第i個主題的詞分佈中的概率,wjdn 是第d個文檔中第n個單詞wnwn 是一個V維向量,其中只有一個元素是1,其他都是0,這個爲1的元素對應的索引號就是這個單詞在文檔集字典中的ID,上標j是指wn 向量中的每個元素,如果wjdn=1 那麼單詞wn 在文檔集字典中的ID就是j。

2,牛頓法求解α

首先把L(γ,ϕ;α,β) 簡化,只保留與α 有關的部分:
l3
因爲α 是Dirichlet分佈的參數(K維的,K是主題個數),所以它沒有約束條件,直接對α 求偏導:
l4
     可以看到,一階導數的結果中包含αj ,這裏不能直接令偏導爲0解出α 。所以需要考慮迭代的方法去求解,作者在這裏使用牛頓迭代法。牛頓法的理解可以參考這裏:http://blog.csdn.net/luoleicn/article/details/6527049
對於K維向量α ,它的牛頓迭代式如下:
l5
     其中H(α),g(α) 分別是α 處的Hessian矩陣和梯度。這裏我們可以看到有對Hessian矩陣求逆的操作,這個操作時間複雜度高達O(n3) ,所以考慮簡化這個求逆操作。
Hessian矩陣的元素是:
l6
首先對Hessian矩陣H進行分解:
l7
這樣Hessian矩陣的逆就成了如下形式:
l8
對於α 的第i個分量,Hessian矩陣的逆和梯度的乘積:
l9
其中:
l10
這樣可以看到,(H1g)i 只與higi 有關,它們的值各有k個,所以這時的牛頓法是線性的。


本文內容來自LDA原始論文《Latent Dirichlet Allocation》的附錄A.2, A.4.

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