Pagerank演算法學習
阿新 • • 發佈:2018-11-22
如何度量一個網頁本身的重要性?
- 某網頁被指向的次數越多,重要性越高
- 越是重要的網頁,所連結的網頁的重要性也就越高
如圖所示,鏈向網頁E的連結遠遠大於鏈向網頁C的連結,但是網頁C的重要性卻遠高於網頁E,這是因為網頁C被網頁B所連結,而網頁B具有很高的重要性。
Pagerank演算法的相關概念
- PR值:用來評價網頁的重要性,PR值越大越重要,其級別從0到10級。一般PR值達到4,就是一個很不錯的網站。
- 阻尼係數:阻尼係數d定義為使用者不斷隨機點選連結的概率,所以,它取決於點選的次數,被設定為0-1之間。d的值越高,繼續點選連結的概率就越大。因此,使用者停止點選並隨機衝浪至另一頁面的概率在式子中用常數(1-d)表示。無論入站連結如何,隨機衝浪至一個頁面的概率總是(1-d)。(1-d)本身也就是頁面本身所具有的Pagerank 值。
Pagerank核心思想
- PageRank通過網路浩瀚的超連結關係來確定一個頁面的等級。Google把從A頁面到B頁面的連結解釋為A頁面給B頁面投票,Google根據投票來源(甚至來源的來源,即連結到A頁面的頁面)和投票目標的等級來決定新的等級。這樣,PageRank會根據網頁B所收到的投票數量來評估該網頁的重要性。此外,PageRank還會評估每個投票網頁的重要性,因為某些重要網頁的投票被認為具有較高的價值,這樣,它所連結的網頁就能獲得較高的價值。
PR值計算
- N:網路中網頁的總數
- d:阻尼係數,一般取值為0.85
- PR(Xi):網頁Xi的PR值
- C(Xi): 網頁Xi鏈出的網頁數
- PR(Xi)/C(Xi): 根據鏈出總數,平分了一個頁面的PR值
從計算公式中可以看出,PR值的計算取決於以下因素:
- 鏈入網頁數
- 鏈入網頁的質量
- 鏈入網頁的鏈出網頁數
根據上面的公式,可以計算出每個網頁的PR值,在不斷迭代,趨於平穩時,即得到最終的PR值。所以只要證明在不斷的迭代過程中,PR值能夠趨於平穩即可。
演算法證明
用鄰接矩陣表示圖中關係:
然後將每一行除以該行非零數字之和(鏈出網頁的數目)得到網頁連結概率矩陣:
對其轉置得到概率轉移矩陣:
設概率轉移矩陣為P,則P[i][j]表示從網頁j跳轉到網頁i的概率。
定義矩陣A:
公式解釋:
- P為概率轉移矩陣
- e為n維的全一行
所以,在迭代時網頁的PR值計算如下,其中Rn表示第n次迭代時各網頁組成的列向量
於是PR值的計算就變為了一個馬爾科夫過程,所以只要證明馬爾科夫過程收斂即可。
若一個馬爾可夫過程收斂,則概率轉移矩陣需要滿足以下條件:
- A為隨機矩陣。
- A是不可約的。
- A是非週期的
- 隨機矩陣又叫概率矩陣或Markov 矩陣,滿足以下條件:
顯然我們的A矩陣所有元素都大於等於0,並且每一列的元素和都為1
- 不可約矩陣:方針A是不可約的當且僅當與A對應的有向圖是強聯通的。有向圖G=(V,E)是強聯通的當且僅當對每一對節點對u,v∈V,存在從u到v的路徑。因為我們在之前設定使用者在瀏覽頁面的時候有確定概率通過輸入網址的方式訪問一個隨機網頁,所以A矩陣同樣滿足不可約的要求
- A是非週期的:所謂週期性,體現在Markov鏈的週期性上。即若A是週期性的,那麼這個Markov鏈的狀態就是週期性變化的。因為A是素矩陣(素矩陣指自身的某個次冪為正矩陣的矩陣),所以A是非週期的。
所以,馬爾科夫過程收斂,即PageRank演算法經過迭代後是收斂的。
最終,求解PR值的公式如下:
其中,X是每個網頁初始PR值組成的列向量。
使用冪法求PageRank值
冪法計算過程如下:
X 設任意一個初始向量, 即設定初始每個網頁的 PageRank值均。一般為1.
R = AX;
while (1 )
{
if ( | X - R | < e )
{ //如果最後兩次的結果近似或者相同,返回R
return R;
}
else
{
X =R;
R = AX;
}
}
小結
優點:
- 是一個與查詢無關的靜態演算法,所有網頁的PageRank值通過離線計算獲得;有效減少線上查詢時的計算量,極大降低了查詢響應時間
缺點:
- 一些權威網頁往往是相互不連結的,比如新浪、搜狐、網易以及騰訊這些大的門戶之間,基本是不相互連結的,學術領域也是這樣。
- 人們的查詢具有主題特徵,PageRank忽略了主題相關性,導致結果的相關性和主題性降低
- 舊的頁面等級會比新頁面高。因為即使是非常好的新頁面也不會有很多上游連結,除非它是某個站點的子站點。