未來的搜索如何彌補PageRank未了的缺憾?當搜索從頁面級晉升為區塊級,無疑將帶來一場效率的革命。
一個網頁就猶如一頭牛。它有頭、有尾,可以劃分為不同的信息區域。當你瀏覽一個頁面時,往往會將目光鎖定在最重要的區域中,而不是先瀏覽導航、廣告、版權信息等信息塊。沿著這個思路,就可以進一步提升搜索的精準度。

區塊級搜索
在上世紀90年代中期,Google的創始人拉里#8226;佩奇(Larry Page)發明了一種新的網頁排名算法。簡而言之,這一算法的核心便是“鏈接”:當越多的頁面指向一個頁面時,后者的重要性就越強;該重要性還取決于指向此頁面的源頁面的重要程度。
這個后來以佩奇的姓氏命名的算法PageRank,為Google打下江山起到了決定性的作用。但是,隨著互聯網的發展,這一算法的缺點也不斷體現。由于它是基于頁面級的搜索,因此無法判斷一條鏈接在一個頁面中的權重。比如,一條由頁面中的重要內容引出的鏈接,與一條由廣告內容引出的鏈接,其重要性應該是有很大差別的。而PageRank對此種情況是等同對待的。
也就是說,如果我們能夠將頁面分塊,并標識出每塊的重要程度,便使得頁面級搜索上升到了區塊級搜索的高度,那么搜索的準確性和精度也必然會隨之提高。
目前,微軟亞洲研究院的文繼榮研究員找到了這把庖丁之刃。據文研究員稱,新技術將比現行的PageRank算法下實現的搜索精度提高25%。當然,目前這一驚人的結論是在實驗室內產生的,實際數據還有待進一步應用及測試。
其實,在計算機學術界,很早就有人想到了給頁面分塊的做法。他們主要是對HTML的語法進行分析,試圖從代碼解析的角度解構一個網頁。但這顯然是行不通的,因為HTML中的語法標簽并無任何語義作用,其代碼往往十分雜亂,且與不同的設計者有關。
網頁是多樣化和異構的,但人類卻可以一眼便將一個網頁劃分為幾塊。于是,文繼榮和他的兩個學生蔡登和俞詩鵬,想到了以視覺的角度來分割整個頁面。在瀏覽器顯示出一個頁面之前,要用內部的渲染引擎對其進行加工,并獲取某個標簽的坐標位置、字體大小、顏色等信息。文的算法在應用了這些視覺信息元素后,就可以決定在什么地方來做分塊,對網頁進行自動地分割。
但僅僅分割顯然是不夠的,還要得知一個區塊的重要程度。微軟的研究員們采用了機器學習的方法來建立一個模型。首先通過人為的訓練,“告訴”計算機哪里是一個頁面中最重要的部分,而這些通常是有跡可尋的,比如在頁面中的位置、大的圖片、粗字體等等。經過大量的訓練之后,計算機便形成了一個公式,可以將頁面自動劃分為紅綠藍三個級別的區塊(重要性依次減弱)。精準度大致在86%左右,基本和人的水平相當。也就是說,如果一個頁面設計得十分糟糕,既雜亂又分不清主次,那么無論是人或機器,都無法對區塊的重要性做出判斷。
速度提升
這項技術的誕生對于搜索而言是一個根本性的改變。它除了在鏈接分析上,能夠彌補Google PageRank算法的缺憾外,還能夠在圖片搜索等領域獲得有效應用。在此之前,圖片搜索在頁面中抓取一個圖片后,還要在頁面中尋找解釋這一圖片的上下文說明。而有了這個技術則可以大大提升效率,可以直接在該圖片出現的塊里取說明文字,并且根據圖片來自的塊重要性,來決定這個圖片的重要性。此外,在做類似的信息抽取的時候,都可以用到這項技術。
從2001年起,文繼榮帶著兩個學生總花費了兩年多的時間研究出了這項技術。實際上,在最初的想法確定后,他們在幾個月內就寫出了算法。但這一算法在實際測試時經常會“跑不通”。“你都想象不到,有的網頁內部的代碼嵌套居然多達百層。”文繼榮笑著說,“但這就是互聯網上的實際情況。不管一個網頁寫得有多爛,我們的算法也要照顧到。”在接下來的時間里,他們在百萬級頁面級別對該算法進行了測試、完善。最終,當微軟在國際學術會議上發布這一技術時,引發了不小的轟動。
但當它走近實際應用時,又產生了新的問題——速度太慢。通常瀏覽器要渲染一個網頁需要幾百毫秒。這時間看似很短,但當你要同時處理的頁面是幾十億、上百億時,這個速度就變得無法容忍了。為配合微軟總部將該技術應用在其搜索引擎中,產品部門提出了將時間縮短至數毫秒以內的要求。這不得不說是一項挑戰。壓力之下,微軟的研發人員想到了一個解決辦法:拋開IE瀏覽器的渲染引擎,自己編寫一個相對簡單而精煉的渲染引擎。因為這項技術中,僅需要通過渲染引擎獲得其輸出的數據結構,比如長度寬度、坐標等,而并不需要考慮最終的頁面渲染效果,而對JavaScript等腳本也一概過濾。通過這一方式,每個頁面的平均處理時間被成功地縮短至2毫秒以內。
還有什么是不能實現的嗎?只要你想得到。