谷歌的創(chuàng)始人拉里·佩奇和謝爾蓋·布林當(dāng)時(shí)還是研究生院的兩個(gè)學(xué)生,他們發(fā)明了一種新的網(wǎng)絡(luò)搜索算法:讓網(wǎng)頁自己給自己投票,不是舉手投票,而是用 實(shí)際行動(dòng)(鏈接)投票。在上面的例子中,頁面X和頁面Y都鏈向頁面Z,頁面Z是這個(gè)迷你網(wǎng)絡(luò)中唯一有兩個(gè)外鏈接指向它的頁面。所以,頁面Z是這個(gè)迷你網(wǎng)絡(luò) 中最“流行”的網(wǎng)頁。“流行度”是有信息含量的 。但是,如果一個(gè)可疑網(wǎng)頁鏈向另一個(gè)網(wǎng)頁,那么另一個(gè)網(wǎng)頁也應(yīng)該被扣分,就像一個(gè)不可靠的人推薦的人不值得別人信任一樣?!傲餍卸取北旧聿徽f明問題,只有 被好的網(wǎng)頁“推薦”(好的網(wǎng)頁里含有你的鏈接),才能獲得加分。
于是,我們又回到了那句禪語:最佳網(wǎng)頁是那些鏈接其他最佳網(wǎng)頁的網(wǎng)頁。但是,一開始,誰來決定哪些網(wǎng)頁是最佳網(wǎng)頁呢?
我 們讓網(wǎng)絡(luò)自己來決定,具體方式如下:谷歌的搜索算法給每個(gè)網(wǎng)頁打一個(gè)分?jǐn)?shù),這個(gè)分?jǐn)?shù)叫作“網(wǎng)頁排序號(hào)”,是一個(gè)介于0和1之間的數(shù)字?!熬W(wǎng)頁排序號(hào)”考慮 一個(gè)假想的上網(wǎng)者,他會(huì)在這個(gè)網(wǎng)頁上花掉的時(shí)間占總上網(wǎng)時(shí)間的多大比例?通過回答這個(gè)問題,我們可以度量一個(gè)網(wǎng)頁相對(duì)于其他網(wǎng)頁的重要程度。這個(gè)假想的上 網(wǎng)者是這樣上網(wǎng)的:如果一個(gè)網(wǎng)頁上有另外幾個(gè)網(wǎng)站的鏈接,他就會(huì)從這些鏈接中隨機(jī)選擇一個(gè)點(diǎn)擊,點(diǎn)擊每個(gè)鏈接的概率相等。在這個(gè)假設(shè)條件下,一個(gè)網(wǎng)頁的訪 問量越大(我們假想的上網(wǎng)者的訪問量,不是實(shí)際互聯(lián)網(wǎng)用戶的訪問量),這個(gè)網(wǎng)站就越重要。
因?yàn)椤熬W(wǎng)頁排序號(hào)”的定義是(假想上網(wǎng)者)訪問這 個(gè)網(wǎng)站的時(shí)間占總上網(wǎng)時(shí)間的比例,所以網(wǎng)絡(luò)上所有網(wǎng)頁的“網(wǎng)頁排序號(hào)”的總和必然為1。根據(jù)守恒定律,我們還可以把“網(wǎng)頁排序號(hào)”想象成一股水流,這股水 流在網(wǎng)頁間流動(dòng),從體驗(yàn)不佳的網(wǎng)頁不斷地向體驗(yàn)良好的網(wǎng)頁匯聚。谷歌的算法考察的就是,從長期來看,這股水流如何分配到網(wǎng)絡(luò)中的各個(gè)網(wǎng)頁中。
為 了算出水流的分配,我們需要一個(gè)巧妙的迭代算法。首先,我們對(duì)每個(gè)網(wǎng)頁的“網(wǎng)頁排序號(hào)”進(jìn)行一個(gè)粗略的估計(jì),用這個(gè)猜測值作為迭代的初始值。然后,我們考 慮水流如何不斷地分流到新的網(wǎng)頁中,規(guī)則是:如果一個(gè)網(wǎng)頁上有另外幾個(gè)網(wǎng)站的鏈接,假設(shè)上網(wǎng)者就從這些鏈接中隨機(jī)選擇一個(gè)點(diǎn)擊,點(diǎn)擊每個(gè)鏈接的概率相等。 這個(gè)過程不斷地進(jìn)行下去,直到水停止流動(dòng),每個(gè)網(wǎng)頁的訪問量穩(wěn)定下來。
一開始,谷歌的算法比較寬泛:每個(gè)網(wǎng)頁的初始值都一樣。比如,我們的迷你網(wǎng)絡(luò)共有3個(gè)網(wǎng)頁,那么每個(gè)網(wǎng)頁的“網(wǎng)頁排序號(hào)”的初始值都是1/3。