HITS:沿用至今的网页排序算法

前言

上世纪90年代,搜索引擎尚未成熟,蕴含着巨大的的发展潜力,除了PageRank被开发,Jon Kleinberg提出他的解决网络搜索问题的方法。该方法利用网络的链接结构来发现与特定主题相关的页面并对其进行排名,称为HITS(Hyperlink-Induced Topic Search),这种算法不仅在思想上与PageRank有异曲同工之妙,而且在价值上也丝毫不逊色与PageRank。HITS具有强大的性能,以至于现在仍是搜索引擎www.Ask.com的一部分。

为什么要HITS算法

Kleinberg提出的一个有价值的观点是,搜索引擎的搜索过程比仅仅将查询词列表与网页文档列表进行比较并返回匹配项要复杂得多。假设我们想买一辆车,输入一个普通的查询短语,比如“过去4年里最好的automobile makers”,也许是想得到一个顶级汽车品牌的列表和它们的官方网站。当你问你的朋友这个问题时,你希望他们能够理解automobile的意思是汽车,车辆,但automobile是一个一般的概念,包括货车,卡车和其他类型的汽车。当你问一台运行基于文本的排名算法的计算机这个问题时,情况可能会非常不同。该计算机将计算给定单词在给定文档中出现的所有次数,但不会为您进行智能复述。我们得到的网页列表,虽然算法是正确的,但可能与预期的大不相同。更重要的问题是,大多数官方网站都没有足够的自我描述。他们可能不会像公众所认为的那样宣传自己。像本田、丰田这样的顶级公司,甚至可能不会在他们的网站上使用“automobile makers”这个词。他们可能会用“car manufactory”这个词来代替,或者只是描述他们的产品和业务。

在这种情况下该怎么办呢? 如果计算机能有字典,那么对于任何查询,它们都能找出同义词,即短语的等价含义,那就很可能会提高搜索的质量。然而,最终,我们仍然需要一个基于文本的网页排名系统,仍然面临着对与查询短语的不同含义相关的大量页面进行排序的初始问题。结论是,即使在网页搜索过程中可以通过查找包含查询词的页面应该作为第一步,也需要一个新颖的排名系统来查找并排序对于给定查询可信的的网页。

Kleinberg尝试将网页分成两类,一类是authority页面,另一类是hub页面。如果第i页包含有关该主题的有价值的信息,则它被称为查询“automobile makers”的authority。汽车制造商的官方网站,如www.bmw.com、HyundaiUSA.com是我们要搜索的“authorities”。销售汽车的商业网站也可能是这方面的“authorities”。这些是与给定查询真正相关的。这些是用户期望从查询引擎返回的内容。但是,还有第二类页面与查找authority页面的过程相关,称为“hub”。他们的作用是宣传“authority”页面。它们包含指向authority页面的有用链接。换句话说,“hub”将搜索引擎指向“正确的方向”。在现实生活中,当你买车时,你更倾向于从你朋友推荐的某个经销商那里购买。按照这个类比,在这种情况下,“authority”是汽车经销商,而“hub”是你的朋友。你信任你的朋友,所以你相信你朋友推荐的东西。

图1 hubs和authorities示意图


HITS思想

Kleinberg的HITS算法通过为每个网页分配两个数字(authority权重和hub权重)来识别对于一个搜索主题的哪些网站更倾向于是authority而哪些网站更倾向于是hub。这两种权重是递归定义的。在递归迭代过程中,如果页面由高hub权重的页面指向,则会出现更高的authority权重。如果页面指向许多具有高authority权重的页面,则会出现较高的hub权重。

为了在极度宏大的互联网中获得查询Q的hubs和authorities,我们首先收集包含搜索短语Q出现次数最多的前200个网页文档。正如前面指出的,这些文档可能与查询Q没有很大的实际相关性,但这是我们解决目标查询Q不得不选取的一个起始点。Kleinberg指出,这组被称为根(RQ)的200个网页文档本质上是非常异构的,通常彼此之间只包含很少的链接。因此,我们不能在RQ上强制使用Page Rank技术。

目标查询Q的authorities不太可能集中于根集RQ中。然而,它们很可能在RQ中至少有一页被指出(超链接)。所以需要扩展子图RQ,引入所有来自或指向RQ节点的边。这里用SQ表示结果子图,并将其称为搜索的种子。请注意,构建的SQ是一个相当小的图(尽管相比RQ有所扩展,但比百亿个节点的web图小得多!)SQ很可能包含非常多Q的authority。剩下的问题是如何识别和评价authorities?

HITS采用启发式算法,同一查询的authorities应该有许多来自SQ的公共页面指向它们,在指向它们的hubs中应该有很大的重叠。从这里开始,我们把一切都翻译成数学语言。我们将每个页面i关联两个数字:权威权重a(i)和枢纽权重h(i)。我们认为具有较高a(i)数的页面是更好的authority,具有较高h(i)数的页面是更好的hub。给定SQ中所有节点的权值{a(i)}和{h(i)},我们动态更新权值如下: (a(i)h(i)下称为a/h权重)

图2 h(p) 等于所有被p指向的网站i的a(i)权重之和

图3 a(p) 等于所有指向p的网站i的h(i)权重之和

HITS核心思想: 一个好的hub可以增加它所指向的页面的authority权重。一个好的authority会增加指向它的页面的hub权重。HITS算法想法是交替进行上述两个操作,直到子图SQ中的各站点authority和hub权重不再变化(收敛)。

HITS的数学表达

首先,我们用一个矩阵A来表示目标子网络SQ的邻接矩阵。并引入两个向量分别记录网络中各节点的a/h权重值。

接下来,我们把图二和图三的运算转换成如下矩阵运算的形式:

图片

假设我们定义初始的权重向量为

图片

那么

v_0=A^T\begin{bmatrix} 1\\ 1\\ ...\\ 1 \end{bmatrix}

经过k步变换以后,我们得到系统如下:

图片

当该系统收敛得到的vu向量就是子图中的节点的a/h权重。

举个栗子

考虑一个十分简单的图:

图片

图片

图片

假设初始的权重向量为

图片

我们可以计算authority矩阵为:

图片

再更新hub矩阵为:

图片

这已经符合我们的直觉,即节点3是authority,因为它是唯一一个有传入边的节点,节点1和2是同样重要的hub。如果我们进一步重复这个过程,我们将只得到在步骤1中计算的向量v和u的标量倍。所以节点的相对权重保持不变。

复杂图上的计算

对于更加复杂的图,上述计算是不能轻易收敛的,意味着很难找到对应的a/h向量矩阵。因此需要借助如下定理:

定理:假设A^TAAA^T是本原矩阵(primitive matrix),那么如下结论成立:

1、如果能够计算出authority向量,那么这个向量收敛于与矩阵A^TA的主特征值相对应的唯一概率向量。

2、如果能够计算出hub向量,那么这个向量收敛于与矩阵AA^T的主特征值相对应的唯一概率向量。

基于上述定理,因此,authority向量是A^TA最大特征值对应的概率特征向量,hub向量由AA^T最大特征值对应的概率特征向量给出。

HITS与PageRank

HITS算法与PageRank的思想是一样的。它们都利用Web图的链接结构来决定页面的相关性。不同的是,与PageRank算法不同,HITS只对web图中的一个小子图(种子SQ)进行操作。这个子图是与目标查询相关的;每当我们使用不同的查询短语进行搜索时,种子也会发生变化。HITS根据种子节点的权限和枢纽权重对它们进行排序。查询引擎向用户显示排名最高的页面。

更详细的PageRank原理及计算详见:

PageRank:万亿谷歌巨轮背后的线代奥秘

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值