你知道“啥是佩奇”,卻不一定了解佩奇排名演算法
作者 | 程式設計師小吳 從初學者的角度學習演算法,以動畫的形式呈現解題的思路。
來源 | 五分鐘學演算法
佩奇排名介紹
佩奇排名是根據頁面之間的連結結構計算頁面的值的一種演算法。下面我們通過動畫來理解進行計算的具體流程。
假設一個正方形表示一個 WEB 頁面,一個箭頭表示一個頁面之間的連結。
在佩奇排名演算法中,網頁指向的連結越多,頁面被確定為越重要。
因此,在這裡,確定首頁最重要。
實際上,每個頁面的重要性都是通過計算來量化的。
基本的計算方法思想
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、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 頁的概率也更新了。
上面在移動 1 次之後這四個頁面的概率更新情況,根據上述相同的方法計算 2 次後小佩奇瀏覽在每個頁面的概率。
同樣的,經過大量的移動,在每個頁面上的概率逐漸趨於固定值。當數值固定是,計算也就完成了。
End
佩奇排名就是這樣一種通過訪問概率代替連結的權重來計算的機制。
推薦閱讀
相關文章
- 啥是佩奇排名演算法演算法
- 啥是佩奇?Python 285 行程式碼而已!Python行程
- 阿里大資料架構師必備技能,你“佩奇”了嘛?阿里大資料架構
- Google CEO 拉里·佩奇(Larry Page)訪談錄Go
- 盤點 Android 你用著卻不一定知道的設計模式(上)Android設計模式
- 嚴重提醒!騙子都用上AI技術了!你卻還不知道啥是人工智慧?AI人工智慧
- 學習 《模型思維》-斯科特·佩奇 筆記 9.26模型筆記
- 使用Python畫小豬佩奇 社會人標配Python
- 用小豬佩奇說明Javascript的原型和原型鏈JavaScript原型
- 佩奇和布林讓Google成功的13大奇招Go
- 佩奇出任 CEO 後如何改變 Google 的開會流程Go
- 財富:2014年全球商業人物排行榜 谷歌佩奇力壓蘋果庫克排名第一谷歌蘋果
- 拉里·佩奇的痴心妄想如何成為谷歌的業務的?谷歌
- 谷歌CEO佩奇:Google+活躍使用者已超1億谷歌Go
- 你不一定知道Mac能做的10件事Mac
- Linux黑話你知道嗎?啥是顯示伺服器Linux伺服器
- 你知道直方圖都能幹啥?直方圖
- 記:css繪製小豬佩奇的專案及踩過的坑CSS
- 谷歌創始人兼CEO拉里·佩奇不為人知的故事谷歌
- 【小豬佩奇漫畫】| 複雜度分析原來那麼簡單!複雜度
- 矽谷來信124-拉里佩奇的智慧:牙刷與爆款
- 你不一定知道的高通AI硬實力AI
- 網站seo排名穩定的法寶你知道是什麼?網站
- Glassdoor:谷歌CEO拉里·佩奇成為2015年美國知名CEO谷歌
- 佩奇撲街、外星人瘋狂!Python 告訴你大年初二應該看哪部電影Python
- 你不一定知道的幾個前端小知識前端
- 第一篇:你不一定了解的"推薦系統"
- 10個你不一定知道的PHP內建函式PHP函式
- 用 Python 20 秒畫完小豬佩奇“社會人”!附效果視訊+完整程式碼Python
- 繼搜尋和移動,拉里·佩奇正在將Google帶入“第三個世代”Go
- 他們通過小豬佩奇賺了上千萬,那些悶聲發大財的個人開發者!
- 想換工作,但不知道啥是saas系統
- 基於使用者投票的排名演算法:牛頓冷卻定律演算法
- 只知道HTML卻不知道JSP?HTMLJS
- 程式設計師最痛苦的事兒是啥,知道不?程式設計師
- 基於使用者投票的排名演算法(四):牛頓冷卻定律演算法
- Vue中你不知道但卻很實用的黑科技Vue
- 你知道什麼是 GitHub Action 麼?Github