谷歌搜索背后的数学原理

作者:蔡泽禹 加入书签推荐本书

在如今这个互联网时代,有一家家喻户晓的公司,它自 1998 年问世以来,在极短的时间内就声誉鹊起,不仅超越了所有竞争对手,而且彻底改观了整个互联网的生态。这家公司就是当今互联网上的第一搜索引擎:谷歌(google)。

在这样一家显赫的公司背后,自然有许许多多商战故事,也有许许多多成功因素。但与普通商战故事不同的是,在谷歌的成功背后起着最关键作用的却是一个数学因素。

谷歌作为一个搜索引擎,它的核心功能顾名思义,就是网页搜索。说到搜索,我们都不陌生,因为那是凡地球人都会的技能。我们在字典里查个生字,在图书馆里找本图书,甚至在商店里寻一种商品等,都是搜索。如果我们稍稍推究一下的话,就会发现那些搜索之所以可能,并且人人都会,在很大程度上得益于以下三条:

1.搜索对象的数量较小——比如一本字典收录的字通常只有一两万个,一家图书馆收录的不重复图书通常不超过几十万种,一家商店的商品通常不超过几万种等。

2.搜索对象具有良好的分类或排序——比如字典里的字按拼音排序,图书馆里的图书按主题分类,商店里的商品按品种或用途分类等。

3.搜索结果的重复度较低——比如字典里的同音字通常不超过几十个,图书馆里的同名图书和商店里的同种商品通常也不超过几十种。

但互联网的鲜明特点却是以上三条无一满足。事实上,即便在谷歌问世之前,互联网上的网页总数就已超过了诸如图书馆藏书数量之类传统搜索对象的数目。而且这还只是冰山一角,因为与搜索图书时单纯的书名搜索不同,互联网上的搜索往往是对网页内容的直接搜索,这相当于将图书内的每一个字都变成了搜索对象,由此导致的数量才是真正惊人的,它不仅直接破坏了上述第一条,而且连带破坏了二、三两条。在互联网发展的早期,象 yahoo 那样的门户网站曾试图为网页建立分类系统,但随着网页数量的激增,这种做法很快就“挂一漏万”了。而搜索结果的重复度更是以快得不能再快的速度走向失控。这其实是可以预料的,因为几乎所有网页都离不开几千个常用词,因此除非搜索生僻词,否则出现几十万、几百万、甚至几千万条搜索结果都是不足为奇的。

互联网的这些“不良特点”给搜索引擎的设计带来了极大的挑战。而在这些挑战之中,相对来说,对一、二两条的破坏是比较容易解决的,因为那主要是对搜索引擎的存储空间和计算能力提出了较高要求,只要有足够多的钱来买“装备”,这些还算是容易解决的。套用电视连续剧《蜗居》中某贪官的台词来说,“能用钱解决的问题就不是大问题”。但对第三条的破坏却要了命了,因为无论搜索引擎的硬件如何强大,速度如何快捷,要是搜索结果有几百万条,那么任何用户想从其中“海选”出自己真正想要的东西都是几乎不可能的。这一点对早期搜索引擎来说可谓是致命伤,而且它不是用钱就能解

上一章 返回目录 下一章