数学之美 系列一 -- 统计语言模型
2006年4月3日 上午 08:15:00
从本周开始,我们将定期刊登 Google 科学家吴军写的《数学之美》系列文章,介绍数学在信息检索和自然语言处理中的主导作用和奇妙应用。
发表者: 吴军, Google 研究员
前言
也许大家不相信,数学是解决信息检索和自然语言处理的最好工具。它能非常清晰地描述这些领域的实际问题并且给出漂亮的解决办法。每当人们应用数学工具解决一个语言问题时,总会感叹数学之美。我们希望利用 Google 中文黑板报这块园地,介绍一些数学工具,以及我们是如何利用这些工具来开发 Google 产品的。
系列一: 统计语言模型 (Statistical Language Models)
Google 的使命是整合全球的信息,所以我们一直致力于研究如何让机器对信息、语言做最好的理解和处理。长期以来,人类一直梦想着能让机器代替人来翻译语言、识别语音、认识文字(不论是印刷体或手写体)和进行海量文献的自动检索,这就需要让机器理解语言。但是人类的语言可以说是信息里最复杂最动态的一部分。为了解决这个问题,人们容易想到的办法就是让机器模拟人类进行学习 - 学习人类的语法、分析语句等等。尤其是在乔姆斯基(Noam Chomsky 有史以来最伟大的语言学家)提出 “形式语言” 以后,人们更坚定了利用语法规则的办法进行文字处理的信念。遗憾的是,几十年过去了,在计算机处理语言领域,基于这个语法规则的方法几乎毫无突破。
其实早在几十年前,数学家兼信息论的祖师爷 香农 (Claude Shannon)就提出了用数学的办法处理自然语言的想法。遗憾的是当时的计算机条件根本无法满足大量信息处理的需要,所以他这个想法当时并没有被人们重视。七十年代初,有了大规模集成电路的快速计算机后,香农的梦想才得以实现。
首先成功利用数学方法解决自然语言处理问题的是语音和语言处理大师贾里尼克 (Fred Jelinek)。当时贾里尼克在 IBM 公司做学术休假 (Sabbatical Leave),领导了一批杰出的科学家利用大型计算机来处理人类语言问题。统计语言模型就是在那个时候提出的。
给大家举个例子:在很多涉及到自然语言处理的领域,如机器翻译、语音识别、印刷体或手写体识别、拼写纠错、汉字输入和文献查询中,我们都需要知道一个文字序列是否能构成一个大家能理解的句子,显示给使用者。对这个问题,我们可以用一个简单的统计模型来解决这个问题。
如果 S 表示一连串特定顺序排列的词 w1, w2,…, wn ,换句话说,S 可以表示某一个由一连串特定顺序排练的词而组成的一个有意义的句子。现在,机器对语言的识别从某种角度来说,就是想知道S在文本中出现的可能性,也就是数学上所说的S 的概率用 P(S) 来表示。利用条件概率的公式,S 这个序列出现的概率等于每一个词出现的概率相乘,于是P(S) 可展开为:
P(S) = P(w1)P(w2|w1)P(w3| w1 w2)…P(wn|w1 w2…wn-1)
其中 P (w1) 表示第一个词w1 出现的概率;P (w2|w1) 是在已知第一个词的前提下,第二个词出现的概率;以次类推。不难看出,到了词wn,它的出现概率取决于它前面所有词。从计算上来看,各种可能性太多,无法实现。因此我们假定任意一个词wi的出现概率只同它前面的词 wi-1 有关(即马尔可夫假设),于是问题就变得很简单了。现在,S 出现的概率就变为:
P(S) = P(w1)P(w2|w1)P(w3|w2)…P(wi|wi-1)…
(当然,也可以假设一个词又前面N-1个词决定,模型稍微复杂些。)
接下来的问题就是如何估计 P (wi|wi-1)。现在有了大量机读文本后,这个问题变得很简单,只要数一数这对词(wi-1,wi) 在统计的文本中出现了多少次,以及 wi-1 本身在同样的文本中前后相邻出现了多少次,然后用两个数一除就可以了,P(wi|wi-1) = P(wi-1,wi)/ P (wi-1)。
也许很多人不相信用这么简单的数学模型能解决复杂的语音识别、机器翻译等问题。其实不光是常人,就连很多语言学家都曾质疑过这种方法的有效性,但事实证明,统计语言模型比任何已知的借助某种规则的解决方法都有效。比如在 Google 的中英文自动翻译中,用的最重要的就是这个统计语言模型。去年美国标准局(NIST) 对所有的机器翻译系统进行了评测,Google 的系统是不仅是全世界最好的,而且高出所有基于规则的系统很多。
现在,读者也许已经能感受到数学的美妙之处了,它把一些复杂的问题变得如此的简单。当然,真正实现一个好的统计语言模型还有许多细节问题需要解决。贾里尼克和他的同事的贡献在于提出了统计语言模型,而且很漂亮地解决了所有的细节问题。十几年后,李开复用统计语言模型把 997 词语音识别的问题简化成了一个 20 词的识别问题,实现了有史以来第一次大词汇量非特定人连续语音的识别。
我是一名科学研究人员 ,我在工作中经常惊叹于数学语言应用于解决实际问题上时的神奇。我也希望把这种神奇讲解给大家听。当然,归根结底,不管什莫样的科学方法、无论多莫奇妙的解决手段都是为人服务的。我希望 Google 多努力一分,用户就多一分搜索的喜悦。
分享到:
相关推荐
《建立数学模型---数学建模分析》这门课程主要探讨如何运用数学方法来解决实际问题,它是科学研究和技术应用中不可或缺的工具。课程由赵庆利老师授课,强调学生需要积极参与听课、做笔记、完成平时作业和上机实验...
1. **数学模型的基本概念**:介绍数学模型的定义、分类和构建过程,使学生理解数学模型如何从实际问题中抽离出来,并用数学语言进行表述。 2. **模型的建立与选择**:讲解如何根据问题的特性和需求,选择合适的数学...
统计语言模型是用于判断一个文字序列是否能构成一个大家能理解的句子的数学模型。吴军介绍了如何使用统计语言模型来解决自然语言处理问题,并举例说明了该模型的应用场景。 随后,吴军介绍了中文分词的概念和应用。...
《数学模型电子教案--数学建模从这里起步》是一份全面深入探讨数学建模的教育资源,旨在引导初学者逐步掌握这一重要技能。这份教程涵盖了从基础到进阶的各种数学模型,帮助学习者建立起对数学建模的系统认知。 首先...
"数学建模经典--模型分析-课件16讲"这个压缩包可能包含了一系列关于数学建模的教学资料,主要聚焦于模型分析这一关键环节。下面我们将详细探讨数学建模与模型分析的相关知识点。 首先,数学建模是将现实世界的问题...
数学模型是对现实世界现象的一种抽象,通过数学语言来描述和分析问题。在姜启源教授的第三版教材中,他强调了模型构建的重要性,包括选择合适的数学工具,如代数、几何、概率统计等,以及明确模型假设,确保模型能够...
《数学模型-超全模型汇总》是一个集合了各种数学建模方法和实例的资源包,旨在为学习者提供全面的数学建模理论与实践指导。数学建模是将实际问题抽象为数学形式的过程,它涉及多种数学工具和理论,如微积分、线性...
统计语言模型是自然语言处理中的核心概念,它旨在利用数学模型描述语言的内在规律,以理解和生成人类语言。这种模型广泛应用于语音识别、手写体文字识别、机器翻译、键盘输入和信息检索等多个领域。传统的语言模型...
2. **模型类型**:数学建模涵盖多种模型,如微积分模型、线性模型、非线性模型、概率统计模型、动力系统模型等。书中可能会详细介绍这些模型的特点、适用场景及构建方法。 3. **算法解析**:在解决数学模型时,算法...
数学模型,这一概念源自于数学与现实世界的交汇点,是将复杂的实际问题转化为可操作的数学结构的重要工具。在浙江大学刘老师的课程中,数学模型被深入探讨,旨在帮助学生理解和解决实际问题,预测未来发展,并优化...
数学模型是指用数学语言描述现实世界中的各种现象与过程的一种抽象表示方法。它通过建立数学方程组或函数关系来模拟实际问题,以便于进行分析和预测。数学模型在科学计算、工程设计、经济预测等领域有着广泛的应用。...
统计语言模型是一种基于数学方法的自然语言处理技术,旨在解决自然语言处理问题。统计语言模型的出现可以追溯到1990年代,第13届国际计算语言学大会(Coling’90)正式列入大会主题。统计语言模型的概念是通过条件...
该系列文章涵盖了多个关键知识点,包括统计语言模型、中文分词、隐含马尔可夫模型(HMM)、信息度量、布尔代数、图论、信息论、最大熵模型、搜索引擎反垃圾邮件策略、矩阵运算、贝叶斯网络、自然语言处理的数学模型...
数学模型是现代科学技术领域不可或缺的一个工具,它通过抽象和简化的数学形式,能够帮助我们理解和模拟各种复杂现象。随着科学技术的飞速发展,数学模型已广泛应用于电气工程、气象预报、生理医学、城市规划、生产和...
- **内容概述**:本书通过Scratch这一图形化编程语言,帮助初学者尤其是儿童学习编程基础,并将数学概念融入其中。 - **核心知识点**: - Scratch基础语法 - 图形界面编程 - 数学概念在编程中的应用(如坐标系...
数学建模是一种用数学语言描述现实世界现象的方法,通过建立适当的模型,可以分析和理解复杂的数据,并据此做出预测或决策。 在标签部分为空的情况下,我们无法获取额外的分类信息,但我们可以推测这个数据集可能被...
《数学模型--清华大学姜启源(正版)》是一份针对初学者设计的数学建模教程,由清华大学知名教授姜启源编著。本教程旨在帮助学习者深入理解数学建模的基本概念、方法与应用,通过易理解的方式传授数学在解决实际问题...
统计语言模型(Statistical Language Modeling, LM)是指通过概率分布来捕捉自然语言使用的统计规律的一种数学工具。它主要用于估计一个文本片段的概率,即给定一系列词或符号时,计算出这一序列出现的可能性。这种...
数学模型可以是微分方程、线性规划、统计模型等。例如,实验报告2可能涉及使用微分方程模型来模拟传染病的传播,而实验报告5可能运用线性规划解决资源分配问题。 在**模型建立**阶段,我们需要将实际问题抽象为数学...
以下是基于"常见30种数学建模模型"这一主题的详细解释: 1. **线性规划**:用于优化一组线性目标函数,通常与资源分配、生产计划等问题相关。 2. **动态规划**:通过划分问题为子问题来解决复杂优化问题,适用于多...