什么是搜索引擎机器人?
让我告诉你另一个著名的技术。
当然,最著名最有专利的技术还是谷歌的PR技术。
你可能听说过,谷歌的革命性发明是其名为“页面排名”的网页排名算法,完全解决了搜索结果的排名问题。事实上,并不是谷歌第一次尝试对互联网上的许多网站进行排名。雅虎!该公司最早让用户通过目录分类在互联网上搜索信息,但由于当时电脑容量和速度的限制,雅虎!其他当代搜索引擎都有一个共同的问题:包含的网页太少,只能索引网页中与常见内容相关的实际单词。当时用户很难找到非常相关的信息。记得在1999之前,我要换好几个搜索引擎才能找到一篇论文。后来,DEC开发了AltaVista搜索引擎,它只使用了一个ALPHA服务器,但比以前的引擎包含了更多的网页,并对其中的每个词进行了索引。虽然AltaVista允许用户搜索大量结果,但大部分结果与查询无关,有时需要几页才能找到想看的网页。所以最初的AltaVista在一定程度上解决了覆盖问题,但是它不能很好地对结果进行排序。
Google的“页面排名”呢?其实就是单纯的民主投票。比如我们找李开复博士,一百个人举手说自己是李开复。那么谁是真实的?真的可能有好几个,但即便如此,你真正要找的人是谁?:-)如果大家都说Google的那个是真的,那他就是真的。
在互联网上,如果一个网页被许多其他网页链接,表明它被普遍认可和信任,那么它的排名就高。这是页面排名的核心思想。当然,谷歌的页面排名算法其实要复杂得多。比如不同网页的链接区别对待,自己网页排名高的链接更可靠,所以这些链接被赋予更大的权重。Page Rank考虑过这个因素,现在问题又来了。在计算搜索结果排名的过程中,需要对自己的网页进行排名。这不是鸡还是蛋的问题吗?
谷歌的两位创始人拉里?6?1拉里佩奇和谢尔盖?6?谢尔盖·布林(1)把这个问题变成了一个二维矩阵乘法问题,用迭代法解决了这个问题。他们先假设所有网页的排名都是一样的,根据这个初始值,计算每个网页的第一次迭代排名,然后根据第一次迭代排名计算第二次排名。他们两个从理论上证明了无论初始值如何选取,这个算法都保证网页排名的估计值能够收敛到他们的真实值。值得一提的是,这个算法完全没有任何人为干预。
理论问题解决了,但遇到了实际问题。因为互联网上的网页数量庞大,上面说的二维矩阵理论上有网页数量平方的多个元素。如果我们假设有十亿个网页,那么这个矩阵有十亿个元素。如此大的矩阵相乘需要非常大的计算量。Larry和Sergey利用稀疏矩阵计算的技巧,大大简化了计算量,实现了这个网页排名算法。如今,谷歌工程师将这种算法移植到并行计算机上,进一步缩短了计算时间,使得网页更新的周期比以前短了很多。
我来到谷歌后,拉里与我们的几名新员工谈论了他和谢尔盖是如何想出网页排名算法的。他说:“当时我们觉得整个互联网就像一个大图,每个网站就像一个节点,每个网页的链接就像一条弧线。我觉得互联网可以用一个图或者矩阵来描述,我可能会用这个发现来做一篇博士论文。”于是他和谢尔盖发明了Page Rank的算法。
网页排名的高明之处在于,它把整个互联网作为一个整体来看待。它不自觉地符合系统论的观点。相比之下,以往的信息检索大多将每个网页视为一个独立的个体,很多人一开始只关注网页内容与查询语句的相关性,忽略了网页之间的关系。
今天,谷歌搜索引擎比最初的复杂和完善得多。但是页面排名在所有谷歌算法中还是很重要的。在学术界,该算法被公认为是文献检索中最伟大的贡献之一,并被许多大学引入信息检索课程。