網頁排序之PageRank


1、背景

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

2、PageRank

搜索引擎用戶希望在查詢過后,快速准確的找到用戶需要的網頁,因此需要行之有效的網頁排名算法。谷歌的兩位創始人的佩奇和布林,借鑒了學術界評判學術論文重要性的通用方法 — “論文的引用次數”。由此想到網頁的重要性也可以根據這種方法來評價,於是PageRank就誕生了。

有別於詞頻和TF-IDF算法,PageRank的思路是將互聯網看作一個有向圖,其中把網頁看作有向圖的節點,文檔間的超鏈接看作節點之間的邊,並初始化一個權重。

PageRank.png

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

  • 數量假設:節點的入度越大,本頁面的質量越高。(網頁被鏈接數越多質量越高)
  • 質量假說:節點的入度質量越高,本頁面的質量越高。(被鏈接的網頁質量與本網頁質量正相關)

基於以上兩個假設,假設有如下ABCD四個網頁以及他們之間的鏈接關系。初始化階段用戶隨機訪問每個網頁的概率是相等的,即初始化概率矩陣為 \(V_{0}\):
\[
\left[
\begin{array}{cccc}
\frac{1}{4} & \frac{1}{4} & \frac{1}{4} & \frac{1}{4}
\end{array}
\right]
\]
網頁A分別指向BCD三個網頁,因此A的狀態轉移概率為
\[
\left[
\begin{array}{cccc}
0 & \frac{1}{3} & \frac{1}{3} & \frac{1}{3}
\end{array}
\right]
\]
顯然每一個網頁都有指向其他網頁的概率,把這些向量轉置后合起來就是隨機過程中的狀態轉移矩陣 \(T\) :
\[
\left[ \begin{array}{cccc} 0 & \frac{1}{2} & \frac{1}{2} & 0\\\\ \frac{1}{3} & 0 & 0 & 1\\\\ \frac{1}{3} & \frac{1}{2} & 0 & 0\\\\ \frac{1}{3} & 0 & \frac{1}{2} & 0 \end{array}\right]
\]
根據上述矩陣,我們計算經過一次網頁跳轉后用戶訪問的網頁概率分布 \(V_{1} = T \cdot V_{0}\)
\[
V_{1} = T \cdot V_{0}=\left[ \begin{array}{cccc} 0 & \frac{1}{2} & \frac{1}{2} & 0\\\\ \frac{1}{3} & 0 & 0 & 1\\\\ \frac{1}{3} & \frac{1}{2} & 0 & 0\\\\ \frac{1}{3} & 0 & \frac{1}{2} & 0 \end{array}\right] \cdot\left[ \begin{array}{cccc} \frac{1}{4}\\\\ \frac{1}{4}\\\\ \frac{1}{4}\\\\ \frac{1}{4} \end{array}\right]=\left[ \begin{array}{cccc} \frac{6}{24}\\\\ \frac{8}{24}\\\\ \frac{5}{24}\\\\ \frac{5}{24} \end{array}\right]
\]
經過n次跳轉后每個網頁最終停留的概率為
\[
V_{n}=T \cdot V_{n-1}=T^n \cdot V_{0}
\]
佩奇和布林發現,當\(n\to +\infty\),且概率轉移矩陣TT滿足以 \(T\) 為隨機變量、不可約且非周期時,\({\lim_{n\to+\infty}}V_{n}\) 最終收斂,保持在一個穩定值附近。以上節點迭代 \(10000\) 次后概率穩定在 \(\left[
\begin{array}{cccc}
0.265 & 0.294 & 0.235 & 0.205
\end{array}
\right]\) 附近,可見經過多次跳轉后用戶停留在B網頁的概率最高。

3、總結

PageRank從節點\(V_{i}\)到節點\(V_{j}\)初始化節點權重\(S(V_{I})\)為1,鏈接在不斷點擊跳轉中不斷更新各個節點權重,每次按照如下更新:
\[
S(V_{i})=(1-d)+d \times \sum_{V_{j}\in In(V_{i})}\frac{1}{\left|Out(V_{j})\right|}S(V_{j})
\]
其中\(d\)為上述轉移概率 \(d\in(0,1)\),\(In(V{i})\)是鏈接到\(V_{i}\)節點的鏈接集合,\(Out(V_{j})\)是從節點\(V_{j}\)出發到外鏈的節點集合。

  • 因此可見並不是網站外鏈越多其PageRank就越高,網站給別的網站外鏈越多,每條外鏈的權重越低;
  • 根據公式 \(\frac{1}{\left|Out(V_{j})\right|}S(V_{j})\) ,外鏈的權重和總鏈接數量成反比,與提供外鏈的網站權重成正比,例如說,給定一個節點的外鏈全是低權重外鏈,那么迭代過程中該節點權重不斷降低,同時它給出去的鏈接權重也是不斷降低,形成連鎖反應。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM