WEB超鏈分析算法

超鏈分析的基本原理是:在某次搜尋的所有結果中,被其他網頁用超鏈指向得越多的網頁,其價值就越高,就越應該在結果排序中排到前面。

基本介紹

  • 中文名:WEB超鏈分析算法
  • 類型:名詞
  • 領域:計算機
  • 所屬:算法
基本原理,分析算法,

基本原理

超鏈分析是一種引用投票機制,對於靜態網頁或者網站主頁,它具有一定的合理性,因
為這樣的網頁容易根據其在網際網路上受到的評價產生不同的超鏈指向量,超鏈分析的結果可
以反映網頁的重要程度,從而給用戶提供更重要、更有價值的搜尋結果。
搜尋引擎,並不能真正理解網頁上的內容,它只能機械地匹配網頁上的文字。它收集了
網際網路上幾千萬到幾十億個網頁並對網頁中的每一個文字(即關鍵字)進行索引,建立索引
資料庫的全文搜尋引擎。當用戶查找某個關鍵字的時候,所有在頁面內容中包含了該關鍵字
的網頁都將作為搜尋結果被搜出來。在經過複雜的算法進行排序後,這些結果將按照與搜尋
關鍵字的相關度高低,依次排列。
搜尋引擎在查詢時主要根據一個站點的內容與查詢詞的關聯程度進行排序。對於一個站
點的內容搜尋引擎則是根據標題、關鍵字、描述、頁面開始部分的內容以及這些內容本身之
間的關聯程度以及一個站點在整個網路上的關聯程度來確定的。
使用超鏈分析技術,除要分析索引網頁本身的文字,還要分析索引所有指向該網頁的鏈
接的URL、AnchorText,甚至連結周圍的文字。所以,有時候,即使某個網頁A 中並沒有
某個詞,比如“軟體”,但如果有別的網頁B 用連結“軟體”指向這個網頁A,那么用戶搜
索“軟體”時也能找到網頁A。而且,如果有越多網頁(C、D、E、F……)用名為“軟體”
的連結指向這個網頁A,或者給出這個連結的源網頁(B、C、D、E、F……)越優秀,那
么網頁A 在用戶搜尋“超鏈分析”時也會被認為相關度越高,排序也會越靠前。

分析算法

2.1 Google和PageRank算法
搜尋引擎Google最初是史丹福大學的博士研究生Sergey Brin和Lawrence Page實現的一個原型系統[2],現在已經發展成為WWW上最好的搜尋引擎之一。Google的體系結構類似於傳統的搜尋引擎,它與傳統的搜尋引擎最大的不同處在於對網頁進行了基於權威值的排序處理,使最重要的網頁出現在結果的最前面。Google通過PageRank元算法計算出網頁的PageRank值,從而決定網頁在結果集中的出現位置,PageRank值越高的網頁,在結果中出現的位置越前。
2.1.1 PageRank算法
PageRank算法基於下面2個前提:
前提1:一個網頁被多次引用,則它可能是很重要的;一個網頁雖然沒有被多次引用,但是被重要的網頁引用,則它也可能是很重要的;一個網頁的重要性被平均的傳遞到它所引用的網頁。這種重要的網頁稱為權威(Authoritive)網頁。
前提2:假定用戶一開始隨機的訪問網頁集合中的一個網頁,以後跟隨網頁的向外連結向前瀏覽網頁,不回退瀏覽,瀏覽下一個網頁的機率就是被瀏覽網頁的PageRank值。
簡單PageRank算法描述如下:u是一個網頁,是u指向的網頁集合,是指向u的網頁集合,是u指向外的連結數,顯然=| | ,c是一個用於規範化的因子(Google通常取0.85),(這種表示法也適用於以後介紹的算法)則u的Rank值計算如下:
這就是算法的形式化描述,也可以用矩陣來描述此算法,設A為一個方陣,行和列對應網頁集的網頁。如果網頁i有指向網頁j的一個連結,則,否則=0。設V是對應網頁集的一個向量,有V=cAV,V為A的特徵根為c的特徵向量。實際上,只需要求出最大特徵根的特徵向量,就是網頁集對應的最終PageRank值,這可以用疊代方法計算。
如果有2個相互指向的網頁a,b,他們不指向其它任何網頁,另外有某個網頁c,指向a,b中的某一個,比如a,那么在疊代計算中,a,b的rank值不分布出去而不斷的累計。如下圖:
為了解決這個問題,Sergey Brin和Lawrence Page改進了算法,引入了衰退因子E(u),E(U)是對應網頁集的某一向量,對應rank的初始值,算法改進如下:
其中,=1,對應的矩陣形式為V’=c(AV’+E)。
另外還有一些特殊的連結,指向的網頁沒有向外的連結。PageRank計算時,把這種連結首先除去,等計算完以後再加入,這對原來計算出的網頁的rank值影響是很小的。
Pagerank算法除了對搜尋結果進行排序外,還可以套用到其它方面,如估算網路流量,向後連結的預測器,為用戶導航等[2]。
2.1.2 算法的一些問題
Google是結合文本的方法來實現PageRank算法的[2],所以只返回包含查詢項的網頁,然後根據網頁的rank值對搜尋到的結果進行排序,把rank值最高的網頁放置到最前面,但是如果最重要的網頁不在結果網頁集中,PageRank算法就無能為力了,比如在 Google中查詢search engines,像Google,Yahoo,Altivisa等都是很重要的,但是Google返回的結果中這些網頁並沒有出現。 同樣的查詢例子也可以說明另外一個問題,Google,Yahoo是WWW上最受歡迎的網頁,如果出現在查詢項car的結果集中,一定會有很多網頁指向它們,就會得到較高的rank值, 事實上他們與car不太相關。
在PageRank算法的基礎上,其它的研究者提出了改進的PageRank算法。華盛頓大學計算機科學與工程系的Matthew Richardson和Pedro Dominggos提出了結合連結和內容信息的PageRank算法,去除了PageRank算法需要的前提2,增加考慮了用戶從一個網頁直接跳轉到非直接相鄰的但是內容相關的另外一個網頁的情況[3]。斯坦大學計算機科學系Taher Haveliwala提出了主題敏感(Topic-sensitive)PageRank算法[4]。史丹福大學計算機科學系Arvind Arasu等經過試驗表明,PageRank算法計算效率還可以得到很大的提高[22]。
2.2 HITS算法及其變種
PageRank算法中對於向外連結的權值貢獻是平均的,也就是不考慮不同連結的重要性。而WEB的連結具有以下特徵:
1.有些連結具有注釋性,也有些連結是起導航或廣告作用。有注釋性的連結才用於權威判斷。
2.基於商業或競爭因素考慮,很少有WEB網頁指向其競爭領域的權威網頁。
3.權威網頁很少具有顯式的描述,比如Google主頁不會明確給出WEB搜尋引擎之類的描述信息。
可見平均的分布權值不符合連結的實際情況[17]。J. Kleinberg[5]提出的HITS算法中引入了另外一種網頁,稱為Hub網頁,Hub網頁是提供指向權威網頁連結集合的WEB網頁,它本身可能並不重要,或者說沒有幾個網頁指向它,但是Hub網頁確提供了指向就某個主題而言最為重要的站點的連結集合,比一個課程主頁上的推薦參考文獻列表。一般來說,好的Hub網頁指向許多好的權威網頁;好的權威網頁是有許多好的Hub網頁指向的WEB網頁。這種Hub與Authoritive網頁之間的相互加強關係,可用於權威網頁的發現和WEB結構和資源的自動發現,這就是Hub/Authority方法的基本思想。
2.2.1 HITS算法
HITS(Hyperlink-Induced Topic Search)算法是利用Hub/Authority方法的搜尋方法,算法如下:將查詢q提交給傳統的基於關鍵字匹配的搜尋引擎.搜尋引擎返回很多網頁,從中取前n個網頁作為根集(root set),用S表示。S滿足如下3個條件:
1.S中網頁數量相對較小
2.S中網頁大多數是與查詢q相關的網頁
3.S中網頁包含較多的權威網頁。
通過向S中加入被S引用的網頁和引用S的網頁將S擴展成一個更大的集合T.
以T中的Hub網頁為頂點集Vl,以權威網頁為頂點集V2,Vl中的網頁到V2中的網頁的超連結為邊集E,形成一個二分有向圖SG=(V1,V2,E)。對V1中的任一個頂點v,用h(v)表示網頁v的Hub值,對V2中的頂點u,用a(u)表示網頁的Authority值。開始時h(v)=a(u)=1,對u執行I操作修改它的a(u),對v執行O操作修改它的h(v),然後規範化a(u),h(v),如此不斷的重複計算下面的操作I,O,直到a(u),h(v)收斂。(證明此算法收斂可見)
I 操作: (1) O操作: (2)
每次疊代後需要對a(u),h(v)進行規範化處理:
式(1)反映了若一個網頁由很多好的Hub指向,則其權威值會相應增加(即權威值增加為所有指向它的網頁的現有Hub值之和)。式(2)反映了若一個網頁指向許多好的權威頁,則Hub值也會相應增加(即Hub值增加為該網頁連結的所有網頁的權威值之和)。
和PageRank算法一樣,可以用矩陣形式來描述算法,這裡省略不寫。
HITS算法輸出一組具有較大Hub值的網頁和具有較大權威值的網頁。
2.2.2 HITS的問題
HITS算法有以下幾個問題:
1.實際套用中,由S生成T的時間開銷是很昂貴的,需要下載和分析S中每個網頁包含的所有連結,並且排除重複的連結。一般T比S大很多,由T生成有向圖也很耗時。需要分別計算網頁的A/H值,計算量比PageRank算法大。
2.有些時候,一主機A上的很多文檔可能指向另外一台主機B上的某個文檔,這就增加了A上文檔的Hub值和B上文檔的Authority,相反的情況也如此。HITS是假定某一文檔的權威值是由不同的單個組織或者個人決定的,上述情況影響了A和B上文檔的Hub和Authority值[7]。
3.網頁中一些無關的連結影響A,H值的計算。在製作網頁的時候,有些開發工具會自動的在網頁上加入一些連結,這些連結大多是與查詢主題無關的。同一個站點內的連結目的是為用戶提供導航幫助,也與查詢主題不甚無關,還有一些商業廣告,贊助商和用於友情交換的連結,也會降低HITS算法的精度[8]。
4.HITS算法只計算主特徵向量,也就是只能發現T集合中的主社區(Community),忽略了其它重要的社區[12]。事實上,其它社區可能也非常重要。
5.HITS算法最大的弱點是處理不好主題漂移問題(topic drift)[7,8],也就是緊密連結TKC(Tightly-Knit Community Effect)現象[8]。如果在集合T中有少數與查詢主題無關的網頁,但是他們是緊密連結的,HITS算法的結果可能就是這些網頁,因為HITS只能發現主社區,從而偏離了原來的查詢主題。下面討論的SALSA算法中解決了TKC問題。
6.用HITS進行窄主題查詢時,可能產生主題泛化問題[5,9],即擴展以後引入了比原來主題更重要的新的主題,新的主題可能與原始查詢無關。泛化的原因是因為網頁中包含不同主題的向外連結,而且新主題的連結具有更加的重要性。
2.2.3 HITS的變種
HITS算法遇到的問題,大多是因為HITS是純粹的基於連結分析的算法,沒有考慮文本內容,繼J. Kleinberg提出HITS算法以後,很多研究者對HITS進行了改進,提出了許多HITS的變種算法,主要有:
2.2.3.1 Monika R. Henzinger和Krishna Bharat對HITS的改進
對於上述提到的HITS遇到的第2個問題,Monika R. Henzinger和Krishna Bharat在[7]中進行了改進。假定主機A上有k個網頁指向主機B上的某個文檔d,則A上的k個文檔對B的Authority貢獻值總共為1,每個文檔貢獻1/k,而不是HITS中的每個文檔貢獻1,總共貢獻k。類似的,對於Hub值,假定主機A上某個文檔t指向主機B上的m個文檔,則B上m個文檔對t的Hub值總共貢獻1,每個文檔貢獻1/m。I,O操作改為如下
I 操作:
O操作:
調整後的算法有效的解決了問題2,稱之為imp算法。
在這基礎上,Monika R. Henzinger和Krishna Bharat還引入了傳統信息檢索的內容分析技術來解決4和5,實際上也同時解決了問題3。具體方法如下,提取根集S中的每個文檔的前1000個詞語,串連起來作為查詢主題Q,文檔Dj和主題Q的相似度按如下公式計算:
,,=項i在查詢Q中的出現次數,
=項i在文檔Dj中的出現次數,IDFi是WWW上包含項i的文檔數目的估計值。
在S擴展到T後,計算每個文檔的主題相似度,根據不同的閾值(threshold)進行刷選,可以選擇所有文檔相似度的中值,根集文檔相似度的中值,最大文檔相似度的分數,如1/10,作為閾值。根據不同閾值進行處理,刪除不滿足條件的文檔,再運行imp算法計算文檔的A/H值,這些算法分別稱為med,startmed,maxby10。
在此改進的算法中,計算文檔的相似度時間開銷會很大。
2.2.3.2 ARC算法
IBM Almaden研究中心的Clever工程組提出了ARC(Automatic Resource Compilation)算法,對原始的HITS做了改進,賦予網頁集對應的連結矩陣初值時結合了連結的錨(anchor)文本,適應了不同的連結具有不同的權值的情況。
ARC算法與HITS的不同主要有以下3點:
1.由根集S擴展為T時,HITS只擴展與根集中網頁連結路徑長度為1的網頁,也就是只擴展直接與S相鄰的網頁,而ARC中把擴展的連結長度增加到2,擴展後的網頁集稱為增集(Augment Set)。
2.HITS算法中,每個連結對應的矩陣值設為1,實際上每個連結的重要性是不同的,ARC算法考慮了連結周圍的文本來確定連結的重要性。考慮連結p->q,p中有若干連結標記,文本1<a href=”q”>錨文本</a>文本2,設查詢項t在文本1,錨文本,文本2,出現的次數為n(t),則w(p,q)=1+n(t)。文本1和文本2的長度經過試驗設為50位元組[10]。構造矩陣W,如果有網頁i->j ,Wi,j=w(i,j),否則Wi,j=0,H值設為1,Z為W的轉置矩陣,疊代執行下面3個的操作:
(1)A=WH (2)H=ZA (3)規範化A,H
3.ARC算法的目標是找到前15個最重要的網頁,只需要A/H的前15個值相對大小保持穩定即可,不需要A/H整個收斂,這樣2中疊代次數很小就能滿足,[10]中指出疊代5次就可以,所以ARC算法有很高的計算效率,開銷主要是在擴展根集上。
2.2.3.3 Hub平均( Hub-Averaging-Kleinberg)算法
Allan Borodin等在[11]指出了一種現象,設有M+1個Hub網頁,M+1個權威網頁,前M個Hub指向第一個權威網頁,第M+1個Hub網頁指向了所有M+1個權威網頁。顯然根據HITS算法,第一個權威網頁最重要,有最高的Authority值,這是我們希望的。但是,根據HITS,第M+1個Hub網頁有最高的Hub值,事實上,第M+1個Hub網頁既指向了權威值很高的第一個權威網頁,同時也指向了其它權威值不高的網頁,它的Hub值不應該比前M個網頁的Hub值高。因此,Allan Borodin修改了HITS的O操作:
O操作: ,n是(v,u)的個數
調整以後,僅指向權威值高的網頁的Hub值比既指向權威值高又指向權威值低的網頁的Hub值高,此算法稱為Hub平均(Hub-Averaging-Kleinberg)算法。
2.2.3.4 閾值(Threshhold—Kleinberg)算法
Allan Borodin等在[11]中同時提出了3種閾值控制的算法,分別是Hub閾值算法,Authority閾值算法,以及結合2者的全閾值算法。
計算網頁p的Authority時候,不考慮指向它的所有網頁Hub值對它的貢獻,只考慮Hub值超過平均值的網頁的貢獻,這就是Hub閾值方法。
Authority閾值算法和Hub閾值方法類似,不考慮所有p指向的網頁的Authority對p的Hub值貢獻,只計算前K個權威網頁對它Hub值的貢獻,這是基於算法的目標是查找最重要的K個權威網頁的前提。
同時使用Authority閾值算法和Hub閾值方法的算法,就是全閾值算法
2.3 SALSA算法
PageRank算法是基於用戶隨機的向前瀏覽網頁的直覺知識,HITS算法考慮的是Authoritive網頁和Hub網頁之間的加強關係。實際套用中,用戶大多數情況下是向前瀏覽網頁,但是很多時候也會回退瀏覽網頁。基於上述直覺知識,R. Lempel和S. Moran提出了SALSA(Stochastic Approach for Link-Structure Analysis)算法[8],考慮了用戶回退瀏覽網頁的情況,保留了PageRank的隨機漫遊和HITS中把網頁分為Authoritive和Hub的思想,取消了Authoritive和Hub之間的相互加強關係。
具體算法如下:
1.和HITS算法的第一步一樣,得到根集並且擴展為網頁集合T,並除去孤立節點。
2.從集合T構造無向圖G’=(Vh,Va,E)
Vh = { sh |  s∈C and out-degree(s) > 0 } ( G’的Hub邊).
Va = { sa |  s∈C and in-degree(s) > 0 } (G’的Authority邊).
E= { (sh , ra) | s->r  in T }
這就定義了2條鏈,Authority鏈和Hub鏈。
3.定義2條馬爾可夫鏈的變化矩陣,也是隨機矩陣,分別是Hub矩陣H,Authority矩陣A。
4.求出矩陣H,A的主特徵向量,就是對應的馬爾可夫鏈的靜態分布。
5.A中值大的對應的網頁就是所要找的重要網頁。
SALSA算法沒有HITS中相互加強的疊代過程,計算量遠小於HITS。SALSA算法只考慮直接相鄰的網頁對自身A/H的影響,而HITS是計算整個網頁集合T對自身AH的影響。
實際套用中,SALSA在擴展根集時忽略了很多無關的連結,比如
1.同一站點內的連結,因為這些連結大多只起導航作用。
2.CGI 腳本連結。
3.廣告和贊助商連結。
試驗結果表明,對於單主題查詢java,SALSA有比HITS更精確的結果,對於多主題查詢abortion,HITS的結果集中於主題的某個方面,而SALSA算法的結果覆蓋了多個方面,也就是說,對於TKC現象,SALSA算法比HITS算法有更高的健壯性。
2.3.1 BFS(Backword Forward Step)算法
SALSA算法計算網頁的Authority值時,只考慮網頁在直接相鄰網頁集中的受歡迎程度,忽略其它網頁對它的影響。HITS算法考慮的是整個圖的結構,特別的,經過n步以後,網頁i的Authority的權重是,為離開網頁i的的路徑的數目,也就是說網頁j<>i,對i的權值貢獻等於從i到j的路徑的數量。如果從i到j包含有一個迴路,那么j對i的貢獻將會呈指數級增加,這並不是算法所希望的,因為迴路可能不是與查詢相關的。
因此,Allan Borodin等[11]提出了BFS(Backward Forward Step)算法,既是SALSA的擴展情況,也是HITS的限制情況。基本思想是,SALSA只考慮直接相鄰網頁的影響,BFS擴展到考慮路徑長度為n的相鄰網頁的影響。在BFS中,被指定表示能通過路徑到達i的結點的集合,這樣j對i的貢獻依賴就與j到i的距離。BFS採用指數級降低權值的方式,結點i的權值計算公式如下:
=|B(i)|+ |BF(i)| +|BFB(i)|+……+||
算法從結點i開始,第一步向後訪問,然後繼續向前或者向後訪問鄰居,每一步遇到新的結點加入權值計算,結點只有在第一次被訪問時加入進去計算。
2.4 PHITS
D. Cohn and H. Chang提出了計算Hub和Authority的統計算法PHITS(Probabilistic analogue of the HITS)[12]。他們提出了一個機率模型,在這個模型裡面一個潛在的因子或者主題z影響了文檔d到文檔c的一個連結,他們進一步假定,給定因子z,文檔c的條件分布P(c|z)存在,並且給定文檔d,因子z的條件分布P(z|d)也存在。
P(d) P(z|d) P(c|z) ,其中
根據這些條件分布,提出了一個可能性函式(likelihood function)L,
,M是對應的連結矩陣
然後,PHITS算法使用Dempster等提出的EM算法[20]分配未知的條件機率使得L最大化,也就是最好的解釋了網頁之間的連結關係。算法要求因子z的數目事先給定。Allan Borodin指出,PHITS中使用的EM算法可能會收斂於局部的最大化,而不是真正的全局最大化[11]。D. Cohn和T. Hofmann還提出了結合文檔內容和超連結的機率模型[13]。
2.5 貝葉斯算法
Allan Borodin等提出了完全的貝葉斯統計方法來確定Hub和Authoritive網頁[11]。假定有M個Hub網頁和N個Authority網頁,可以是相同的集合。每個Hub網頁有一個未知的實數參數,表示擁有超鏈的一般趨勢,一個未知的非負參數,表示擁有指向Authority網頁的連結的趨勢。每個Authoritive網頁j,有一個未知的非負參數,表示j的Authority的級別。
統計模型如下,Hub網頁i到Authority網頁j的連結的先驗機率如下給定:
P(i,j)=Exp(+)/(1+Exp(+))
Hub網頁i到Authority網頁j沒有連結時,P(i,j)=1/(1+Exp(+))
從以上公式可以看出,如果很大(表示Hub網頁i有很高的趨勢指向任何一個網頁),或者和都很大(表示i是個高質量Hub,j是個高質量的Authority網頁),那么i->j的連結的機率就比較大。
為了符合貝葉斯統計模型的規範,要給2M+N個未知參數(,,)指定先驗分布,這些分布應該是一般化的,不提供信息的,不依賴於被觀察數據的,對結果只能產生很小影響的。Allan Borodin等在中指定滿足正太分布N(μ,),均值μ=0,標準方差δ=10,指定和滿足Exp(1)分布,即x>=0,P(>=x)=P(>=x)=Exp(-x)。
接下來就是標準的貝葉斯方法處理和HITS中求矩陣特徵根的運算。
2.5.1 簡化的貝葉斯算法
Allan Borodin同時提出了簡化的上述貝葉斯算法,完全除去了參數,也就不再需要正太分布的參數μ,δ了。計算公式變為:P(i,j)=/(1+),Hub網頁到Authority網頁j沒有連結時,P(i,j)=1/(1+)。
Allan Borodin 指出簡化的貝葉斯產生的效果與SALSA算法的結果非常類似。
2.6 Reputation
上面的所有算法,都是從查詢項或者主題出發,經過算法處理,得到結果網頁。多倫多大學計算機系Alberto Mendelzon, Davood Rafiei提出了一種反向的算法,輸入為某個網頁的URL地址,輸出為一組主題,網頁在這些主題上有聲望(repution)[16]。比如輸入,www.gamelan.com,可能的輸出結果是“java”,具體的系統可以訪問htpp://www.cs.toronto.edu/db/topic。
給定一個網頁p,計算在主題t上的聲望,首先定義2個參數,滲透率和聚焦率,簡單起見,網頁p包含主題項t,就認為p在主題t上。
是指向p而且包含t的網頁數目,是指向p的網頁數目,是包含t的網頁數目。結合非條件機率,引入,,是WEB上網頁的數目。P在t上的聲望計算如下:
指定是既指向p有包含t的機率,即,顯然有
我們可以從搜尋引擎(如Altavista)的結果得到,, ,WEB上網頁的總數估計值某些組織會經常公布,在計算中是個常量不影響RM的排序,RM最後如此計算:
給定網頁p和主題t,RM可以如上計算,但是多數的情況的只給定網頁p,需要提取主題後計算。算法的目標是找到一組t,使得RM(p,t)有較大的值。TOPIC系統中是抽取指向p的網頁中的錨文本的單詞作為主題(上面已經討論過錨文本能很好描述目標網頁,精度很高),避免了下載所有指向p的網頁,而且RM(p,t)的計算很簡單,算法的效率較高。主題抽取時,還忽略了用於導航、重複的連結的文本,同時也過濾了停止字(stop word),如“a”,“the”,“for”,“in”等。
Reputation算法也是基於隨機漫遊模型的(random walk),可以說是PageRank和SALSA算法的結合體。
3.連結算法的分類及其評價
連結分析算法可以用來提高搜尋引擎的查詢效果,可以發現WWW上的重要的社區,可以分析某個網站的拓撲結構,聲望,分類等,可以用來實現文檔的自動分類等。歸根結底,能夠幫助用戶在WWW海量的信息裡面準確找到需要的信息。這是一個正在迅速發展的研究領域。
上面我們從歷史的角度總結了連結分析算法的發展歷程,較為詳細的介紹了算法的基本思想和具體實現,對算法的存在的問題也做了討論。這些算法有的處於研究階段,有的已經在具體的系統實現了。這些算法大體可以分為3類,基於隨機漫遊模型的,比如PageRank,Repution算法,基於Hub和Authority相互加強模型的,如HITS及其變種,基於機率模型的,如SALSA,PHITS,基於貝葉斯模型的,如貝葉斯算法及其簡化版本。所有的算法在實際套用中都結合傳統的內容分析技術進行了最佳化。一些實際的系統實現了某些算法,並且獲得了很好的效果,Google實現了PageRank算法,IBM Almaden Research Center 的Clever Project實現了ARC算法,多倫多大學計算機系實現了一個原型系統TOPIC,來計算指定網頁有聲望的主題。
AT&T香農實驗室的Brian Amento在指出,用權威性來評價網頁的質量和人類專家評價的結果是一致的,並且各種連結分析算法的結果在大多數的情況下差別很小[15]。但是,Allan Borodin也指出沒有一種算法是完美的,在某些查詢下,結果可能很好,在另外的查詢下,結果可能很差[11]。所以應該根據不同查詢的情況,選擇不同的合適的算法。
基於連結分析的算法,提供了一種衡量網頁質量的客觀方法,獨立於語言,獨立於內容,不需人工干預就能自動發現WEB上重要的資源,挖掘出WEB上重要的社區,自動實現文檔分類。但是也有一些共同的問題影響著算法的精度。
1.根集的質量。根集質量應該是很高的,否則,擴展後的網頁集會增加很多無關的網頁,產生主題漂移,主題泛化等一系列的問題,計算量也增加很多。算法再好,也無法在低質量網頁集找出很多高質量的網頁。
2.噪音連結。WEB上不是每個連結都包含了有用的信息,比如廣告,站點導航,贊助商,用於友情交換的連結,對於連結分析不僅沒有幫助,而且還影響結果。如何有效的去除這些無關連結,也是算法的一個關鍵點。
3.錨文本的利用。錨文本有很高的精度,對連結和目標網頁的描述比較精確。上述算法在具體的實現中利用了錨文本來最佳化算法。如何準確充分的利用錨文本,對算法的精度影響很大。
4.查詢的分類。每種算法都有自身的適用情況,對於不同的查詢,應該採用不同的算法,以求獲得最好的結果。因此,對於查詢的分類也顯得非常重要。
結束語:當然,這些問題帶有很大的主觀性,比如,質量不能精確的定義,連結是否包含重要的信息也沒有有效的方法能準確的判定,分析錨文本又涉及到語義問題,查詢的分類也沒有明確界限。如果算法要取得更好的效果,在這幾個方面需要繼續做深入的研究,相信在不久的將來會有更多的有趣和有用的成果出現。

相關詞條

熱門詞條

聯絡我們