第24章 线性代数与强大的谷歌搜索引擎(1)

在谷歌搜索引擎问世之前,网络搜索是一件很让人崩溃的事情。那时的搜索引擎常常给出一些不相关的搜索结果。而你想找的网站不是排在网站列表的第50 页,就是显示根本找不到。由于有了“链接分析”的算法,上述问题如今已被解决。“链接分析”算法的原理听起来像是一条似是而非的禅理:网络搜索应该反馈最佳网页。那么,什么样的网页是最佳网页呢?最佳网页是那些链接着其他最佳网页的网页。

这听起来有点儿循环论证的意味。事实上,这就是一个循环论证,而且这个理念的深刻之处就在于它的循环论证性。“链接分析”征服了这个循环论证,把劣势变成了优势,最终,一种柔术般的网络搜索方法横空出世了。

这种算法的数学基础是线性代数。线性代数是处理向量和矩阵的一种数学工具,当你想从大量数据中发现规律,或者进行含有数百万个变量的超大型计算的时候,你就需要用到线性代数。线性代数除了可以帮谷歌公司设计出“网页排序号”的搜索算法,还可用于人脸识别技术、分析高等法院的判决规律、赢得网飞(Netflix)公司的百万美元大奖等。

为了解释线性代数的工作原理,我们以谷歌的网页链接搜索技术为实例进行说明。当然,现实中这个技术是非常复杂的,但此处我们只看一个极度简化的模型。假设有一个迷你网络,这个网络只含有3个页面X、Y和Z,这3个页面的链接方式如下图所示。 

 

上图中的箭头含义如下:页面X含有页面Y的链接,但是页面Y却不含有页面X的链接。页面Y含有页面Z的链接。页面X和Z互相链接。

下面,我们考虑这样一个问题:在这个迷你网络中,哪个网页最重要,哪个网页最不重要?你可能会说,信息不足回答不了这个问题,因为我们完全不知道这3个网页的内容。抱歉,你的这种说法已经过时了。事实证明,通过研究网页的内容来研究网络搜索是行不通的,这种方法现在基本被淘汰了。计算机不大善于评判一个网页的内容,而我们也不可能人为地去做这件事情,毕竟每天都有成千上万的新网络页面产生。


读书导航