GOOGLE算法 2.docx

上传人:b****6 文档编号:5951971 上传时间:2023-01-02 格式:DOCX 页数:16 大小:36.46KB
下载 相关 举报
GOOGLE算法 2.docx_第1页
第1页 / 共16页
GOOGLE算法 2.docx_第2页
第2页 / 共16页
GOOGLE算法 2.docx_第3页
第3页 / 共16页
GOOGLE算法 2.docx_第4页
第4页 / 共16页
GOOGLE算法 2.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

GOOGLE算法 2.docx

《GOOGLE算法 2.docx》由会员分享,可在线阅读,更多相关《GOOGLE算法 2.docx(16页珍藏版)》请在冰豆网上搜索。

GOOGLE算法 2.docx

GOOGLE算法2

 

Google算法论文

学院:

理信学院

姓名学号:

程显聪(20102743)

专业班级:

通信10级2班

 

GOOGLE算法

万维网给信息检索带来了新的挑战。

万维网上的信息量在飞速增长,同时网络研究艺术中一些缺乏经验的新用户的数量也在激增。

人们一般利用网络上的超链接来网上冲浪,一般都是从高质量人工维护的索引开始,比如Yahoo!

或者搜索引擎。

人工维护的目录虽然有效地包含了流行的话题,但是它具有主观性、搭建和维护的代价高、升级缓慢,并且无法涵盖所有严肃深奥的主题。

基于关键词匹配的自动搜索引擎有经常返回一些低质量结果。

更糟的是,有些广告商专门设法误导自动搜索引擎来吸引人们的注意。

我们已经建立了一个大型搜索引擎能解决现存系统中的很多问题。

它专门利用了超文本中的附加信息来提高搜索结果的质量。

我们选择Google作为我们系统的名字,取自一个俗语googol的谐音,意思是10的100次方,这和我们建立一个大型搜索引擎的目标是相当吻合的。

1.1网络搜索引擎——升级:

搜索引擎技术不得不经常调整以跟上网络的增长。

1994年,第一批网络搜索引擎中的WorldWideWebWorm(WWWW)索引了110′000篇网页和有效的网络文件。

到了1997年11月,顶级搜索引擎声称索引了两百万(WebCrawler)至十亿篇网络文件(来自SearchEngineWatch)。

可以预见到2000年,一个全面的网络索引将会包含一百亿个文件。

与此同时,搜索引擎处理的查询量也在爆增。

1994年3月和4月,WorldWideWebWorm平均每天要接受1500次查询。

1997年11月,Altavista声称它每天要处理大约两亿次查询。

随着网络用户和查询搜索引擎的自动系统数量的增长,估计到2000年顶级的搜索引擎每天要处理上十亿次的查询。

我们的系统的目标就是要着手解决这些问题,无论是质量还是在将搜索引擎技术扩展到如此程度中引入的可扩展性的概念。

1.2Google:

与网络同步

要搭建一个哪怕是能和现今网络规模相适应的搜索引擎都会遇到很多挑战。

要想搜集网络文件并保持更新就需要快速的抓取技术。

还要有效地利用磁盘空间索引和部分文件本身。

索引系统必须能高效地处理上百G的数据。

还要迅速地处理每秒钟成百上千次的查询。

随着网络的不断增长,这项工作变得越来越困难了。

但是,硬件性能和费用问题的改善也部分地削减了困难度。

然而在这个进度中还有几个明显的例外,比如磁盘的寻道时间和操作系统的健壮性。

在Google的设计中,我们同时考虑到了网络的增长速度和技术的变更。

Google的设计使之能够很好地扩展到能处理极大量的数据。

它有效地利用了存储空间来储存索引文件。

优化的数据结构使之能够支持快速高效的数据访问。

进一步地,我们希望建立索引和存储文本文件或HTML文档的代价会相对于它们实际的大小而不断减小。

对于象Google这样的集中式系统来说,这些措施换来的是可观的可扩展性。

1.3设计目标

1.3.1提高搜索质量

在1994年,有些人认为通过全搜索索引是有可能很容易找到任何东西的。

根据BestofTheWeb1994–Navigators,“最好的导航服务可以在网络中找到几乎任何东西(只要输入所有的数据)。

”然而,1997的网络就大不一样了。

任何最近使用过搜索引擎的人都能轻易地证实索引地完整性并不是影响搜索结果质量的唯一因子。

用户们真正感兴趣的搜索结果经常被“垃圾结果”所湮没。

事实上,到1997年11月为止,在四个顶级的商业搜索引擎中只有一个能搜到自己(在搜索自己名字时前十位结果中返回自己的搜索页面)。

引发这个问题的一个主要原因就是索引中文件的数量已经增长了好几个数量级,相应地,用户能查阅的文档数却没有增加。

人们仍然只愿意看看前几十个结果。

因此,当集合的大小增加时,需要具有高精度(比如前几十个结果中的相关文档的数量)的工具。

当然,“相关”只是指恰恰最好的文档,因为很可能还有几万个稍有点相关的文档。

即使与招回率(系统能够返回的相关文档的总数)的代价相比,高精度仍然是很重要的。

近来对利用更多的超文本信息来改进搜索和其它应用软件的方法还是相当乐观的[Marchiori97][Spertus97][Weiss96][Kleinberg98]。

特别是链接结构和链接文本能够为相关性判断和质量过滤提供大量的信息。

Google同时利用了链接结构和链接文本。

1.3.2搜索引擎的学术研究

除了迅猛的发展,网络也随着时间增长变得越来越商业化了。

1993年的时候,只有1.5%的网络服务器是在.com域名下的。

到了1997年,这个数字增长到超过60%。

同时,搜索引擎也从学术领域移民到了商业领域中。

到目前为止,大多数搜索引擎的开发工作都是在公司中进行的,几乎不公开任何技术细节。

这就使得搜索技术很大程度上被关在暗箱中操作,并且面向广告了。

我们有强烈的愿望利用Google来推动学术领域中发展和理解。

另一个设计目标是建立一个给相当数量的人们实际使用的系统。

用户的使用十分重要,因为大多数有意义的研究都离不开现代网络中海量数据的支撑。

例如,每天都会有几千万的查询量。

然而因为这些数据被认为是具有商业价值的,所以很难得到这些数据。

最后的设计目标就是建立一个能够支持基于海量网络数据的新研究活动的体系结构。

为了提供给新研究的使用,Google以压缩形式存储了所有它抓取的实际文档。

设计Google的一个主要目标在于建立一个环境使得其它的研究人员能够快速进入这个领域、处理网络上海量数据、产生一般很难产生的有意义的成果。

系统建立后的不长的时间里,已经有不少论文用到了Google生成的数据库,还有很多正在进行当中。

另外一个目标是建立一个空间站实验室似的环境,在这里研究人员甚至学生都能利用我们的海量网络数据进行设计和做一些有意义的实验。

2系统特性

Google搜索引擎有两个重要的特性,有助于产生高精度结果。

第一,它利用网络的链接结构计算每个网页的排名值。

这个排名值被称为PageRank.

第二,Google利用链接来改进搜索结果。

2.1PageRank:

给网络带来秩序

网络的引用(链接)图是一件很重要的资源,却在很大程度上被现存的网络搜索

引擎忽视了。

google已经建立了一个包含了5亿1千8百万个这样的超链接的图,一个有重要意义的对整体的采样。

通过这些图可以迅速地计算一个网页的“PageRank”,一个对引用重要性的客观评价,很好地与人们对重要度的主观概念保持了一致性。

由于这种一致性,PageRank是一种对网络关键词搜索结果评级的绝好的方法。

对于大多数流行的主题,在对网页标题简单的文本匹配中PageRank对结果评级的表现棒极了(演示可以在google.stanford.edu上得到)。

在Google主系统的全文搜索中,PageRank也帮了不少忙。

2.1计算PageRank

2.1.1入链对计算页面级别的影响

入链总是能增加当前页面的级别,尤其当前页与其下级页面构成回路时,这种贡献更大。

设ABCD各页初始级别为1,阻尼系数为0.5,PR(X)/C(X)=10。

则易算出

PR(A)=19/3=6.33

PR(B)=11/3=3.67

PR(C)=7/3=2.33

PR(D)=5/3=1.67

如果A不在回路上,则只能得0.5*10=5的收益。

  阻尼系数越大,页面级别的收益越大,且整个回路上都能收到更大的收益(即入链收益更能平均地分布到各个回路页面上。

针对上例,将阻尼系数改为0.75,则有

PR(A)=419/35=11.97

PR(B)=323/35=9.23

PR(C)=251/35=7.17

PR(D)=197/35=5.63

除回路上各个页面的级别值明显增大外,PR(A)/PR(D)的值敢明显减少了。

  入链对整个回路上所有页面的级别值的增加之和,可以由下面这个公式得出.

(d/(1-d))×(PR(X)/C(X))

这个公式,可以由

简单推导出。

2.1.2出链对计算页面级别的影响

  增加出链不会影响整个web的总级别,但一个站点失去的级别值等于链到的站点的增加值之和。

对于两个封闭的站点,从一个站点链上另一个站点时,增加的和减少的都是(d(/(1-d)×(PR(X)/C(X)).如果这两个站点互相链接,则此值减少。

用随机冲浪模型可以解释这种现象,就是出链的增加,减少了用户访问站内页面的概率。

举例如图,设阻尼系数为0.75,则

PR(A)=0.25+0.75PR(B)

PR(B)=0.25+0.375PR(A)

PR(C)=0.25+0.75PR(D)+0.375PR(A)

PR(D)=0.25+0.75PR(C)

得:

PR(A)=14/23

PR(B)=11/23

PR(C)=35/23

PR(D)=32/23

PR(A)+PR(B)=25/23

PR(C)+PR(D)=67/23

PR(A)+PR(B)+PR(C)+PR(D)=92/23=4

  Page和Brin将这样的链接称为悬摆链,它链到页面没有出链。

悬摆链对页面的级别计算产生负面影响。

如例,阻尼系数为0.75.

PR(A)=0.25+0.75PR(B)

PR(B)=0.25+0.375PR(A)

PR(C)=0.25+0.375PR(A)

得:

PR(A)=14/23

PR(B)=11/23

PR(C)=11/23

PR(A)+PR(B)+PR(C)=36/23<3

  据Page和Brin,Google在索引页面时,悬摆链的量很大,主要是由于限制robot.txt的限制及索引了一些没有链出的文件类型如PDF等。

为消除这种负面影响,google在计算级别时,将此类链接从数据库里去掉,在计算完毕后,再单独计算悬摆链所链到页面。

由此可见,PDF类的文件还是可以放心地在网上发布的。

2.1.3页面数量的影响

  先看例子。

阻尼系数为0.75,PR(X)/C(X)=10,则

PR(A)=0.25+0.75(10+PR(B)+PR(C))

PR(B)=PR(C)=0.25+0.75(PR(A)/2)

得:

PR(A)=260/14

PR(B)=101/14

PR(C)=101/14

PR(A)+PR(B)+PR(C)=33;

增加页面D;

PR(A)=0.25+0.75(10+PR(B)+PR(C)+PR(D))

PR(B)=PR(C)=PR(D)=0.25+0.75(PR(A)/3)

PR(A)=266/14

PR(B)=70/14

PR(C)=70/14

PR(D)=70/14

PR(A)+PR(B)+PR(C)+PR(D)=34

增加页面后,所有页面的级别值之和增加了1,A页略有增加,而B、C则用大幅下降。

  再看右边的例子,假定同上。

PR(A)=0.25+0.75(10+PR(C))

PR(B)=0.25+0.75×PR(A)

PR(C)=0.25+0.75×PR(B)

得:

PR(A)=517/37=13.97

PR(B)=397/37=10.73

PR(C)=307/37=8.30

增加页面D:

PR(A)=0.25+0.75(10+PR(D))

PR(B)=0.25+0.75×PR(A)

PR(C)=0.25+0.75×PR(B)

PR(D)=0.25+0.75×PR(C)

得:

PR(A)=419/35=11.97

PR(B)=323/35=9.23

PR(C)=251/35=7.17

PR(D)=197/35=5.63

增加页面后,所有页面级别增加了1,但每个页面的级别值减少了,这是由于新加页面分享了入链代来的值。

从这个结果看,增加页面减少了已有页面的级别值,露了google算法青睐小站点的特点。

当然,大站点也会因内容丰富而吸引其它站点的出链而得以级别值增加。

2.1.4针对搜索引擎优化的级别分布

  先看两个列子,阻尼系数为0.5,PR(X)/C(X)=10;

BC之间无链接时:

PR(A)=0.5+0.5(10+PR(B)+PR(C))

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

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

PR(A)=8

PR(B)=2.5

PR(C)=2.5

BC之间互相链接时:

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

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

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

得:

PR(A)=7

PR(B)=3

PR(C)=3

当BC间互链时,虽然减少了A的级别,但BC都增加了。

这符合优化站点所有页面而非只主页的优化思路,因为只有每个页面的级别都提高了,当有检索词命中这些页面时,它们才能排在前面。

这种优化的方法也很明显了,就是尽可能地在所有页面间平均分布入链的贡献,各低级页面要增加互链。

2.1.5只要不影响易用性,尽可能地将所有出链集中在一个或几个低级页面中,可以有效地降低出链对页面级别计算的负面影响。

看列子:

阻尼系数为0.5,PR(X)/C(X)=10;

BCD都有出链时:

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

PR(B)=PR(C)=PR(D)=0.5+0.5(PR(A)/3)

得:

PR(A)=1

PR(B)=2/3

PR(C)=2/3

PR(D)=2/3

出链集中于D时:

PR(A)=0.5+0.5(PR(B)+PR(C)+PR(D)/4)

PR(B)=PR(C)=PR(D)=0.5+0.5(PR(A)/3)

得:

PR(A)=17/13

PR(B)=28/39

PR(C)=28/39

PR(D)=28/39

从结果看,出链集中后,ABCD各页面的级别都上升了。

2.1.6链接交换增加了实施交换的页面的级别,却减少了其它页面的级别。

如图,阻尼系数为0.5,PR(X)/C(X)=10;

交换前,

PR(A)=4/3

PR(B)=5/6

PR(C)=5/6

PR(D)=4/3

PR(E)=5/6

PR(F)=5/6

交换后;

PR(A)=0.5+0.5(PR(B)+PR(C)+PR(D)/3)

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

PR(D)=0.5+0.5(PR(E)+PR(F)+PR(A)/3)

PR(E)=PR(F)=0.5+0.5(PR(D)/3)

PR(A)=3/2

PR(B)=3/4

PR(C)=3/4

PR(D)=3/2

PR(E)=3/4

PR(F)=3/4

这情况恰好与增加站内互链的效果相反。

由此,当需要对主页进行针对某一关键词的优化时,才取交换链接是可取的。

  例中级别值的重新分布,更基本的前提是两个站点中参考交换的页面互相为对方提供的级别值是相等的。

如果一个站的某个页面级别高或少出链,则这个站所有页面的级别会降低。

这儿一个重要的影响因素是站点页面的数量。

当一个站点的页面更多时,有更多的入链级别值被分布到站点的其它页面中,因而参考交换的页面不能提供更多贡献给对方。

2.1.7很多针对搜索引擎做网站优化的专家,认为google给一些特殊站点以特定的级别而不是按前述算法进行计算,这些网站的级别很有可能来在Yahoo或ODP(OpenDirectoryProject)。

LawrencePage在他们的专利说明中,提到随机冲浪模型中,用记不愿继续点击时,很有可能借助Yahoo的目录或ODP到另一个站点去。

  由于前述的算法,无论初始的级别值如何,经过足够次数的迭代最终结果都是一样的,所以对这些特殊站点可能采用下述的公式。

PR(A)=E(A)(1-d)+d(PR(T1)/C(T1)+...+PR(Tn)/C(Tn))

  从另一个角度来看,如果给页面赋一个跟其实际级别相近的初始值,可以明显减少迭代次数。

2.1.8影响页面级别的其它因素

  在LawrencePage和SergeyBrin关于PageRank的论文发表以后,除了web的链接结构以外,还有没有别的因素被加到PageRank的算法当中曾经有过广泛地讨论。

LawrencePage本人在PageRank的专利说明中曾指出以下潜在的影响因素:

链接的能见度,链接在文档中的位置,web页面间的距离,出链页面的重要性,页面的不过时。

这此因素的增加,可以更好用随机冲浪模型模拟人类利用web的行为。

  不管上述附加因素有没有在实际计算PageRank时使用,如何实现这些附加因素仍要讨论。

  首先算法公式需要改进.

PR(A)=(1-d)+d(PR(T1)×L(T1,A)+...+PR(Tn)×L(Tn,A))

此处,L(T1,A)是入链的评价值,由几个因素构成,只需要在迭代前计算一次,减少了对数据库的查询次数,虽然每次迭代的查询结果会有不同。

  LawrencePage在PageRank的专利说明中指出链接评价的两个因素是链接的可见性和在文档中的位置。

链接评价取代了PR(A)/C(A),指出了对一特定的页面的链接,每个链接被点击的概率是不同的。

  此处,每一链接有两个属性值,X表示可见度,如果没有被重点强调(如粗体、斜体等)为1否则为2,Y表链接在文档中的位置,如果在文档下半部为1否则为3。

则有

X(A,B)×Y(A,B)=1×3=3

X(A,C)×Y(A,C)=1×1=1

X(B,A)×Y(B,A)=2×3=6

X(B,C)×Y(B,C)=2×1=2

X(C,A)×Y(C,A)=2×3=6

X(C,B)×Y(C,B)=2×1=2

易得:

Z(A)=X(A,B)×Y(A,B)+X(A,C)×Y(A,C)=4

Z(B)=X(B,A)×Y(B,A)+X(B,C)×Y(B,C)=8

Z(C)=X(C,A)×Y(C,A)+X(C,B)×Y(C,B)=8

链接评价公式为:

(页面T1指向T2)

L(T1,T2)=X(T1,T2)×Y(T1,T2)/Z(T1)

有:

L(A,B)=0.75

L(A,C)=0.25

L(B,A)=0.75

L(B,C)=0.25

L(C,A)=0.75

L(C,B)=0.25

最后利用改进的公式计算页面级别:

PR(A)=0.5+0.5(0.75PR(B)+0.75PR(C))

PR(B)=0.5+0.5(0.75PR(A)+0.25PR(C))

PR(C)=0.5+0.5(0.25PR(A)+0.25PR(B))

得:

PR(A)=819/693

PR(B)=721/693

PR(C)=539/693

  为了防止人为的级别优化,页面的距离被用来影响链接的评价。

站内链接的权重小于站间链接的权重。

页面的距离可能由页面是否在一个站内、一个服务器及物理距离等决定。

  另一个影响页面重要性的能参数,是页面的不过时性(up-to-dateness),意指有越多的新建的页面指向某一个页面,则这个页面内容过时的可能性越小。

  为增加这些因素的影响,要对公式进行修订如下:

L(Ti,A)=K(Ti,A)×K1(Ti)×...×Km(Ti)

其中,K(Ti,A)表示链接可见度及位置的权重,Kn(Ti)是第n个因素对页面Ti的影响。

看列子:

此处,从C引出的链接的重要性是其它的4倍。

K(A)=0.5

K(B)=0.5

K(C)=2

计算级别值:

PR(A)=0.5+0.5×2PR(C)

PR(B)=0.5+0.5×0.5×0.5PR(A)

PR(C)=0.5+0.5(0.5PR(B)+0.5×0.5PR(A))

得:

PR(A)=4/3

PR(B)=2/3

PR(C)=5/6

此时,所有页面的级别之和不等于页面数量。

2.2.9Google的PR0惩罚

  Google对采用了搜索优化的网站的一种惩罚就是,把这个站的所有或很多网页的网页级别定为0,典型的表现就是原先不为0忽然变为0的情况。

当然,PR为0不一定是受到了惩罚,可能只是因为没有重要页面链到它。

  一个Google的员工在WebmasterWorld'sGoogleNews论坛上一再提醒网站管理员,一定不要“链接到坏邻居”。

RaphLevien提出了一种技术分析链接结构获取页面的负面特征,与"PageRank"相似但目标相反,名之为“BadRank”。

  BadRank基于“链到坏邻居”,对BadRank有影响显然是出链,因为对PageRank的算法加以改动,即会适合BadRank的计算。

BR(A)=E(A)(1-d)+d(BR(T1)/C(T1)+...+BR(Tn)/C(Tn))

其中,BR(A)是页面A的BadRank,BR(Ti)页面Ti的BadRank,页面A有链接到Ti,C(Ti)页面Ti的入链数,d是阻尼系数,E(A)表示当前页面有没有被垃圾网页过滤系统检测到。

当E(A)为0时,这个公式不再有意义,它只是变成了另一种分析链接结构的方法而已。

所有页面的E(A)之和等页面总数。

看例子,令E(A)=100,其它的为1,d=0.85,则有

Page

BadRank

A

22.39

B/C

17.39

D/E/F/G

12.21

可见页面A的BadRank被分布到每个页面中了。

  ’在学术文献中的引用理论已经被应用到网络中了,大部分是通过对指向某页的引用或链接计数。

这的确对一个网页的重要性或质量给出了一些近似值。

PageRank扩展了这种思想,对指向网页的链接并非平等地计数,并且将网页上的链接数标准化。

PageRank的定义如下:

我们假设有网页T1…Tn指向(例如:

引用)网页A。

系数d是值在0到1之间的抑制因子。

我们通常将它设为0.85。

关于系数d的更多细节在下一节。

同时C(A)定义为从网页A指出的链接数。

网页A的PageRank值如下:

PR(A)=(1-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1