隨機游走模型



如果你需要和圖數據(Graph Data)打交道,那么你一定聽說過PageRank。PageRank和其后續算法有着廣泛的應用場景,包括推薦系統、反垃圾網頁算法、交通規划、復雜系統故障分析等等。毫無疑問,PageRank的成功有很大一部分要歸功於Google在商業上的成功。但另一方面,PageRank嚴謹的數學邏輯也是其備受推崇的又一重要因素。

這個關於PageRank的系列主要包括三大部分的內容:

第一大部分將詳盡解釋PageRank算法本身。我們采用最主流的三種方式來從不同的角度來理解PageRank,包括隨機游走模型、馬爾科夫鏈和值傳播模型。

第二大部分將介紹一些關於PageRank計算、實現相關的方法,以及更復雜的數學剖析。

第三大部分將介紹一些PageRank的變種算法以及它們的應用。同時還會介紹一個PageRank的研究方向,有監督PageRank。

 朴素的隨機游走模型
PageRank最早用於對網頁進行“重要性”排序,它的算法邏輯可以使用隨機游走模型來解釋。在隨機游走模型中,假設存在一個沖浪者surfer(取自“網上沖浪”的意思),在每個時刻,該surfer停留在一個網頁上,並且必須從以下行動中選取一個行動:

從該網頁的所有超鏈接中隨機地選擇一個鏈接,跳轉到下一個頁面;
在瀏覽器的地址欄中輸入一個新的網址,跳轉到下一個頁面。我們將在后文中解釋該行為。
如果一直讓該surfer重復這樣的選擇(即每次選擇一個行動,跳轉到下一個頁面;然后又選擇一個行動,再跳轉到下一個頁面),並記錄該surfer對每個網頁的訪問次數。當這樣的重復次數足夠大時,每個網頁被訪問的頻率逐漸趨於穩定。這時,用頻率代替概率,便得到所有網頁被surfer訪問的概率。這些概率就是網頁的PageRank值。

上面這個模型存在兩個主要問題:

如果sufer訪問了一個沒有超鏈接的頁面(通常稱為Dangling頁面),那么他將沒有辦法執行行動1(他選擇了行動1,但沒法執行!)。這時,一種常見的做法是人為地給Dangling頁面“添加”指向其它所有頁面的超鏈接。
如果一個網頁有大量鏈接指向網頁自己,那么即使surfer選擇了行動1,他仍然有很高機會停留在當前網頁。為了解決該問題,一般在計算PageRank值時,網頁的內部鏈接會被忽略掉。
下面以一個簡單的例子來描述這樣的隨機游走模型。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM