㈠ Hits的演算法
HITS,網頁分析,演算法,搜索引擎
HITS 演算法是由康奈爾大學( Cornell University ) 的JonKleinberg 博士於1998 年首先提出的,HITS 的英文全稱為Hyperlink - Inced Topic Search,為IBM公司阿爾馬登研究中心( IBM Almaden Research Center) 的名為「CLEVER」的研究項目中的一部分。
具體解釋:
一個網頁重要性的分析的演算法,根據一個網頁的入度(指向此網頁的超鏈接)和出度(從此網頁指向別的網頁)來衡量網頁的重要性。其最直觀的意義是如果一個網頁的重要性很高,則他所指向的網頁的重要性也高。一個重要的網頁被另一個網頁所指,則表明指向它的網頁重要性也會高。指向別的網頁定義為Hub值,被指向定義為Authority值。
通常HITS演算法是作用在一定范圍的,比如一個以程序開發為主題的網頁,指向另一個以程序開發為主題的網頁,則另一個網頁的重要性就可能比較高,但是指向另一個購物類的網頁則不一定。
在限定范圍之後根據網頁的出度和入度建立一個矩陣,通過矩陣的迭代運算和定義收斂的閾值不斷對兩個向量Authority和Hub值進行更新直至收斂。
理解HITS演算法是Web結構挖掘中最具有權威性和使用最廣泛的演算法。HITS演算法通過兩個評價權值——內容權威度(Authority)和鏈接權威度(Hub)來對網頁質量進行評估。其基本思想是利用頁面之間的引用鏈來挖掘隱含在其中的有用信息(如權威性),具有計算簡單且效率高的特點。HITS演算法認為對每一個網頁應該將其內容權威度和鏈接權威度分開來考慮,在對網頁內容權威度做出評價的基礎上再對頁面的鏈接權威度進行評價,然後給出該頁面的綜合評價。內容權威度與網頁自身直接提供內容信息的質量相關,被越多網頁所引用的網頁,其內容權威度越高;鏈接權威度與網頁提供的超鏈接頁面的質量相關,引用越多高質量頁面的網頁,其鏈接權威度越高。
首先,它完全將網頁的內容或文本排除在外,僅考慮網頁之間的鏈接結構來分析頁面的權威性,這與現實網路中的權威頁面相比,其不科學性顯而易見。然而HITS演算法也有其明顯的不足。
因為權威頁面必須針對某一主題或關鍵詞而言。某一頁面對一確定主題的具有較大權威性的頁面並不意味在其他與其無關的主題方面同樣具有權威性。其次一個頁面對另一頁面的引用有多種情況,其中包含了一頁面對另一頁面的認可,但除此之外也有其他目的鏈接,如為了導航或為了付費廣告。就HITS演算法的思想與實現過程做了細致的研究與概括。而HITS演算法在實現過程中均沒有考慮以上情況.導致了結果與目標的差距。
對HITS演算法的第二個不足,即非正常目的的引用.在HITS演算法看來,也誤認為是正常引用,導致實際結果與目標的出入。針對前面第一種不足,就有相關的學者提出了一種利用超鏈文字及其周圍文字與關鍵字相匹配而計算超鏈權值的方法,並引入系數對周圍文字和超鏈文字進行權值的相對控制,很好地將頁面文本信息引入到HITS演算法,提高了演算法的可靠性,並在現實中取得了很好的效果。
後來,經過不斷的改進。HITS演算法又引入了時間參數,即利用對一鏈接引用的時間長短來評價是否為正常引用。因為非正常鏈接其引用時間肯定不會很長(如交換鏈接、廣告鏈接),相反,如果一頁面對另一頁面的鏈接時間較長,則必然反映此頁面就是用戶的尋找頁面。即目標頁面或至少是正常引用。
如設定訪問時間少於1分鍾者為非正常引用。如果設定時間閥值,則可以將非正常引用的鏈接在HITS演算法的實現過程中篩選出來。另外可構造時間訪問函數,控制權威頁面的相對大小。如隨訪問時間的增大而其權威性也逐漸非線性增大.這樣可為HITS演算法的權威頁面提供更合理、更科學的解釋。
㈡ WEB超鏈分析演算法的WEB超鏈分析演算法
搜索引擎Google最初是斯坦福大學的博士研究生Sergey Brin和Lawrence Page實現的一個原型系統[2],現在已經發展成為WWW上最好的搜索引擎之一。Google的體系結構類似於傳統的搜索引擎,它與傳統的搜索引擎最大的不同處在於對網頁進行了基於權威值的排序處理,使最重要的網頁出現在結果的最前面。Google通過PageRank元演算法計算出網頁的PageRank值,從而決定網頁在結果集中的出現位置,PageRank值越高的網頁,在結果中出現的位置越前。
2.1.1PageRank演算法
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]。 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.1HITS演算法
HITS(Hyperlink-Inced 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.2HITS的問題
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.3HITS的變種
HITS演算法遇到的問題,大多是因為HITS是純粹的基於鏈接分析的演算法,沒有考慮文本內容,繼J. Kleinberg提出HITS演算法以後,很多研究者對HITS進行了改進,提出了許多HITS的變種演算法,主要有:
2.2.3.1Monika 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.2ARC演算法
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.3Hub平均( 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閾值方法的演算法,就是全閾值演算法 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.1BFS(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開始,第一步向後訪問,然後繼續向前或者向後訪問鄰居,每一步遇到新的結點加入權值計算,結點只有在第一次被訪問時加入進去計算。 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]。 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演算法的結果非常類似。 上面的所有演算法,都是從查詢項或者主題出發,經過演算法處理,得到結果網頁。多倫多大學計算機系Alberto Mendelzon, Davood Rafiei提出了一種反向的演算法,輸入為某個網頁的URL地址,輸出為一組主題,網頁在這些主題上有聲望(repution)[16]。比如輸入,www.gamelan.com,可能的輸出結果是「java」,具體的系統可以訪問htpp://www.cs.toronto.e/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.查詢的分類。每種演算法都有自身的適用情況,對於不同的查詢,應該採用不同的演算法,以求獲得最好的結果。因此,對於查詢的分類也顯得非常重要。
結束語:當然,這些問題帶有很大的主觀性,比如,質量不能精確的定義,鏈接是否包含重要的信息也沒有有效的方法能准確的判定,分析錨文本又涉及到語義問題,查詢的分類也沒有明確界限。如果演算法要取得更好的效果,在這幾個方面需要繼續做深入的研究,相信在不久的將來會有更多的有趣和有用的成果出現。
㈢ HITS演算法的Hits演算法
HITS (Hyperlink – Inced Topic Search) 演算法是利用HubPAuthority的搜索方法,
具體演算法如下:
將查詢q提交給基於關鍵字查詢的檢索系統,從返回結果頁面的集合中取前n個網頁(如n=200),作為根集合(root set),記為S,則S滿足:
1.S中的網頁數量較少
2.S中的網頁是與查詢q相關的網頁
3.S中的網頁包含較多的權威(Authority)網頁
通過向S 中加入被S 引用的網頁和引用S 的網頁,將S 擴展成一個更大的集合T. 以T 中的Hub 網頁為頂點集V1 ,以權威網頁為頂點集V2 。
V1 中的網頁到V2 中的網頁的超鏈接為邊集E ,形成一個二分有向圖. 對V1 中的任一個頂點v ,用h ( v) 表示網頁v 的Hub 值,且h ( v)收斂;對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操作:a ( u) = Σh ( v) ;O 操作: h ( v) = Σa ( u) 。每次迭代對a ( u) 、h ( v) 進行規范化處理: a ( u) = a ( u)/Σ[ a ( q) ]2 ; h ( v) = h ( v)/Σ[ h ( q) ]2 。 HITS演算法偽代碼 如下:
1G:= set of pages
2for eachpagepinGdo
3p.auth = 1 //p.auth is the authority score of the pagep
4p.hub = 1 //p.hub is the hub score of the pagep
5functionHubsAndAuthorities(G)
6forstepfrom1tokdo// run the algorithm for k steps
7 norm = 0
8for eachpagepinGdo// update all authority values first
9p.auth = 0
10for eachpageqinp.incomingNeighborsdo//p.incomingNeighborsis the set of pages that link top
11p.auth +=q.hub
12 norm += square(p.auth) // calculate the sum of the squared auth values to normalise
13 norm = sqrt(norm)
14for eachpagepinGdo// update the auth scores
15p.auth =p.auth / norm // normalise the auth values
16 norm = 0
17for eachpagepinGdo// then update all hub values
18p.hub =
019for eachpagerinp.outgoingNeighborsdo//p.outgoingNeighborsis the set of pages thatplinks to
20p.hub +=r.auth
21 norm += square(p.hub) // calculate the sum of the squared hub values to normalise
22 norm = sqrt(norm)
23for eachpagepinGdo// then update all hub values
24p.hub =p.hub / norm // normalise the hub values
㈣ 兩道JAVA題目,求大神解答
A、
循環執行n次,時間復雜度為O(n)。
B、
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
第一重循環每1次,第二重循環n次,第一重循環每共n次,所以這個循環總共n²次
for(int i=0;i<n;i++)
for(int j=0;j<i;j++)
這個循環總共執行1+2+...+n=(1+n)n/2次
總共循環n²+(1+n)n/2次,時間復雜度為O(n²)。
C、
for(int i=1;i<=n;i*=2)
for(int j=1;j<=n;j++)
第一重循環每1次,第二重循環n次,第一重循環每共log2n次,所以這個循環總共nlog2n次,時間復雜度為O(nlog2n)。
D、
for(int i=1;i<=n;i*=2)
for(int j=1;j<=i;j++)
這個循環總共執行1+2+...+log2n=(1+log2n)log2n/2次,時間復雜度為O(n)
㈤ 求問:HITS演算法的實現代碼!!C語言,或者JAVA都可以!
隨著網路的迅速發展,萬維網成為大量信息的載體,如何有效地提取並利用這些信息成為一個巨大的挑戰。搜索引擎(Search Engine),例如傳統的通用搜索引擎AltaVista,Yahoo!和Google等,作為一個輔助人們檢索信息的工具成為用戶訪問萬維網的入口和指南。但是,這些通用性搜索引擎也存在著一定的局限性,如:�
(1) 不同領域、不同背景的用戶往往具有不同的檢索目的和需求,通用搜索引擎所返回的結果包含大量用戶不關心的網頁。�
(2) 通用搜索引擎的目標是盡可能大的網路覆蓋率,有限的搜索引擎伺服器資源與無限的網路數據資源之間的矛盾將進一步加深。�
(3) 萬維網數據形式的豐富和網路技術的不斷發展,圖片、資料庫、音頻/視頻多媒體等不同數據大量出現,通用搜索引擎往往對這些信息含量密集且具有一定結構的數據無能為力,不能很好地發現和獲取。�
(4) 通用搜索引擎大多提供基於關鍵字的檢索,難以支持根據語義信息提出的查詢。�
為了解決上述問題,定向抓取相關網頁資源的聚焦爬蟲應運而生。聚焦爬蟲是一個自動下載網頁的程序,它根據既定的抓取目標,有選擇的訪問萬維網上的網頁與相關的鏈接,獲取所需要的信息。與通用爬蟲(general�purpose web crawler)不同,聚焦爬蟲並不追求大的覆蓋,而將目標定為抓取與某一特定主題內容相關的網頁,為面向主題的用戶查詢准備數據資源。�
1 聚焦爬蟲工作原理及關鍵技術概述�
網路爬蟲是一個自動提取網頁的程序,它為搜索引擎從萬維網上下載網頁,是搜索引擎的重要組成。傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件,如圖1(a)流程圖所示。聚焦爬蟲的工作流程較為復雜,需要根據一定的網頁分析演算法過濾與主題無關的鏈接,保留有用的鏈接並將其放入等待抓取的URL隊列。然後,它將根據一定的搜索策略從隊列中選擇下一步要抓取的網頁URL,並重復上述過程,直到達到系統的某一條件時停止,如圖1(b)所示。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,並建立索引,以便之後的查詢和檢索;對於聚焦爬蟲來說,這一過程所得到的分析結果還可能對以後的抓取過程給出反饋和指導。�
相對於通用網路爬蟲,聚焦爬蟲還需要解決三個主要問題:�
(1) 對抓取目標的描述或定義;�
(2) 對網頁或數據的分析與過濾;�
(3) 對URL的搜索策略。�
抓取目標的描述和定義是決定網頁分析演算法與URL搜索策略如何制訂的基礎。而網頁分析演算法和候選URL排序演算法是決定搜索引擎所提供的服務形式和爬蟲網頁抓取行為的關鍵所在。這兩個部分的演算法又是緊密相關的。�
2 抓取目標描述�
現有聚焦爬蟲對抓取目標的描述可分為基於目標網頁特徵、基於目標數據模式和基於領域概念3種。�
基於目標網頁特徵的爬蟲所抓取、存儲並索引的對象一般為網站或網頁。根據種子樣本獲取方式可分為:�
(1) 預先給定的初始抓取種子樣本;�
(2) 預先給定的網頁分類目錄和與分類目錄對應的種子樣本,如Yahoo!分類結構等;�
(3) 通過用戶行為確定的抓取目標樣例,分為:�
a) 用戶瀏覽過程中顯示標注的抓取樣本;�
b) 通過用戶日誌挖掘得到訪問模式及相關樣本。�
其中,網頁特徵可以是網頁的內容特徵,也可以是網頁的鏈接結構特徵,等等。�
現有的聚焦爬蟲對抓取目標的描述或定義可以分為基於目標網頁特徵,基於目標數據模式和基於領域概念三種。�
基於目標網頁特徵的爬蟲所抓取、存儲並索引的對象一般為網站或網頁。具體的方法根據種子樣本的獲取方式可以分為:(1)預先給定的初始抓取種子樣本;(2)預先給定的網頁分類目錄和與分類目錄對應的種子樣本,如Yahoo!分類結構等;(3)通過用戶行為確定的抓取目標樣例。其中,網頁特徵可以是網頁的內容特徵,也可以是網頁的鏈接結構特徵,等等。�
-----------------------------------------------------------
2 爬蟲技術研究綜述
基於目標數據模式的爬蟲針對的是網頁上的數據,所抓取的數據一般要符合一定的模式,或者可以轉化或映射為目標數據模式。�
另一種描述方式是建立目標領域的本體或詞典,用於從語義角度分析不同特徵在某一主題中的重要程度。�
3 網頁搜索策略�
網頁的抓取策略可以分為深度優先、廣度優先和最佳優先三種。深度優先在很多情況下會導致爬蟲的陷入(trapped)問題,目前常見的是廣度優先和最佳優先方法。�
3.1 廣度優先搜索策略�
廣度優先搜索策略是指在抓取過程中,在完成當前層次的搜索後,才進行下一層次的搜索。該演算法的設計和實現相對簡單。在目前為覆蓋盡可能多的網頁,一般使用廣度優先搜索方法。也有很多研究將廣度優先搜索策略應用於聚焦爬蟲中。其基本思想是認為與初始URL在一定鏈接距離內的網頁具有主題相關性的概率很大。另外一種方法是將廣度優先搜索與網頁過濾技術結合使用,先用廣度優先策略抓取網頁,再將其中無關的網頁過濾掉。這些方法的缺點在於,隨著抓取網頁的增多,大量的無關網頁將被下載並過濾,演算法的效率將變低。�
3.2 最佳優先搜索策略�
最佳優先搜索策略按照一定的網頁分析演算法,預測候選URL與目標網頁的相似度,或與主題的相關性,並選取評價最好的一個或幾個URL進行抓取。它只訪問經過網頁分析演算法預測為「有用」的網頁。存在的一個問題是,在爬蟲抓取路徑上的很多相關網頁可能被忽略,因為最佳優先策略是一種局部最優搜索演算法。因此需要將最佳優先結合具體的應用進行改進,以跳出局部最優點。將在第4節中結合網頁分析演算法作具體的討論。研究表明,這樣的閉環調整可以將無關網頁數量降低30%~90%。�
4 網頁分析演算法�
網頁分析演算法可以歸納為基於網路拓撲、基於網頁內容和基於用戶訪問行為三種類型。�
4.1 基於網路拓撲的分析演算法�
基於網頁之間的鏈接,通過已知的網頁或數據,來對與其有直接或間接鏈接關系的對象(可以是網頁或網站等)作出評價的演算法。又分為網頁粒度、網站粒度和網頁塊粒度這三種。�
4.1.1 網頁(Webpage)粒度的分析演算法�
PageRank和HITS演算法是最常見的鏈接分析演算法,兩者都是通過對網頁間鏈接度的遞歸和規范化計算,得到每個網頁的重要度評價。PageRank演算法雖然考慮了用戶訪問行為的隨機性和Sink網頁的存在,但忽略了絕大多數用戶訪問時帶有目的性,即網頁和鏈接與查詢主題的相關性。針對這個問題,HITS演算法提出了兩個關鍵的概念:權威型網頁(authority)和中心型網頁(hub)。�
基於鏈接的抓取的問題是相關頁面主題團之間的隧道現象,即很多在抓取路徑上偏離主題的網頁也指向目標網頁,局部評價策略中斷了在當前路徑上的抓取行為。文獻[21]提出了一種基於反向鏈接(BackLink)的分層式上下文模型(Context Model),用於描述指向目標網頁一定物理跳數半徑內的網頁拓撲圖的中心Layer0為目標網頁,將網頁依據指向目標網頁的物理跳數進行層次劃分,從外層網頁指向內層網頁的鏈接稱為反向鏈接。�
4.1.2 網站粒度的分析演算法�
網站粒度的資源發現和管理策略也比網頁粒度的更簡單有效。網站粒度的爬蟲抓取的關鍵之處在於站點的劃分和站點等級(SiteRank)的計算。SiteRank的計算方法與PageRank類似,但是需要對網站之間的鏈接作一定程度抽象,並在一定的模型下計算鏈接的權重。�
網站劃分情況分為按域名劃分和按IP地址劃分兩種。文獻[18]討論了在分布式情況下,通過對同一個域名下不同主機、伺服器的IP地址進行站點劃分,構造站點圖,利用類似PageRank的方法評價SiteRank。同時,根據不同文件在各個站點上的分布情況,構造文檔圖,結合SiteRank分布式計算得到DocRank。文獻[18]證明,利用分布式的SiteRank計算,不僅大大降低了單機站點的演算法代價,而且克服了單獨站點對整個網路覆蓋率有限的缺點。附帶的一個優點是,常見PageRank 造假難以對SiteRank進行欺騙。�
4.1.3 網頁塊粒度的分析演算法�
在一個頁面中,往往含有多個指向其他頁面的鏈接,這些鏈接中只有一部分是指向主題相關網頁的,或根據網頁的鏈接錨文本表明其具有較高重要性。但是,在PageRank和HITS演算法中,沒有對這些鏈接作區分,因此常常給網頁分析帶來廣告等雜訊鏈接的干擾。在網頁塊級別(Block�level)進行鏈接分析的演算法的基本思想是通過VIPS網頁分割演算法將網頁分為不同的網頁塊(page block),然後對這些網頁塊建立page�to�block和block�to�page的鏈接矩陣,�分別記為Z和X。於是,在page�to�page圖上的網頁塊級別的PageRank為�W�p=X×Z;�在block�to�block圖上的BlockRank為�W�b=Z×X。�已經有人實現了塊級別的PageRank和HITS演算法,並通過實驗證明,效率和准確率都比傳統的對應演算法要好。�
4.2 基於網頁內容的網頁分析演算法�
基於網頁內容的分析演算法指的是利用網頁內容(文本、數據等資源)特徵進行的網頁評價。網頁的內容從原來的以超文本為主,發展到後來動態頁面(或稱為Hidden Web)數據為主,後者的數據量約為直接可見頁面數據(PIW,Publicly Indexable Web)的400~500倍。另一方面,多媒體數據、Web Service等各種網路資源形式也日益豐富。因此,基於網頁內容的分析演算法也從原來的較為單純的文本檢索方法,發展為涵蓋網頁數據抽取、機器學習、數據挖掘、語義理解等多種方法的綜合應用。本節根據網頁數據形式的不同,將基於網頁內容的分析演算法,歸納以下三類:第一種針對以文本和超鏈接為主的無結構或結構很簡單的網頁;第二種針對從結構化的數據源(如RDBMS)動態生成的頁面,其數據不能直接批量訪問;第三種針對的數據界於第一和第二類數據之間,具有較好的結構,顯示遵循一定模式或風格,且可以直接訪問
base set
基本集
基礎集合
base基數
在HITS 演算法中,對每個文檔都要計算兩個值:權威值(authority)與中心值(hub)。開始時,由用戶發出查詢,HITS 演算法使用一個基於文本的搜索引擎,得到許多被返回的頁面,構成根集合(root set)R。把根集合中的頁面所指向的頁面都包括進來,再把指向根集合中的頁面的頁面也包括進來,這樣就擴充成了基礎集合(base set)T.
㈥ hits演算法為什麼歸一化
您好,為了空間的考慮,我們在存儲Web圖的時候,一般都是用的鄰接矩陣表示。
經過分析發現,一個頁面的權威值,其實是指向它的頁面的中心值之和;一個頁面的中心值,是它指向的頁面的權威值的過程。這是一個相互加強的過程。
為什麼要歸一化。主要原因是消除不同維度數據之間的差異,還以加快訓練演算法的收斂速度。包括去除量綱不一致的缺陷,時間序列不平穩。
㈦ HITS演算法的演算法由來
HITS的演算法由來
HITS 演算法是由康奈爾大學( Cornell University ) 的Jon Kleinberg 博士於1997 年首先提出的,為IBM
公司阿爾馬登研究中心( IBM Almaden Research Center) 的名為「CLEVER」的研究項目中的一部分。
HITS
(Hyperlink – Inced Topic Search) 演算法是利用HubPAuthority的搜索方法,
具體演算法如下:
將查詢q提交給基於關鍵字查詢的檢索系統,從返回結果頁面的集合中取前n個網頁(如n=200),作為根集合(root set),記為S,則S滿足:
S中的網頁數量較少
S中的網頁是與查詢q相關的網頁
S中的網頁包含較多的權威(Authority)網頁
通過向S 中加入被S 引用的網頁和引用S 的網頁,將S 擴展成一個更大的集合T. 以T 中的Hub 網頁為頂點集V1 ,以權威網頁為頂點集V2 。
V1 中的網頁到V2 中的網頁的超鏈接為邊集E ,形成一個二分有向圖. 對V1 中的任一個頂點v ,用h ( v) 表示網頁v 的Hub 值,且h ( v)收斂;對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操作:a ( u) = Σh ( v) ;O 操作: h ( v) = Σa ( u) 。每次迭代對a ( u) 、h ( v) 進行規范化處理: a ( u) = a ( u)/Σ[ a ( q) ]2 ;h ( v) = h ( v)/Σ[ h ( q) ]2 。
㈧ 如何利用HITS演算法SEO優化網站提升排名
一個完整的SEO優化方案主要由四個小組組成:
一、前端/頁編人員
二、內容編輯人員
三、推廣人員
四、數據分析人員
接下來,我們就對這四個小組分配工作。
首先,前端/頁編人員主要負責站內優化,主要從四個方面入手:
第一個,站內結構優化
合理規劃站點結構(1、扁平化結構 2、輔助導航、麵包屑導航、次導航)
內容頁結構設置(最新文章、推薦文章、熱門文章、增加相關性、方便自助根據鏈接抓取更多內容)
較快的載入速度
簡潔的頁面結構
第二個,代碼優化
Robot.txt
次導航
404頁面設置、301重定向
網站地圖
圖片Alt、title標簽
標題
關鍵詞
描述
關鍵字密度
個別關鍵字密度
H1H2H3中的關鍵字
關鍵字強調
外鏈最好nofollow
為頁面添加元標記meta
豐富網頁摘要(微數據、微格式和RDFa)
第三個,網站地圖設置
html網站地圖(1、為搜索引擎建立一個良好的導航結構 2、橫向和縱向地圖:01橫向為頻道、欄目、專題/02縱向主要針對關鍵詞 3、每頁都有指向網站地圖的鏈接)
XML網站地圖(sitemap.xml提交給網路、google)
第四個,關鍵詞部署
挑選關鍵詞的步驟(1、確定目標關鍵詞 2、目標關鍵詞定義上的擴展 3、模擬用戶的思維設計關鍵詞 4、研究競爭者的關鍵詞)
頁面關鍵詞優化先後順序(1、最終頁>專題>欄目>頻道>首頁 2、最終頁:長尾關鍵詞 3、專題頁:【a、熱門關鍵詞 b、為熱點關鍵詞製作專題 c、關鍵詞相關信息的聚合 d、輔以文章內鏈導入鏈接】 4、欄目頁:固定關鍵詞 5、頻道頁:目標關鍵詞 6、首頁:做行業一到兩個頂級關鍵詞,或者網站名稱)
關鍵詞部署建議(1、不要把關鍵詞堆積在首頁 2、每個頁面承載關鍵詞合理數目為3-5個 3、系統規劃)
然後,我們的內容編輯人員要對網站進行內容建設,怎樣合理的做到網站內部優化的功效?這里主要有五個方面:
第一個,網站內容來源
原創內容或偽原創內容
編輯撰稿或UGC
掃描書籍、報刊、雜志
第二個,內容細節優化
標題寫法、關鍵詞、描述設置
文章摘要規范
URL標准化
次導航
內頁增加錨文本以及第一次出現關鍵詞進行加粗
長尾關鍵詞記錄單
圖片Alt、titile標簽
外鏈最好nofollow
網路站長工具、google管理員工具的使用
建立反向鏈接
第三個,關鍵詞部署
挑選關鍵詞的步驟(1、確定目標關鍵詞 2、目標關鍵詞定義上的擴展 3、模擬用戶的思維設計關鍵詞 4、研究競爭者的關鍵詞)
頁面關鍵詞優化先後順序(1、最終頁>專題>欄目>頻道>首頁 2、最終頁:長尾關鍵詞 3、專題頁:【a、熱門關鍵詞 b、為熱點關鍵詞製作專題 c、關鍵詞相關信息的聚合 d、輔以文章內鏈導入鏈接】 4、欄目頁:固定關鍵詞 5、頻道頁:目標關鍵詞 6、首頁:做行業一到兩個頂級關鍵詞,或者網站名稱)
關鍵詞部署建議(1、不要把關鍵詞堆積在首頁 2、每個頁面承載關鍵詞合理數目為3-5個 3、系統規劃)+(網站商城定製開發修改需要關注本資料+聯是來看)
第四個,內鏈策略
控制文章內部鏈接數量
鏈接對象的相關性要高
給重要網頁更多的關注
使用絕對路徑
需要改進的地方
第五個,注意事項
不要大量採集
有節奏的更新
編輯發布文章的時候要做好錨文本
做好長尾關鍵詞記錄單
接下來,我們的推廣人員就要對網站進行站外優化了,這里主要包括兩個大的方面:
第一個,外鏈建設基本途徑
友情鏈接
軟文
目錄提交
獨立博客
論壇簽名
黃頁網站
提交收藏
分類信息
微博推廣
sns推廣
第二個,鏈接誘餌建設思路
舉辦活動,帶上相關鏈接,引導網友大規模轉播
最後,我們的數據分析人員就要對網站進行每天的數據分析,總結流量來源,這里主要從五個方面分析:
第一個,數據分析
根據統計(網路統計工具,CNZZ統計工具等等),分析用戶進入的關鍵詞,模擬用戶思路,思考長尾關鍵詞
第二個,競爭對手分析
網路權重、PR值
快照
反鏈
內鏈
收錄
網站歷史
品牌關鍵詞
長尾關鍵詞
網站結構
第三個,關鍵詞定位
目標關鍵詞
品牌關鍵詞
熱門關鍵詞
長尾關鍵詞
第四個,長尾關鍵詞挖掘—長尾關鍵詞類型
目標型長尾(目標型指的是網站的產品或者服務延伸的長尾關鍵詞,往往優化長尾的時候都是先以目標型長尾為主,因為這些長尾可以真實給我們帶來目標客戶和目標量)
營銷型長尾(營銷型長尾是指與行業站服務相關的長尾,可以讓我們進行二次轉化成我們的目標用戶)
第五個,挖掘長尾關鍵詞用到的工具
網路指數工具
網路知道
網路及其他SE的相關搜索及下拉框
網路站長工具、google關鍵詞分析工具
至此,一個完整的網站SEO優化方案已經完成。
㈨ hits演算法:在網上找了幾個關於hits的java實現演算法,演算法的輸入都是一個方陣,請問不是方陣的如何實現
k相當於你用來記錄每次運算的進度的,k不斷的增長的過程,就是假設你用手算一個一個運算的過程。你寫兩個矩陣A是3*3的,B是3*3的,兩個矩陣相乘,你看看是不是你手算的過程和這個程序的步驟是一致的。如果不是方陣假設A是2*3.B是3*2那麼k還是原來的東西。只不過,2用i來循環,3用j來循環,for (int i = 0; i < len; i++)中的len=2. for (int j = 0; j < len; j++)中的len=3而已了。k=2因為C=A*B是2*2的。不明白你再問O(∩_∩)O
㈩ HITS演算法的具體解釋
按照HITS演算法,用戶輸入關鍵詞後,演算法對返回的匹配頁面計算兩種值,一種是樞紐值(Hub Scores),另一種是權威值(Authority Scores),這兩種值是互相依存、互相影響的。所謂樞紐值,指的是頁面上所有導出鏈接指向頁面的權威值之和。權威值是指所有導入鏈接所在的頁面中樞紐之和。
一個網頁重要性的分析的演算法。
通常HITS演算法是作用在一定范圍的,比如一個以程序開發為主題網頁,指向另一個以程序開發為主題的網頁,則另一個網頁的重要性就可能比較高,但是指向另一個購物類的網頁則不一定。
在限定范圍之後根據網頁的出度和入度建立一個矩陣,通過矩陣的迭代運算和定義收斂的閾值不斷對兩個向量Authority和Hub值進行更新直至收斂。