大家可能聽說過,Google 革命性的發(fā)明是它名為 “Page Rank” 的網(wǎng)頁排名算法,這項(xiàng)技術(shù)徹底解決了搜索結(jié)果排序的問題。其實(shí)最先試圖給互聯(lián)網(wǎng)上的眾多網(wǎng)站排序的并不是 Google。Yahoo!公司最初第一個(gè)用目錄分類的方式讓用戶通過互聯(lián)網(wǎng)檢索信息,但由于當(dāng)時(shí)計(jì)算機(jī)容量和速度的限制,當(dāng)時(shí)的 Yahoo!和同時(shí)代的其它搜索引擎都存在一個(gè)共同的問題:收錄的網(wǎng)頁太少,而且只能對(duì)網(wǎng)頁中常見內(nèi)容相關(guān)的實(shí)際用詞進(jìn)行索引。那時(shí),用戶很難找到很相關(guān)信息。我記得 1999 年以前查找一篇論文,要換好幾個(gè)搜索引擎。后來 DEC 公司開發(fā)了 AltaVista 搜索引擎,只用一臺(tái) ALPHA 服務(wù)器,卻收錄了比以往引擎都多的網(wǎng)頁,而且對(duì)里面的每個(gè)詞進(jìn)行索引。AltaVista 雖然讓用戶搜索到大量結(jié)果,但大部分結(jié)果卻與查詢不太相關(guān),有時(shí)找想看的網(wǎng)頁需要翻好幾頁。所以最初的 AltaVista 在一定程度上解決了覆蓋率的問題,但不能很好地對(duì)結(jié)果進(jìn)行排序。
Google 的 “Page Rank” (網(wǎng)頁排名)是怎么回事呢?其實(shí)簡單說就是民主表決。打個(gè)比方,假如我們要找李開復(fù)博士,有一百個(gè)人舉手說自己是李開復(fù)。那么誰是真的呢?也許有好幾個(gè)真的,但即使如此誰又是大家真正想找的呢?:-) 如果大家都說在 Google 公司的那個(gè)是真的,那么他就是真的。
在互聯(lián)網(wǎng)上,如果一個(gè)網(wǎng)頁被很多其它網(wǎng)頁所鏈接,說明它受到普遍的承認(rèn)和信賴,那么它的排名就高。這就是 Page Rank 的核心思想。當(dāng)然 Google 的 Page Rank 算法實(shí)際上要復(fù)雜得多。比如說,對(duì)來自不同網(wǎng)頁的鏈接對(duì)待不同,本身網(wǎng)頁排名高的鏈接更可靠,于是給這些鏈接予較大的權(quán)重。Page Rank 考慮了這個(gè)因素,可是現(xiàn)在問題又來了,計(jì)算搜索結(jié)果的網(wǎng)頁排名過程中需要用到網(wǎng)頁本身的排名,這不成了先有雞還是先有蛋的問題了嗎?
Google 的兩個(gè)創(chuàng)始人拉里•佩奇(Larry Page )和謝爾蓋•布林 (Sergey Brin) 把這個(gè)問題變成了一個(gè)二維矩陣相乘的問題,并且用迭代的方法解決了這個(gè)問題。他們先假定所有網(wǎng)頁的排名是相同的,并且根據(jù)這個(gè)初始值,算出各個(gè)網(wǎng)頁的第一次迭代排名,然后再根據(jù)第一次迭代排名算出第二次的排名。他們兩人從理論上證明了不論初始值如何選取,這種算法都保證了網(wǎng)頁排名的估計(jì)值能收斂到他們的真實(shí)值。值得一提的事,這種算法是完全沒有任何人工干預(yù)的。
理論問題解決了,又遇到實(shí)際問題。因?yàn)榛ヂ?lián)網(wǎng)上網(wǎng)頁的數(shù)量是巨大的,上面提到的二維矩陣從理論上講有網(wǎng)頁數(shù)目平方之多個(gè)元素。如果我們假定有十億個(gè)網(wǎng)頁,那么這個(gè)矩陣就有一百億億個(gè)元素。這樣大的矩陣相乘,計(jì)算量是非常大的。拉里和謝爾蓋兩人利用稀疏矩陣計(jì)算的技巧,大大的簡化了計(jì)算量,并實(shí)現(xiàn)了這個(gè)網(wǎng)頁排名算法。今天 Google 的工程師把這個(gè)算法移植到并行的計(jì)算機(jī)中,進(jìn)一步縮短了計(jì)算時(shí)間,使網(wǎng)頁更新的周期比以前短了許多。
我來 Google 后,拉里 (Larry) 在和我們幾個(gè)新員工座談時(shí),講起他當(dāng)年和謝爾蓋(Sergey) 是怎么想到網(wǎng)頁排名算法的。他說:"當(dāng)時(shí)我們覺得整個(gè)互聯(lián)網(wǎng)就像一張大的圖(Graph),每個(gè)網(wǎng)站就像一個(gè)節(jié)點(diǎn),而每個(gè)網(wǎng)頁的鏈接就像一個(gè)弧。我想,互聯(lián)網(wǎng)可以用一個(gè)圖或者矩陣描述,我也許可以用這個(gè)發(fā)現(xiàn)做個(gè)博士論文。" 他和謝爾蓋就這樣發(fā)明了 Page Rank 的算法。
網(wǎng)頁排名的高明之處在于它把整個(gè)互聯(lián)網(wǎng)當(dāng)作了一個(gè)整體對(duì)待。它無意識(shí)中符合了系統(tǒng)論的觀點(diǎn)。相比之下,以前的信息檢索大多把每一個(gè)網(wǎng)頁當(dāng)作獨(dú)立的個(gè)體對(duì)待,很多人當(dāng)初只注意了網(wǎng)頁內(nèi)容和查詢語句的相關(guān)性,忽略了網(wǎng)頁之間的關(guān)系。
今天,Google 搜索引擎比最初復(fù)雜、完善了許多。但是網(wǎng)頁排名在 Google 所有算法中依然是至關(guān)重要的。在學(xué)術(shù)界, 這個(gè)算法被公認(rèn)為是文獻(xiàn)檢索中最大的貢獻(xiàn)之一,并且被很多大學(xué)引入了信息檢索課程 (Information Retrieval) 的教程。
剛開始寫博客! 呵呵,主要是記錄下自己的一些東西,期望和大家交流.
posted on 2008-03-02 19:54
pinuo 閱讀(186)
評(píng)論(0) 編輯 收藏 所屬分類:
Search Engine and IR