仲介交易 SEO診斷 淘寶客 雲主機 技術大廳
李曉明:1982年畢業于哈爾濱工業大學,1986年畢業于美國史蒂文斯理工學院電腦系,獲博士學位。 現任北京大學電腦科學技術系教授,博士生導師,系主任. 研究方向為電腦並行與分佈處理。 劉建國:北京大學電腦系副教授。
隨著網際網路的迅猛發展、WEB資訊的增加,使用者要在資訊海洋裡查找資訊,就象大海撈針一樣,搜尋引擎技術恰好解決了這一難題(它可以為使用者提供資訊檢索服務)。 目前,搜尋引擎技術正成為電腦工業界和學術界爭相研究、開發的物件。 搜尋引擎(Search Engine)是隨著WEB資訊的迅速增加,從1995年開始逐漸發展起來的技術。 據發表在《科學》雜誌1999年7月的文章《WEB資訊的可訪問性》估計,全球目前的網頁超過8億,有效資料超過9T,並且仍以每4個月翻一番的速度增長。 使用者要在如此浩瀚的資訊海洋裡尋找資訊,必然會"大海撈針"無功而返。 搜尋引擎正是為了解決這個"迷航"問題而出現的技術。 搜尋引擎以一定的策略在互聯網中搜集、發現資訊,對資訊進行理解、提取、組織和處理,並為使用者提供檢索服務,從而起到資訊導航的目的。 搜尋引擎提供的導航服務已經成為互聯網上非常重要的網路服務,搜尋引擎網站也被美譽為"網路門戶"。 搜尋引擎技術因而成為電腦工業界和學術界爭相研究、開發的物件。 本文旨在對搜尋引擎的關鍵技術進行簡單的介紹,以起到抛磚引玉的作用。
分 類:按照資訊搜集方法和服務提供者式的不同,搜尋引擎系統可以分為三大類:
1. 目錄式搜尋引擎:以人工方式或半自動方式搜集資訊,由編輯員查看資訊之後,人工形成資訊摘要,並將資訊置於事先確定的分類框架中。 資訊大多面向網站,提供瀏覽目錄服務和直接檢索服務。 該類搜尋引擎因為加入了人的智慧,所以資訊準確、導航品質高,缺點是需要人工介入、維護量大、資訊量少、資訊更新不及時。 這類搜尋引擎的代表是:YAHOO 、LookSmart、Open Directory、Go Guide等。
2. 機器人搜尋引擎:由一個稱為蜘蛛(Spider)的機器人程式以某種策略自動地在互聯網中搜集和發現資訊,由索引子為搜集到的資訊建立索引,由檢索器根據使用者的查詢輸入檢索索引庫,並將查詢結果返回給使用者。 服務方式是面向網頁的全文檢索服務。 該類搜尋引擎的優點是資訊量大、更新及時、毋需人工干預,缺點是返回資訊過多,有很多無關資訊,使用者必須從結果中進行篩選。 這類搜尋引擎的代表是:AltaVista、Northern Light、Excite、Infoseek、Inktomi、FAST、Lycos、Google;國內代表為:"天網"、悠游、OpenFind等。
3. 元搜尋引擎:這類搜尋引擎沒有自己的資料,而是將使用者的查詢請求同時向多個搜尋引擎遞交,將返回的結果進行重複排除、重新排序等處理後,作為自己的結果返回給使用者。 服務方式為面向網頁的全文檢索。 這類搜尋引擎的優點是返回結果的資訊量更大、更全,缺點是不能夠充分使用所使用搜尋引擎的功能,使用者需要做更多的篩選。 這類搜尋引擎的代表是WebCrawler、InfoMarket等。
性 能 指 標 我們可以將WEB資訊的搜索看作一個資訊檢索問題,即在由WEB網頁組成的文件庫中檢索出與使用者查詢相關的文檔。 所以我們可以用衡量傳統資訊檢索系統的性能參數-召回率(Recall)和精度(Pricision)衡量一個搜尋引擎的性能。 召回率是檢索出的相關文檔數和文件庫中所有的相關文檔數的比率,衡量的是檢索系統(搜尋引擎)的查全率;精度是檢索出的相關文檔數與檢索出的文檔總數的比率,衡量的是檢索系統(搜尋引擎)的查準率。 對於一個檢索系統來講,召回率和精度不可能兩全其美:召回率高時,精度低,精度高時,召回率低。 所以常常用11種召回率下11種精度的平均值(即11點平均精度)來衡量一個檢索系統的精度。 對於搜尋引擎系統來講,因為沒有一個搜尋引擎系統能夠搜集到所有的WEB網頁,所以召回率很難計算。 目前的搜尋引擎系統都非常關心精度。 影響一個搜尋引擎系統的性能有很多因素,最主要的是資訊檢索模型,包括文檔和查詢的表示方法、評價文檔和使用者查詢相關性的匹配策略、查詢結果的排序方法和使用者進行相關度回饋的機制。
主 要 技 術:一個搜尋引擎由搜索器、索引子、檢索器和使用者介面等四個部分組成。
1.搜索器 搜索器的功能是在互聯網中漫遊,發現和搜集資訊。 它常常是一個電腦程式,日夜不停地運行。 它要盡可能多、盡可能快地搜集各種類型的新資訊,同時因為互聯網上的資訊更新很快,所以還要定期更新已經搜集過的舊資訊,以避免死連接和無效連接。 目前有兩種搜集資訊的策略: 從一個起始URL集合開始,順著這些URL中的超鏈(Hyperlink),以寬度優先、深度優先或啟發式方式迴圈地在互聯網中發現資訊。 這些起始URL可以是任意的URL,但常常是一些非常流行、包含很多連結的網站(如Yahoo! )。 將Web空間按照功能變數名稱、IP位址或國家功能變數名稱劃分,每個搜索器負責一個子空間的窮盡搜索。 搜索器搜集的資訊類型多種多樣,包括HTML、XML、Newsgroup文章、FTP檔、文書處理文檔、多媒體資訊。 搜索器的實現常常用分散式、平行計算技術,以提高資訊發現和更新的速度。 商業搜尋引擎的資訊發現可以達到每天幾百萬網頁。
2.索引子 索引子的功能是理解搜索器所搜索的資訊,從中抽取出索引項目,用於表示文檔以及生成文件庫的索引表。 索引項目有客觀索引項目和內容索引項兩種:客觀項與文檔的語意內容無關,如作者名、URL、更新時間、編碼、長度、連結流行度(Link Popularity)等等;內容索引項是用來反映文檔內容的,如關鍵字及其權重、短語、單字等等。 內容索引項可以分為單索引項目和多索引項目(或稱短語索引項目)兩種。 單索引項目對於英文來講是英語單詞,比較容易提取,因為單詞之間有天然的分隔符號(空格);對於中文等連續書寫的語言,必須進行詞語的切分。 在搜尋引擎中,一般要給單索引項目賦與一個權值,以表示該索引項目對文檔的區分度,同時用來計算查詢結果的相關度。 使用的方法一般有統計法、資訊理論法和概率法。 短語索引項目的提取方法有統計法、概率法和語言學法。 索引表一般使用某種形式的倒排表(Inversion List),即由索引項目查找相應的文檔。 索引表也可能要記錄索引項目在文檔中出現的位置,以便檢索器計算索引項目之間的相鄰或接近關係(proximity)。 索引子可以使用集中式索引演算法或分散式索引演算法。 當資料量很大時,必須實現即時索引(Instant Indexing),否則不能夠跟上資訊量急劇增加的速度。 索引演算法對索引子的性能(如大規模峰值查詢時的回應速度)有很大的影響。 一個搜尋引擎的有效性在很大程度上取決於索引的品質。
3.檢索器 檢索器的功能是根據使用者的查詢在索引庫中快速檢出文檔,進行文檔與查詢的相關度評價,對將要輸出的結果進行排序,並實現某種使用者相關性回饋機制。 檢索器常用的資訊檢索模型有集合理論模型、代數模型、概率模型和混合模型四種。
4.使用者介面 使用者介面的作用是輸入使用者查詢、顯示查詢結果、提供使用者相關性回饋機制。 主要的目的是方便使用者使用搜尋引擎,高效率、多方式地從搜尋引擎中得到有效、及時的資訊。 使用者介面的設計和實現使用人機交互的理論和方法,以充分適應人類的思維習慣。 使用者輸入介面可以分為簡單介面和複雜介面兩種。 簡單介面只提供使用者輸入查詢串的文字方塊;複雜介面可以讓使用者對查詢進行限制,如邏輯運算(與、或、非;+、-)、相近關係(相鄰、NEAR)、功能變數名稱範圍(如.edu、.com)、出現位置(如標題、內容)、資訊時間、長度等等。 目前一些公司和機構正在考慮制定查詢選項的標準。
未 來 動 向:搜尋引擎已成為一個新的研究、開發領域。 因為它要用到資訊檢索、人工智慧、電腦網路、分散式處理、資料庫、資料採礦、數位圖書館、自然語言處理等多領域的理論和技術,所以具有綜合性和挑戰性。 又由於搜尋引擎有大量的使用者,有很好的經濟價值,所以引起了世界各國電腦科學界和資訊產業界的高度關注,目前的研究、開發十分活躍,並出現了很多值得注意的動向。
1.十分注意提高資訊查詢結果的精度,提高檢索的有效性 使用者在搜尋引擎上進行資訊查詢時,並不十分關注返回結果的多少,而是看結果是否和自己的需求吻合。 對於一個查詢,傳統的搜尋引擎動輒返回幾十萬、幾百萬篇文檔,使用者不得不在結果中篩選。 解決查詢結果過多的現象目前出現了幾種方法:一是通過各種方法獲得使用者沒有在查詢語句中表達出來的真正用途,包括使用智慧代理跟蹤使用者檢索行為,分析使用者模型;使用相關度回饋機制, 使使用者告訴搜尋引擎哪些文檔和自己的需求相關(及其相關的程度),哪些不相關,通過多次交互逐步求精。 二是用正文分類(Text Categorization)技術將結果分類,使用視覺化技術顯示分類結構,使用者可以只流覽自己感興趣的類別。 三是進行網站類聚或內容類別聚,減少資訊的總量。
2.基於智慧代理的資訊過濾和個人化服務 資訊智慧代理是另外一種利用互聯網資訊的機制。 它使用自動獲得的領域模型(如Web知識、資訊處理、與使用者興趣相關的資訊資源、領域組織結構)、使用者模型(如使用者背景、興趣、行為、風格)知識進行資訊搜集、索引、過濾(包括興趣過濾和不良資訊過濾),並自動地將使用者感興趣的、 對使用者有用的資訊提交給使用者。 智慧代理具有不斷學習、適應資訊和使用者興趣動態變化的能力,從而提供個人化的服務。 智慧代理可以在使用者端進行,也可以在伺服器端運行。
3.採用分散式體系結構提高系統規模和性能 搜尋引擎的實現可以採用集中式體系結構和分散式體系結構,兩種方法各有千秋。 但當系統規模到達一定程度(如網頁數達到億級)時,必然要採用某種分散式方法,以提高系統性能。 搜尋引擎的各個組成部分,除了使用者介面之外,都可以進行分佈:搜索器可以在多台機器上相互合作、相互分工進行資訊發現,以提高資訊發現和更新速度;索引子可以將索引分佈在不同的機器上,以減小索引對機器的要求 ;檢索器可以在不同的機器上進行文檔的並行檢索,以提高檢索的速度和性能。
4.重視交叉語言檢索的研究和開發 交叉語言資訊檢索是指使用者用母語提交查詢,搜尋引擎在多種語言的資料庫中進行資訊檢索,返回能夠回答使用者問題的所有語言的文檔。 如果再加上機器翻譯,返回結果可以用母語顯示。 該技術目前還處於初步研究階段,主要的困難在於語言之間在表達方式和語義對應上的不確定性。 但對於經濟全球化、互聯網跨越國界的今天,無疑具有很重要的意義。
學 術 研 究 目前搜尋引擎領域的商業開發非常活躍,各大搜尋引擎公司都在投鉅資研製搜尋引擎系統,同時也不斷地湧現出新的具有鮮明特色的搜尋引擎產品,搜尋引擎已經成為資訊領域的產業之一。 在這種情況下,對搜尋引擎技術相關領域的學術研究得到了大學和科研機構的重視。 如Stanford大學在其數位圖書館專案中開發了Google搜尋引擎,在Web資訊的高效搜索、文檔的相關度評價、大規模索引等方面作了深入的研究,取得了很好的成果。 NEC美國研究所的Steve Lawrence和C. Lee Giles 1998年和1999年連續兩年在《自然》和《科學》雜誌上撰文對搜尋引擎技術的研究進行評述。 著名的資訊檢索會議TREC也從1998年開始增加了Web Track課題,以考察Web文檔與其它類型文檔在檢索性質上的不同之處,並將測試在大規模的Web庫(如100G位元組)上進行資訊檢索的演算法性能。 由美國Infornotics公司主辦的搜尋引擎國際會議從1996年開始,每年舉行一次,對搜尋引擎技術進行總結、討論和展望,參與者有著名的搜尋引擎公司、大學和研究機構的學者,對搜尋引擎技術起到了很好的推動作用。 另外象IEEE主辦的國際萬維網會議、人機交互會議已有越來越多關於搜尋引擎技術研究的文章發表。 國內先後有北京大學、清華大學、國家智慧研究中心等高校和研究單位對搜尋引擎技術開展研究,並開發出了幾個較好的系統。 如由北京大學電腦系網路研究室開發的"天網"中英文搜尋引擎HTTP://pccms.pku.edu.cn:8000/gbindex.htm,在系統規模及系統性能方面達到了國外中型搜尋引擎系統的技術水準, 為國內使用者提供了很好的互聯網搜索服務,受到了使用者的好評。