啥是佩奇排名演算法

程式設計師吳師兄發表於2019-01-22

佩奇排名介紹

佩奇排名是根據頁面之間的連結結構計算頁面的值的一種演算法。下面我們通過動畫來理解進行計算的具體流程。

假設一個正方形表示一個 WEB 頁面,一個箭頭表示一個頁面之間的連結。

此圖表明下面 3 頁包含指向上面 1 頁的連結

在佩奇排名演算法中,網頁指向的連結越多,頁面被確定為越重要。

因此,在這裡,確定首頁最重要。

確定首頁最重要

實際上,每個頁面的重要性都是通過計算來量化的。

基本的計算方法思想

1.未連結的頁面分數為 1

未連結的頁面分數為 1

2.有連結的頁面得分為正在連結的頁面的總得分

.有連結的頁面得分為正在連結的頁面的總得分

3.當有多個網頁的連結時,連結分數均勻分佈

連結分數均勻分佈

4.來自高度連結網頁的連結具有很高的價值

啥是佩奇排名演算法

該圖中心頁面有三個獨立頁面指向它的連結,所以它的分數是 3 。
首頁有一個很大的分數,因為連結是從分數為 3 的頁面指向它的。

啥是佩奇排名演算法

在動畫中的六個頁面中,判斷最上面的頁面是最重要的頁面----這是佩奇排名的基本思想。

基本的計算方法思想的迴圈問題

啥是佩奇排名演算法

如果按照順序來計算每個頁面的分數時,那麼就會出現問題:以這種方式計算,它將無限迴圈,並且在迴圈中的頁面得分在任何地方都會很高。

啥是佩奇排名演算法

迴圈的問題可以通過“隨機遊走模型”的計算方法來解決。

隨機遊走模型

以小豬佩奇瀏覽網頁為例。

小豬佩奇開始訪問「五分鐘學演算法」中有趣的頁面,那麼從這個左下角頁面開始。

啥是佩奇排名演算法

它們跟隨一個連結並移動到另外的一個頁面,看了一些之後,發現不敢興趣了,這樣就停止了瀏覽。

然後,又一天,它在小吳的推薦下,在完全不同的頁面進行瀏覽,跟隨一個連結並移動到另外的一個頁面,一旦失去興趣就停止瀏覽。

啥是佩奇排名演算法

像這樣,重複從某個頁面開始瀏覽,移動幾頁後便停止的操作,如果從網際網路空間一側進行觀察,就像網頁瀏覽的人:重複移動頁面幾次後傳送到一個完全不同的頁面。

量化隨機遊走模型

假設 1 - α 代表選擇當前頁面中的一個連結的概率。

α代表該人將傳送到其他頁面的概率。

啥是佩奇排名演算法

現在用 隨機遊走模型 處理上述的迴圈問題。

啥是佩奇排名演算法

如果總頁面訪問次數達到1000次之後,使用百分比進行表示:那麼這個值就表示“在某個時間點檢視頁面的概率”

啥是佩奇排名演算法

更實用的計算方法

如圖所示,現在來嘗試計算複雜的連結網路中每個頁面的分數。

啥是佩奇排名演算法

現在均勻設定分數,使總分加起來為 1 。而後根據網頁瀏覽者的移動,來計算每個頁面的概率。

移動 n 次時出現在 A 中的概率表示未 PAn,移動 n 次時出現在 B 中的概率表示未 PBn

舉一個例子,在移動 1 次之後求在 A 的概率 PA 1

啥是佩奇排名演算法

在 C 選擇移動的概率是 1-α

其中,移動到 A 的一種場景是,C 中的佩奇選擇了移動而不是傳送。另外,這裡選擇了 A 而不是 B 作為目的地。 並且,根據上面的 當有多個網頁的連結時,連結分數均勻分佈 這條規則,從 A 或 B 選擇 A 的概率是 0.5 。

啥是佩奇排名演算法

因此,從 C 移動到 A 的概率是 PC0 ✖️ (1-α) ✖️ 0.5

A 被選為傳送目標的概率是 0.25

A 被選為傳送目標的概率是 0.25 ,根據前面的理論:在 A、B、C、D 中小佩奇選擇傳送的概率為 α。因此,通過傳送移動到 A 的概率為 α ✖️ 0.25
所以,移動一次後在 A 的概率為
PA1 = PC0 ✖️ ( 1 - α ) ✖️ 0.5 + α ✖️ 0.25

其中 PC0 = 0.25α = 0.15,代入計算後 PA1 = 0.14375

這樣,通過計算後 B 、 C 、D 頁的概率也更新了。

B 、 C 、D 頁的概率也更新了

上面在移動 1 次之後這四個頁面的概率更新情況,根據上述相同的方法計算 2 次後小佩奇瀏覽在每個頁面的概率。

移動 2 次後

同樣的,經過大量的移動,在每個頁面上的概率逐漸趨於固定值。當數值固定是,計算也就完成了。

啥是佩奇排名演算法

End

佩奇排名就是這樣一種通過訪問概率代替連結的權重來計算的機制。

相關文章