從馬爾科夫鏈到吉布斯取樣與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
分佈的存在的充分條件是:對於任意兩個state
s1,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})。
下面,分兩個步驟證明:
- Gibbs Sampling存在單一且穩定的狀態分佈。
- 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}