万维网WWW(World Wide Web)是一个巨大的,分布全球的信息服务中心,正在以飞快的速度扩展。据马海祥了解在1998年WWW上就已经拥有约3.5亿个文档,每天增加约1百万的文档,不到9个月的时间文档总数就会翻一番。WEB上的文档和传统的文档比较,有很多新的特点,它们是分布的,异构的,无结构或者半结构的,这就对传统信息检索技术提出了新的挑战。
传统的WEB搜索引擎大多数是基于关键字匹配的,返回的结果是包含查询项的文档,也有基于目录分类的搜索引擎,这些搜索引擎的结果并不令人满意。有些站点有意提高关键字出现的频率来提高自身在搜索引擎中的重要性,破坏搜索引擎结果的客观性和准确性。
另外,有些重要的网页并不包含查询项。搜索引擎的分类目录也不可能把所有的分类考虑全面,并且目录大多靠人工维护,主观性强,费用高,更新速度慢。
许多研究者发现,WWW上超链结构是个非常丰富和重要的资源,如果能够充分利用的话,可以极大的提高检索结果的质量。
基于这种超链分析的思想,Sergey Brin和Lawrence Page在1998年提出了PageRank算法,同年J. Kleinberg提出了HITS算法,其它一些学者也相继提出了另外的链接分析算法,如SALSA,PHITS,Bayesian等算法。这些算法有的已经在实际的系统中实现和使用,并且取得了良好的效果。在此,马海祥就按照时间顺序详细的为大家剖析一下各种链接分析算法:
一、WEB超链分析算法
对于WEB超链分析算法,马海祥就从PageRank算法、HITS算法、SALSA算法、PHITS算法、贝叶斯算法和Reputation算法来为大家解说一下:
1、Google和PageRank算法
搜索引擎Google最初是斯坦福大学的博士研究生Sergey Brin和Lawrence Page实现的一个原型系统,现在已经发展成为WWW上最好的搜索引擎之一。Google的体系结构类似于传统的搜索引擎,它与传统的搜索引擎最大的不同处在于对网页进行了基于权威值的排序处理,使最重要的网页出现在结果的最前面。
Google通过PageRank元算法计算出网页的PageRank值(具体可查看马海祥博客的《pr值是什么》相关介绍),从而决定网页在结果集中的出现位置,PageRank值越高的网页,在结果中出现的位置越前。
(1)、PageRank算法
据马海祥博客了解PageRank算法是基于下面2个前提:
前提1:一个网页被多次引用,则它可能是很重要的;一个网页虽然没有被多次引用,但是被重要的网页引用,则它也可能是很重要的;一个网页的重要性被平均的传递到它所引用的网页。这种重要的网页称为权威(Authoritive)网页。
前提2:假定用户一开始随机的访问网页集合中的一个网页,以后跟随网页的向外链接向前浏览网页,不回退浏览,浏览下一个网页的概率就是被浏览网页的PageRank值。
简单PageRank算法描述如下:u是一个网页,是u指向的网页集合,是指向u的网页集合,是u指向外的链接数,显然 =|| ,c是一个用于规范化的因子(Google通常取0.85),(这种表示法也适用于以后介绍的算法)则u的Rank值计算如下:
这就是算法的形式化描述,也可以用矩阵来描述此算法,设A为一个方阵,行和列对应网页集的网页。如果网页i有指向网页j的一个链接,则,否则=0。设V是对应网页集的一个向量,有V=cAV,V为A的特征根为c的特征向量。实际上,只需要求出最大特征根的特征向量,就是网页集对应的最终PageRank值,这可以用迭代方法计算。
如果有2个相互指向的网页a,b,他们不指向其它任何网页,另外有某个网页c,指向a,b中的某一个,比如a,那么在迭代计算中,a,b的rank值不分布出去而不断的累计。如下图所示:
为了解决这个问题,Sergey Brin和Lawrence Page改进了算法,引入了衰退因子E(u),E(U)是对应网页集的某一向量,对应rank的初始值,算法改进如下:
其中,=1,对应的矩阵形式为V’=c(AV’+E)。
另外还有一些特殊的链接,指向的网页没有向外的链接。PageRank计算时,把这种链接首先除去,等计算完以后再加入,这对原来计算出的网页的rank值影响是很小的。
Pagerank算法除了对搜索结果进行排序外,还可以应用到其它方面,如估算网络流量,向后链接的预测器,为用户导航等(具体可查看马海祥博客的《pr的计算公式及影响因素》详细介绍)。
(2)、算法的一些问题
Google是结合文本的方法来实现PageRank算法的,所以只返回包含查询项的网页,然后根据网页的rank值对搜索到的结果进行排序,把rank值最高的网页放置到最前面,但是如果最重要的网页不在结果网页集中,PageRank算法就无能为力了,比如在Google中查询search engines,像Google,Yahoo,Altivisa等都是很重要的,但是Google返回的结果中这些网页并没有出现。
同样的查询例子也可以说明另外一个问题,Google和Yahoo都是WWW上最受欢迎的网页,如果出现在查询项car的结果集中,一定会有很多网页指向它们,就会得到较高的rank值,事实上他们与car不太相关。
在PageRank算法的基础上,其它的研究者提出了改进的PageRank算法。华盛顿大学计算机科学与工程系的Matthew Richardson和Pedro Dominggos提出了结合链接和内容信息的PageRank算法,去除了PageRank算法需要的前提2,增加考虑了用户从一个网页直接跳转到非直接相邻的但是内容相关的另外一个网页的情况。
斯坦大学计算机科学系Taher Haveliwala提出了主题敏感(Topic-sensitive)PageRank算法。斯坦福大学计算机科学系Arvind Arasu等经过试验表明,PageRank算法计算效率还可以得到很大的提高。
2、HITS算法及其变种
PageRank算法中对于向外链接的权值贡献是平均的,也就是不考虑不同链接的重要性。而WEB的链接具有以下特征:
①、有些链接具有注释性,也有些链接是起导航或广告作用,有注释性的链接才用于权威判断。
②、基于商业或竞争因素考虑,很少有WEB网页指向其竞争领域的权威网页。
③、权威网页很少具有显式的描述,比如Google主页不会明确给出WEB搜索引擎之类的描述信息。
可见平均的分布权值不符合链接的实际情况,J. Kleinberg提出的HITS算法中引入了另外一种网页,称为Hub网页,Hub网页是提供指向权威网页链接集合的WEB网页,它本身可能并不重要,或者说没有几个网页指向它,但是Hub网页确提供了指向就某个主题而言最为重要的站点的链接集合,比一个课程主页上的推荐参考文献列表。
一般来说,好