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