zoukankan      html  css  js  c++  java
  • Hits算法

    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$$

    [h_i=sum_{k=1}^nM_{i,k}a_k ]

    然后把(a)向量和(h)向量标准化。
    可以设置一个迭代次数的上限或是当变化量小于某个阈值时结束,就得到了每个网站的authority值和hub值。

    Hits算法证明

    假定(a^k,h^k)为操作(k)次后的(a,h)向量,那么有$$ak=MTh^{k-1}$$

    [h^k=Ma^k ]

    可以发现$$ak=(MTM)ka0$$

    [h^k=(MM^T)^kh^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$$
    那么$$(MMT)kh_0$$

    [=(MM^T)^k(q_1z_1+dots+q_nz_n) ]

    又因为((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)也会收敛,于是我们就证明了这个算法是会收敛的。

  • 相关阅读:
    Word Break
    Binary Tree Right Side View
    41. First Missing Positive
    2 Sum ,3 Sum, 3 Sum close
    216. Combination Sum III
    190. Reverse Bits
    143. Reorder List
    142. Linked List Cycle II
    Single Number i,ii,iii
    62. Unique Paths i & ii
  • 原文地址:https://www.cnblogs.com/beginend/p/11737529.html
Copyright © 2011-2022 走看看