百度關于算法的研究
2017-12-25 11:58
萬維網WWW是一個巨大的,分布全球的信息服務中心,正在以飛快的速度擴展。據百優了解在1998年WWW上就已經擁有約3.5億個文檔,每天增加約1百萬 的文檔,不到9個月的時間文檔總數就會翻一番。WEB上的文檔和傳統的文檔比較,有很多新的特點,它們是分布的,異構的,無結構或者半結構的,這就對傳統 信息檢索技術提出了新的挑戰。
傳統的WEB搜索引擎大多數是基于關鍵字匹配的,返回的結果是包含查詢項的文檔,也有基于目錄分類的搜索引擎,這些搜索引擎的結果并不令人滿意。有些站點有意提高關鍵字出現的頻率來提高自身在搜索引擎中的重要性,破壞搜索引擎結果的客觀性和準確性。
另外,有些重要的網頁并不包含查詢項。搜索引擎的分類目錄也不可能把所有的分類考慮全面,并且目錄大多靠人工維護,主觀性強,費用高,更新速度慢。
許多研究者發現,WWW上超鏈結構是個非常豐富和重要的資源,如果能夠充分利用的話,可以極大的提高檢索結果的質量。
基于這種超鏈分析的思想,Sergey Brin和Lawrence Page在1998年提出了PageRank算法,同年J. Kleinberg提出了HITS算法,其它一些學者也相繼提出了另外的鏈接分析算法,如SALSA,PHITS,Bayesian等算法。這些算法有的 已經在實際的系統中實現和使用,并且取得了良好的效果。在此,馬海祥就按照時間順序詳細的為大家剖析一下各種鏈接分析算法:
一、WEB超鏈分析算法
對于WEB超鏈分析算法,馬海祥就從PageRank算法、HITS算法、SALSA算法、PHITS算法、貝葉斯算法和Reputation算法來為大家解說一下:
1、Google和PageRank算法
搜索引擎Google初是斯坦福大學的博士研究生Sergey Brin和Lawrence Page實現的一個原型系統,現在已經發展成為WWW上好的搜索引擎之一。Google的體系結構類似于傳統的搜索引擎,它與傳統的搜索引擎大的不同 處在于對網頁進行了基于權威值的排序處理,使重要的網頁出現在結果的前面。
Google通過PageRank元算法計算出網頁的PageRank值,從而決定網頁在結果集中的出現位置,PageRank值越高的網頁,在結果中出現的位置越前。
(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)、算法的一些問題
Google是結合文本的方法來實現PageRank算法的,所以只返回包含查詢項的網頁,然后根據網頁的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,增加考慮了用戶從一個網頁直接跳轉到非直 接相鄰的但是內容相關的另外一個網頁的情況。
斯坦大學計算機科學系Taher Haveliwala提出了主題敏感(Topic-sensitive)PageRank算法。斯坦福大學計算機科學系Arvind Arasu等經過試驗表明,PageRank算法計算效率還可以得到很大的提高。
2、HITS算法及其變種
PageRank算法中對于向外鏈接的權值貢獻是平均的,也就是不考慮不同鏈接的重要性。而WEB的鏈接具有以下特征:
①、有些鏈接具有注釋性,也有些鏈接是起導航或廣告作用,有注釋性的鏈接才用于權威判斷。
②、基于商業或競爭因素考慮,很少有WEB網頁指向其競爭領域的權威網頁。
③、權威網頁很少具有顯式的描述,比如Google主頁不會明確給出WEB搜索引擎之類的描述信息。
可見平均的分布權值不符合鏈接的實際情況,J. Kleinberg提出的HITS算法中引入了另外一種網頁,稱為Hub網頁,Hub網頁是提供指向權威網頁鏈接集合的WEB網頁,它本身可能并不重要, 或者說沒有幾個網頁指向它,但是Hub網頁確提供了指向就某個主題而言為重要的站點的鏈接集合,比一個課程主頁上的推薦參考文獻列表。
一般來說,好的Hub網頁指向許多好的權威網頁;好的權威網頁是有許多好的Hub網頁指向的WEB網頁。這種Hub與Authoritive網頁之間的相互加強關系,可用于權威網頁的發現和WEB結構和資源的自動發現,這就是Hub/Authority方法的基本思想。
(1)、HITS算法
HITS(Hyperlink——Induced Topic Search)算法是利用Hub/Authority方法的搜索方法,算法如下:將查詢q提交給傳統的基于關鍵字匹配的搜索引擎。搜索引擎返回很多網頁, 從中取前n個網頁作為根集(root set),用S表示。S滿足如下3個條件:
①、S中網頁數量相對較小。
②、S中網頁大多數是與查詢q相關的網頁。
③、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操作:
O操作:
每次迭代后需要對a(u),h(v)進行規范化處理:
I操作反映了若一個網頁由很多好的Hub指向,則其權威值會相應增加(即權威值增加為所有指向它的網頁的現有Hub值之和)。
O操作反映了若一個網頁指向許多好的權威頁,則Hub值也會相應增加(即Hub值增加為該網頁鏈接的所有網頁的權威值之和)。
和PageRank算法一樣,可以用矩陣形式來描述算法,這里省略不寫。
HITS算法輸出一組具有較大Hub值的網頁和具有較大權威值的網頁。
(2)、HITS算法的問題
HITS算法有以下幾個問題:
①、實際應用中,由S生成T的時間開銷是很昂貴的,需要下載和分析S中每個網頁包含的所有鏈接,并且排除重復的鏈接。一般T比S大很多,由T生成有向圖也很耗時。需要分別計算網頁的A/H值,計算量比PageRank算法大。
②、有些時候,一主機A上的很多文檔可能指向另外一臺主機B上的某個文檔,這就增加了A上文檔的Hub值和B上文檔的Authority,相反的情況也如此。
HITS是假定某一文檔的權威值是由不同的單個組織或者個人決定的,上述情況影響了A和B上文檔的Hub和Authority值。
③、網頁中一些無關的鏈接影響A,H值的計算。在制作網頁的時候,有些開發工具會自動的在網頁上加入一些鏈接,這些鏈接大多是與查詢主題無關的。同一個站點內的鏈接目的是為用戶提供導航幫助,也與查詢主題不甚無關,還有一些商業廣告,贊助商和用于友情交換的鏈接,也會降低HITS算法的精度。
④、HITS算法只計算主特征向量,也就是只能發現T集合中的主社區(Community),忽略了其它重要的社區。事實上,其它社區可能也非常重要。
⑤、HITS算法大的弱點是處理不好主題漂移問題(topic drift),也就是緊密鏈接TKC(Tightly-Knit Community Effect)現象。如果在集合T中有少數與查詢主題無關的網頁,但是他們是緊密鏈接的,HITS算法的結果可能就是這些網頁,因為HITS只能發現主社 區,從而偏離了原來的查詢主題。
⑥、用HITS進行窄主題查詢時,可能產生主題泛化問題,即擴展以后引入了比原來主題更重要的新的主題,新的主題可能與原始查詢無關。泛化的原因是因為網頁中包含不同主題的向外鏈接,而且新主題的鏈接具有更加的重要性。
(3)、HITS的變種
HITS算法遇到的問題,大多是因為HITS是純粹的基于鏈接分析的算法,沒有考慮文本內容,繼J. Kleinberg提出HITS算法以后,很多研究者對HITS進行了改進,提出了許多HITS的變種算法,主要有:
①、Monika R. Henzinger和Krishna Bharat對HITS的改進對于上述提到的HITS遇到的第2個問題,Monika R. Henzinger和Krishna Bharat在中進行了改進。假定主機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。
據馬海祥了解在此改進的算法中,計算文檔的相似度時間開銷會很大。
②、ARC算法
IBM Almaden研究中心的Clever工程組提出了ARC(Automatic Resource Compilation)算法,對原始的HITS做了改進,賦予網頁集對應的連結矩陣初值時結合了鏈接的錨(anchor)文本,適應了不同的鏈接具有不 同的權值的情況。
ARC算法與HITS的不同主要有以下3點:
a、由根集S擴展為T時,HITS只擴展與根集中網頁鏈接路徑長度為1的網頁,也就是只擴展直接與S相鄰的網頁,而ARC中把擴展的鏈接長度增加到 2,擴展后的網頁集稱為增集(Augment Set)。
b、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字節。構造矩陣W,如果有網頁i——>j ,Wi,j=w(i,j),否則Wi,j=0,H值設為1,Z為W的轉置矩陣,迭代執行下面3個的操作:
A=WH
H=ZA
規范化A,H
c、ARC算法的目標是找到前15個重要的網頁,只需要A/H的前15個值相對大小保持穩定即可,不需要A/H整個收斂,這樣2中迭代次數很小就能滿足,中指出迭代5次就可以,所以ARC算法有很高的計算效率,開銷主要是在擴展根集上。
③、Hub平均(Hub——Averaging——Kleinberg)算法Allan Borodin等在指出了一種現象,設有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)算法。
④、閾值(Threshhold—Kleinberg)算法
Allan Borodin等在中同時提出了3種閾值控制的算法,分別是Hub閾值算法,Authority閾值算法,以及結合2者的全閾值算法。
計算網頁p的Authority時候,不考慮指向它的所有網頁Hub值對它的貢獻,只考慮Hub值超過平均值的網頁的貢獻,這就是Hub閾值方法。
Authority閾值算法和Hub閾值方法類似,不考慮所有p指向的網頁的Authority對p的Hub值貢獻,只計算前K個權威網頁對它Hub值的貢獻,這是基于算法的目標是查找重要的K個權威網頁的前提。
同時使用Authority閾值算法和Hub閾值方法的算法,就是全閾值算法。
3、SALSA算法
PageRank算法是基于用戶隨機的向前瀏覽網頁的直覺知識,HITS算法考慮的是Authoritive網頁和Hub網頁之間的加強關系。
實際應用中,用戶大多數情況下是向前瀏覽網頁,但是很多時候也會回退瀏覽網頁。基于上述直覺知識,R. Lempel和S. Moran提出了SALSA(Stochastic Approach for Link-Structure Analysis)算法,考慮了用戶回退瀏覽網頁的情況,保留了PageRank的隨機漫游和HITS中把網頁分為Authoritive和Hub的思 想,取消了Authoritive和Hub之間的相互加強關系。
據馬海祥博客了解,其具體算法如下:
①、和HITS算法的第一步一樣,得到根集并且擴展為網頁集合T,并除去孤立節點。
②、從集合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鏈。
③、定義2條馬爾可夫鏈的變化矩陣,也是隨機矩陣,分別是Hub矩陣H,Authority矩陣A。
④、求出矩陣H,A的主特征向量,就是對應的馬爾可夫鏈的靜態分布。
⑤、A中值大的對應的網頁就是所要找的重要網頁。
SALSA算法沒有HITS中相互加強的迭代過程,計算量遠小于HITS。SALSA算法只考慮直接相鄰的網頁對自身A/H的影響,而HITS是計算整個網頁集合T對自身AH的影響。
實際應用中,SALSA在擴展根集時忽略了很多無關的鏈接,比如:
①、同一站點內的鏈接,因為這些鏈接大多只起導航作用。
②、CGI 腳本鏈接。
③、廣告和贊助商鏈接。
據馬海祥博客的試驗結果表明,對于單主題查詢java,SALSA有比HITS更精確的結果,對于多主題查詢abortion,HITS的結果集中于主題 的某個方面,而SALSA算法的結果覆蓋了多個方面,也就是說,對于TKC現象,SALSA算法比HITS算法有更高的健壯性。
BFS(Backword Forward Step)算法
SALSA算法計算網頁的Authority值時,只考慮網頁在直接相鄰網頁集中的受歡迎程度,忽略其它網頁對它的影響。HITS算法考慮的是整個圖的結構,特別的,經過n步以后,網頁i的Authority的權重是,為離開網頁i的的路徑的數目,也就是說網頁j<>i,對i的權值貢獻等于從i到j的路徑的數量。如果從i到j包含有一個回路,那么j對i的貢獻將會呈指數級增加,這并不是算法所希望的,因為回路可能不是與查詢相關的。
因此,Allan Borodin等提出了BFS(Backward Forward Step)算法,既是SALSA的擴展情況,也是HITS的限制情況。基本思想是,SALSA只考慮直接相鄰網頁的影響,BFS擴展到考慮路徑長度為n的相鄰網頁的影響。
在BFS中,被指定表示能通過路徑到達i的結點的集合,這樣j對i的貢獻依賴就與j到i的距離。BFS采用指數級降低權值的方式,結點i的權值計算公式如下:
=|B(i)|+|BF(i)| +|BFB(i)|+……+||
算法從結點i開始,第一步向后訪問,然后繼續向前或者向后訪問鄰居,每一步遇到新的結點加入權值計算,結點只有在第一次被訪問時加入進去計算。
4、PHITS算法
D. Cohn and H. Chang提出了計算Hub和Authority的統計算法PHITS(Probabilistic analogue of the HITS)。他們提出了一個概率模型,在這個模型里面一個潛在的因子或者主題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算法分配未知的條件概率使得L大化,也就是好的解釋了網頁之間的鏈接關系。算法要求因子z的數 目事先給定。Allan Borodin指出,PHITS中使用的EM算法可能會收斂于局部的大化,而不是真正的全局大化。D. Cohn和T. Hofmann還提出了結合文檔內容和超鏈接的概率模型。
5、貝葉斯算法
Allan Borodin等提出了完全的貝葉斯統計方法來確定Hub和Authoritive網頁。假定有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中求矩陣特征根的運算。
簡化的貝葉斯算法
Allan Borodin同時提出了簡化的上述貝葉斯算法,完全除去了參數,也就不再需要正太分布的參數μ,δ了。計算公式變為:P(i,j)=/(1+),Hub網頁到Authority網頁j沒有鏈接時,P(i,j)=1/(1+ )。
Allan Borodin指出簡化的貝葉斯產生的效果與SALSA算法的結果非常類似。
6、Reputation算法
上面的所有算法,都是從查詢項或者主題出發,經過算法處理,得到結果網頁。多倫多大學計算機系Alberto Mendelzon,Davood Rafiei提出了一種反向的算法,輸入為某個網頁的URL地址,輸出為一組主題,網頁在這些主題上有聲望(repution)。比如輸 入,www.mahaixiang.cn,可能的輸出結果是“java”,具體的系統我會在馬海祥博客上為大家再做介紹,在此,就先不細說了。
給定一個網頁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算法的結合體。
二、鏈接算法的分類及其評價
鏈接分析算法可以用來提高搜索引擎的查詢效果,可以發現WWW上的重要的社區,可以分析某個網站的拓撲結構,聲望,分類等,可以用來實現文檔的自動分類 等。歸根結底,能夠幫助用戶在WWW海量的信息里面準確找到需要的信息,馬海祥覺得這是搜索引擎正在迅速發展的研究領域。
上面我們從歷史的角度總結了鏈接分析算法的發展歷程,較為詳細的介紹了算法的基本思想和具體實現,對算法的存在的問題也做了討論。這些算法有的處于研究階段,有的已經在具體的系統實現了。
在此,將這些算法大體分為以下幾類:
①、基于隨機漫游模型的,比如PageRank,Repution算法。
②、基于Hub和Authority相互加強模型的,如HITS及其變種。
③、基于概率模型的,如SALSA,PHITS。
④、基于貝葉斯模型的,如貝葉斯算法及其簡化版本。
所有的算法在實際應用中都結合傳統的內容分析技術進行了優化。
一些實際的系統實現了某些算法,并且獲得了很好的效果,Google實現了PageRank算法,IBM Almaden Research Center 的Clever Project實現了ARC算法,多倫多大學計算機系實現了一個原型系統TOPIC,來計算指定網頁有聲望的主題。
AT&T香農實驗室的Brian Amento在指出,用權威性來評價網頁的質量和人類專家評價的結果是一致的,并且各種鏈接分析算法的結果在大多數的情況下差別很小。但是,Allan Borodin也指出沒有一種算法是完美的,在某些查詢下,結果可能很好,在另外的查詢下,結果可能很差。所以應該根據不同查詢的情況,選擇不同的合適的 算法。
基于鏈接分析的算法,提供了一種衡量網頁質量的客觀方法,獨立于語言,獨立于內容,不需人工干預就能自動發現WEB上重要的資源,挖掘出WEB上重要的社區,自動實現文檔分類。但是也有一些共同的問題影響著算法的精度,具體分為以下幾個原因:
1、根集的質量
根集質量應該是很高的,否則,擴展后的網頁集會增加很多無關的網頁,產生主題漂移,主題泛化等一系列的問題,計算量也增加很多。
算法再好,也無法在低質量網頁集找出很多高質量的網頁。
2、噪音鏈接
WEB上不是每個鏈接都包含了有用的信息,比如廣告,站點導航,贊助商,用于友情交換的鏈接,對于鏈接分析不僅沒有幫助,而且還影響結果。如何有效的去除這些無關鏈接,做個高質量鏈接也是算法的一個關鍵點。
3、錨文本的利用
錨文本有很高的精度,對鏈接和目標網頁的描述比較精確,上述算法在具體的實現中利用了錨文本來優化算法。如何準確充分的利用錨文本,對算法的精度影響很大。
4、查詢的分類
每種算法都有自身的適用情況,對于不同的查詢,應該采用不同的算法,以求獲得好的結果。因此,對于查詢的分類也顯得非常重要。
當然,這些問題帶有很大的主觀性,比如,質量不能精確的定義,鏈接是否包含重要的信息也沒有有效的方法能準確的判定,分析錨文本又涉及到語義問題,查詢的 分類也沒有明確界限。如果算法要取得更好的效果,在這幾個方面需要繼續做深入的研究,相信在不久的將來會有更多的有趣和有用的成果出現。