1. 程式人生 > >PageRank算法

PageRank算法

個人 忽略 網頁 http 頁面 一個人 align 表示 也會

1.PageRank介紹

PageRank算法是1998年由斯坦福大學的學生Larry page和Sergrey Brin發明的,是Google搜索引擎的重要算法。目的是基於網絡的互聯性來客觀地計算網頁受歡迎程度或重要性。其背後有兩個主要依據:

(1)具有更多的傳入鏈接的頁面比具有較少的傳入鏈接的頁面重要。

(2)一個頁面有一個高度重要性的頁面鏈入,則這個頁面也很重要。

在PageRank算法中,通常會將所有的頁面看成一個個點,將網頁中指向其他網頁的鏈接關系看成有向邊,然後將這些點和有向邊組成網絡關系並利用網絡關系進行計算。PageRank算法中為所有點賦予PR值來表示這個點的大小關系或重要程度,而這個值的大小是根據這個點的鏈入數量和鏈出數量來決定的。PageRank算法從理論上講是一個人在點擊任意次鏈接後到達某一個頁面概率的大小,如果其中一個頁面被一個高質量的頁面鏈接到,則這個頁面會有較大的概率被訪問到。所以被越重要的網頁鏈入的頁面,這個頁面也會背變得重要。

2.PageRank算法舉例

設網絡中的一個頁面為A,則A頁面的PR值等於所有鏈入A頁面的PR值之和:

技術分享圖片

如下圖,若一個頁面只有鏈入,則PR(A)=0.25+0.25+0.25=0.75.

技術分享圖片

但由於每一個網頁有可能有鏈出的關系,所以A頁面的PR值等於所有鏈入A頁面的PR值比上每個頁面的鏈出的數量的比值之和:

技術分享圖片

如下圖,若一個頁面有鏈入也有鏈出:

技術分享圖片

其中,B,C,D都是指鏈入A頁面的頁面,而L(v)是指頁面v所包含的鏈出個數,PR(v)則表示頁面v的PageRank值。

PR(A)=PR(B)/2+PR(C)+PR(D)/3

由此可以看出,如果頁面A被很多PR值低的頁面鏈接,頁面A的PR值並不會一定高。一個PR值高但有許多鏈出的頁面對頁面A 的貢獻也並不一定比本身PR值不高,但僅僅指向頁面A的貢獻值大。

我們知道人們瀏覽網頁時,不會永無止境的瀏覽下去,所以在公式中給每一個網頁的PR值乘以一個阻尼系數d,每個網頁最小的PR值為1-d。下列是完整的PageRank算法的計算公式:

技術分享圖片

其中,X為鏈入頁面A所有的頁面。

3.PageRank算法的優缺點

優點:

(1)與查詢無關的靜態算法,所有網頁的PageRank值都是離線計算好的;

(2)有效的減少了在線查詢時的計算量,減少了查詢響應時間;

缺點:過分的相信鏈接關系

(1)一些權威網站往往都是互不鏈接的,因為存在競爭關系;

(2)人們的查詢具有主題特征,PageRank忽略了主題相關性,導致結果的相關性和主題相關性降低;

(3)舊的頁面等級比新的頁面等級高。

PageRank算法