看了一些跟HITS相关的论文,在此做个小小的总结。
个人认为HITS算法就是一个对有向的二分图进行操作的算法。
HITS算法主要有两部分构成,分别是hub值和authority值,翻译成中文,应该是枢纽值和权威值。
HITS算法首先根据如下规则将节点划分为两个集合:
1.若某个节点的入度不为0,则该节点属于A集合
2.若某个节点的出度不为0,则该节点属于H集合
根据上述两条规则,存在某个节点同时属于两个集合,这种情况是允许存在的。到此,二分图划分完毕,同一个集合之间不存在连边,所有连边都是从H集合指向A集合的有向边。
在文献计量学中,以文献引用网络为例。节点表示文献,节点i到节点j的连边表示文献i引用文献j。最终得到每篇文献的hub值和authority值(在下文中这两个值分别用h和a表示)。一般情况下,根据节点的a值进行排序,有时候也会用到h值。
现在来讲讲HITS算法的具体迭代过程,即节点h值和a值的计算方法。HITS算法通过如下两个公式计算对应的值
hi = sum(aj)
aj = sum(hi)
稍微对这两个公式做一些介绍。第一个等式左边的hi表示在第t次迭代计算时文献i得到的h值(新得到的),等式右边的aj表示在t-1次迭代计算时文献j的a值,sum表示对所有被文献i引用的文献进行求和。同理,第二个等式左边的aj表示第t次迭代计算时文献j得到的a值,等式右边的hi表示第t-1次迭代时文献i拥有的h值,sum表示对所有引用j的文献进行求和。当迭代完成,对所有节点的h值和a值进行归一化处理,一般是分别除以最大的h值和a值。
当算法在一定范围内收敛时,停止迭代,节点根据各自的h值或a值进行排序。
上述两个公式表明,HITS算法将某个节点拥有的h值或a值全部赋予给他的链出节点或链入节点。根据这几天看的论文,HITS算法收敛速度较慢,对排序结果的鲁棒性较差,即若干节点的变动,会导致排序结果的变化。另外,HITS算法有时会发生主题便宜现象,即a值较高的节点,往往发生在网络较为密集的连通图中。
不过,HITS算法也有他的优点。其在搜索引擎中,与输入的查询较为相关,被广泛应用于搜索引擎的网页搜索中。