1. 程式人生 > 其它 >從馬爾科夫鏈到吉布斯取樣與PageRank

從馬爾科夫鏈到吉布斯取樣與PageRank

馬爾科夫連結串列示state的鏈式關係,下一個state只跟上一個state有關。 吉布斯取樣通過取樣條件概率分佈得到的樣本點,近似估計概率分佈P(z)P(z)。PageRank通過節點間的連線,估計節點的重要程度rr。吉布斯取樣中,state代表不同的樣本點,state的分佈就是P(z)P(z)。PageRank中,state代表不同節點的分數,state的分佈就是要求的rr。不論吉布斯取樣還是PageRank,state的分佈本質上都是馬爾科夫鏈,而最後都希望state的分佈是獨一併且穩定的。

Markov Chain

介紹

上圖表示了一個典型的馬爾科夫鏈,每個城市A、B、C代表不同的state。該圖描述了不同state間的轉移變化關係。並且下一個時間的state只和上一個時間的state有關。

穩定態

想象上述的馬爾科夫鏈,state不停的變化,我們可以求出不同state的概率,也就是state的概率分佈。

最簡單的辦法是列出不同state的概率公式,然後解線性方程組求解,如下:

可是,單一穩定的state不一定存在,例如下面兩種情況:

  • Spider trap,a⇔ba Leftrightarrow b,相當於狀態被困在某區域(多個狀態)。
  • Dead End,a⇒ba Rightarrow b,相當於狀態被困在單個狀態中。

那麼,什麼情況下才有單一穩定的state的存在呢?

單一穩定的state分佈的存在的充分條件是:對於任意兩個states1,s2s_1,s_2,它們之間的狀態轉移概率不為0。也就是p(s1|s2)>0p(s_1|s_2)>0。也就是說,state間(包含自身)都有連線,這樣的話便存在單一穩定的state分佈。

Gibbs Sampling

介紹

Gibbs Sampling遇到的問題是:在已知P(zi|z1,...,zi−1,zi+1,...zN)P(z_i|z_1,...,z_{i-1},z_{i+1},...z_{N})分佈的情況下,求變數P(z)(z=z1,...,zN)P(z) (z = {z_1,...,z_N})的分佈。

Gibbs Sampling的解決辦法是:設定外迴圈tt,遍歷取樣點數;設定內迴圈kk,遍歷特徵數,對於每一個特徵值ztkz_k^t,根據分佈ztk∼P(zk=ztk|z1=zt1,z2=zt2,...)z_k^t sim P(z_k = z_k^t | z_1 =z_1^t, z_2 =z_2^t,...)取樣ztkz_k^t。最後,根據z1,z2,z3,...{z^1,z^2,z^3,...}得到P(z)(z=z1,...,zN)P(z) (z = {z_1,...,z_N})的分佈。

Gibbs Sampling與Markov

吉布斯取樣的資料z1,z2,z3,...{z^1,z^2,z^3,...}相當於馬爾科夫鏈中不同的state(因為ztz^t只和zt−1z^{t-1}有關)。如果馬爾科夫鏈存在單一且穩定的狀態分佈,那麼就可以通過取樣求出P(z)(z=z1,...,zN)P(z) (z = {z_1,...,z_N})。

下面,分兩個步驟證明:

  1. Gibbs Sampling存在單一且穩定的狀態分佈。
  2. Gibbs Sampling單一且穩定的狀態分佈就是P(z)P(z)。

Gibbs Sampling中條件概率沒有0值確保了Gibbs Sampling存在單一且穩定的狀態分佈。

根據概率公式,可推導Gibbs Sampling單一且穩定的狀態分佈就是P(z)P(z)。

Page Rank

介紹

Page Rank的哲學是:一個點的重要性跟這個點的in-link有關,不同的in-link權重不一樣,score越大的節點對應的in-link也就越重要。 令節點的score向量為rr,節點的鄰接矩陣為MM。那麼,rr和MM的關係可寫作:

r=Mr

r = Mr

示例如下:

這個例子中,可以把矩陣MM和向量rr相乘當做MM的列以向量rr為權重進行線性組合,矩陣MM同一列的不同行代表該節點向其他節點的分發連線。這樣理解起來就比較清晰了。

rr的求解可以使用特徵值-特徵向量分解,最大特徵值對應的特徵向量即是rr。

穩定性

rr的值在滿足特定情況下才是單一且穩定的。

實際計算Page Rank中,需要增加一個條件:每個節點都有1Nfrac{1}{N}的概率變換到任何其他節點狀態。

原來的式子是:

r=Mr

r = Mr

考慮穩定性後的式子是:

Ar=βM+(1−β)1N11T=Ar

begin{split} A &= beta M + (1-beta) frac{1}{N} mathbf{1} mathbf{1}^T \ r &= Ar end{split}

示例如下:

稀疏計算

在上面的計算公式中,矩陣AA是稠密的,空間複雜度是O(N2)O(N^2),佔得空間很大。

因此,改進計算如下:

Arr=βM+(1−β)1N11T=Ar=βMr+1−βN

begin{split} A &= beta M + (1-beta) frac{1}{N} mathbf{1} mathbf{1}^T \ r &= Ar \ r &= beta M r + frac{1-beta}{N} end{split}