信息有用,大家都直到,那么如何用数学描述其作用呢?以及信息用途的背后有没有理论基础呢?
这就是信息熵出现的历史背景,出现在1948年香农的一篇论文-“通信的数学原理”;
举个例子来理解信息熵,2014年世界杯比赛共有32支球队参赛,哪知球队获胜呢?大家来猜;
当然比较有技巧的猜测方式是用二分法,比如我先问获胜队伍在1-16号里嘛?如果在,那么继续问是否在1-8号里,这样问5次一定能得到正确的答案;
如果每回答一次就需要付一元钱那么这条信息的价值为5元钱;这个例子用钱来表述了信息的价值;
而香农是用比特来表示的信息的价值:
所有和自然语言处理、信号处理相关的工作都是在消除不确定性,从而获得确定性的信息;
网页搜索本质也是利用信息消除不确定性的过程,这时合理的做法是挖掘新的隐含信息,比如网页本身的质量信息;
概括来讲:信息的作用是消除不确定性,自然语言处理的大量问题就是寻找相关的信息;
两个时间相关性的量化度量,就是在了解了其中一个Y的前提下,对消除另一个X不确定性所提供的信息量:
I(X;Y)=H(x)-H(X|Y)
这个数学概念的作用是什么呢?举个例子:
bush既可以翻译成灌木丛,又可以翻译成布什总统,那么究竟翻译成什么呢?正确的做法是:从文本中找出大量和布什总统一起出现的词,然后再找出和灌木丛一起出现的词,这些词就是互信息;在翻译Bush时就可以看看那些词中出现了哪些,这就是互信息的作用;
其中讲了相对熵,个人理解其更多的作用在于:自然语言领域使用上下文信息消除不确定性;
作者感叹:
当前物欲横流的中国社会,学术界浮躁,年轻人焦虑,少数有着远大志向的年轻人是十分孤独的;
作者还提到一本书:《巨人三传》
这本书的目的就是为了介绍大师;
二战使其学业荒废,二战结束后重新回到学校,从小学补起,而且学习成绩一塌糊涂,小学时从来没得到过A,其实吧,作者也说,我个人也感悟到,小学的成绩真的有用嘛?
我说下个人的示例,虽然我不是名人,但是还有一定的示范作用,我小学的时候生活在一个强制性学习的环境中:
作者也提及:小学生和中学生其实没必要花那么多时间读书,而他们的社会经验、生活能力以及在那时建立起的志向将帮助他们的一生;
后来麻省理工学院给了他全额奖学金,其决定去麻省理工学习电机工程,虽然中间改变了几次目标,但是其通过努力走向成功的志向始终没变;
在麻省理工学院,其遇到了很多大师级人物,同时作者提到:一个人要想在自己的领域做到世界一流,他的周围必须有非常多的一级大师;
后来毕业获得博士学位后,在哈佛大学教了一年书,去了康奈尔大学任教,成为了贾里尼克教授;
贾里尼克在康奈尔十年磨一剑,悟出了自然语言处理的真谛,之后选择了去IBM公司做研究,其将自然语言处理当成通信问题,使用隐含马尔可夫模型取得了巨大成效;
其因此获得了美国工程院院士
IBM由于遭遇危机,贾里尼克后来去了约翰·霍普金斯大学,建立了CLSP实验室;
其使用了两年时间就将CLSP变成了世界一流的研究中心,其做法是:
其实叭,这个经历对于我们年轻人没有什么借鉴意义,毕竟那时他已经是自然语言处理领域的元老级人物,能申请到经费是很关键的因素;
可借鉴的一点是:其治学极为严谨,对学生的要求也十分苛刻,淘汰学生的比率极高,毕业时间也极长;
但是另一方面,其对学生也十分照顾,其给学生提供学费和生活费,并给英语不好的外籍学生请私人教练,我个人觉得,就我们学校而言,这类老师占极少数,而大多数老师感觉不怎么关心学生,即使关心学生感觉关心的也不是正道,逼迫学生,压榨学生, 试问这样的环境,学生怎么可能静下心来去认认真真做研究,又怎么能不浮躁呢!哎,悲剧就是如此!!!
贾里尼克对作者的最大帮助是:告诉作者什么是可行的,什么是不可行的,即将其在科研路熵踩的坑传授给了作者;
另外贾里尼克个人的一些特点:
技术分为两种:术和道,术是做事的基本方法,道是原理和原则,追求术的人一辈子都很辛苦,而追求道的人才能游刃有余;
Google搜索质量的第一负责人每天都会分析那些不好的搜索结果,但是有非常多的搜索工程师就做不到这一点,他们总想着用一个算法就搞定,毕其功于一役;
其实二进制并不是布尔发明的,布尔做的是发明了:布尔代数,即0-1运算;
1938年。香农在其硕士论文中使用布尔代数来实现开关电路,才使得布尔代数称为数字电路的基础; 香农,只能说太牛逼了;
布尔代数对于数学的意义等同于量子力学对物理学的意义;
为什么能在0.00x秒内就能索引到成百上千的搜索结果呢?技巧就是建立索引;
最简单的索引结构就是用一个很长的二进制表示一个关键字是否出现在每篇文献中,有多少篇文献就有多少位数;
这样的话,搜索引擎的索引就变成了一张大表:表的每一行为关键词,其后面跟着一组数字,表示包含本关键词的文献;
现在常见的搜索引擎都对所有词建立索引,但是在工程上十分具有挑战性;
作者简单算了下,索引显然不是一台服务器的内存所能保存下的,所以需要分布式的技术才能搞定,但是像Google这种服务器几乎是无限的公司也感受到了数据带来的压力;
所以:需要根据网页的重要性、质量和访问的频率建立常用和非常用等不同级别的索引,常用的索引需要访问速度非常快,附加信息多,更新速度也要快才行;
无论搜索引擎多复杂,原理上依然简单,即布尔代数;
发觉真理在形式上从来是最简单的,而不是复杂和含混的 — 牛顿;
前面讲到如何建立搜索引擎的索引,那么如何将互联网上的所有网页下载下来呢?这就用到了图论的知识;
图论的起源可追溯到大数学家欧拉,1736年,当地村民有一项娱乐活动:如何才能每座桥恰好经历一遍并回到出发点,以这样的方式来通过哥尼斯堡的七座桥呢? 欧拉用数学方法证明了这一点无法做到,此为图论的起源;
然后作者简单讲了下DFS和BFS;
我们可以从任何一个网页出发,用图的遍历算法,自动地访问到每一个网页并把他们保存起来,完成这个功能的程序叫做网络爬虫;
下载过程中,如何记录哪些网页已经下载,哪些网页没有下载呢?使用Hash表来记录;
略
首先最主要的问题:使用BFS还是DFS?各个网站最重要的网页是主页,所以显然BFS优于DFS,但是工程上,后爬哪个网页的调度程序,原理上基本是BFS。
只是说BFS的成分多一点,记住不是简单的BFS、DFS;
第二个问题:页面的分析和URL的提取
就是说一个网页中有其他网页的地址怎么提取?因为很多网页的跳转地址都不是静态的,因此需要模拟浏览器内核将网页运行起来,然后再去分析,这就需要浏览器内核工程师来做这些工作,但是世界上杰出的浏览器内核工程师并不多;
第三个问题:记录哪些网页已经下载—Hash表;
这里面有两个核心问题:一个服务器内存存不下这些散列表,存储散列表的服务器的通信问题成了整个爬虫系统的瓶颈;
没有正确的答案,但是思路如下:
很多数学方法就是那样,看上去没什么用,但是随着时间的推移,很多方法会派上用场,这恐怕是世界上那么多人毕生研究数学的原因叭!
搜索的排名取决于两组信息:这个网页的质量、以及这个查询与每个网页的相关性信息
在1998年前后,比较圆满的解决了搜索结果中排序不好的问题
核心是:如果一个网页被很多其他网页所链接,说明其收到普遍的承认和信赖,它的排名就高;
然后根据此思想来设计算法,当然矩阵运算工程量十分大,佩奇和布林两个人利用稀疏矩阵的技巧,大大简化了计算量,并实现了该排名算法;
主要讲了PageRank的计算方法,这里略;
佩奇因为这个算法,于30岁获得了美国工程院院士,是继乔布斯和比尔盖茨后又一位当选院士的辍学生;