http://blog.csdn.net/hguisu/article/details/8013489算法
HITS(HITS(Hyperlink - Induced Topic Search) ) 算法是由康奈爾大學( Cornell University ) 的Jon Kleinberg 博士於1997 年首先提出的,爲IBM 公司阿爾馬登研究中心( IBM Almaden Research Center) 的名爲「CLEVER」的研究項目中的一部分。服務器
HITS算法是連接分析中很是基礎且重要的算法,目前已被Teoma搜索引擎(www.teoma.com)做爲連接分析算法在實際中使用。ide
Hub頁面(樞紐頁面)和Authority頁面(權威頁面)是HITS算法最基本的兩個定義。網站
所謂「Authority」頁面,是指與某個領域或者某個話題相關的高質量網頁,好比搜索引擎領域,Google和百度首頁即該領域的高質量網頁,好比視頻領域,優酷和土豆首頁即該領域的高質量網頁。ui
所謂「Hub」頁面,指的是包含了不少指向高質量「Authority」頁面連接的網頁,好比hao123首頁能夠認爲是一個典型的高質量「Hub」網頁。搜索引擎
圖1給出了一個「Hub」頁面實例,這個網頁是斯坦福大學計算語言學研究組維護的頁面,這個網頁收集了與統計天然語言處理相關的高質量資源,包括一些著名的開源軟件包及語料庫等,並經過連接的方式指向這些資源頁面。這個頁面能夠認爲是「天然語言處理」這個領域的「Hub」頁面,相應的,被這個頁面指向的資源頁面,大部分是高質量的「Authority」頁面。spa
圖1 天然語言處理領域的Hub頁面.net
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) 、 分別表示網頁結點 i 的Authority值(權威度)和Hub值(中心度)。
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算法總體而言是個效果很好的算法,目前不只應用在搜索引擎領域,並且被「天然語言處理」以及「社交分析」等不少其它計算機領域借鑑使用,並取得了很好的應用效果。儘管如此,最第一版本的HITS算法仍然存在一些問題,然後續不少基於HITS算法的連接分析方法,也是立足於改進HITS算法存在的這些問題而提出的。
概括起來,HITS算法主要在如下幾個方面存在不足:
1.計算效率較低
由於HITS算法是與查詢相關的算法,因此必須在接收到用戶查詢後實時進行計算,而HITS算法自己須要進行不少輪迭代計算才能得到最終結果,這致使其計算效率較低,這是實際應用時必須慎重考慮的問題。
2.主題漂移問題
若是在擴展網頁集合裏包含部分與查詢主題無關的頁面,並且這些頁面之間有較多的相互連接指向,那麼使用HITS算法極可能會給予這些無關網頁很高的排名,致使搜索結果發生主題漂移,這種現象被稱爲「緊密連接社區現象」(Tightly-Knit CommunityEffect)。
3.易被做弊者操縱結果
HITS從機制上很容易被做弊者操縱,好比做弊者能夠創建一個網頁,頁面內容增長不少指向高質量網頁或者著名網站的網址,這就是一個很好的Hub頁面,以後做弊者再將這個網頁連接指向做弊網頁,因而能夠提高做弊網頁的Authority得分。
4.結構不穩定
所謂結構不穩定,就是說在原有的「擴充網頁集合」內,若是添加刪除個別網頁或者改變少數連接關係,則HITS算法的排名結果就會有很是大的改變。
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計算時的「遠程跳轉」。