谷歌吴军:数学之美
如何化繁为简,如何用数学去解决工程问题,如何跳出固有思维不断去思考创新。
系列二 — 谈谈中文分词
2015-09-13 16:31:25
一般来讲,根据不同应用,汉语分词的颗粒度大小应该不同。比如,在机器翻译中,颗粒度应该大一些,“北京大学”就不能被分成两个词。而在语音识别中,“北京大学”一般 是被分成两个词。因此,不同的应用,应该有不同的分词系统
系列三 — 隐含马尔可夫模型在语言处理中的应用
2015-09-13 16:34:02
自然语言是人类交流信息的工具。很多自然语言处理问题都可以等同于通信系统中的解码问题 — 一个人根据接收到的信息,去猜测发话人要表达的意思。这其实就象通信中,我们根据接收端收到的信号去分析、理解、还原发送端传送过来的信息。
2015-09-13 16:35:28
在计算机中,如果我们要根据接收到的英语信息,推测说话者的汉语意思,就是机器翻译;如果我们要根据带有拼写错误的语句推测说话者想表达的正确意思,那就是自动纠错。
系列 4 — 怎样度量信息?
2015-09-13 21:37:46
Google 一直以 “整合全球信息,让人人能获取,使人人能受益” 为使命
2015-09-13 21:40:33
一条信息的信息量大小和它的不确定性有直接的关系。
2015-09-13 21:40:44
信息量的度量就等于不确定性的多少。
2015-09-13 21:47:32
不同语言的冗余度差别很大,而汉语在所有语言中冗余度是相对小的。这和人们普遍的认识”汉语是最简洁的语言”是一致的。
系列五 — 简单之美:布尔代数和搜索引擎的索引
2015-09-13 21:48:42
建立一个搜索引擎大致需要做这样几件事:自动下载尽可能多的网页;建立快速有效的索引;根据相关性对网页进行公平准确的排序
2015-09-14 22:31:43
搜索引擎的索引就变成了一张大表:表的每一行对应一个关键词,而每一个关键词后面跟着一组数字,是包含该关键词 的文献序号。
2015-09-14 22:32:45
每当接受一个查询时,这个查询就被分送到许许多多服务器中,这些服务器 同时并行处理用户请求,并把结果送到主服务器进行合并处理,最后将结果返回给用户。
2015-09-14 22:33:05
不管索引如何复杂,查找的基本操作仍然是布尔运算。布尔运算把逻辑和数学联系起来了。它的最大好处是容易实现,速度快,这对于海量的信息查找是至关重要的。它的不足是只能给出是与否的判断,而不能给出量化的 度量。因此,所有搜索引擎在内部检索完毕后,都要对符合要求的网页根据相关性排序,然后才返回给用户。
系列六 — 图论和网络爬虫
2015-09-14 22:33:57
如何自动下载互联网所有的网页呢,它要用到图论中的遍历(Traverse) 算法。
2015-09-14 22:35:57
“广度优先算法”(BFS),因为它先要尽可能广地访问每个节点所直接连接的其他节点。
2015-09-14 22:36:22
“深度优先算法”(DFS),因为它是一条路走到黑。
系列七 — 信息论在信息处理中的应用
2015-09-14 22:41:23
李开复博士在介绍他发明的 Sphinx 语音识别系统时谈到,如果不用任何语言模型(即零元语言模型)时,复杂度为997,也就是说句子中每个位置有 997 个可能的单词可以填入。如果(二元)语言模型只考虑前后词的搭配不考虑搭配的概率时,复杂度为60。虽然它比不用语言模型好很多,但是和考虑了搭配概率的二元语言模型相比要差很多,因为后者的复杂度只有20。
2015-09-14 22:41:40
信息论中仅次于熵的另外两个重要的概念是“互信息”(Mutual Information) 和“相对熵”(Kullback-Leibler Divergence)。
2015-09-14 22:42:00
“互信息”是信息熵的引申概念,它是对两个随机事件相关性的度量。
2015-09-14 22:45:15
信息论中另外一个重要的概念是“相对熵”,在有些文献中它被称为成“交叉熵”。在英语中是 Kullback-Leibler Divergence, 是以它的两个提出者库尔贝克和莱伯勒的名字命名的。相对熵用来衡量两个正函数是否相似,对于两个完全相同的函数,它们的相对熵等于零。在自然语言处理中可 以用相对熵来衡量两个常用词(在语法上和语义上)是否同义,或者两篇文章的内容是否相近等等。利用相对熵,我们可以到处信息检索中最重要的一个概念:词频率-逆向文档频率(TF/IDF)。
系列八— 贾里尼克的故事和现代语言处理
2015-09-14 22:53:52
七十年代的 IBM 有点像九十年代的微软和今天的 Google, 给于杰出科学家作任何有兴趣研究的自由。在那种宽松的环境里,贾里尼克等人提出了统计语音识别的框架结构。 在贾里尼克以前,科学家们把语音识别问题当作人工智能问题和模式匹配问题。而贾里尼克把它当成通信问题,并用两个隐含马尔可夫模型(声学模型和语言模型) 把语音识别概括得清清楚楚。这个框架结构对至今的语音和语言处理有着深远的影响,它从根本上使得语音识别有实用的可能。 贾里尼克本人后来也因此当选美国工程院院士。
系列九 — 如何确定网页和查询的相关性
2015-09-15 22:48:01
如果一个关键词只在很少的网页中出现,我们通过它就容易锁定搜索目标,它的权重也就应该大。反之如果一个词在大量网页中出现,我们看到它仍 然不很清楚要找什么内容,因此它应该小。概括地讲,假定一个关键词w在DW个网页中出现过,那么DW越大,w的权重越小,反之亦然。在信息检索中,使用最多的权重是“逆文本频率指数”
2015-09-15 22:49:07
TF/IDF(term frequency/inverse document frequency) 的概念被公认为信息检索中最重要的发明。在搜索、文献分类和其他相关领域有广泛的应用。
2015-09-15 22:50:46
信息论的学者们已经发现并指出,其实 IDF 的概念就是一个特定条件下、关键词的概率分布的交叉熵(Kullback-Leibler Divergence)(详见上一系列)。这样,信息检索相关性的度量,又回到了信息论。
系列十 有限状态机和地址识别
2015-09-16 22:00:29
地址的识别和分析是本地搜索必不可少的技术,尽管有许多识别和分析地址的方法,最有效的是有限状态机。
2015-09-16 22:00:55
一个有限状态机是一个特殊的有向图(参见有关图论的系列),它包括一些状态(节点)和连接这些状态的有向弧。
2015-09-16 22:02:38
使用有限状态机识别地址,关键要解决两个问题,即通过一些有效的地址建立状态机,以及给定一个有限状态机后,地址字串的匹配算法。
2015-09-16 22:04:22
基于有限状态机的地址识别方法在实用中会有一些问题:当用户输入的地址不太标准或者有错别字时,有限状态机会束手无策,因为它只能进行严格匹配。(其实,有限状态机在计算机科学中早期的成功应用是在程序语言编译器的设计中。一个能运行的程序在语法上必须是没有错的,所以不需要模糊匹配。而自然语言则很随意,无法用简单的语法描述。)
为了解决这个问题,我们希望有一个能进行模糊匹配、并给出一个字串为正确地址的可能性。为了实现这一目的,科学家们提出了基于概率的有限状态机。这种基于概率的有限状态机和离散的马尔可夫链(详见前面关于马尔可夫模型的系列)基本上等效。
十四 谈谈数学模型的重要性
2015-09-17 21:57:04
- 一个正确的数学模型应当在形式上是简单的。(托勒密的模型显然太复杂。)
- 一个正确的模型在它开始的时候可能还不如一个精雕细琢过的错误的模型来的准确,但是,如果我们认定大方向是对的,就应该坚持下去。(日心说开始并没有地心说准确。)
- 大量准确的数据对研发很重要。
- 正确的模型也可能受噪音干扰,而显得不准确;这时我们不应该用一种凑合的修正方法来弥补它,而是要找到噪音的根源,这也许能通往重大发现。
2015-09-17 21:57:17
在网络搜索的研发中,我们在前面提到的单文本词频/逆文本频率指数(TF/IDF) 和网页排名(page rank)都相当于是网络搜索中的”椭圆模型”,它们都很简单易懂。
系列十六(上) 不要把所有的鸡蛋放在一个篮子里
2015-09-21 22:08:08
最大熵原理指出,当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设。(不做主观假设这点很重要。)在这种情况下,概率分布最均匀,预测的风险最小。因为这时概率分布的信息熵最大,所以人们称这种模型叫”最大熵模型”。我们常说,不要把所有的鸡蛋放在一个篮子里,其实就是最大熵原理的一个朴素的说法,因为当我们遇到不确定性时,就要保留各种可能性。
系列十六 (下)- 不要把所有的鸡蛋放在一个篮子里
2015-09-21 22:14:07
最原始的最大熵模型的训练方法是一种称为通用迭代算法 GIS(generalized iterative scaling) 的迭代 算法。GIS 的原理并不复杂,大致可以概括为以下几个步骤:
- 假定第零次迭代的初始模型为等概率的均匀分布。
- 用第 N 次迭代的模型来估算每种信息特征在训练数据中的分布,如果超过了实际的,就把相应的模型参数变小;否则,将它们便大。
- 重复步骤 2 直到收敛。
2015-09-21 22:19:29
最大熵模型,可以说是集简与繁于一体,形式简单,实现复杂。
系列十八 - 矩阵运算和文本处理中的分类问题
2015-09-21 22:36:15
分类的关键是计算相关性。我们首先对两个文本计算出它们的内容词,或者说实词的向量,然后求这两个向量的夹角。当这两个向量夹角为零时,新闻就相关;当它们垂直或者说正交时,新闻则无关。
系列十九 - 马尔可夫链的扩展 贝叶斯网络
2015-09-21 22:39:58
马尔可夫链 (Markov Chain),它描述了一种状态序列,其每个状态值取决于前面有限个状态。这种模型,对很多实际问题来讲是一种很粗略的简化。在现实生活中,很多事物相互的关系并不能用一条链来串起来。它们之间的关系可能是交叉的、错综复杂的。
2015-09-21 22:39:35
贝叶斯网络。其中每个圆圈表示一个状态。状态之间的连线表示它们的因果关系。比如从心血管疾病出发到吸烟的弧线表示心血管疾病可能和吸烟有关。当然,这些关系可以有一个量化的可信度 (belief),用一个概率描述。我们可以通过这样一张网络估计出一个人的心血管疾病的可能性。在网络中每个节点概率的计算,可以用贝叶斯公式来进行,贝叶斯网络因此而得名。由于网络的每个弧有一个可信度,贝叶斯网络也被称作信念网络 (belief networks)。
系列二十 -自然语言处理的教父 马库斯
2015-09-21 22:43:25
PennTree Bank 覆盖多种语言(包括中文)。每一种语言,它有几十万到几百万字的有代表性的句子,每个句子都有的词性标注,语法分析树等等。LDC 语料库如今已成为全世界自然语言处理科学家共用的数据库。如今,在自然语言处理方面发表论文,几乎都要提供基于 LDC 语料库的测试结果。
系列二十二 由电视剧《暗算》所想到的
2015-09-21 22:54:10
来设计一个密码系统,对这个明码加密。
1,找两个很大的素数(质数)P 和 Q,越大越好,比如 100 位长的, 然后计算它们的乘积 N=P×Q,M=(P-1)×(Q-1)。
2,找一个和 M 互素的整数 E,也就是说 M 和 E 除了 1 以外没有公约数。
3,找一个整数 D,使得 E×D 除以 M 余 1,即 E×D mod M = 1。
现在,世界上先进的、最常用的密码系统就设计好了,其中 E 是公钥谁都可以用来加密,D 是私钥用于解密,一定要自己保存好。乘积 N 是公开的,即使敌人知道了也没关系。
现在,我们用下面的公式对 X 加密,得到密码 Y。
好了,现在没有密钥 D,神仙也无法从 Y 中恢复 X。如果知道 D,根据费尔马小定理,则只要按下面的公式就可以轻而易举地从 Y 中得到 X。
多看笔记 来自多看阅读 for Kindle
多看ID: geosmart