2006年2月27日 上午 08:38:00
<script></script>
发表者: 吴军, Google 工程师
大家可能听说过,Google 革命性的发明是它名为 “Page Rank” 的网页排名算法,这项技术彻底解决了搜索结果排序的问题。其实最先试图给互联网上的众多网站排序的并不是 Google。Yahoo! 公司最初第一个用目录分类的方式让用户通过互联网检索信息,但由于当时计算机容量和速度的限制,当时的 Yahoo! 和同时代的其它搜索引擎都存在一个共同的问题: 收录的网页太少,而且只能对网页中常见内容相关的实际用词进行索引。那时,用户很难找到很相关信息。我记得 1999 年以前查找一篇论文,要换好几个搜索引擎。后来 DEC 公司开发了 AltaVista 搜索引擎,只用一台 ALPHA 服务器,却收录了比以往引擎都多的网页,而且对里面的每个词进行索引。AltaVista 虽然让用户搜索到大量结果,但大部分结果却与查询不太相关,有时找想看的网页需要翻好几页。所以最初的 AltaVista 在一定程度上解决了覆盖率的问题,但不能很好地对结果进行排序。
Google 的 “Page Rank” (网页排名)是怎么回事呢?其实简单说就是民主表决。打个比方,假如我们要找李开复博士,有一百个人举手说自己是李开复。那么谁是真的呢?也许有好几个真的,但即使如此谁又是大家真正想找的呢?:-) 如果大家都说在 Google 公司的那个是真的,那么他就是真的。
在互联网上,如果一个网页被很多其它网页所链接,说明它受到普遍的承认和信赖,那么它的排名就高。这就是 Page Rank 的核心思想。 当然 Google 的 Page Rank 算法实际上要复杂得多。比如说,对来自不同网页的链接对待不同,本身网页排名高的链接更可靠,于是给这些链接予较大的权重。Page Rank 考虑了这个因素,可是现在问题又来了,计算搜索结果的网页排名过程中需要用到网页本身的排名,这不成了先有鸡还是先有蛋的问题了吗?
Google 的两个创始人拉里•佩奇 (Larry Page )和谢尔盖•布林 (Sergey Brin) 把这个问题变成了一个二维矩阵相乘的问题,并且用迭代的方法解决了这个问题。他们先假定所有网页的排名是相同的,并且根据这个初始值,算出各个网页的第一次迭代排名,然后再根据第一次迭代排名算出第二次的排名。他们两人从理论上证明了不论初始值如何选取,这种算法都保证了网页排名的估计值能收敛到他们的真实值。值得一提的事,这种算法是完全没有任何人工干预的。
理论问题解决了,又遇到实际问题。因为互联网上网页的数量是巨大的,上面提到的二维矩阵从理论上讲有网页数目平方之多个元素。如果我们假定有十亿个网页,那么这个矩阵 就有一百亿亿个元素。这样大的矩阵相乘,计算量是非常大的。拉里和谢尔盖两人利用稀疏矩阵计算的技巧,大大的简化了计算量,并实现了这个网页排名算法。今天 Google 的工程师把这个算法移植到并行的计算机中,进一步缩短了计算时间,使网页更新的周期比以前短了许多。
我来 Google 后,拉里 (Larry) 在和我们几个新员工座谈时,讲起他当年和谢尔盖(Sergey) 是怎么想到网页排名算法的。他说:"当时我们觉得整个互联网就像一张大的图 (Graph),每个网站就像一个节点,而每个网页的链接就像一个弧。我想,互联网可以用一个图或者矩阵描述,我也许可以用这个发现做个博士论文。" 他和谢尔盖就这样发明了 Page Rank 的算法。
网页排名的高明之处在于它把整个互联网当作了一个整体对待。它无意识中符合了系统论的观点。相比之下,以前的信息检索大多把每一个网页当作独立的个体对待,很多人当初只注意了网页内容和查询语句的相关性,忽略了网页之间的关系。
今天,Google 搜索引擎比最初复杂、完善了许多。但是网页排名在 Google 所有算法中依然是至关重要的。在学术界, 这个算法被公认为是文献检索中最大的贡献之一,并且被很多大学引入了信息检索课程 (Information Retrieval) 的教程。
分享到:
相关推荐
ASP.NET百度权重,alexa排名,google page rank,google收录,百度收录和百度快照查询源代码.rar
Google page rank 算法经典论文,线性代数经典运用
许检查网站的网站等级
page rank介绍,可以快速对page rank有初步的了解,明白google是怎么rank的(当然rank策略不限于pagerank)
1.google's page rank and beyond2.Understanding search engines附带阅读器,欢迎搜索爱好者和我联系交流,email:gigglesun@163.com.
用Fortran开发的基于Page-rank理论的网络重要性分析程序
#Google Chrome - Google 网页排名获取页面排名并将其显示在地址栏中的 Chrome 扩展程序安装位置: :
[搜索链接]Page Rank查询_pagerank.zip
此扩展显示当前页面的Alexa级别。 我们的Alexa Rank Chrome扩展程序无需...另请参阅我们的竞争排名,PI排名和SEM紧急排名扩展。 有关Internet Explorer和Firefox的SEO附加组件,请参见我们的网站。 支持语言:English
网页排名 复制了Google的页面排名算法。 这是基于网站中存在的入站和出站并进行相应排名的。 有关算法的更多详细信息,请转到“参考”。 怎么跑 您必须安装以下python软件包: sudo pip安装urllib2 sudo pip安装...
基于page rank的个人搜索引擎项目
该项目是一个简单的Qt库扩展,用于检索任何公共网页的Google页面排名。 您可以异步使用库功能,这意味着您可以发送请求,稍后再收到一条带有答案的消息,您可以继续执行其他工作。 该项目还包括一个命令行工具,用于...
Google Chrome R-page 谷歌浏览器 查看不同尺寸移动设备中网页的布局插件
利用page rank 和HITS算法实现的一个简单的文本摘要系统
主要讲解了pagerank算法,有兴趣的同学可以看一下,我觉得还不错
The first page Google rankings is what this eBook will strive to provide for you and it will offer you with hidden Google secrets which can help your web site or pages to rank well on search results....
matlab实现google pagerank算法,可以看看是一种由 [1] 根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创办人拉里·佩奇(Larry Page)之姓来命名。Google用它来体现网页的相关性和...
天蓝色One Page响应式bootstrap网页模板_天蓝色 蓝色 响应式 单页 bootstrap 手机 服务 咨询 互联网天蓝色One Page响应式bootstrap网页模板_天蓝色 蓝色 响应式 单页 bootstrap 手机 服务 咨询 互联网
网页排名 使用 mapreduce 实现页面排名算法 该程序将计算输入文件中每个网页的页面排名 src文件夹中的PageRank.jar文件(在develop分支)可以通过以下方式使用: hadoop PageRank.jar PageRank.PageRank input_path...
天蓝色One Page响应式bootstrap网页模板_天蓝色 蓝色 响应式 单页 bootstrap 手机 服务 咨询 互联网 报价 fixed 黑色.rar