網頁排序之PageRank

2022-09-20 04:27:11 字數 1967 閱讀 3494

在google創立初期,搜尋網頁排序使用的核心演算法就是pagerank,成就其成為全球最大的搜尋引擎。

搜尋引擎使用者希望在查詢過後,快速準確的找到使用者需要的網頁,因此需要行之有效的網頁排名演算法。谷歌的兩位創始人的佩奇和布林,借鑑了學術界評判學術**重要性的通用方法 — 「**的引用次數」。由此想到網頁的重要性也可以根據這種方法來評價,於是pagerank就誕生了。

有別於詞頻和tf-idf演算法,pagerank的思路是將網際網路看作乙個有向圖,其中把網頁看作有向圖的節點,文件間的超連結看作節點之間的邊,並初始化乙個權重。

評估網頁質量遵循兩個假設:

基於以上兩個假設,假設有如下abcd四個網頁以及他們之間的鏈結關係。初始化階段使用者隨機訪問每個網頁的概率是相等的,即初始化概率矩陣為 \(v_\):

\[\left[

\begin

\frac & \frac & \frac & \frac

\end

\right]

\]網頁a分別指向bcd三個網頁,因此a的狀態轉移概率為

\[\left[

\begin

0 & \frac & \frac & \frac

\end

\right]

\]顯然每乙個網頁都有指向其他網頁的概率,把這些向量轉置後合起來就是隨機過程中的狀態轉移矩陣 \(t\) :

\[\left[ \begin 0 & \frac & \frac & 0\\\\ \frac & 0 & 0 & 1\\\\ \frac & \frac & 0 & 0\\\\ \frac & 0 & \frac & 0 \end\right]

\]根據上述矩陣,我們計算經過一次網頁跳轉後使用者訪問的網頁概率分布 \(v_ = t \cdot v_\)

\[v_ = t \cdot v_=\left[ \begin 0 & \frac & \frac & 0\\\\ \frac & 0 & 0 & 1\\\\ \frac & \frac & 0 & 0\\\\ \frac & 0 & \frac & 0 \end\right] \cdot\left[ \begin \frac\\\\ \frac\\\\ \frac\\\\ \frac \end\right]=\left[ \begin \frac\\\\ \frac\\\\ \frac\\\\ \frac \end\right]

\]經過n次跳轉後每個網頁最終停留的概率為

\[v_=t \cdot v_=t^n \cdot v_

\]佩奇和布林發現,當\(n\to +\infty\),且概率轉移矩陣tt滿足以 \(t\) 為隨機變數、不可約且非週期時,\(}v_\) 最終收斂,保持在乙個穩定值附近。以上節點迭代 \(10000\) 次後概率穩定在 \(\left[

\begin

0.265 & 0.294 & 0.235 & 0.205

\end

\right]\) 附近,可見經過多次跳轉後使用者停留在b網頁的概率最高。

pagerank從節點\(v_\)到節點\(v_\)初始化節點權重\(s(v_)\)為1,鏈結在不斷點選跳轉中不斷更新各個節點權重,每次按照如下更新:

\[s(v_)=(1-d)+d \times \sum_\in in(v_)}\frac)\right|}s(v_)

\]其中\(d\)為上述轉移概率 \(d\in(0,1)\),\(in(v)\)是鏈結到\(v_\)節點的鏈結集合,\(out(v_)\)是從節點\(v_\)出發到外鏈的節點集合。

雖然現在google搜尋用到了深度學習等方式的排序方式,但不得不說pagerank對google意義重大,並且其變型textrank在文字中也有重大應用,我們在下節講解。

PageRank網頁排名演算法

pagerank是十大資料探勘演算法之一 pagerank演算法,即網頁排名演算法,由google創始人拉里佩奇在斯坦福上學的時候提出來的。該演算法用於對網頁進行排名,排名高的網頁表示該網頁被訪問的概率高。該演算法的主要思想有兩點 a.如果多個網頁指向某個網頁a,則網頁a的排名較高。b.如果排名高a...

關於網頁排序的問題

我的 首頁被收錄了,但cms搜尋 名稱卻排不到第乙個,怎麼辦?答 排序演算法非常複雜。我們的目標,即在於通過演算法改進,讓使用者以最小的成本,搜尋到所需要的資訊。這個程式設計客棧過程中還是會有各種各樣不盡如人意的地方。我們會非常歡迎您把您遇到的困惑和問題,反饋給我們。我們的工程師,對每乙個問題都會有...

網頁設計之css div PK table css

用過div css作個整個 如果是純粹的div的布局是比較麻煩的,尤其是你div裡面巢狀div的,div布局的時候,你有些頁面效果還是要捨棄一點的,比如的圓角,這些如果套div比較麻煩,在乙個div在vs2005設計器裡面可能變形,如果過多的套div,你實現ajax拖動效果的時候比較麻煩,所以我覺得...