咕咕嘎嘎討論區

 找回密碼
 註冊
搜索
查看: 7143|回復: 0

Page Rank -Google 的民主表決式網頁排名技術

[複製鏈接]
honeytung 發表於 9-3-2011 13:05:46 | 顯示全部樓層 |閱讀模式
轉載於:http://coz.tw/dz6/thread-949-1-1.html

大家可能聽說過,Google 革命性的發明是它名為 「Page Rank」的網頁排名算法,這項技術徹底解決了搜索結果排序的問題。其實最先試圖給網站上的眾多網站排序的並不是 Google。


Yahoo!公司最初第一個用目錄分類的方式讓用戶通過網站檢索信息,但由於當時計算機容量和速度的限制,當時的 Yahoo!和同時代的其它搜尋引擎都存在一個共同的問題:收錄的網頁太少,而且只能對網頁中常見內容相關的實際用詞進行索引。那時,用戶很難找到很相關信息。我記得 1999 年以前查找一篇論文,要換好幾個搜尋引擎。後來 DEC 公司開發了 AltaVista 搜尋引擎,只用一台 ALPHA 服務器,卻收錄了比以往引擎都多的網頁,而且對裡面的每個詞進行索引。AltaVista 雖然讓用戶搜索到大量結果,但大部分結果卻與查詢不太相關,有時找想看的網頁需要翻好幾頁。所以最初的 AltaVista 在一定程度上解決了覆蓋率的問題,但不能很好地對結果進行排序。


  
Google 的 「Page Rank」(網頁排名)是怎麼回事呢?其實簡單說就是民主表決。打個比方,假如我們要找李遠哲博士,有一百個人舉手說自己是李遠哲。那麼誰是真的呢?也許有好幾個真的,但即使如此誰又是大家真正想找的呢?如果大家都說在 Google 公司的那個是真的,那麼他就是真的。

  
在網站上,如果一個網頁被很多其它網頁所連結,說明它受到普遍的承認和信賴,那麼它的排名就高。這就是 Page Rank 的核心思想。 當然 Google 的 Page Rank 算法實際上要複雜得多。比如說,對來自不同網頁的連結對待不同,本身網頁排名高的連結更可靠,於是給這些連結予較大的權重。Page Rank 考慮了這個因素,可是現在問題又來了,計算搜索結果的網頁排名過程中需要用到網頁本身的排名,這不成了先有雞還是先有蛋的問題了嗎?

  
Google 的兩個創始人拉里•佩奇 (Larry Page )和謝爾蓋•布林 (Sergey Brin) 把這個問題變成了一個二維矩陣相乘的問題,並且用替代的方法解決了這個問題。他們先假定所有網頁的排名是相同的,並且根據這個初始值,算出各個網頁的第一次替代排名,然後再根據第一次替代排名算出第二次的排名。他們兩人從理論上證明了不論初始值如何選取,這種算法都保證了網頁排名的估計值能收斂到他們的真實值。值得一提的事,這種算法是完全沒有任何人工干預的。

  
理論問題解決了,又遇到實際問題。因為網站上網頁的數量是巨大的,上面提到的二維矩陣從理論上講有網頁數目平方之多個元素。如果我們假定有十億個網頁,那麼這個矩陣就有一百億億個元素。這樣大的矩陣相乘,計算量是非常大的。拉里和謝爾蓋兩人利用稀疏矩陣計算的技巧,大大的簡化了計算量,並實現了這個網頁排名算法。今天 Google 的工程師把這個算法移植到並行的計算機中,進一步縮短了計算時間,使網頁更新的週期比以前短了許多。

我來 Google 後,拉里 (Larry) 在和我們幾個新員工座談時,講起他當年和謝爾蓋(Sergey) 是怎麼想到網頁排名算法的。他說:當時我們覺得整個網站就像一張大的圖(Graph),每個網站就像一個節點,而每個網頁的連結就像一個弧。我想,網站可以用一個圖或者矩陣描述,我也許可以用這個發現做個博士論文。他和謝爾蓋就這樣發明了 Page Rank 的算法。

  
網頁排名的高明之處在於它把整個網站當作了一個整體對待。它無意識中符合了系統論的觀點。相比之下,以前的信息檢索大多把每一個網頁當作獨立的個體對待,很多人當初只注意了網頁內容和查詢語句的相關性,忽略了網頁之間的關係。

  
今天,Google 搜尋引擎比最初複雜、完善了許多。但是網頁排名在 Google 所有算法中依然是至關重要的。在學術界, 這個算法被公認為是文獻檢索中最大的貢獻之一,並且被很多大學引入了信息檢索課程 (Information Retrieval) 的教程。
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|小黑屋|咕咕嘎嘎討論區™

GMT+8, 27-4-2024 02:25 AM , Processed in 0.012854 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表