《数学之美-第8章 简单之美—布尔代数与搜索引擎-读后感》
关于《数学之美》这本书,我还未上大一之前的暑假就看过一些,但由于当时对计算机的知识储备几乎为0,所以有好些东西没看懂,看得云里雾里的。我翻了翻以前边看这本书边做下的笔记,如下:
前阵子读了一点《数学之美》。首先,正如书名那样,本书让我感受到了数学在造福于人类不可或缺的力量,激励着我努力学习,施展自己的才智,为人民谋福祉,为祖国发展奉献自己的一份力量。再者,作者总能用贴近生活实际的例子、生动贴切的比喻,把与计算机相关方面的术语讲得十分透彻,让我们可感可知、更好得理解那些抽象的术语。譬如,通过讲述古人用文言文记载,却用白话文交谈的事例为读者阐明了为什么要压缩、解压,以及什么是信道传输;用图文解析让读者对“通信”这一动态词语有了深层次的理解……我觉得作者能做到这一点与他深刻理解了术语概念以及博览群书离不开。同时,本书引领着我更深入地思考了那些我们日常总是接触的、极大地便捷我们生活的应用(如搜索引擎、机器翻译、语音识别、手写体识别)背后的原理。如网页搜索实质上是利用信息消除不确定性的过程。
现在看以前写的这段文字,自己感觉写得很虚,没有写出什么。
今天,我又翻起了这本书,我看了看目录,直观的感受是,不懂的术语少了很多。由于自己最近对搜索引擎挺感兴趣,我决定翻看第8章 简单之美—布尔代数与搜索引擎。
在翻看第8章之前,我从来没有想过搜索引擎和布尔代数会有关系。在我看来,搜索引擎是一个非常复杂的工程,而布尔代数不就是0和1的简单东西吗,这么简单的东西能给搜索引擎做什么事?带着好奇的心,我翻开了第8章。
在本章中,我首先宏观地了解了布尔代数的数学知识以及发展历史,以及了解到建立一个搜索引擎大致需要做的三件事:自动下载尽可能多的网页、建立快速有效的索引、根据相关性对网页进行公平准确的排序,即下载、索引和排序。作者讲到索引是最重要的,最基础的。而布尔代数正和搜索引擎中的索引息息相关。看完本章,解决了我刚开始的疑惑,我明白了布尔代数原理在搜索引擎中当担的角色作用是:用布尔代数的两个真值0和1代表一篇网页是否包含用户查询的关键字,0表示不包含,1表示包含。这就是最核心的原理部分,是最根基的。再者,布尔代数还有一个与生俱来的优势,就是计算机在做布尔运算是非常快的。在文章中,作者说:“现在最便宜的微机都可以在一个指令周期内进行32位布尔运算,一秒进行数十亿次以上”。可想而知,运算速度之快,这极大地满足大数据快速处理的需求。然而,放到实际情况的角度去考虑,还有更多的细节譬如如何管理巨量的网页数据,如何使查询在秒级内实现等都是需要我们去考虑。在本章中,我同样很开心的看到作者有谈及这些细枝末节,提点了在搜索引擎界这些问题的想法和解决实现。
首先,在信息科技快速发展的当下社会,网页资源数据越来越多。想要在秒级满足用户的搜索查询需求,直接对网页逐一全文本扫描并与搜索关键字匹配的方法显然不行,因为可想而知,它效率非常得低。解决的方法是建索引,在这里,作者用图书馆给每本书做索引卡的实际生活例子做解释,通俗易懂地让我明白了建索引这种方法的可行性、高效性。再者,再深入地想想搜索这件事,如果仅仅是检索网页是否含有用于搜索的关键字,这种单一的判断会导致最后的搜索结果不尽人意,不满足客户需求这是一个很大的问题。根据文章,作者提到改进的方法是在索引中增加更多的附加消息,如每个词出现的位置、次数,等等。然后,增加这些附加消息又会导致其他问题——是的整个索引变大,需要更多的内存。文章中提到解决这一问题的方法是:通过分布式的方式存储到不同的服务器上,普遍的做法就是根据网页的序号将索引分成很多份,分别存储于不同的存储器。
在本文中,我还了解到了一点搜素引擎的发展历史。布尔代数是19世纪英国的一位数学家布尔(George Boole)提出的,在布尔代数被提出后的80年时间里,布尔代数没有被发掘出什么实在的应用,直到1938年香农的硕士论文指出用布尔代数实现开关电路,此后,布尔代数开始被发掘出更多的应用。早期的文献检索查询系统,严格要求查询语句符合布尔运算。而今天,搜索引擎会自动把用户的查询语句转换成布尔运算布尔运算算式。
这篇文章是讲数学理论中的某个点(布尔代数)的实际用处(用于搜索引擎),这让我想起我之前打数模比赛的经历,作者在文章中讲到一句话:“数学的发展实际上是不断地抽象和概括的过程,这些抽象了的方法看似离生活越来越远,但是他们最终能找到适用的地方,布尔代数便是如此。”,这句话我深有同感,在打数模比赛的过程中,我和我的组员们面对的问题同样是一个实际问题,需要我们用我们学过的很多朴素的数学知识对实际问题建模求解,并对细节加以讨论改进分析。数学在我看来是一个非常强大的工具,那些看似抽象的极度脱离现实的概括理论,当我们结合实际生活细细一想,会发现其魅力是无穷的,是能帮助我们解决实际问题的,是和现实生活息息相关的。
本文小结中引用了牛顿的一句话:“(人们)发觉真理在形式上从来是简单的,而不是复杂和含混的。”(Truth is ever to be found in simplicity, and not in the multiplicity and confusion of things.)。这句话给了我一点启迪:在面对一个复杂的问题时,应该要深入地思考问题的本质,当我们考察完问题的本质时,会发现问题没有一开始直接感知的那么复杂了。