PageRank的基本原理以及個性化PageRank在推薦系統的應用

閱讀LBSN中的位置推薦的一些文獻時,遇到了一種用個性化PageRank算法來進行位置推薦的算法,雖然以前也大體瞭解過PageRank算法,但不細緻,此次特地作一個整理總結。算法

PageRank算法

1、什麼是PageRank

PageRank,中文通常叫佩奇排名或網頁排名,是利用網頁簡單的超連接來計算網頁的分值,從而給網頁進行排名的一種算法,以Google公司創辦人Larry Page之姓來命名。Google用它來體現網頁的相關性和重要性,在搜索引擎優化操做中是常常被用來評估網頁優化的成效因素之一。網絡

它的思想是模擬一個清閒的上網者,上網者首先隨機選擇一個網頁打開,而後在這個網頁上呆了幾分鐘後,跳轉到該網頁所指向的連接,這樣無所事事、漫無目的地在網頁上跳來跳去,PageRank就是估計這個清閒的上網者分佈在各個網頁上的機率。優化

2、簡單的PageRank模型

互聯網的網頁能夠看做是一個有向圖,其中網頁是結點,若是網頁A有連接到網頁B,則存在一條有向邊A-->B,下面是一個簡單的示例:搜索引擎

這個簡單的網絡中只有四個網頁,若是當前在A網頁,因爲A有3條出鏈,則上網者將會各以1/3的機率跳轉到B、C和D。因此若是一個網頁有$k$條出鏈,那麼該網頁跳轉到任意一個出鏈上的機率時1/k,同理D到B、C的機率各爲1/2,而B到C的機率爲0 。訪問一個網頁的機率由連接到它的全部網頁的機率來決定,例如網頁A由B、C兩個網頁連接,則:spa

$$ P(A)=P(C)+\frac{P(B)}{2} $$3d

每一個網頁的訪問機率能夠用一個向量進行表示,則全部網頁的跳轉機率能夠用戶一個用轉移矩陣來表示,當一個網絡中有n個網頁結點時,則轉移矩陣M是一個$n\times n$的方陣。所以上面示例圖對應的轉移矩陣以下:blog

初始時,假設上網者在每個網頁的機率都是相等的,即$\frac{1}{n}$,因而初始的機率分佈就是一個全部值都爲1/n的n維列向量$V_0$,用$V_0$去右乘轉移矩陣,就能夠獲得下一步對每一個網頁的訪問機率$V_1$:索引

以後的過程就是一個不斷的迭代過程,用獲得的網頁訪問機率去右乘轉移矩陣,直到達到一個收斂的狀態。能夠發現,這是一個馬爾科夫過程,即當前的狀態僅由它前一個狀態來決定。rem

3、終止點問題

咱們知道,要知足馬爾科夫過程的收斂性,須要具有一個條件,即圖要是強連通的。get

而互聯網上的網頁不知足強連通的特性,由於有一些網頁不指向任何網頁,因此當上網者到達這類網頁時,他將無法跳轉到其餘的網頁,所以一直迭代下去,會致使全部網頁的訪問機率都爲0;

如上所示,網頁C不指向任何一個網頁,其對應的轉移矩陣爲:

用初始的訪問機率右乘轉移矩陣,而後一直迭代下去,則最終全部的訪問機率都變爲0:

4、 陷阱問題

另一個問題是陷阱問題,即有些網頁不存在指向其餘網頁的連接,但存在指向本身的連接,如圖所示:

咱們能夠發現,當上網者跑到C網頁後,就像跳進了陷阱,不再能從C中出來了,這將致使機率分佈值所有轉移到C網頁上來,其對應的轉移矩陣爲:

用初始的訪問機率右乘轉移矩陣,而後一直迭代下去,則全部的機率都會轉移到網頁C:

5、 解決終止點問題和陷阱問題

上述的問題只是特殊的狀況,爲了更好的理解PageRank算法的原理而已。實際上Google提出的PageRank算法分爲兩部分,另外一部分是由必定的機率跳轉到一個隨機的網頁,這樣就能避免終止點問題和陷阱問題。

其中$\alpha$通常取爲0.85,如今咱們來計算帶陷阱問題的網絡的機率分佈:

重複迭代下去,獲得:

6、複雜度問題

上述的網絡只有四個結點,直接用矩陣乘法進行是十分快捷的。可是真實的網絡中有上千萬個網頁結點,若是仍是直接用矩陣乘法進行計算,時間複雜度就過高了。所以不少有關PageRank算法的博客都提到了Map-Reduce的計算,這裏後續進行補充...


個性化PageRank算法

個性化PageRank算法的目標是要計算全部節點相對於用戶u的相關度。從用戶u對應的節點開始遊走,每到一個節點都以1-d的機率中止遊走並從u從新開始,或者以d的機率繼續遊走,從當前節點指向的節點中按照均勻分佈隨機選擇一個節點往下游走。這樣通過不少輪遊走以後,每一個頂點被訪問到的機率也會收斂趨於穩定,這個時候咱們就能夠用機率來進行排名了。

個性化PageRank的計算能夠用bookmark-coloring算法,參考文獻[2]

具體的算法原理後期補充...


參考內容:

  1. http://blog.jobbole.com/71431/
  2. Bookmark-coloring algorithm for personalized PageRank.
相關文章
相關標籤/搜索