搜索引擎算法研究(二)

来源:互联网 发布:java垃圾回收 编辑:程序博客网 时间:2024/05/18 00:53

2.1.2 算法的一些问题

   Google是结合文本的方法来实现PageRank算法的[2],所以只返回包含 查询项的网页,然后根据网页的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,增加考虑了用户从一个网页直接跳转到非直 接相邻的但是内容相关的另外一个网页的情况[3]。斯坦大学计算机科学系Taher Haveliwala提出了主题敏感(Topic-sensitive)PageRank算法[4]。斯坦福大学计算机科学系Arvind Arasu等经过试验表明,PageRank算法计算效率还可以得到很大的提高[22]

 

.2 HITS算法及其变种

   PageRank算法中对于向外链接的权值贡献是平均的,也就是不考虑不同链接的重要性。而WEB的链接具有以下特征:

   1.有些链接具有注释性,也有些链接是起导航或广告作用。有注释性的链接才用于权威判断。
   2.基于商业或竞争因素考虑,很少有WEB网页指向其竞争领域的权威网页。
   3.权威网页很少具有显式的描述,比如Google主页不会明确给出WEB搜索引擎之类的描述信息。

   可见平均的分布权值不符合链接的实际情况[17]。J. Kleinberg[5]提 出的HITS算法中引入了另外一种网页,称为Hub网页,Hub网页是提供指向权威网页链接集合的WEB网页,它本身可能并不重要,或者说没有几个网页指 向它,但是Hub网页确提供了指向就某个主题而言最为重要的站点的链接集合,比一个课程主页上的推荐参考文献列表。一般来说,好的Hub网页指向许多好的 权威网页;好的权威网页是有许多好的Hub网页指向的WEB网页。这种Hub与Authoritive网页之间的相互加强关系,可用于权威网页的发现和 WEB结构和资源的自动发现,这就是Hub/Authority方法的基本思想。

2.2.1 HITS算法

   HITS(Hyperlink-Induced Topic Search)算法是利用Hub/Authority方法的搜索方法,算法如下:将查询q提交给传统的基于关键字匹配的搜索引擎.搜索引擎返回很多网页, 从中取前n个网页作为根集(root set),用S表示。S满足如下3个条件:

   1.S中网页数量相对较小
   2.S中网页大多数是与查询q相关的网页
   3.S中网页包含较多的权威网页。

   通过向S中加入被S引用的网页和引用S的网页将S扩展成一个更大的集合T.

   以T中的Hub网页为顶点集Vl,以权威网页为顶点集V2,Vl中的网页到V2中的网页的超链接为边集E,形成一个二分有向图SG=(V1,V2,E)。 对V1中的任一个顶点v,用h(v)表示网页v的Hub值,对V2中的顶点u,用a(u)表示网页的Authority值。开始时h(v)=a(u)= 1,对u执行I操作修改它的a(u),对v执行O操作修改它的h(v),然后规范化a(u),h(v),如此不断的重复计算下面的操作I,O,直到a (u),h(v)收敛。(证明此算法收敛可见

I 操作: (1) O操作: (2)

   每次迭代后需要对a(u),h(v)进行规范化处理:

   式(1)反映了若一个网页由很多好的Hub指向,则其权威值会相应增加(即权威值增加为所有指向它的网页的现有Hub值之和)。式(2)反映了若一个网页指向许多好的权威页,则Hub值也会相应增加(即Hub值增加为该网页链接的所有网页的权威值之和)。

   和PageRank算法一样,可以用矩阵形式来描述算法,这里省略不写。
   HITS算法输出一组具有较大Hub值的网页和具有较大权威值的网页。

2.2.2 HITS的问题

   HITS算法有以下几个问题:

   1.实际应用中,由S生成T的时间开销是很昂贵的,需要下载和分析S中每个网页包含的所有链接,并且排除重复的链接。一般T比S大很多,由T生成有向图也很耗时。需要分别计算网页的A/H值,计算量比PageRank算法大。

   2.有些时候,一主机A上的很多文档可能指向另外一台主机B上的某个文档,这就增加了A上文档的Hub值和 B上文档的Authority,相反的情况也如此。HITS是假定某一文档的权威值是由不同的单个组织或者个人决定的,上述情况影响了A和B上文档的 Hub和Authority值[7]

   3.网页中一些无关的链接影响A,H值的计算。在制作网页的时候,有些开发工具会自动的在网页上加入一些链 接,这些链接大多是与查询主题无关的。同一个站点内的链接目的是为用户提供导航帮助,也与查询主题不甚无关,还有一些商业广告,赞助商和用于友情交换的链 接,也会降低HITS算法的精度[8]

   4.HITS算法只计算主特征向量,也就是只能发现T集合中的主社区(Community),忽略了其它重要的社区[12]。事实上,其它社区可能也非常重要。

   5.HITS算法最大的弱点是处理不好主题漂移问题(topic drift)[7,8],也就是紧密链接TKC(Tightly-Knit Community Effect)现象[8]。如果在集合T中有少数与查询主题无关的网页,但是他们是紧密链接的,HITS算法的结果可能就是这些网页,因为HITS只能发现主社区,从而偏离了原来的查询主题。下面讨论的SALSA算法中解决了TKC问题。

   6.用HITS进行窄主题查询时,可能产生主题泛化问题[5,9],即扩展以后引入了比原来主题更重要的新的主题,新的主题可能与原始查询无关。泛化的原因是因为网页中包含不同主题的向外链接,而且新主题的链接具有更加的重要性。