第一章 文字和语言vs数字和信息###
数字、文字和自然语言一样,都是信息的载体。
语言和数学的产生都是为了同一个目的——记录和传播信息。
信息论 香农——数学和信息联系起来
聚类
随着文明的进步,信息量的增加,没有人能够学会和记住那么多的文字,概念的第一次概
括和归类就开始了。
概念的聚类在原理上与今天的自然语言处理或者机器学习的聚类有着很大的相似性。
歧义性
文字的聚类,最终会带来歧义性。
多义字在特定环境下表示那种意思。解决这一问题的方法:依靠上下文。
罗塞塔石碑的破译带来的意义
信息的冗余是信息安全的保障。罗塞塔石碑的内容是同一信息重复三次。
语言的数据,我们称之为语料,尤其是双语或者多语的对照语对翻译至关重要。
对信息编码
从象形文字到拼音文字是一个飞跃,因为人类在描述物体的方式上,从物体的外表进化到了抽象的概念,同时不自觉地采用了对信息的编码。
信道
书写文字不是一件容易的事情。在通信时,如果信道较宽,信息不必压缩就可以直接传递;而如果信道较窄,信息在传递前需要尽可能的压缩,然后在接收端进行解压缩。
校验码
犹太人抄圣经
第二章 自然语言处理###
自然语言在演变的过程中,产生了词义和上下文相关的特性,文法是比较复杂的上下文有关文法。
而程序语言是我们人为设计的、便于计算机解码的上下文无关文法,相比自然语言简单的多。
在上世纪70年代,基于规则的句法分析(包括文法分析和语义分析)很快走到了尽头,转变到基于统计的方法。
第三章 统计语言模型###
数学的魅力就在于将复杂的问题简单化。
统计语言模型产生的初衷是为了解决语言识别问题——二元模型,N元模型(数学依据:马尔科夫假设,大数定理(只要统计量足够,相对频率就等于概率),条件概率)
模型的参数:语言模型中需要知道的所有的条件概率。
模型的训练:通过对语料的统计,得到参数的过程。
如果直接用比值计算概率,大部分条件概率依然是零,这种模型“不平滑”。
第四章 谈谈分词###
对于一些亚洲语言(如中、日、韩、泰),词之间没有明确的分界符。因此需要对句子进行分词,才能做进一步自然语言处理。
最好的一种分词方法应该保证分完词后这个句子出现的概率最大(动态规划)。
第五章 隐含马尔科夫模型###
通信的本质是编解码和传输的过程。
到了十九世纪,概率论的发展从相对静态的随机变量的研究发展到对随机变量的时间序列,即随机过程动态的研究。
隐含马尔科夫链成功应用于机器翻译,拼写纠错,手写识别体,图像处理,基因序列分析等很多IT领域。近年来,还广泛应用于股票预测和投资。
隐含马尔科夫模型是机器学习的重要工具之一,和几乎所有机器学习模型工具一样,需要一个训练算法(鲍姆-韦尔奇算法)和使用时的解码算法(维特比算法)。
第六章 信息的度量和作用###
信息的度量:信息熵
例:H=-(p1·㏒p1+ p1·㏒p1+……p32·㏒p32
H(X)=-∑ P(X)㏒P(X)
信息论:“比特”(BIT)度量信息量
变量的不确定性越大,熵也就越大。
冗余度:重复的信息越多,信息量越小,冗余度越大。
信息的作用:信息的作用在于消除不确定性,自然语言处理的大量问题就是寻找相关消息。
互信息:两个随机事件“相关性”的量化度量。
在自然语言处理中,互信息被广泛应用于度量一些语言现象的瞎相关性。
相对熵
三条结论:
1.对于两个完全相同的函数,它们的相对熵等于零。
2.相对熵越大,两个函数的差异越大;反之,相对熵越小,两个函数差异越小。
3.对于概览分布或者概率密度函数,如果取值均大于零,相对熵可以度量两个随机分布的差异性。
应用:衡量两端信息的相似程度。
信息熵是对不确定性的衡量,能直接用于衡量统计语言模型的好坏。
信息熵不仅是对信息的量化度量,而是整个信息论的基础。
第七章 贾里尼克和现代语言处理###
当今物欲横流的中国社会,学术界浮躁,年轻人焦虑,少数有着远大志向的年轻人实际上是非常孤独的。这很像罗曼·罗兰笔下一战后的法国。《巨人三传》
教育的误区:
1.小学生和中学生其实没必要花那么多时间读书,而他们的社会经验、生活能力以及在那时树立起的志向将帮助他们一生。
2.中学阶段花很多时间比同伴多读的课程,上大学以后用很短时间就能读完,因为在大学阶段,人的理解能力要强得多。
3.学习(和教育)是持续一辈子的过程。
4.书本的内容可以早学,也可以晚学,但是错过了成长阶段却是无法补回来的。
第八章 简单之美——布尔代数和搜索引擎###
搜索引擎的原理:下载,索引,排序 ——搜素引擎的道
所有的搜索服务都可以在这三个基本服务的基础上实行 ——搜索引擎的术
数学的发展实际上是不断抽象和概括的过程,这些抽象的方法看似离生活越来越远,但是它们最终能找到适用的地方,布尔代数即是如此。
布尔代数对于数学的意义等同于量子力学对于物理学的意义,它们将我们对世界的认识从连续状态扩展到离散状态。在布尔代数的“世界”里,万物都是可以量子化的,从连续的变成一个个分离的,它们的运算“与、或、非”也就和传统的代数运算完全不同了。
布尔运算的意义在于把逻辑和数学合二为一。
第九章 图论和网络爬虫###
互联网虽然很复杂,但是说穿了其实就是一张大图而已——可以把每一个网页当作一个节点,把那些超链接(Hyperlinks)当作连接网页的弧。
网络爬虫:用图论的遍历算法自动地访问到每一个网页并把它们存起来的程序
图论:遍历算法:广度优先搜索BFS 深度优先搜索DFS
第十章 PageRank——Google的民主表决式网页排名技术###
搜索引擎的排名取决于网页的质量信息Quality和相关性信息Relevance。
如何度量网页的质量?
Google的革命性发明是它名为“PageRank”的网页排名算法。
核心思想:互联网中,如果一个网页被很多其他网页所链接,说明它受到普遍的承认和信赖,那么它的排名就高。
网页排名算法的高明之处在于它把整个互联网当作一个整体来对待,这无意中符合了系统论的观点。
第十一章 如何确定网页和查询的相关性###
如何度量网页的相关性?
TF-IDF是对搜索关键词的重要性的度量,有很强的理论依据。
第十二章 有限状态机和动态规划
有限状态机是一个特殊的有向图,包括一些状态(节点)和连接这些状态的弧。
全球导航的关键算法是计算机科学图论中的动态规划DP的算法。
解决最短路径问题——动态规划
原理:将寻找最短路线问题分解成一个个局部最短路线的小问题。
应用:识别地址,导航,语言失败,工业控制等
第十三章 Google AK-47的设计者——阿米特辛格博士
辛格做事情的哲学:先帮助用户解决80%的问题,再慢慢解决剩下20%的问题,是在工业界成功的秘诀之一。许多失败并不是因为人不优秀,而是做事情的方式不对,一开始追求大而全的解决方案,之后长时间不能完成,最后不了了之。
辛格一直坚持简单有效的解决方案,因为他奉行简单哲学。
辛格要求对于搜索质量的改进方法要能说明清楚理由,说不清理由的改进,即使看上去有效也不会采用,因为这将来可能是个隐患。
辛格非常鼓励年轻人要不怕失败,大胆尝试。他坚持每天分析一些搜索结果不好的例子,简单有效的解决方啊常常是深思熟虑去伪存真的结果啊。
第十四章 余弦定理和新闻的分类
如果两篇新闻属于同一类,它们的特征向量在某几个维度的值都比较大,而在其他维度的值都比较小。
美国人总是倾向于用机器代替人完成任务。虽然短期内需要做一些额外的工作,但是从长期看可以节省很多时间成本。
一句话:让计算机承担很大的计算量时需要减少运算数量,提高运算速度。
第十五章 矩阵运算和文本处理中的两个分类问题
新闻分类乃至各种分类其实是一个聚类问题,关键是计算两篇新闻的相似度。
矩阵运算的奇异值分解可以一次把所有新闻相关性计算出来,不需要一次次迭代。不过分类结果略显粗糙,适合处理超大规模文本的粗分类。
一句话:任何一门数学知识都有它的用处,充分在适当的场合混合利用就能发挥它们的最大价值。
第十六章 信息指纹及其应用
所谓信息指纹,可以简答理解为将一段信息(文字、图片、音频、视频等)随机映射到一个多维二进制空间中的一个点(一个二进制数字)。
信息指纹的用途:网页搜索中集合相同的判定,反盗版。
一句话:信息指纹的主要技术依赖伪随机数产生器(CSPRNG),具有不可逆性,主要用来查看信息的重复。
第十七章 由电视剧《暗算》所想到的——谈谈密码学的数学原理
密码学的最高境界是无论敌方获得多少密文,也无法消除己方情报的不确定性。
我们今天所谓最可靠的加密方法,背后的数学原理就这么简单,无非是找几个大素数做一些乘除和乘法运算,不过想破解几乎不可能。
一句话:任何技术背后都是极其简单的数学原理。
第十八章 闪光的不一定是金子——谈谈搜索引擎反作弊问题和搜索结果的权威性问题
噪音存在于任何通信系统。搜索引擎是一个特殊的通信系统,免不了会有噪音,反作弊和确定权威性就是去噪音的过程。
搜索引擎作弊从本质上看如同对排序的信息加入噪音。
搜索引擎反作弊的实质是增强排序算法的抗噪能力,还原真实排名。
对搜索引擎权威性的度量完全是建立在各种数学模型的基础上的,方法有句法分析、利用互信息、短语聚类、对网页进行聚合。
第十九章 谈谈数学模型的重要性
1.一个正确的数学模型应当在形式上是简单的
2.一个正确的模型一开始可能还不如精雕细琢的错误模型来的准确,但是如果我们认定大方向是对的就应该坚持下去
3.大量准确的数据对研发很重要
4.正确的模型也可能是受噪音干扰,而显得不准确;这时不应该用一种凑合的修正方法加以弥补,而是要找到噪音的根源,这也许能通往重大的发现。
第二十章 不要把鸡蛋放到一个篮子里——谈谈最大熵模型
最大熵原理:保留全部的不确定性,将风险降到最小
最大熵模型:最大熵原理指出,对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知条件,而对未来的情况不要做任何主管假设。(不做主观假设这点很重要。)在这种情况下,概率分布最均匀,预测的风险最小。因为这时概率分布的信息熵最大,所以人们把这种模型叫做“最大熵模型”。
当我们遇到不确定性时,就要保留所有可能性。
最大熵模型的良好特性:从形式上看,它非常简单,非常优美;从效果上看,它是唯一一种既满足各个信息源的限制条件,又能保证平滑性的模型。
第二十一章 拼音输入法的数学原理
拼音转汉字的算法和在导航中寻找最短路径的算法相同,都是动态规划。
数学的妙处在于它的每一个工具都具有相当的普遍性,在不同的应用中都可以发挥最大的作用。
第二十二章 自然语言处理的教父马库斯和他的优秀子弟们
马库斯的主张一贯是建立世界上最好的专业,而不是专业最齐全的系。
追求完美的“繁琐哲学”vs追求简单的“简单哲学
打造世界上最完美的产品vs成为一个领域的领军者
柯林斯vs布莱尔
第二十三章 布隆过滤器
用于判断一个元素是否在一个集合里。
背后的数学原理在于两个完全随机的数字相冲突的概率很小,因此,可以在概率很小的误识别率下,用很少的空间存储大量信息。
第二十四章 马尔科夫链的扩展——贝叶斯网络
应用:在词分类中,图像处理等
第二十五章 条件随机场、文法分析及其他
应用:模式识别、机器学习、生物统计、预防犯罪等
第二十六章 维比特和他的维比特算法
维比特算法是现代通信中最常用的算法,同时也是很多自然语言处理采用的解码算法。
维比特算法是一个特殊但应用最广的动态规划算法,它之所以重要是因为凡是可以使用隐含马尔科夫链模型描述的问题都可以用它来解码
第二十七章 上帝的算法
第二十八章 逻辑回归和搜索广告
第二十九章 各个击破算法和Google云计算的基础
第三十章 Google大脑和人工神经网络
第三十一章 大数据的威力——谈谈数据的重要性
附录 计算复杂度
后序
无论在美国还是中国,我经常看到大部分软件工程师在一个未知领域都是从直观感觉出发,用“凑”的方法解决问题,在中国尤其如此。这样的书法不好听,就是山寨。
人人要认识到正确的理论和方法,总是一个渐近的过程。任何事物都有它的发展规律,而这些规律都是可以认识的。
目的:向非IT行业的从业人员普及一些IT领域的数学知识,透过对IT规律性的认识,运用到自己的工作中,提升自己的境界。
世界上最好的学者总是有办法深入浅出地把大道理讲给外行听,而不是故弄玄虚地把简单的问题复杂化。