搜索引擎排序算法概述

一、传统搜索引擎排序算法概述

1. 1 搜索引擎排序算法概述

搜索引擎查询的结果是按照一定的规则排序供用户查看, 这种规则就是搜索引擎排序算法. 目前几种比较通用的搜索引擎排序算法有Direct Hit 排序算法、PageRank、排名竞价服务和词频位置加权排序算法.Direct Hit 排序算法是一种动态排序算法, 搜索引擎返回的排序结果根据用户的点击和网页被浏览的时间进行变化. PageRank 是著名搜索引擎Google 使用的排序算法, 利用了网页的链接结构进行计算网页的PR 值进行排序. 竞价排名服务是一些网站购买关键字排名, 搜索引擎按照点击( 也有按照时间段) 进行计费的一种服务. 词频位置加权排序算法是一种从关键字出现次数和位置考虑进行排序的算法. 文章主要讨论词频位置加权排序算法.

1. 2 词频位置加权排序算法

词频位置加权排序算法是网页排序中基础的算法, 著名的开源全文检索包Lucene 的基础排序算法思想就是词频位置加权排序, Lucene 在搜索引擎中得到了广泛的应用, 德国的网站检索系统Ifinder和开源搜索引擎Nutch 等大量搜索引擎基于Lucene 进行检索排序.词频位置加权排序算法以一个关键词与网页的相关度大小作为排序标准, 而关键词在网页中的相关度则由它在网页中出现的频数和位置两个方面加权计算得出. 该排序算法实现的基本步骤是: 采集网页、解析出网页的各个部分、过滤停用词、获得关键词、根据关键词的位置和频次加权得出查询词与网页的相关度、按照相关度排序展现给用户.可以看出, 该方法获取的是整张网页的关键词在广告和导航信息大量存在的现实中相关度的计算受到了极大影响. 如果能对网页进行分块并按一定的算法尽量的去除广告和导航等噪音信息, 将会有效提高相关度计算的准确度.

二、 网页分块算法介绍

目前对网页进行分块方法的研究已有很多,其中比较有效的是由微软亚洲研究院提出的VIPS( Vision based Page Segmentation ) , 笔者只讨论VIPS. VIPS 算法中Web 页面的结构定义如下:将网页看作一个三元组。

将网页看作一个三元组

其中

表示给定页面上的所有的语义块的集合, 这些语义块之间没有重叠覆盖, 而每一个语义块又可以被定义为前面所描述的三元组

如此迭代循环.

表示当前页面上的所有的分隔条的集合. 事实上, 一旦确定了一个页面上的两个语义块, 那么这两个语义块之间的分隔条也就被确定了. 当然, VIPS 中的分隔条并不是真正存在的分隔条, 而是虚拟. 分隔条包括水平分隔条, 包括垂直分隔条. 每一个分隔条都具有一定的宽度和高度.

则描述了集合中两个语义块之间的关系, 这种关系可以描述为

其中每个δ都是一个形如( v i , v j ) 二元组, 其表示块vi 和v j 之间存在一个分割条.

VIPS 利用Web 页面的视觉提示如背景颜色、字体颜色和大小、边框、逻辑块和逻辑块之间的间距等, 并结合DOM 树进行页面分块. 它具有三个步骤: 页面块提取、分隔条提取以及语义块重构. 这三个步骤联合一起作为一次语义块检测的完整步骤.Web 页面首先被分割为几次比较大的语义块, 同时这几个语义块所组成的层次结构将被记录下来. 对于检测出来的每一个大的语义块分块过程又可以继续进行, 直到语义块的Doc( Deg ree of coherence) 值达到预先设定的Pdoc( Permit ted degr ee of coherence) 为止. VIPS 分割效果见图1.

三、搜索引擎排序算法改进

3. 1 网页净化规则

11个常用的搜索引擎高级指令。网页分出块以后, 如何判别语义块中的广告、导航条等噪声网页块是净化网页从而提高搜索引擎排序准确度的关键问题. 通过大量的统计和分析, 利用网页块的文字和链接数量、网页块的空相对间位置和网页块内容属性, 笔者总结出三条规则识别噪声语义块.首先定义网页窗口原点坐标为网页的左上顶角, 网页块中心横坐标X 为该块中心点在窗口中的横坐标, 还有网页块中心纵坐标Y, 网页宽度M, 网页高度N . 通过网页块的相对空间位置来定义网页空间位置, 其定义为

( 1) 网页分块在网页的上、下、左和右位置, 文字数量与链接数量的比小于F1 , 则该块为噪音分块.

( 2) 网页块在中间位置, 文字数量与链接数量的比小于F2 , 则该块为噪音分块.

( 3) 如果网页块整块内容为Flash 文件, 判断该块为噪音块.

( 4) 网页中含有行数超过3 的T ex t 控件, 判断该块为噪音块.

使用搜索引擎Ping服务增加博客收录

3. 2 改进的排序算法描述

本算法采用VIPS 对网页进行分块, 并利用制定的规则净化网页, 从而达到优化排序算法的目的.具体算法如下:

输入: 网页库P 和查询Q, 阈值F1 , F2 , R1 , R 2 ,R3 , R4 .

输出: 排好序的页面集合Sp .

( 1) 统一化网页, 规整网页中不规则的标签.

( 2) 对网页P i 利用VIPS 进行分块.

(3) 利用规则判断和去除网页中的噪音, 达到净化网页的目的.

( 4) 过滤停用词.

( 5) 获取关键词.

( 6) 利用关键词的位置和频次加权计算出查询词Q 与网页P i 的相关度.

( 7) Return Sp .

从算法中可以看出, 所有文档都是经过净化再去参加相关度的计算, 而且是在用户进行检索时实时计算出来的. 式( 1) 为词频位置加权算法的典型公式, 用于计算某文档对应于用户查询关键字的得分.谷歌SEO与百度SEO的区别

式中: sj 为文档j 对应于用户查询词的得分; cj 为文档j 中包含的所有可供查询的词条数量; tij 为查询词i 在文档j 中出现的频率; f i 为查询词i 在文档中出现的倒排词频; b 为在索引过程中设置的字段参数, 通常为1. 0. 其中

和文档无关, 不会影响文档的排名. 式( 2) 中l j 为文档j 的长度, 可以看出经过网页分块并净化网页后, 对r 的影响比较大, 而r 为式( 1) 中影响排序得分的重要因素. 假设有两篇文本内容如下:

a. tx t: I am a student . Her e is an advert isement.

b. txt : I am a student.

根据式(2) , 可算得r 分别为0. 312 5 和0. 5.b. txt 为a. txt 去除了广告主题后的内容, 可以看出b. txt 中内容的r 得到了提高, 从而整个的排序得分提高. 经过网页分块、净化后, 改进算法用净化后的网页代替整张网页参与检索, 提高排序的正确性.

一个网页的重要性分析的算法,是根据一个网页的入度(指向此网页的超链接)和出度(从此网页指向别的网页)来衡量网页的重要性。其最直观的意义是如果一个网页的重要性很高,则他所指向的网页的重要性也高。一个重要的网页被另一个网页所指,则表明指向它的网页重要性也会高。指向别的网页定义为Hub值,被指向定义为Authority值。

  通常HITS算法是作用在一定范围的,比如一个以程序开发为主题网页,指向另一个以程序开发为主题的网页,则另一个网页的重要性就可能比较高,但是指向另一个购物类的网页则不一定。

  在限定范围之后根据网页的出度和入度建立一个矩阵,通过矩阵的迭代运算和定义收敛的阈值不断对两个向量Authority和Hub值进行更新直至收敛。HITS算法也可推广至别的类似的排序系统。

  HITS的变种

  HITS算法遇到的问题,大多是因为HITS是纯粹的基于链接分析的算法,没有考虑文本内容,继J. Kleinberg提出HITS算法以后,很多研究者对HITS进行了改进,提出了许多HITS的变种算法,主要有:

  Monika R. Henzinger和Krishna Bharat对HITS的改进

  对于上述提到的HITS遇到的第2个问题,Monika R. Henzinger和Krishna Bharat在[7]中进行了改进。假定主机A上有k个网页指向主机B上的某个文档d,则A上的k个文档对B的Authority贡献值总共为1,每个文档贡献1/k,而不是HITS中的每个文档贡献1,总共贡献k。类似的,对于Hub值,假定主机A上某个文档t指向主机B上的m个文档,则B上m个文档对 t的Hub值总共贡献1,每个文档贡献1/m。

  ARC算法

  IBM Almaden研究中心的Clever工程组提出了ARC(Automatic Resource Compilation)算法,对原始的HITS做了改进,赋予网页集对应的连结矩阵初值时结合了链接的锚(anchor)文本,适应了不同的链接具有不同的权值的情况。

  ARC算法与HITS的不同主要有以下3点:

  1.由根集S扩展为T时,HITS只扩展与根集中网页链接路径长度为1的网页,也就是只扩展直接与S相邻的网页,而ARC中把扩展的链接长度增加到2,扩展后的网页集称为增集(Augment Set)。

  2.HITS算法中,每个链接对应的矩阵值设为1,实际上每个链接的重要性是不同的,ARC算法考虑了链接周围的文本来确定链接的重要性。考虑链接p->q,p中有若干链接标记,文本1锚文本文本2,设查询项t在文本1,锚文本,文本2,出现的次数为n(t),则w(p,q)=1+n(t)。文本1和文本2的长度经过试验设为50字节[10]。构造矩阵W,如果有网页i->j ,Wi,j=w(i,j),否则Wi,j=0,H值设为1,Z为W的转置矩阵,迭代执行下面3个的操作:

  (1)A=WH (2)H=ZA (3)规范化A,H

  3.ARC算法的目标是找到前15个最重要的网页,只需要A/H的前15个值相对大小保持稳定即可,不需要A/H整个收敛,这样2中迭代次数很小就能满足,[10]中指出迭代5次

  Hub平均( Hub-Averaging-Kleinberg)算法

  Allan Borodin等在[11]指出了一种现象,设有M+1个Hub网页,M+1个权威网页,前M个Hub指向第一个权威网页,第M+1个Hub网页指向了所有M+1个权威网页。显然根据HITS算法,第一个权威网页最重要,有最高的Authority值,这是我们希望的。但是,根据HITS,第M+1个 Hub网页有最高的Hub值,事实上,第M+1个Hub网页既指向了权威值很高的第一个权威网页,同时也指向了其它权威值不高的网页,它的Hub值不应该比前M个网页的Hub值高。因此,Allan Borodin修改了HITS的O操作:

  O操作: ,n是(v,u)的个数

  调整以后,仅指向权威值高的网页的Hub值比既指向权威值高又指向权威值低的网页的Hub值高,此算法称为Hub平均(Hub-Averaging-Kleinberg)算法。

  ARC算法

  IBM Almaden研究中心的Clever工程组提出了ARC(Automatic Resource Compilation)算法,对原始的HITS做了改进,赋予网页集对应的连结矩阵初值时结合了链接的锚(anchor)文本,适应了不同的链接具有不同的权值的情况。

  ARC算法与HITS的不同主要有以下3点:

  1.由根集S扩展为T时,HITS只扩展与根集中网页链接路径长度为1的网页,也就是只扩展直接与S相邻的网页,而ARC中把扩展的链接长度增加到2,扩展后的网页集称为增集(Augment Set)。

  2.HITS算法中,每个链接对应的矩阵值设为1,实际上每个链接的重要性是不同的,ARC算法考虑了链接周围的文本来确定链接的重要性。考虑链接p->q,p中有若干链接标记,文本1锚文本文本2,设查询项t在文本1,锚文本,文本2,出现的次数为n(t),则w(p,q)=1+n(t)。文本1和文本2的长度经过试验设为50字节[10]。构造矩阵W,如果有网页i->j ,Wi,j=w(i,j),否则Wi,j=0,H值设为1,Z为W的转置矩阵,迭代执行下面3个的操作:

  (1)A=WH (2)H=ZA (3)规范化A,H3.ARC算法的目标是找到前15个最重要的网页,只需要A/H的前15个值相对大小保持稳定即可,不需要A/H整个收敛,这样2中迭代次数很小就能满足,[10]中指出迭代5次就可以,所以ARC算法有很高的计算效率,开销主要是在扩展根集上。

  Hub平均( Hub-Averaging-Kleinberg)算法

  Allan Borodin等在[11]指出了一种现象,设有M+1个Hub网页,M+1个权威网页,前M个Hub指向第一个权威网页,第M+1个Hub网页指向了所有M+1个权威网页。显然根据HITS算法,第一个权威网页最重要,有最高的Authority值,这是我们希望的。但是,根据HITS,第M+1个 Hub网页有最高的Hub值,事实上,第M+1个Hub网页既指向了权威值很高的第一个权威网页,同时也指向了其它权威值不高的网页,它的Hub值不应该比前M个网页的Hub值高。因此,Allan Borodin修改了HITS的O操作:

  O操作: ,n是(v,u)的个数 调整以后,仅指向权威值高的网页的Hub值比既指向权威值高又指向权威值低的网页的Hub值高,此算法称为Hub平均(Hub-Averaging-Kleinberg)算法。

  阈值(Threshhold—Kleinberg)算法

  Allan Borodin等在[11]中同时提出了3种阈值控制的算法,分别是Hub阈值算法,Authority阈值算法,以及结合2者的全阈值算法。

  计算网页p的Authority时候,不考虑指向它的所有网页Hub值对它的贡献,只考虑Hub值超过平均值的网页的贡献,这就是Hub阈值方法。

  Authority阈值算法和Hub阈值方法类似,不考虑所有p指向的网页的Authority对p的Hub值贡献,只计算前K个权威网页对它Hub值的贡献,这是基于算法的目标是查找最重要的K个权威网页的前提。

  同时使用Authority阈值算法和Hub阈值方法的算法,就是全阈值算法。

聚集索引介绍

  在聚集索引中,表中各行的物理顺序与键值的逻辑(索引)顺序相同。表只能包含一个聚集索引。

  如果不是聚集索引,表中各行的物理顺序与键值的逻辑顺序不匹配。聚集索引比非聚集索引有更快的数据访问速度。

  聚集索引通常可加快 UPDATE 和 DELETE 操作的速度,因为这两个操作需要读取大量的数据。创建或修改聚集索引可能要花很长时间,因为执行这两个操作时要在磁盘上对表的行进行重组。

  可考虑将聚集索引用于:

  1.包含数量有限的唯一值的列,如 state 列只包含 50 个唯一的州代码。

  2.使用下列运算符返回一个范围值的查询:BETWEEN、>、>=、< 和 <=。

  3. 返回大结果集的查询。

  创建聚集索引

  在数据库关系图中选择要创建索引的表,右击该表,然后从快捷菜单中选择"索引/键"命令。

  -或-

  为要创建索引的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"索引/键"命令。

  创建新索引。有关详细信息,请参见创建索引。

  若要修改现有索引,请从"选定的索引"列表中选择该索引。

  选择"创建为 CLUSTERED"复选框。

  当保存表或关系图时,索引即创建在数据库中。

  非聚集索引介绍

  非聚集索引与聚集索引一样有 B 树结构,但是有两个重大差别:

  数据行不按非聚集索引键的顺序排序和存储。

  非聚集索引的叶层不包含数据页。

  相反,叶节点包含索引行。每个索引行包含非聚集键值以及一个或多个行定位器,这些行定位器指向有该键值的数据行(如果索引不唯一,则可能是多行)。

  非聚集索引可以在有聚集索引的表、堆集或索引视图上定义。在 Microsoft? SQL Server? 2000 中,非聚集索引中的行定位器有两种形式:

  如果表是堆集(没有聚集索引),行定位器就是指向行的指针。该指针用文件标识符 (ID)、页码和页上的行数生成。整个指针称为行 ID。

  如果表没有聚集索引,或者索引在索引视图上,则行定位器就是行的聚集索引键。如果聚集索引不是唯一的索引,SQL Server 2000 将添加在内部生成的值以使重复的键唯一。用户看不到这个值,它用于使非聚集索引内的键唯一。SQL Server 通过使用聚集索引键搜索聚集索引来检索数据行,而聚集索引键存储在非聚集索引的叶行内。

  由于非聚集索引将聚集索引键作为其行指针存储,因此使聚集索引键尽可能小很重要。如果表还有非聚集索引,请不要选择大的列作为聚集索引的键。

Google的Lawrence Page和Sergey Brin为PageRank(PR)算法给出了一个非常简单直观的解释。他们将PageRank视作一种模型,就是用户不关心网页内容而随机点击链接。

  网页的PageRank值决定了随机访问到这个页面的概率。用户点击页面内的链接的概率,完全由页面上链接数量的多少决定的,这也是上面PR(Ti)/C(Ti)的原因。

  因此,一个页面通过随机冲浪到达的概率就是链入它的别的页面上的链接的被点击概率的和。并且,阻尼系数d减低了这个概率。阻尼系数d的引入,是因为用户不可能无限的点击链接,常常因无聊而随机跳入另一个页面。

  阻尼系数d定义为用户不断随机点击链接的概率,所以,它取决于点击的次数,被设定为 0-1之间。d的值越高,继续点击链接的概率就越大。因此,用户停止点击并随机冲浪至另一页面的概率在式子中用常数(1-d)表示。无论入站链接如何,随机冲浪至一个页面的概率总是(1-d)。(1-d)本身也就是页面本身所具有的PageRank值。

  Lawrence Page和Sergey Brin在不同的刊物中发表了2个不同版本的PageRank的算法公式。在第二个版本的算法里,页面A的PageRank值是这样得到的:

  PR(A) = (1-d) / N + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn)) ——算法2

  这里的N是整个互联网网页的总数。这个算法2,并不是完全不同于算法1。随机冲浪模型中,算法2中页面的PageRank值就是在点击许多链接后到达这个页面页面的实际概率。因此,互联网上所有网页的PageRank值形成一个概率分布,所有RageRank值之和为1。

  相反地,第一种算法中随机访问到一个页面的概率受到互联网网页总数的影响。因此,算法2 解得的PageRank值就是用户开始访问过程后,该页面被随机访问到的概率的期望值。如果互联网有100个网页,其中一个页面PageRank值为2;那么,如果他将访问互联网的过程重新开始100次(xdanger注:这句话具体含义是,该用户随机点击网页上的链接进入另一个页面,每点击一次都有一定概率因疲劳或厌倦或其他任何原因停止继续点击,这就是阻尼系数d的含义;每当停止点击后,即算作此次访问结束,然后随机给出一个页面让他开始另一次访问过程;让他将这样的“手续”重复进行100次),平均就有2次访问到该页面。

  就像前面所提到的,两种算法并非彼此是本质的不同。用算法2解得的PR(A)乘以互联网的总网页数N,即得到由算法1解得的PR(A)。Page和Brin在他们最著名的刊物《The Anatomy of a Large-Scale Hypertextual Web Search Engine》中调和了两种算法,文中声称算法1是将PageRank形成对于互联网网页的一个概率分布,其和为1。

  接下来,我们将使用算法1。理由是算法1忽略了互联网的网页总数,使得更易于计算。

  假设一个小网站由三个页面A、B、C组成,A连接到B和C,B连接到C,C连接到A。虽然Page和Brin实际上将阻尼系数d设为0.85,但这里我们为了简便计算就将其设为0.5。尽管阻尼系数d的精确值无疑是影响到PageRank值的,可是它并不影响PageRank计算的原理。因此,我们得到以下计算PageRank值的方程:

  (A) = 0.5 + 0.5 PR(C)

  PR(B) = 0.5 + 0.5 (PR(A) / 2)

  PR(C) = 0.5 + 0.5 (PR(A) / 2 + PR(B))

  这些方程很容易求解,以下得到每个页面的PageRank值:

  PR(A) = 14/13 = 1.07692308

  PR(B) = 10/13 = 0.76923077

  PR(C) = 15/13 = 1.15384615

  很明显所有页面PageRank之和为3,等于网页的总数。就像以上所提的,此结果对于这个简单的范例来说并不特殊。

  对于这个只有三个页面的简单范例来说,通过方程组很容易求得PageRank值。但实际上,互联网包含数以亿计的文档,是不可能解方程组的。

  PageRank的迭代计算

  由于实际的互联网网页数量,Google搜索引擎使用了一个近似的、迭代的计算方法计算 PageRank值。就是说先给每个网页一个初始值,然后利用上面的公式,循环进行有限次运算得到近似的PageRank值。我们再次使用“三页面”的范例来说明迭代计算,这里设每个页面的初始值为1。

  迭代次数PR(A)PR(B)PR(C)

  0111

  110.751.125

  21.06250.7656251.1484375

  31.074218750.768554691.15283203

  41.076416020.769104001.15365601

  51.076828000.769207001.15381050

  61.076905250.769226311.15383947

  71.076919730.769229931.15384490

  81.076922450.769230611.15384592

  91.076922960.769230741.15384611

  101.076923050.769230761.15384615

  111.076923070.769230771.15384615

  121.076923080.769230771.15384615

  重复几次后,我们的到一个良好的接近PageRank理想值的近似值。根据Lawrence Page和Sergey Brin共开发表的文章,他们实际需要进行100次迭代才能得到整个互联网的满意的网页级别值。

  同样,用迭代计算的方式,每个网页的PageRank值之和仍然收敛于整个网络的页面数的。因此,每个页面的平均的PageRank值为1。实际上的值在(1-d)和(dN+(1-d))之间,这里的N是互联网网页总数。如果所有页面都连接到一个页面,并且此页单独地连接自身,那么将出现理论上的最大值。

TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随著它在文件中出现的次数成正比增加,但同时会随著它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜寻引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,因特网上的搜寻引擎还会使用基于连结分析的评级方法,以确定文件在搜寻结果中出现的顺序。

  TFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TFIDF实际上是:TF * IDF,TF词频(Term Frequency),IDF反文档频率(Inverse Document Frequency)。TF表示词条,在文档d中出现的频率。IDF的主要思想是:如果包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t具有很好的类别区分能力。如果某一类C.中包含词条t的文档数为m,而其它类包含t的文档总数为k,显然所有包含t的文档数n=m+k,当gfl大的时候,n也大,按照IDF公式得到的IDF的值会小,就说明该词条t类别区分能力不强。但是实际上,如果一个词条在一个类的文档中频繁出现,则说明该词条能够很好代表这个类的文本的特征,这样的词条应该给它们赋予较高的权重,并选来作为该类文本的特征词以区别与其它类文档。这就是IDF的不足之处.

  原理

  在一份给定的文件里,词频 (term frequency, TF) 指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被正规化,以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。)

  逆向文件频率 (inverse document frequency, IDF) 是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。

  某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向於过滤掉常见的词语,保留重要的词语。

  例子

  有很多不同的数学公式可以用来计算TF- IDF。词频 (TF) 是一词语出现的次数除以该文件的总词语数。假如一篇文件的总词语数是100个,而词语「母牛」出现了3次,那麽「母牛」一词在该文件中的词频就是 0.03 (3/100)。一个计算文件频率 (DF) 的方法是测定有多少份文件出现过「母牛」一词,然後除以文件集里包含的文件总数。所以,如果「母牛」一词在1,000份文件出现过,而文件总数是 10,000,000份的话,其文件频率就是 0.0001 (1000/10,000,000)。最後,TF-IDF分数就可以由计算词频除以文件频率而得到。以上面的例子来说,「母牛」一词在该文件集的TF- IDF分数会是 300 (0.03/0.0001)。这条公式的另一个形式是将文件频率取对数。

  在向量空间模型里的应用

  TF-IDF权重计算方法经常会和余弦相似度(cosine similarity)一同使用於向量空间模型中,用以判断两份文件之间的相似性。

HITS(Hyperlink-Induced Topic Search)是由Kleinberg在90年代末提出的基于链接分析的网页排名算法。该算法与查询相关。

  用HITS算法评估网页质量,可得到内容权威度(Authority)和链接权威度(Hub)。内容权威度与网页自身直接提供内容信息的质量相关,网页被引用得越多,其内容权威度越高;而链接权威度与网页提供的超链接的质量相关,引用内容质量高的网页越多,网页的链接权威度越高。

  一个好中心网页应该指向很多权威性网页,而一个好的权威性网页则应该被很多好的中心性网页所指向。对整个Web集合而言,Authority和Hub是相互依赖、相互加强、相互优化的关系,这是HITS算法的基础。

  HITS算法的施行是“迭代—收敛”的过程,即网页A链接权威度的数值是通过其链向的网页的内容权威度决定的,而网页A的内容权威度的数值则是由链向其的网页的链接权威度决定的。Authority和hub的值相互递归定义,即authority的值是指向给页面的hub值之和,而hub的值则是该页面指向的页面的authority值之和。

  每个节点的Hub和Authority的值用下述算法计算:

  赋予每个节点的hub值和authority值都为1。运行Authority更新规则。运行Hub更新规则。Normalize数值,即每个节点的Hub值除所有Hub值之和,每个Authority值除所有Authority值之和。必要时从第二步开始重复。

  在实施中还要考虑被链接页面的相关性。该算法要完成一系列迭代过程,每个迭代过程包含两个基本步骤:

  Authority值更新:更新每个节点的Authority值,为该节点指向的Hub的数值之和。即由信息Hubs链接的节点被赋予了高authority值。Hub值更新:更新每个节点的Hub值,使之等于它指向的每个节点的Authority值之和。即通过链接到同一主题的authorities节点的节点被赋予了高hub值。

  因在上述伪代码中,hub和authority的值不收敛,有必要限制该算法的迭代步数。方法之一是,在每步之后规范化hub和authority的值,即通过:dividingeach authority value by the sum of all authority values, and dividing each hubvalue by the sum of all hub values.

  与PageRank相似,HITS也是基于Web文档链接的迭代算法,然而也有一些重要差别:

  它是在查询时执行,而不是在建立索引时执行,与查询性能如时间等相关。因此,赋予页面的hub和authority权值也是query-specific。 它不是搜索引擎通用的技术(虽然据说Ask.com使用了相似的算法)。它计算了文档的两种权重即hub和authority,而非一种权重。它只处理相关文档的很小子集,而PageRank针对文档全集。

HillTop也是搜索引擎结果排序的专利,是Google工程师Bharat在2001年发明的。Google的排序规则经常在变化,但变化最大的一次也就是2003年的基于HillTop算法的优化。

  HillTop算法的指导思想和PageRank的一致,都通过网页被链接的数量和质量来确定搜索结果的排序权重。但HillTop认为只计算来自具有相同主题的相关文档链接对于搜索者的价值会更大:即主题相关网页之间的链接对于权重计算的贡献比主题不相关的链接价值要更高。Bharat称这种对主题有影响的文档为“专家”文档,从这些专家文档页面到目标文档的链接决定被链接网页的权重值。

  Hilltop算法定义一个网站与其它网站的相关性,作为识别跨站点的链接交换干扰与识别相似链接的技术,以杜绝那些想通过任意链接来扰乱排名规则、那些想通过增加无效链接来提高网页PageRank值的做弊行为。

  HillToP算法基本过程可以分为两步:

  l 首先,根据查询寻找“专家网页”,专家网页是关于一定主题、指向许多非隶属网页、其中至少有一个短语包含查询关键词的网页。

  l 其次,给顶部专家网页链向的目标网页打分,这个过程综合了它与所有相关专家网页的链接关系。

  基于“专家”文档的HillTop算法最大的难点是第一次“专家文档”的筛选,目前,Google首先给了教育(.edu),政府(.gov)和非盈利组织(.org)站点很高的优先级。

  作为对原始PageRank算法的补充,Hilltop算法具有以下优点

  l 与原始的PageRank相比,Hilltop是主题灵敏的,通过来自“权威性”文挡的链接来确定网页的可信度。对于具有同样主题、PR相近的网页排序,HillTop算法显得非常重要。与以购买离题链接而获得高排名相比,这更难以人为操作。Hilltop解决了这个问题,随意性链接已经失去往日的作用,即使仍有一定的价值,但与来自于专家网站的链接相比,不能相提并论。

  l Hilltop与Trust Rank相似,但更加自动化。它依赖于专家文档和源于这些文档的链接,如X链接到Y,Y链接到Z,那么X和Z也相关。

  然而,Hiltop在应用中还存在如下一些问题:

  l 专家页面的搜索和确定对算法起关键作用,专家页面的质量决定了算法的准确性;而专家页面的质量和公平性在一定程度上难以保证。

  l Hiltop忽略了大多数非专家页面的影响。

  l 在Hiltop的原型系统中,专家页面只占到整个页面的1.79%,不能全面反映民意。

  l Hiltop算法在无法得到足够的专家页面子集时(少于两个专家页面),返回为空,即Hiltop适合于对查询排序进行求精,而不能覆盖。这意味着Hilltop可以与某个页面排序算法结合,提高精度,而不适合作为一个独立的页面排序算法。

  l Hilltop中根据查询主题从专家页面集合中选取与主题相关的子集也是在线运行的,这与前面提到的HITS算法一样会影响查询响应时间。随着专家页面集合的增大,算法的可伸缩性存在不足之处。

改进排名的主流技术之一是借助于人工,专家能准确描述对网站的信任程度、轻易识别出垃圾。虽然人工可以很容易识别这些垃圾,但评估所有页面但代价很昂贵、是不可行的,所以就提出了一种半自动化技术方案。

  TrustRank便应势而生,TrustRank是一种由斯坦福大学和雅虎研究人员提出的链接分析技术。TrustRank算法基本思想是在为网页排名时,要考虑到该页面所在站点的信任指数和权威性。

  TrustRank算法应对轻易操纵google排名、提升搜索结果质量的作弊手段。实施这一方法极大地增加了短时间操作排名的难度,迅速改善了搜索结果的质量。所有要以TrustRank值作为网页排名的重要依据,页面的TrustRank用来评价其是否具有真正权威性。TrustRank用以将来自Spam的链接与优质内容带来的真正意义上的好评区别开来。

  TrustRank的工作原理:先用人工去识别高质量的页面(即“种子”页面),那么由“种子”页面指向的页面也可能是高质量页面,即其TrustRank也高,与“种子”页面的链接越远,页面的TrustRank越低。

  TrustRank采用半自动的方法区分垃圾文件和高质量较文件。依靠专家去评估一系列“种子”页面的TrustRank值。一旦确定了“种子”页面,就容易区分好页面和垃圾页面,通过机器分析链接结构来确定其它页面的TrustRank值。

  TrustRank的主要概念是:

  l 高质量页面一般不连接垃圾页面,而垃圾页面总试图连接到好页面以提高其声望;

  l 种子页面的候选者是专业网站,它们只基于优点而链接其它页面,如政府网站、非谋利性网站和严格管理的网站(DMOZ、Yahoo目录、Search Engine Watch等),它们不会链接垃圾页面的。

  l 最权威和可信的网页就是”种子”页面本身。

  在处理上TrustRank分两个步骤,源目标的选定和评分的传递。

  l 让专家手工识别出少量高质量网站,并赋予其信任值(trust value);

  l TrustRank值会随着页面的传递而降低,随着页面与“种子”页面的跨度增加,其TrustRank值就会越低;

  与PR值原理类似,若网页获得了来自高TrustRank值网页的连接,则也就获得了高TrustRank值。通过分析这种链接结构,并以此比较其它页面,进而发现那些没有作弊可能性的页面。TrustRank传递方式与PageRank相似,但web页面没有内在的TrustRank值,因此使得通过链接模式去获取TrustRank值变得更加困难。

  PageRank不是Google用于决定页面相关性的唯一算法,TrustRank已经被融入PageRank中以改善搜索相关性,其重要性不言而喻,甚至已经超过PR值的作用。

  而随着时间的推移,Trustrank引起的新问题开始渐渐凸显,成为google的新麻烦:

  l 搜索结果充斥着著名和权威站点的影子,即使这些页面内容可能是Spam。

  l 用一些权重高的站点发布同样的内容页,排名要明显高得多。

  l 优秀的个人或企业站点,尤其是新建的,即使内容再好,也难有排名优势。

  这已严重影响了Google搜索结果的质量。因此,Trustrank在给Google带来众多积极意义的同时,其负面影响也凸显。Google如何改进算法和弥补不足,我们拭目以待。

猜你喜欢

转载自blog.csdn.net/c2289206/article/details/89853425