鏈結分析演算法之 HITS演算法

2021-09-30 15:40:10 字數 4075 閱讀 3985

hits(hits(hyperlink - induced topic search) ) 演算法是由康奈爾大學( cornell university ) 的jon kleinberg 博士於1997 年首先提出的,為ibm 公司阿爾馬登研究中心( ibm almaden research center) 的名為「clever」的研究專案中的一部分。

hits演算法是鏈結分析中非常基礎且重要的演算法,目前已被teoma搜尋引擎(

www.teoma.com

)作為鏈結分析演算法在實際中使用。

hub頁面(樞紐頁面)和authority頁面(權威頁面)是hits演算法最基本的兩個定義

所謂「hub」頁面,指的是包含了很多指向高質量「authority」頁面鏈結的網頁,比如hao123首頁可以認為是乙個典型的高質量「hub」網頁。

圖1給出了乙個「hub」頁面例項,這個網頁是史丹福大學計算語言學研究組維護的頁面,這個網頁收集了與統計自然語言處理相關的高質量資源,包括一些著名的開源軟體包及語料庫等,並通過鏈結的方式指向這些資源頁面。這個頁面可以認為是「自然語言處理」這個領域的「hub」頁面,相應的,被這個頁面指向的資源頁面,大部分是高質量的「authority」頁面。

圖1 自然語言處理領域的hub頁面

hits演算法的目的即是通過一定的技術手段,在海量網頁中找到與使用者查詢主題相關的高質量「authority」頁面和「hub」頁面,尤其是「authority」頁面,因為這些頁面代表了能夠滿足使用者查詢的高質量內容,搜尋引擎以此作為搜尋結果返回給使用者。

基本假設1:乙個好的「authority」頁面會被很多好的「hub」頁面指向;

基本假設2:乙個好的「hub」頁面會指向很多好的「authority」頁面;

具體演算法:可利用上面提到的兩個基本假設,以及相互增強關係等原則進行多輪迭代計算,每輪迭代計算更新每個頁面的兩個權值,直到權值穩定不再發生明顯的變化為止。

步驟:

3.1 根集合

1)將查詢q提交給基於關鍵字查詢的檢索系統,從返回結果頁面的集合總取前n個網頁(如n=200),作為根集合(root set),記為root,則root滿足:

1).root中的網頁數量較少

2).root中的網頁是與查詢q相關的網頁

3).root中的網頁包含較多的權威(authority)網頁

這個集合是個有向圖結構:

3.2 擴充套件集合base

在根集root的基礎上,hits演算法對網頁集合進行擴充(參考圖2)集合base,擴充原則是:凡是與根集內網頁有直接鏈結指向關係的網頁都被擴充到集合base,無論是有鏈結指向根集內頁面也好,或者是根集頁面有鏈結指向的頁面也好,都被擴充進入擴充套件網頁集合base。hits演算法在這個擴充網頁集合內尋找好的「hub」頁面與好的「authority」頁面。

圖2 根集與擴充套件集

3.3 計算擴充套件集base中所有頁面的hub值(樞紐度)和authority值(權威度)

1)

2)對於「擴充套件集base

」來說,我們並不知道哪些頁面是好的「hub」或者好的「authority」頁面,每個網頁都有潛在的可能,所以對於每個頁面都設立兩個權值,分別來記載這個頁面是好的hub或者authority頁面的可能性。在初始情況下,在沒有更多可利用資訊前,每個頁面的這兩個權值都是相同的,可以都設定為1,即:

3)每次迭代計算hub權值和authority權值:

網頁a (i)在此輪迭代中的authority權值即為所有指向網頁a (i)頁面的hub權值之和:

a (i) = σh (i) ;

網頁a (i)的hub分值即為所指向的頁面的authority權值之和:

h (i) = σ a (i) 。

對a (i)、h (i)進行規範化處理:

將所有網頁的中心度都除以最高中心度以將其標準化:

a (i) = a (i)/|a(i)| ;

將所有網頁的權威度都除以最高權威度以將其標準化:

h (i) = h (i)/|h(i)|:

5)如此不斷的重複第4):上一輪迭代計算中的權值和本輪迭代之後權值的差異,如果發現總體來說權值沒有明顯變化,說明系統已進入穩定狀態,則可以結束計算,即a ( u),h(v)收斂 。

演算法描述:

如圖3所示,給出了迭代計算過程中,某個頁面的hub權值和authority權值的更新方式。假設以a(i)代表網頁i的authority權值,以h(i)代表網頁i的hub權值。在圖6-14的例子中,「擴充網頁集合」有3個網頁有鏈結指向頁面1,同時頁面1有3個鏈結指向其它頁面。那麼,網頁1在此輪迭代中的authority權值即為所有指向網頁1頁面的hub權值之和;類似的,網頁1的hub分值即為所指向的頁面的authority權值之和。

圖3 hub與authority權值計算

3.4 輸出排序結果

將頁面根據authority權值得分由高到低排序,取權值最高的若干頁面作為響應使用者查詢的搜尋結果輸出。

歸納起來,hits演算法主要在以下幾個方面存在不足:

1.計算效率較低

因為hits演算法是與查詢相關的演算法,所以必須在接收到使用者查詢後實時進行計算,而hits演算法本身需要進行很多輪迭代計算才能獲得最終結果,這導致其計算效率較低,這是實際應用時必須慎重考慮的問題。

2.主題漂移問題

如果在擴充套件網頁集合裡包含部分與查詢主題無關的頁面,而且這些頁面之間有較多的相互鏈結指向,那麼使用hits演算法很可能會給予這些無關網頁很高的排名,導致搜尋結果發生主題漂移,這種現象被稱為「緊密鏈結社群現象」(tightly-knit communityeffect)。

3.易被者操縱結果

hits從機制上很容易被者操縱,比如者可以建立乙個網頁,頁面內容增加很多指向高質量網頁或者著名**的**,這就是乙個很好的hub頁面,之後者再將這個網頁鏈結指向網頁,於是可以提公升網頁的authority得分。

4.結構不穩定

所謂結構不穩定,就是說在原有的「擴充網頁集合」內,如果新增刪除個別網頁或者改變少數鏈結關係,則hits演算法的排名結果就會有非常大的改變。

hits演算法和pagerank演算法可以說是搜尋引擎鏈結分析的兩個最基礎且最重要的演算法。從以上對兩個演算法的介紹可以看出,兩者無論是在基本概念模型還是計算思路以及技術實現細節都有很大的不同,下面對兩者之間的差異進行逐一說明。

1.hits演算法是與使用者輸入的查詢請求密切相關的,而pagerank與查詢請求無關。所以,hits演算法可以單獨作為相似性計算評價標準,而pagerank必須結合內容相似性計算才可以用來對網頁相關性進行評價;

3.hits演算法的計算物件數量較少,只需計算擴充套件集合內網頁之間的鏈結關係;而pagerank是全域性性演算法,對所有網際網路頁面節點進行處理;

4.從兩者的計算效率和處理物件集合大小來比較,pagerank更適合部署在伺服器端,而hits演算法更適合部署在客戶端;

5.hits演算法存在主題泛化問題,所以更適合處理具體化的使用者查詢;而pagerank在處理寬泛的使用者查詢時更有優勢;

7.從鏈結反的角度來說,pagerank從機制上優於hits演算法,而hits演算法更易遭受鏈結的影響。

8.hits演算法結構不穩定,當對「擴充網頁集合」內鏈結關係作出很小改變,則對最終排名有很大影響;而pagerank相對hits而言表現穩定,其根本原因在於pagerank計算時的「遠端跳轉」。

鏈結分析演算法之 SALSA演算法

salsa演算法的初衷希望能夠結合pagerank和hits演算法兩者的主要特點,既可以利用hits演算法與查詢相關的特點,也可以採納pagerank的 隨機遊走模型 這是salsa演算法提出的背景。由此可見,salsa演算法融合了pagerank和hits演算法的基本思想,從實際效果來說,很多實驗...

HITS演算法思想

在 v中的每個頁面 p都有一對非負的權重值 ap,hp 其中 ap表示權威值 hp表示中心值 設指向頁面 p的頁面為 q,ap 的值則更新為所有 hq的和 如果把頁面 p所指向的頁面稱為q,則 hp的值更新為所有 aq之和 這兩步將被重複多次 最後按照得到的權威值和中心值對頁面進行排序.若乙個網頁由...

HITS演算法的Java實現

package hits hits鏈結分析演算法 author hjm public class hits for int k 0 k0.01 pagenum authority值的更新計算 for int i 0 i hub值的更新計算 for int i 0 i system.out.print...