close

搜尋引擎優化(SEO),主要就是針對搜尋引擎的特性及邏輯等,來將關鍵字獲得良好的排名,已提高網站的曝光度,進而增加流量,增加達成某種商業利益的機會。所以,如果能對搜尋引擎有基本的認識,將會使SEO工作不再那樣盲目,有效的達成目的。


隨著Internet的發展,整個網路正在不斷累積成一個前所未有的超級大型資料庫。面對如此海量存儲的資訊空間,快速獲取所需的資訊已成為資訊時代最基本的問題。搜尋引擎作為Internet上必不可少的資訊資源檢索工具,幾乎每個網路使用者都在使用它來尋找自己需要的資訊。搜尋引擎可以為使用者進行網路導航,説明使用者在數以億計的網路資訊中快速查找所需的網站或網頁,篩選出符合使用者需求的有用資訊。它是各類網路資訊處理工具中比較穩定而最具效率的部分。搜尋引擎是引領我們在浩瀚的網路資訊資源中尋找真正所需的重要工具。


1 搜尋引擎的工作原理


搜尋引擎(search engine)是利用資訊挖掘系統在網際空間尋找和挖掘相關或有用資訊,在此基礎上建立檢索資料庫,並通過提供簡單友好的查詢介面説明使用者進行網路資訊檢索的資訊服務系統或工具。搜尋引擎實際是Internet上的一類網站,這類網站與一般的網站不同,其主要工作是自動搜尋Web伺服器的資訊,將資訊進行分類、建立索引,然後把索引的內容存放到資料庫中,便於以查詢和利用的方式提交給使用者。


搜尋引擎主要由四部分組成,即資訊採集器(Robot或Spider或Crawler)、分析索引子(Indexer)、檢索器(Searcher)和查詢介面(Query Interface)。當前主流的搜尋引擎的組成和結構中,一般還包括挖掘器,進行Web挖掘和使用者資訊挖掘。


Robot也就是Spider或Crawler,從事先制定好的URL列表出發自動訪問WWW網頁,分析提取網頁中超文字的URL,將其加入清單,並根據URL清單進一步訪問其他網頁。分析索引子是一個資料庫,Robot採集到的網頁資訊全部存於其中。資料庫的規模直接影響了系統查詢的查全率。有些記錄了網頁的全部內容,對整個HTML檔的所有單詞都建立索引,有的只記錄網頁的位址、標題、關鍵字、摘要等資訊,還有的能處理HTML檔中的META的標記或其他不可見的特殊標記。檢索器根據使用者查詢在索引庫中快速檢索出文檔,並按照一定的演算法進行結果頁的排序;查詢介面提供使用者訪問的查詢介面和服務端的查詢程式,當使用者查詢一個關鍵字時,搜尋引擎將搜索資料庫,找出所有與關鍵字相符合的網頁,按照一定演算法生成結果網頁返回用戶流覽器。


以下分別討論搜尋引擎的各個組成部分:


1.1 資訊採集器


資訊採集器(Robot)的主要功能是從WWW上獲取網頁和超鏈結構資訊。WWW結構是一個以網頁為節點,超鏈為邊的有向圖,因此,Robot的運行可以抽象為一個有向圖的遍歷過程。當Robot運行時,只要提供少量使用者配置的起始網頁,Robot能根據一定的演算法,獲取新的網頁和超鏈,並沿著這些超鏈在網路上漫遊,收集資訊資源。Robot對網站的訪問是週期性的,一般為每月一次或數次,訪問次數視網頁的更新頻率而定。Robot的性能很大程度上影響了搜尋引擎網站的規模。


1.2 分析索引子


分析索引子的主要功能是分析收集的資訊,建立索引庫以供查詢。分析索引子的工作可拆分為兩部分,即分析器和索引子。首先,分析器根據網上資料的特點,按照特定的演算法,對已經搜集獲得的網頁和超鏈資訊進行分析,從中提取和用戶檢索相關的網頁描述資訊;然後,索引子對已分析好的網頁的抽象資料中抽出索引項目,建立索引。索引項目又分為客觀索引項目和內容索引項目:客觀索引項目與文檔的語義內容無關,如作者名、URL、更新時間、編碼長度、連結頻次度等;內容索引項目反映文檔內容,如關鍵字及其等級值、短語、單字等。內容索引項目包括單字索引項目和短語索引項目。索引子建立內容索引項目時,對於英文來講是比較容易提取的,因為英文單詞之間有空格來分隔,而對於像中文等連續書寫的語言,就必須進行詞語的切分,這就涉及到中文搜尋引擎中的切詞技術。


分析器分析所得的網頁描述資訊,都是頁面到頁面描述資料的正排表。索引子的核心工作就是重新整理這些網頁描述資訊,對必要的資料項目建立倒排表(包括關鍵字到網頁的倒排表、網站到網頁的倒排表等),為用戶的檢索做準備。


分析索引子是搜尋引擎的核心技術之一,它的策略很大程度上影響了搜尋引擎的效率與準確性。目前,比較常用的方法是對網頁的標題(Title)和內容(Comment)進行索引。


1.3 檢索器


檢索器的功能是接收、解釋用戶的搜索請求;根據使用者的查詢在索引庫中快速檢出文檔;計算網頁與搜索請求的關聯度;對將要輸出的結果進行排序;實現用戶相關性回饋機制。檢索器常用的資訊檢索模型有:布林邏輯模型、模糊邏輯模型、向量空間模型和概率模型。大多數檢索系統是把以上各種模型混合在一起,以達到最佳檢索效果。


1.4 查詢介面


查詢介面是為使用者提供使用搜尋引擎的介面。它的主要功能是輸入使用者查詢、顯示查詢結果、提供使用者相關性回饋機制,以方便用戶使用搜尋引擎,從而高效、多樣地獲取有用資訊。查詢介面技術主要有搜索請求技術、搜索結果表現技術、用戶行為分析技術。無論技術如何發展,查詢介面的設計都是為了充分適應人的思維方式。


1.5 挖掘器


挖掘器提取使用者相關資訊,利用這些資訊來提高檢索服務的品質。挖掘器的性能依賴於使用者資訊庫的建立。使用者資訊庫是用來記錄使用者的相關資訊,如使用者的IP地址,用戶的所有檢索串以及用戶對這些檢索的回應。使用者也可以向搜尋引擎登記相應的資訊,如所在的國家、地區、愛好、職業等,這些資訊也將被記錄在使用者資訊庫中,以備以後提高用戶檢索的品質。挖掘器根據該使用者以前檢索行為的學習統計以及登記的資訊,為使用者提供他最期望的檢索結果。挖掘器的使用在個性化服務中起著關鍵性的作用。


搜尋引擎的工作原理簡言之,即資訊採集軟體從一個已知的文檔集中讀取資訊,並檢查這些文檔的連結指標,指出新的資訊空間,然後取出這些新空間的文檔,將它們加入到索引資料庫,檢索器通過索引資料庫為使用者的查詢請求提供服務。現有的搜尋引擎在資訊維護、資訊重複、網路及網站負載方面還存在很大的不足,索引資料庫往往很大,從而降低了查準率。


2 搜尋引擎主要技術分析


2.1 Web文檔收集


Robot是搜尋引擎中的一個重要模組,也是搜尋引擎工作的一個入口。Robot是一種能夠利用Web文檔內的超級連結遞迴訪問新文檔的軟體程式。具體說就是,在自動載入方式下,從一事先制定好的URL清單出發,根據HTTP協定自動訪問WWW網頁,當網頁被提取後,分析提取網頁中超文字的URL,將其加入URL列表,同時以此超級連結作為新的起點,進一步訪問其他網頁,不斷迴圈下去。Robot的工作執行緒結構如圖2所示。


首先,URL解析器接受需要獲取URL位址鏈表,將其解析為IP位址,然後Robot從URL解析器中獲取IP位址,存入URL緩衝區中,再由Robot搜索訪問網頁,並將文本存入緩衝區,再傳到頁面記憶體,對於新頁面中所包含的URL則存入URL列表中。


Robot在搜索過程中採用的策略有廣度優先搜索策略、深度優先搜索策略、深度-廣度結合搜索策略三種:


廣度優先搜索策略:先搜索一個Web文檔中所有的超文字連結,再繼續下一層搜索,直到最底層。具體就是,先標引新伺服器上的新文檔,然後標引已知伺服器上的新文檔,即找到儘量多的伺服器,保證一個伺服器上至少有一篇文檔加入到索引資料庫。廣度優先搜索策略的優點是,可找到兩個Web文檔間的最短路徑,降低對同一伺服器被訪問的頻度;缺點是對深層Web文檔挖掘不夠,或者會由於其挖掘時間較長而影響了回應時間,從而降低了搜索效率。


深度優先搜索策略:從起始結點出發,沿著超級連結一直搜索到不包含任何連結的文檔,在完成一條完整的鏈後返回某一文檔,繼續其他超鏈的搜索,直至沒有超鏈可以搜索。其優點是Robot可以遍歷一個Web網站,能較好地發掘Web文檔結構,同時也會由於過深的Web結構而進入一個無限迴圈之中而無法返回。


由於深度優先和廣度優先搜索各有利弊,為取長補短,優勢互補,目前應用較多是深度-廣度結合搜索策略。這是Robot搜索策略的發展趨勢。在此搜索中,Robot沿著超文字連結在網路上漫遊,當到達一個新的Web網站,對指向它的連結進行統計,並把該文檔提交給檢索器進行檢索,返回檢索結果,並對每一個檢索過的Web文檔做好標記,Robot在以後的搜索中到達此標記過的文檔時,則終止這條鏈的深層搜索。深度和廣度結合搜索極大地提高了查全率,搜索結果也總是最新的。但在大量用戶同時進行查詢時,就必然增加伺服器的負擔,導致網路擁塞而延時。


從Robot整個運行過程來看,我們也不難發現其存在的一些問題,因此,在Robot的設計中應該注意以下幾點:


①URL地址標準化。在網路上用的最多的是相對位址,包括IP地址和功能變數名稱。對於IP位址,可以通過DNS位址反解析獲取主機功能變數名稱;對於相對位址則可加上主機功能變數名稱,使之成為絕對位址。從而使一個URL只對應一個網頁,避免資訊重複提取,加快運算速度。


②避免掉進網路陷阱。因為一些靜態網頁的超級連結可能構成閉路,如果Robot在此閉路中反復執行則會形成閉環,這時需要加入新的URL;在動態網頁中,同一網頁中可能帶有不同的參數值,如果Robot把這些超級連結看成是不同的URL,就會掉進網路陷阱,這就要求Robot在抓取網頁時要忽略所有帶參數的URL。


③對於拒絕訪問的網頁,Robot應根據HTTP協定遵守“漫遊拒絕規則”。4Robot搜索在搜尋引擎中應用最為廣泛,但也正是由於Robot的搜索結構,常被批評為不安全及產生大的網路負載和伺服器負載,當檢索一個特定網站或檢索的題目範圍較窄時,使用Robot搜索是非常恰當的。


2.2 Web文檔排序


將搜索結果進行排序是搜尋引擎的一個重要課題,相關的研究也比較多。索引系統中權值計算模組就是為了實現Web文檔的排序功能。排序的方法主要是利用文檔之間的超文字連結關係、描述連結的文本及文本自身內容。一個網頁在一組網頁中的重要程度應該由這組網頁之間的相互作用關係來決定,而不是由自身來決定。在此,還存在一個重要概念,如果一個連結從網頁P指向網頁Q,那麼這個連結所得到的資訊不僅屬於網頁P,更屬於網頁Q,由此得到的資訊定向也更為準確。


如果將每個網頁認為是一個節點,每一條超文字鏈認為是結點P和Q之間的有向邊(從P指向Q),那麼整個Web就構成了一個龐大的有向圖。基於對此有向圖的理解,出現了兩大關於連結結構在搜索演算法上的表示和應用,Page Rank技術和HITS技術(Hyperlink-Induced Topic Search)。Page Rank由Stanford大學的Google研究小組提出,並應用于其開發的Google系統。HITS技術是由Cornell大學的J.M.Kleinberg教授等人首先提出,並應用於IBM的Clever系統開發中。


2.2.1 Google系統的page Rank技術


Google系統的Page Rank技術實現建立在一個“隨機衝浪”模型的假設上,這個“隨機衝浪”模型是用來描述網路使用者對網頁的訪問行為。模型假設如下:


①用戶隨機地選擇一個網頁作為上網的起始網頁;


②看完這個網頁後,從該網頁內所含的超鏈內隨機地選擇一個頁面繼續進行流覽;


③沿著超鏈前進了一定數目的網頁後,使用者對這個主題感到厭倦,重新隨機選擇一個網頁進行流覽,並重複2和3。按照以上的使用者行為模型,每個網頁可能被訪問到的次數就是該網頁的連結權值。假設網頁P存在T1,T2……Tn的連結網頁;參數d代表“隨機飆網者”沿著連結訪問網頁的衰減因素,取值範圍在0~1之間,根據經驗值我們一般取為0.85;C(Ti)代表網頁Ti鏈向其他網頁的連結數量;PR(P)定義為網頁P的連結權值。Page Rank採用以下公式計算這個權值:


應用以上遞推公式可以算出每一個網頁的連結權值(Page Rank),並且與網路規則連結矩陣所構成的有向圖的特徵向量相符合。Google研究小組計算了26,000,000個網頁的Page Rank,在一個中型工作站只用幾個小時即得所有結果。對Google系統測試結果也表明,Page Rank技術能夠大幅度地提高簡單檢索返回結果的品質,同時能夠有效地防止網頁編寫者對搜尋引擎的欺騙,因為如果某網頁沒有任何連結,其Page Rank值[PR(P)]則為0。目前,Google的Page Rank技術在網頁排序中被認為是比較成熟而有效的技術。


由於Page Rank技術建立在“隨機衝浪”使用者行為模型假設上,所以對於“隨機衝浪”用戶的簡單查詢來說,這種方法比較適合,並且可實現快速排序。但Google系統的排序是在網頁搜集完成後離線計算每個網頁的Page Rank值。檢索時,檢索器只從資料庫中取出資料而不做額外運算,所以它的回應速度比較快,同時也缺乏用戶查詢的靈活性,從某種程度上說,其檢索結果還不夠精確。


2.2.2 HITS反覆運算演算法


首先,網頁按其作用分為兩類:Authority網頁和Hub網頁。Authority網頁指那些真正的使用者查詢所需資訊的源所在地,即對於一個特定的用戶查詢,該網頁提供最好的相關信息;Hub網頁指那些資訊內容集中所在地,對Hub提供很多指向高品質Authority網頁的超鏈。


HITS演算法的出發點就是一個Hub指向多個Authority,而一個Authority被多個Hub指向,兩者之間是一種相互增強的關係。如果要得到某一網頁具體的Hub權值和Authority權值,則須打破這種相互增強關係的影響。Kleinberg在原文中給出了完整的數學證明來說明這種關係是可以被打破的並最終趨於一個穩態值。


Kleinberg使用的是反覆運算演算法來表徵每一網頁的Hub權值和Authority權值。在一個網頁集合中,每一個網頁都有Hub權值[H(P)]和Authority權值[A(P)],在每一次反覆運算中分兩步:1用所有指向P的網頁的H(P)值來替代A(P);2用所有被P指向的網頁的A(P)值來替代H(P)。


把(p,q)抽象為集合中的任一對超鏈,在所有的(p,q)的相互評價中,轉化為向量的運算,經過E次反覆運算運算後,向量A和H趨於相應的穩態值。反覆運算公式如下:


HITS反覆運算演算法在搜尋引擎中的具體應用是,當用戶提交一個查詢,Robot利用關鍵字得到一個網頁根集合,再根據超鏈並結合一定的搜索策略來擴展根集合,將被連結的網頁加入根集合而形成新集合,重複至得到一個較大的網頁集合。然後對集合中網頁採用HITS反覆運算計算出集合中每一網頁的Hub權值和Authority權值,分別取出前n個結果返回給用戶。


由以上簡單描述可以推論HITS演算法適用於使用者一次查詢結果中精選出Hub和Authority網頁。值得一提的是,某一網頁的Hub權值和Authority權值是互斥的,也就是說,Hub值越高,其Authority權值越低,反之亦然。所以,在結果頁的提供上應該讓用戶更多地參與選擇排序方法。


在HITS演算法的基礎上,Soumen Chakrabarti做了進一步改進,提出結合文本相關性HITS演算法,利用描述連結的文本內容(anchor text)更加精化了結果,這種演算法比較適用於主題檢索。


HITS反覆運算靈活性強,結果較為精確,但由於都是基於反覆運算,速度較慢,回應使用者查詢要進行大量的運算,比較耗費伺服器資源。


2.3 Web文檔檢索


2.3.1 向量空間模型的應用


搜尋引擎的最終目的是為使用者提供高品質的查詢結果。查詢結果優劣很大程度上取決於用戶查詢和結果文檔的相關程度。Salton教授提出了向量空間模型(VSM:Vector Space Model)應用於搜尋引擎檢索模組的相關度計算。


在VSM中,把文檔看成是由相互獨立的詞條組(T1,T2,……Tn)構成,並對每一詞條Ti根據其在文檔中的重要程度賦以相應的權值Wi。由(T1,T2,……Tn)分解得到的正文詞條向量就構成了一個以(T1,T2,……Tn)為坐標軸(W1,W2,……Wn)為座標值的文檔向量空間,文檔為空間中的一個點。如果把檢索器中所有的Web文檔和用戶查詢映射到這個文檔向量空間,則把文檔資訊匹配轉化為向量空間的向量匹配。換句話說,用戶查詢與被檢索文檔的相關度取決於向量之間的余弦值,向量夾角越小,相關度越高。計算公式如下:


(1)


其中Q代表用戶查詢,D代表被檢索文檔,Wd,t、Wq,t代表詞條T在文檔D和Q中的權重。


根據TF*IDF律,文檔詞條的權重Wd,t與詞條在文檔D的出現頻率fd,t成正比,與文檔集N中包含該詞條的文檔出現頻率ft成正比,即


(2)


綜合以上兩式(1)、(2),便可計算出用戶查詢Q和被檢索文檔D的相關度。


利用VSM計算用戶查詢和檢索結果的相關度,並進行相關度排序,是搜尋引擎應該實現的一項功能。因為在結果頁顯示上,由於搜尋引擎的查詢結果一般數目很多,使用者往往注重的是前幾條查詢結果,也很少有用戶會點擊所有的查詢結果,結果翻頁頻率也不高,所以為用戶提供相關度較高的查詢結果會得到用戶較高的滿意度。因此,相關度排序是搜尋引擎優劣的一個重要評價指標。搜尋引擎開發人員在檢索結果的相關度排序上也做了不少研究,而VSM在目前的搜尋引擎的應用較為廣泛。同時,VSM也是大多搜尋引擎自動分類技術的理論基礎。


綜上,無論是從搜尋引擎的工作原理分析,還是從搜尋引擎各部分所涉及的主流技術分析,搜尋引擎的發展始終圍繞的是用戶:Robot的設計要為使用者搜集盡可能全的資訊;Page Rank技術或者HITS反覆運算演算法或者其他的排序策略都是要為用戶提供高品質的查詢結果;空間向量模型在檢索過程中用於相關度的計算,目的是要使結果更加符合用戶查詢要求。超文字連結的研究,Web文檔相關度的計算都是基於資訊資源本身的研究。


我們不可否認這些技術在搜尋引擎中所起的重要作用。筆者在此想提出的一點是:即使基於資源本身的研究繼續往前發展或者還有新技術出現,它們能達到的效果也就是提高搜尋引擎的測試指標。對於用戶來說,這種變化並不是顯而易見的,它們的邊際效用是遞減的。因此,當一些技術的發展處於瓶頸狀態時,基於使用者行為的研究就變得重要起來,讓搜尋引擎更關注用戶的行為和習慣,對不同的用戶群甚至細化到使用者個人提供個性化的服務,而且這種服務是由搜尋引擎智慧而主動地提供,也就是說這是一個讓搜尋引擎學習人類思維和行為並且能夠自我調整的過程。像資訊過濾技術、個性化檢索、基於Agent智慧代理的Meta搜尋引擎等都是以搜尋引擎主動適應用戶的角度為出發點的。所以,搜尋引擎的未來發展是使之成為一個更加個性化、更加智慧化的系統,更重視使用者的行為而不是資訊本身。智慧搜尋引擎技術在未來的發展中將體現對當前功能和特性的完善與豐富,同時也將結合人工智慧、多媒體和協同技術等領域的研究成果,實現搜尋引擎領域中的新突破。


 

arrow
arrow
    全站熱搜

    seohouse 發表在 痞客邦 留言(1) 人氣()