CS224W-11 成就了谷歌的PageRank

  衆所周知(並不是),谷歌最早是依靠搜索引擎起家的,而PageRank作爲一種網頁排序算法爲谷歌的發展立下了汗馬功勞。可以說,沒有PageRank就沒有今天的谷歌。

本次課程的主題包括:

  1. Web structure

  2. Pagerank推導和計算方式

  3. 應用:Graph Search(個人認爲反而是重要的部分)

1. Web Structure

1.1 定義:有向圖

: 所有能夠到達v的節點集合

:所有v能夠到達的節點集合

img

有向圖的兩種類別:

strongly connected:節點間是互通的,能夠通過有向路徑實現互達

directed acyclic graph:有向無環圖,u可以達到v,但v不能到達u

img

Strongly connected component

  1. 這個集合內節點可以互達

  2. 這已經是最大的滿足這種要求的集合,不能更大了

每一個有向圖都是在SCC上構成的DAG

意思是說,如果把有向圖中能夠互達的節點集合揉成一個新結點,那麼就是一個DAG了

img

問題來了:想看看真是Web網絡,是如何在其SCC上構成整個DAG圖的?

  1. 首先,對於一個節點v,如何找到包含這個v的SCC?

定義:

是G的反向圖

img
  1. 實驗結果

  • 數據來源:爬取的網絡結構,2.03億 urls,15億links

  • 方法:任意節點v,使用BFS策略(寬度優先)計算In(v)和Out(v)

  • 觀察結果:BFS策略要麼訪問極少的節點,要麼可以訪問居多的節點

img

說明,網絡結構是一個領帶形式的玩意。

img

2. Ranking nodes on the graph

Intuition:網絡中不同節點的重要度肯定是不同的,stanford vs 野雞大學

所以,我們要排序!

rank the pages using the web graph link structure

Link Analysis Algorithms

  • pagerank

  • personalized pagerank

  • random walk with restarts

PageRank

Idea:將link視爲votes,鏈接越多越重要

還有一個問題,所有鏈接都一樣嗎?

那肯定不行啊,殺人遊戲中,警長還有兩票的投票權呢

從重要節點投出的票會更加重要!

那怎麼分配鏈接上的權重呢?平均

  • 對於page with importance ,有 個外向連接(出度),那每個鏈接得到的投票權爲:

  • 對於節點 j ,其重要度就是所有指向它的投票權之和:

img
img

用矩陣定義這種形式,引入鄰接矩陣M

如果 ,   的出度爲 ,那麼

M的列和爲1,表示所有從j出去的投票權

rank vector r:每個節點的重要度

矩陣形式:

img

接下來的論述是,設想是一個surfer在這樣的web上一直隨機遊走,最後停留在各個頁面上的概率

這樣論述的目的在於得到一個概率形式:

那麼 就是最後的穩態概率,對應意義說各個節點重要度也會收斂起來

這可以有兩個解釋:

1、馬爾可夫過程的收斂

其實給定矩陣 ,計算   的過程就是一個重複的過程

相當於是一個馬爾可夫鏈最後的收斂狀態

2、特徵值分解

對比一下,其實就是特徵值爲1的特徵向量!

工業上如何求得r呢?——Power Iteration Method

迭代過程很簡單:三步

  • 初始化:

  • 迭代:

  • 終止條件:

  • 終止條件:

  • 終止條件:

相關文章
相關標籤/搜索