Hits算法背景
假定現在有很多網頁,每個網頁會有一些鏈接指向其他網頁。
在Hits算法中每個網頁被賦予兩個值:hub和authority,記為\(h_i\)和\(a_i\)。
一個網頁實質性內容的質量越高,就說它的authority值越高;如果一個網頁中鏈接指向的網站質量越高,就說它的hub值越高。顯然一個authority值較高的網頁會被較多網頁所指向。
於是我們定義一個網頁的authority值為所有指向它的網頁的hub值之和,一個網頁的hub值為它所指向的網頁的authority值之和。Hits算法就是在給出網頁鏈接的情況下,通過迭代求出每個網頁的authority和hub值。
Hits算法流程
設網頁間的鄰接矩陣為\(M\),也就是\(M_{i,j}=1\)表示網頁\(i\)指向網頁\(j\)。一開始假定每個網頁的authority值和hub值均為1,然后進行迭代,
每次進行如下操作$$a_i=\sum_{k=1}^nM_{k,i}h_k$$
然后把\(a\)向量和\(h\)向量標准化。
可以設置一個迭代次數的上限或是當變化量小於某個閾值時結束,就得到了每個網站的authority值和hub值。
Hits算法證明
假定\(a^k,h^k\)為操作\(k\)次后的\(a,h\)向量,那么有$$a^k=M^Th^{k-1}$$
可以發現$$a^k=(M^TM)^ka^0$$
顯然\(MM^T\)和\(M^TM\)均為實對稱矩陣,又因為一個實對稱矩陣必有\(n\)個特征值,並且其特征向量兩兩正交,設\(MM^T\)特征值從大到小為\(c_1,\dots,c_n\),對應的特征向量為\(z_1,\dots,z_n\),因此\(h^0\)可由其特征向量線性表出,設為$$MM^T=q_1z_1+\dots+q_nz_n$$
那么$$(MM^T)^kh_0$$
又因為\((MM^T)z_i=c_iz_i\),因此上式$$=q_1(c_1)^kz_1+\dots+q_n(c_n)^kz_n$$
又因為每次會對向量進行標准化,可以發現最終\(h^k\)向量會收斂到\(MM^T\)的主特征向量,同理\(a^k\)也會收斂,於是我們就證明了這個算法是會收斂的。