鏈接分析算法之:HITS算法

 HITS(HITS(Hyperlink – Induced Topic Search) ) 算法是由康奈爾大學( Cornell University ) 的Jon Kleinberg 博士于1997 年首先提出的,為IBM 公司阿爾馬登研究中心( IBM Almaden Research Center) 的名為“CLEVER”的研究項目中的一部分。

    HITS算法是鏈接分析中非?;A且重要的算法,目前已被Teoma搜索引擎(www.teoma.com)作為鏈接分析算法在實際中使用。

1. Hub頁面與Authority頁面

      Hub頁面(樞紐頁面)和Authority頁面(權威頁面)是HITS算法最基本的兩個定義。

    所謂“Authority”頁面,是指與某個領域或者某個話題相關的高質量網頁,比如搜索引擎領域,Google和百度首頁即該領域的高質量網頁,比如視頻領域,優酷和土豆首頁即該領域的高質量網頁。

    所謂“Hub”頁面,指的是包含了很多指向高質量“Authority”頁面鏈接的網頁,比如hao123首頁可以認為是一個典型的高質量“Hub”網頁。

    圖1給出了一個“Hub”頁面實例,這個網頁是斯坦福大學計算語言學研究組維護的頁面,這個網頁收集了與統計自然語言處理相關的高質量資源,包括一些著名的開源軟件包及語料庫等,并通過鏈接的方式指向這些資源頁面。這個頁面可以認為是“自然語言處理”這個領域的“Hub”頁面,相應的,被這個頁面指向的資源頁面,大部分是高質量的“Authority”頁面。

          1.jpg

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

     HITS算法的目的即是通過一定的技術手段,在海量網頁中找到與用戶查詢主題相關的高質量“Authority”頁面和“Hub”頁面,尤其是“Authority”頁面,因為這些頁面代表了能夠滿足用戶查詢的高質量內容,搜索引擎以此作為搜索結果返回給用戶。

2. 算法基本思想:相互增強關系

     基本假設1:一個好的“Authority”頁面會被很多好的“Hub”頁面指向;

     基本假設2:一個好的“Hub”頁面會指向很多好的“Authority”頁面;

3. HITS算法

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

步驟:

3.1 根集合

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

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

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

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

       這個集合是個有向圖結構:鏈接分析算法之:HITS算法

3.2 擴展集合base

        在根集root的基礎上,HITS算法對網頁集合進行擴充(參考圖2)集合base,擴充原則是:凡是與根集內網頁有直接鏈接指向關系的網頁都被擴充到集合base,無論是有鏈接指向根集內頁面也好,或者是根集頁面有鏈接指向的頁面也好,都被擴充進入擴展網頁集合base。HITS算法在這個擴充網頁集合內尋找好的“Hub”頁面與好的“Authority”頁面。

                               2.jpg                               

 

                                                       圖2 根集與擴展集

 

 3.3 計算擴展集base中所有頁面的Hub值(樞紐度)和Authority值(權威度)

        1) 鏈接分析算法之:HITS算法鏈接分析算法之:HITS算法 分別表示網頁結點 i 的Authority值(權威度)和Hub值(中心度)。

       2) 對于“擴展集base”來說,我們并不知道哪些頁面是好的“Hub”或者好的“Authority”頁面,每個網頁都有潛在的可能,所以對于每個頁面都設立兩個權值,分別來記載這個頁面是好的Hub或者Authority頁面的可能性。在初始情況下,在沒有更多可利用信息前,每個頁面的這兩個權值都是相同的,可以都設置為1,即:

       鏈接分析算法之:HITS算法

         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.jpg

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

                                       4.gif           

                                                                圖3 Hub與Authority權值計算

 

 3.4  輸出排序結果

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

4. HITS算法存在的問題

        HITS算法整體而言是個效果很好的算法,目前不僅應用在搜索引擎領域,而且被“自然語言處理”以及“社交分析”等很多其它計算機領域借鑒使用,并取得了很好的應用效果。盡管如此,最初版本的HITS算法仍然存在一些問題,而后續很多基于HITS算法的鏈接分析方法,也是立足于改進HITS算法存在的這些問題而提出的。

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

    1.計算效率較低

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

   2.主題漂移問題

        如果在擴展網頁集合里包含部分與查詢主題無關的頁面,而且這些頁面之間有較多的相互鏈接指向,那么使用HITS算法很可能會給予這些無關網頁很高的排名,導致搜索結果發生主題漂移,這種現象被稱為“緊密鏈接社區現象”(Tightly-Knit CommunityEffect)。

   3.易被作弊者操縱結果

        HITS從機制上很容易被作弊者操縱,比如作弊者可以建立一個網頁,頁面內容增加很多指向高質量網頁或者著名網站的網址,這就是一個很好的Hub頁面,之后作弊者再將這個網頁鏈接指向作弊網頁,于是可以提升作弊網頁的Authority得分。

   4.結構不穩定

        所謂結構不穩定,就是說在原有的“擴充網頁集合”內,如果添加刪除個別網頁或者改變少數鏈接關系,則HITS算法的排名結果就會有非常大的改變。

5. HITS算法與PageRank算法比較

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

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

    2.HITS算法因為與用戶查詢密切相關,所以必須在接收到用戶查詢后實時進行計算,計算效率較低;而PageRank則可以在爬蟲抓取完成后離線計算,在線直接使用計算結果,計算效率較高;

    3.HITS算法的計算對象數量較少,只需計算擴展集合內網頁之間的鏈接關系;而PageRank是全局性算法,對所有互聯網頁面節點進行處理;

    4.從兩者的計算效率和處理對象集合大小來比較,PageRank更適合部署在服務器端,而HITS算法更適合部署在客戶端;

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

    6.HITS算法在計算時,對于每個頁面需要計算兩個分值,而PageRank只需計算一個分值即可;在搜索引擎領域,更重視HITS算法計算出的Authority權值,但是在很多應用HITS算法的其它領域,Hub分值也有很重要的作用;

    7.從鏈接反作弊的角度來說,PageRank從機制上優于HITS算法,而HITS算法更易遭受鏈接作弊的影響。

    8.HITS算法結構不穩定,當對“擴充網頁集合”內鏈接關系作出很小改變,則對最終排名有很大影響;而PageRank相對HITS而言表現穩定,其根本原因在于PageRank計算時的“遠程跳轉”。

轉自:http://blog.csdn.net/hguisu/article/details/8013489

原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/2722

(0)
s19930811s19930811
上一篇 2015-07-19
下一篇 2015-07-20

相關推薦

  • DevOps如何重構IT戰略

    翻譯: 至尊寶 原文: http://www.citeworld.com/article/2897738/development/how-devops-can-redefine-your-it-strategy.html?page=2   DevOps究竟是曇花一現還是你一直在尋找的競爭優勢?我們咨詢了一些專家,對于這種趨勢他們的想法是什…

    Python干貨 2015-03-26
  • 免費翻墻 [精]

    本人在hostus上買了一個國外的vps,花了一上午把Google給做好,可以訪問g.abcdocker.com進行搜索,因為是使用nginx代理進行翻墻。網上的文章也很亂,很不好整理。 可以可以使用g.abcdocker.com上Google查閱資料。(無法觀看視頻) www.abcdocker.com

    2017-06-17
  • linux下繪圖工具rrdtool

    一、前言       為了做云緩存平臺的技術儲備,從零開始學習了rrdtool,rrdtool非常強大,剛接觸會有摸不著邊的感覺,尤其是一堆概念性的東西。學習的切入點便是這些概念,一一理解后你才能品嘗到rrdtool的清香,首先要感謝ailms整理的“RRDtool簡體中文教程 v1.01”,通俗易…

    Linux干貨 2015-03-27
  • 優質代碼的十誡

    1.- DRY: Don’t repeat yourself. DRY 是一個最簡單的法則,也是最容易被理解的。但它也可能是最難被應用的(因為要做到這樣,我們需要在泛型設計上做相當的努力,這并不是一件容易的事)。它意味著,當我們在兩個或多個地方的時候發現一些相似的代碼的時候,我們需要把他們的共性抽象出來形一個唯一的新方法,并且改變現有的地方的代碼讓…

    Linux干貨 2015-04-01
  • bash通配符和正則表達式元字符部分歸納

    Linux中有各種各樣的字符,而且在不同環境和不同命令之下含義也不同 作為新手,決定先歸納學到的符號,方便后面學習厘清它們之間的關系。 glob 簡化了的正則表達式 bash默認通配符: ? :只匹配一個任意字符; * :匹配零個或多個任意字符;   [^] :方括號及其中^中的取反 [abc]:匹配任何一個列在方括號中的字符(這個例子要么匹配一個…

    Linux干貨 2016-04-11
  • 如何在Java中避免equals方法的隱藏陷阱

    譯者注 :你可能會覺得Java很簡單,Object的equals實現也會非常簡單,但是事實并不是你想象的這樣,耐心的讀完本文,你會發現你對Java了解的是如此的少。如果這篇文章是一份Java程序員的入職筆試,那么不知道有多少人會掉落到這樣的陷阱中。原文轉自http://www.artima.com/lejava/articles/equality.…

    開發運維 2015-04-03
欧美性久久久久