数学之美-读书笔记

Executive Summary

核心观点(金字塔原理)

结论先行: 数学是理解自然语言处理、搜索引擎和信息科学的核心工具,通过统计模型和信息论可以优雅地解决复杂的语言和信息问题。

支撑论点:

  1. 自然语言处理的本质是通信编解码问题,统计方法比规则方法更有效
  2. 信息熵是度量信息不确定性的基础,贯穿通信、压缩和NLP领域
  3. PageRank、布隆过滤器、马尔可夫链等数学模型是现代搜索引擎的基石

SWOT 分析

维度 分析
S 优势 将复杂的数学概念与实际应用结合,深入浅出地解释NLP和搜索引擎原理
W 劣势 部分章节内容较浅,需要读者有一定数学基础才能深入理解
O 机会 适合想进入AI/NLP/搜索引擎领域的工程师建立知识框架
T 威胁 深度学习时代部分传统方法已被神经网络取代,需结合最新技术学习

适用场景

  • 想理解搜索引擎底层原理的开发者
  • 准备进入NLP/AI领域的工程师
  • 希望用数学思维解决工程问题的技术人员

第一章 文字和语言 vs 数字和信息
  • 文字只是信息的载体,而非信息本身,所以同一个信息,在中文或英文中表现不同,如果用其他载体比如数字也是可以表示同样的 意思,这就是现代通信的基础。
  • 信息的冗余是信息安全的保障,这对信道编码有直到意义。
  • 语言的数据,我们称之为语料,尤其是双语或者多语的对照语料对翻译至关重要,它是我们从事机器翻译研究的基础。
  • “罗赛塔”石碑
  • 总结
    1. 通信的原理和信息传播的模型
    2. (信源)编码和最短编码
    3. 解码的规则,语法
      • 聚类
      • 校验位
      • 双语对照文本,语料库和机器翻译
      • 多义性和利用上下文消除歧义性
第2章 自然语言处理–从规则到统计
  • 语言出现的目的是为了人类之间的通信,字母,文字和数字实际上是信息编码的不同单位,任何一种语言都是一种编码方式,而语言 的语法规则是编解码的算法。我们把一个要表达的意思,通过某种语言的一句话表达出来,就是用这种语言的编码方式对头脑 中的信息做了一次解码,编码的结果就是一串文字。而如果对方懂得这门语言,他就可以用这门语言的解码方式获得说话人要表达 的信息。这就是语言的数学本质?虽然传递信息是动物也能做到,但是利用语言来传递信息是人类的特质。
  • 基于统计的自然语言处理方法,在数学模型上和通信是相通的,甚至就是相同的。
第3章 统计语言模型
  • 统计语言模型的核心问题:给定一个句子S由词w1,w2,…,wn组成,计算该句子出现的概率P(S)。利用条件概率公式展开为:P(w1,w2,…,wn)=P(w1)·P(w2 w1)·P(w3 w1,w2)…P(wn w1,…,wn-1)。
  • 马尔可夫假设与N-gram模型:直接计算上述公式复杂度极高,因此引入马尔可夫假设——每个词只与前面有限个词相关。二元模型(Bigram)中P(wi w1,…,wi-1)≈P(wi wi-1),通过语料库中词对出现的频率来估计条件概率。
  • 零概率问题与平滑方法:实际语料中很多合理词组合从未出现,导致概率为零。解决方法包括:古德-图灵估计(将高频词多出的概率分配给未见事件)、用低阶与高阶模型的线性插值(Katz退避法)来平滑。
  • 统计语言模型的本质洞见:用简洁的概率统计方法,而非复杂的语法规则,来描述和处理自然语言,这正是数学的美妙之处。
第4章 谈谈中文分词
  • 中文分词以统计语言模型为基础。
第5章 隐含马尔可夫模型
  • 自然语言是人类交流信息的工具,语言和通信的联系是天然的,通信的本质就是一个编解码和传输的过程。但是自然语言处理 早期的努力都集中在语法、语义和知识表述上,离通信的原理越走越远,而这样离答案也就越来越远。当自然语言处理的问题回归到通信系统中的解码问题时,很多难题都迎刃而解了。
  • 发送者(信息,上下文) –> (s1,s2,s3…)编码—>传递的信息(信道)—>(o1,o2,o3…)解码 —>接收者(接收的信息)
  • 马尔可夫模型和几乎素有的机器学习的模型工具一样,它需要一个训练算法(鲍姆-韦尔奇算法)和使用时的解码算法(维特比算法) ,掌握了这两类算法,基本上可以使用隐含马尔可夫模型这个工具了。
第6章 信息的度量和作用
  • 信息熵:一条信息的信息量和它的不确定性有着直接的关系。
  • 条件熵
  • 信息的作用在于消除不确定性,自然语言处理的大量问题就是找相关的信息。
  • 互信息
  • 信息熵不仅是信息的量化度量,而且是整个信息论的基础。它对于通信、数据压缩、自然语言处理都有很强的直到意义。信息熵的物理含义是对一个信息系统不确定性的度量,在这一点上,它和热力学中熵的概念相同,因为后者是对于一个系统无序的度量。这说明科学熵很多看似不同的学科之间也会有很强的相似性。
第7章 贾里尼克和现代语言处理
  • Frederick Jelinek(贾里尼克) 是现代自然语言处理的奠基者。他出生于捷克犹太家庭,二战后辗转求学,最终在康奈尔大学十年磨一剑,潜心研究信息论,悟出了自然语言处理的真谛。
  • 从人工智能到通信模型的范式转换:1972年贾里尼克到IBM华生实验室,将语音识别从人工智能/模式匹配问题重新定义为通信问题,用两个隐含马尔可夫模型(声学模型+语言模型)把语音识别概括得清清楚楚。这个框架至今对语音和语言处理有深远影响。
  • 贾里尼克在IBM领导了一批杰出科学家利用大型计算机处理语言问题,统计语言模型就是在那个时期提出的。他本人因此当选美国工程院院士。
  • 核心启示:自然语言处理回归到通信系统中的编解码问题时,很多难题都迎刃而解——这再次说明正确的数学模型比蛮力方法更有效。
第8章 简单之美–布尔代数和搜索引擎的索引
  • 下载、索引、排序组成搜索服务。
  • 发觉真理在形式上从来是简单的,而不是复杂和含混的。
第9章 图论和网络爬虫
  • 图论:遍历算法,1 深入优先 2 广度优先
  • 网络爬虫:1 首先考虑是BFS 还是 DFS?结论是BFS。 2 页面的分析和URL的提取。3 记录哪些网页已经下载过的小本本–URL表。 4 如何解决存储哈希表的服务器的通信瓶颈?两个好办法:a 首先明确每台下载服务器的分工,也就是说在调度时一看到某个URL 就直到要交给哪台服务器去下载,这样就避免了很多服务器对同一个URL做出是否需要下载的判断。然后在明确分工的基础上, 判断URL是否下载就可以批处理了,比如每次向哈希表(一组独立的服务器)发送一大批询问,或者每次更新一大批哈希表的内容,这样通信的次数就大大减少了。
第10章 PageRank — Google的民主表决式网页排名技术
  • 网页的质量信息。网页的相关性信息。
  • PageRank算法的原理:如果一个网页被很多其他网页所链接,说明它收到普遍的承认和信赖,那么它的排名就高。这就是PageRank的核心思想。
  • 网页排名高的网站贡献的连接权重大。
第11章 如何确定网页和查询的相关性
  • 质量网页和查询的相关性,有个简单的方法,就是直接使用各个关键词在网页中出现的总词频。
  • 汉语中需要对每个词对应一个权重,这个权重的设定必须满足以下两个条件。
    1. 一个词预测主题的能力越强,权重越大,反之,权重越小。在网页中看到“原子能”这个词,或多或少能了解网页的主题,而看到”应用一词,则对主题基本上还是一无所知。因此,“原子能”的权重就应该比“应用”大。
    2. 停止词的权重为0,比如“是”,“和”,“中”,“地”等。
第12章 地图和本地搜索的最基本技术—有限状态机和动态规划
  • 有限状态机(FSM)用于地址识别:地址的文法是上下文有关文法中相对简单的一种,有限状态机是最有效的识别方法。由于自然语言的随意性,需要引入基于概率的有限状态机(加权有限状态转换器WFST),本质上与二元模型/马尔可夫链等价。
  • 动态规划用于全球导航:地图导航的最短/最快路径问题,用动态规划算法解决。原理是将全程最优化问题分解为局部最优化问题——从北京到广州的最短路径一定包含到中间节点的局部最短路径,逐步推进即可求解。
  • 维特比算法是动态规划在篱笆网络(Lattice)有向图上的特殊应用,将计算复杂度从指数级降到O(N·D^2)。凡是用隐含马尔可夫模型描述的问题——数字通信、语音识别、机器翻译、拼音输入法——都可用维特比算法解码。
  • 数学的妙处:拼音输入法与GPS导航的数学模型竟然是一样的——都是在有向图中寻找最短路径。
第13章 Google Ak-47的设计者–阿米特·辛格博士
  • 阿米特·辛格(Amit Singhal) 是Google Fellow、美国工程院院士,Google内部的排名算法以他的名字命名。他师从搜索大师萨尔顿(Salton)教授,在AT&T实验室时半年就搭建了一个准确性极高的搜索引擎。
  • AK-47设计哲学:好的算法应像AK-47冲锋枪一样——简单、有效、可靠、不易损坏、可在任何环境下使用。辛格坚持”先解决80%的问题,再慢慢解决剩下20%”的工程哲学。
  • 吴军曾设计了一个需要三到六个月实现的完美分类器,而辛格认为应该找个简单有效的办法。结果他们一两个月就把作弊网页数量减少了一半。几乎所有时候,辛格的简单方法都接近最优解,而且速度更快。
  • 核心启示:在工程实践中,简单实用的方法往往胜过理论上完美但过于复杂的方案。
第14章 余弦定理和新闻的分类
  • 向量空间模型:将每篇文章表示为一个特征向量,向量的每个维度对应词汇表中的一个词,维度的值为该词的TF-IDF权重(词频-逆文档频率)。TF-IDF衡量一个词对文章主题的区分能力。
  • 余弦相似度:用两个向量夹角的余弦值来衡量文章之间的相似度。夹角越小,余弦值越接近1,说明两篇文章越相似。Google新闻的自动分类就是基于这个原理。
  • 新闻分类的流程:对每篇文章提取关键词并计算TF-IDF,构建特征向量,然后通过余弦距离将相似新闻聚类到同一类别中。
  • 中学学的余弦定理,竟然可以用来对新闻进行自动分类——这正是数学之美的体现。
第15章 矩阵运算和文本处理中的两个分类问题
  • 奇异值分解(SVD) 是线性代数中的核心工具:任意m×n实数矩阵A都可以分解为A=UDV^T,其中U、V是正交矩阵,D是对角矩阵,对角线上的值称为奇异值。
  • 文本分类的两个问题:将文本按主题归类,以及将词汇表中的词按语义归类。实际应用中先用SVD做粗分类,再用余弦距离迭代优化,最终得到精确的分类结果。
  • 潜在语义索引(LSI/LSA):利用SVD对词-文档矩阵降维,提取出隐含的语义关系(如近义词),使搜索从词级别提升到语义级别。这是Google搜索和广告系统的重要技术基础。
  • SVD的计算复杂度为O(N^3),Google实现了SVD的并行化算法,吴军称这是对人类的一个贡献。
第16章 信息指纹及其应用
  • 信息指纹的原理:任何一段信息都可以通过哈希函数映射为一个不太长的伪随机数(如128位),作为该信息的唯一标识。只要算法足够好,两段不同信息产生相同指纹的概率极低,如同人的指纹不会重复。
  • 核心应用:网络爬虫将每个URL转换为信息指纹存入哈希表,快速判断网页是否已下载;垃圾邮件过滤、文档去重等场景都依赖信息指纹。
  • SimHash(相似哈希):由Charikar于2002年提出,Google用于海量网页的近似去重。将文档转换为64位特征值,通过计算海明距离(Hamming Distance)判断两个文档是否相似。SimHash是局部敏感哈希(LSH),相似的文档产生相似的哈希值,这与MD5等传统哈希截然不同。
  • 信息指纹将复杂的字符串比较问题转化为简单的数字比较问题,体现了数学化简问题的威力。
第17章 由电视剧《暗算》所想到的–谈谈密码学的数学原理
  • 密码学的根基是信息论和数学。在信息论之前的密码(自发时代)很容易被破解;只有在信息论被广泛应用于密码学后,密码才真正变得安全。
  • 密码学的最高境界:无论敌方获取多少密文,也无法消除己方信息的不确定性。为此,密文之间必须相互无关,且看起来是完全随机的序列。
  • 公钥加密(RSA):现代公钥密码学基于大素数分解的计算复杂性——将两个大素数相乘很容易,但将乘积分解回两个素数则在计算上不可行。这种数学上的不对称性是互联网安全通信的基石。
  • 密码学与通信、信息编码的数学原理高度相通,再次体现了数学在不同领域的统一性。
第18章 闪光的不一定是金子—谈谈搜索引擎反作弊问题
  • 搜索引擎作弊的本质:虽然方法多样,目的只有一个——采用不正当手段提高自己网页的排名。消除作弊网页的原理与通信中过滤噪声的原理相同。
  • 反作弊的关键工具:图论。作弊网站一般需要互相链接以提高排名(链接农场/Link Farm),通过分析链接图的拓扑结构可以识别出这些异常模式。
  • 吴军与Amit Singhal、Matt Cutts等人在Google一起开创了网络搜索反作弊的研究领域,并因此获得Google工程奖。他们的经验证明:简单有效的方法往往比复杂精致的方案更实用。
  • 核心洞见:信息处理和通信的很多原理是相通的,搜索引擎的反作弊本质上就是信号与噪声的分离问题。
第19章 谈谈数学模型的重要性
  • 正确的数学模型比蛮力方法更有效:简单的统计语言模型就可以解决复杂的语音识别、机器翻译问题,而用复杂的文法规则和人工智能却做不到。关键在于选择正确的模型。
  • 数学模型的统一性:虽然人类语言有上千种,但处理它们的数学模型却是相同或相似的——隐含马尔可夫模型既能用于语音识别,也能用于中文分词和机器翻译。这种一致性正是数学之美的体现。
  • 工程上简单实用的方法最好:辛格博士的哲学——先帮用户解决80%的问题,再慢慢解决剩下20%的问题,是工业界成功的秘诀之一。
  • 数学的精彩之处就在于简单的模型可以干大事。一个PageRank矩阵迭代加上一个TF-IDF公式,就能大幅改善搜索结果的质量。
第20章 不要把鸡蛋放到一个篮子里–谈谈最大熵模型
  • 最大熵原理:对一个随机事件的概率分布进行预测时,应当满足全部已知条件,但对未知情况不做任何主观假设。在信息不完整时,概率分布最均匀的预测风险最小——这就是”不要把鸡蛋放在一个篮子里”的数学表达。
  • 最大熵模型的数学性质:匈牙利数学家证明,对任何一组不自相矛盾的约束条件,最大熵模型不仅存在而且唯一,且都有同一种简洁形式——指数函数。
  • 最大熵模型是一种通用的建模框架,在自然语言处理(词性标注、句法分析)、文本分类和信息检索中都有广泛应用。它的优势在于不需要对数据做额外的独立性假设。
  • 核心思想:在利用已知信息的前提下保留所有的不确定性,这是最保险、风险最小的策略。
第21章 拼音输入法的数学模型
  • 输入法与通信模型:汉字输入过程本身就是人与计算机之间的通信。好的输入法会自觉或不自觉地遵循通信的数学模型,最有效的输入法应当以信息论为指导。
  • 输入效率的信息论极限:汉字的信息熵决定了平均编码长度的下限。以词为单位统计时,汉字信息熵约8比特,每个字母携带约4.7比特信息,因此输入一个汉字平均最少需要敲约1.7次键。
  • 拼音转汉字的算法就是动态规划——根据上下文在给定拼音条件下找概率最大的句子,对应的数学模型是在有向图中寻找最短路径,这与GPS导航的算法完全相同。
  • 数学工具的普遍性:同一个动态规划算法,既能用于地图导航,也能用于拼音输入法,体现了数学模型跨领域的通用性。
第22章 自然语言处理的教父马库斯和他的优秀弟子们
  • 米奇·马库斯(Mitch Marcus) 是宾夕法尼亚大学教授,对将NLP从基于规则的方法转向基于统计的方法功不可没。他创建了LDC语料库(宾州树库Penn Treebank),成为学术界广泛使用的标准资源。
  • 马库斯的培养方式:建立多个标准语料库组织,放手让博士生研究自己感兴趣的课题,从宾夕法尼亚大学走出了一大批NLP领域的精英人物。
  • 标准语料库对NLP的发展至关重要——有了统一的训练和评测数据,研究者才能客观比较不同方法的效果,推动统计方法的全面胜出。
  • 核心启示:一个好的导师和开放的学术环境,加上高质量的基础设施(语料库),能够推动整个领域的发展。
第23章 布隆过滤器
  • 问题背景:计算机中用散列表(Hash Table)存储集合,优点是快速准确,缺点是耗费大量存储空间。当数据量极大时(如搜索引擎的URL集合),传统哈希表需要几十甚至几百台服务器。
  • 布隆过滤器(Bloom Filter) 由Burton Bloom于1970年提出,只需散列表1/8到1/4的空间就能解决同样的集合成员判断问题。原理:对每个元素用多个(如8个)独立哈希函数产生多个信息指纹,将对应位置设为1。查询时检查所有对应位是否都为1。
  • 代价是允许小概率误判:布隆过滤器可能将不在集合中的元素误判为在集合中(假阳性),但绝不会漏报已有元素(无假阴性)。通过调整哈希函数数量和位数组大小,可以将误判率控制在可接受范围。
  • 广泛应用于网络爬虫URL去重、垃圾邮件过滤、缓存系统等空间敏感场景,是工程中以少量准确性换取巨大空间节省的经典案例。
第24章 马尔可夫链的扩展—贝叶斯网络
  • 贝叶斯网络是马尔可夫链的推广:节点表示随机变量,箭头代表因果关系,无箭头连接的节点间无直接因果关系。每个关系都有一个量化的可信度(概率),因此也称信念网络(Belief Networks)或有向无环图模型(DAG Model)。
  • 与马尔可夫链的区别:马尔可夫链是线性的、单向的依赖关系,而贝叶斯网络可以表达更复杂的多变量依赖结构,更接近现实世界中变量间的真实关系。
  • 在文字处理中的应用:语义相近的词之间的关系可以用贝叶斯网络描述,利用它可以发现近义词和相关词,在Google搜索和广告系统中都有直接应用。
  • 贝叶斯网络的训练是一个重要课题,需要从数据中学习网络的结构和参数。
第25章 条件随机场和句法分析
  • 条件随机场(CRF) 是隐含马尔可夫模型的扩展。在HMM中,观测值x2的状态仅由隐含状态y2决定,与y1、y3无关。但在实际中它们很可能相关。CRF将y1、y2、y3都考虑进来,同时保持隐含状态序列的马尔可夫性质。
  • 有向图 vs 无向图:贝叶斯网络是有向图模型,条件随机场是无向图模型。CRF直接对条件概率P(Y X)建模,不需要对观测数据X的分布做假设,这使其比HMM更灵活。
  • 在句法分析中的应用:CRF特别适合序列标注任务(词性标注、命名实体识别、分词等),因为它能同时利用输入序列的全局特征,而非像HMM那样只能看到局部信息。
  • CRF在模式识别、机器学习、生物统计甚至犯罪预防等领域都有成功应用。
第26章 维特比和他的维特比算法
  • 安德鲁·维特比(Andrew Viterbi) 不仅发明了维特比算法,还联合创办了高通公司(Qualcomm),CDMA技术(3G移动通信的基础)也是他的贡献。
  • 维特比算法的本质:在篱笆网络(Lattice)的有向图中寻找最短路径的动态规划算法。给定一个隐含马尔可夫模型和一个观测序列,找到最可能产生该输出的隐含状态序列。
  • 应用之广:维特比算法是现代数字通信中最常用的算法,同时也是语音识别、机器翻译、拼音转汉字、中文分词等NLP任务的核心解码算法。
  • 一个算法能同时在通信和自然语言处理两个看似无关的领域发挥核心作用,再次证明了数学工具的普适性。
第27章 再谈文本自动分类问题—期望最大化算法
  • EM(期望最大化)算法被吴军称为”上帝的算法”:只要有训练数据和一个最大化目标函数,通过若干次迭代就能自动得到所需模型,无需人工标注或预设类别。
  • 算法流程:包含E步(期望步)和M步(最大化步)两个交替过程。E步根据当前模型参数重新划分数据;M步根据新的划分更新模型参数。如此迭代直到收敛。
  • 文本自动分类:无需事先设定类别,也无需两两比较文本。随机选取聚类中心,然后通过EM算法不断优化,使聚类中心逐步逼近真实分布。
  • 收敛性:如果目标函数是凸函数,EM保证得到全局最优解;否则可能收敛到局部最优解。实践中通常多次随机初始化并取最优结果。
第28章 逻辑回归和搜索广告
  • 搜索广告是互联网商业的核心,关键问题是预测用户点击广告的概率。逻辑回归(Logistic Regression)是解决这一问题的经典模型。
  • 逻辑回归的数学形式:将多个影响因素x1,x2,…,xk线性组合为z=β0+β1x1+…+βkxk,再通过Sigmoid函数f(z)=1/(1+e^-z)映射到(0,1)区间作为概率预测。每个βi表示对应变量的重要性(回归参数)。
  • 与神经网络的关系:逻辑回归本质上是一个单层人工神经网络,可以用训练神经网络的方式(梯度下降)来训练参数。
  • 逻辑回归不仅用于搜索广告的点击率预测,还广泛应用于信息处理、生物统计、金融风控等领域,是将多因素综合为概率预测的通用指数模型。
第29章 各个击破算法和Google云计算的基础
  • MapReduce的核心原理是分治法(Divide and Conquer):将一个大任务拆分成多个小的子任务,各自独立计算,再将中间结果合并为最终结果。吴军评价道:”在生活中大量用到的、真正有用的方法往往简单而又朴实。”
  • Map阶段:将大规模数据切分到不同机器上并行处理,每台机器独立完成局部计算。Reduce阶段:将各台机器的中间结果汇总合并,得到全局结果。
  • Google的云计算基础设施正是建立在MapReduce之上,配合GFS(分布式文件系统)和BigTable(分布式数据库),使得在成千上万台廉价服务器上处理PB级数据成为可能。
  • 核心思想:将看似不可能完成的超大规模计算任务,通过分而治之的数学思想,分解为可以并行执行的简单子任务,这是云计算的数学本质。