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)向量,那么有$$ak=MTh^{k-1}$$
可以发现$$ak=(MTM)ka0$$
显然(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$$
那么$$(MMT)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)也会收敛,于是我们就证明了这个算法是会收敛的。