`
晨星★~雨泪
  • 浏览: 448722 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
数学之美 系列一 -- 统计语言模型
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 多努力一分,用户就多一分搜索的喜悦。
固定链接  |

分享到:
评论
15 楼 xtcn 2008-03-21  
Trustno1 写道
晨星★~雨泪 写道
这个不能跟数学家比吧.在生活中,常常听到一些开发人员说没有数学对于编程似乎没什么作用.很多刚出来的研究生也常说自己的数学学得多么的好,可是开发中几乎用不上.我也时常有数学无用的感觉(虽然我跟那先研究生们没比),有时也想想不是用不上,很多时候也许就是不知道去用怎么用.看看这文章有那么点感触.没人敢说数学与计算机无关吧,数学对于开发真是一种美妙.

数学在实际应用面前注定是苍白无力和毫无美感的.因为这是数学在计算机科学中的宿命,更是在这个学科中的根本追求.



呵呵,苍白无力什么的,好象偏激了吧?  在工程中的应用,数学是基础,连算个工期都得用数学:)  <当然,是比较简单的加减乘除之类的>
14 楼 kaven 2008-03-12  
年轻人有冲劲是好的,不过不要太过激,上来先否定别人,把精力都放到问题上吧
13 楼 白发红颜 2008-03-11  
等你毕业再来看, 你可能就知道我说的是什么了.
不过, 以你的资质, 估计是很难了.
12 楼 hyf 2008-03-11  
废话,不用你说我都在学。

再看了你的贴一次,又毛骨悚然了一次。
算了,不看了,不说了。
11 楼 白发红颜 2008-03-11  
hyf 写道
白发红颜 写道
就是说, 计算机本质上不过是数学用来进行计算的工具. 吴军这位同志却反过来,想用计算机产生的东西来证明数学之美,未免有点以偏概全,贻笑大方.

是想说数学不美呢还是什么别的?
人家不过是利用数学在实际问题上建模,很好地分析了问题,赞美一下数学有何不可?
真不知道刺着那根筋,压根就没读明白别人意思的也跑出来耻笑一番。

老兄先去学一下数学, 然后再学一下语文, 最后学一下逻辑再说.
10 楼 hyf 2008-03-10  
白发红颜 写道
就是说, 计算机本质上不过是数学用来进行计算的工具. 吴军这位同志却反过来,想用计算机产生的东西来证明数学之美,未免有点以偏概全,贻笑大方.

是想说数学不美呢还是什么别的?
人家不过是利用数学在实际问题上建模,很好地分析了问题,赞美一下数学有何不可?
真不知道刺着那根筋,压根就没读明白别人意思的也跑出来耻笑一番。

9 楼 白发红颜 2008-03-10  
就是说, 计算机本质上不过是数学用来进行计算的工具. 吴军这位同志却反过来,想用计算机产生的东西来证明数学之美,未免有点以偏概全,贻笑大方.
8 楼 hyf 2008-03-10  
疯子。

7 楼 晨星★~雨泪 2008-03-10  
lichray 写道
单纯的数学=意淫,计算机科学=数学on现实。优秀的程序员小心翼翼地向数学索取力量,他们还记得这一切的源头,心中对数学仍怀有敬意。。而另一些人,看不到完美的存在,粗暴地把计算机的创造物冠以数学之名,妄图以人之创造取代上帝之创造,自欺欺人。


1.优秀的程序员小心翼翼地向数学索取力量.
2.粗暴地把计算机的创造物冠以数学之名

说实在的,我看了很,也想很久,就是想不明白你说这些的意义.
兄弟啊,太深奥了,能说简单些吗?
6 楼 lichray 2008-03-07  
单纯的数学=意淫,计算机科学=数学on现实。优秀的程序员小心翼翼地向数学索取力量,他们还记得这一切的源头,心中对数学仍怀有敬意。。而另一些人,看不到完美的存在,粗暴地把计算机的创造物冠以数学之名,妄图以人之创造取代上帝之创造,自欺欺人。
5 楼 Trustno1 2008-03-07  
晨星★~雨泪 写道
这个不能跟数学家比吧.在生活中,常常听到一些开发人员说没有数学对于编程似乎没什么作用.很多刚出来的研究生也常说自己的数学学得多么的好,可是开发中几乎用不上.我也时常有数学无用的感觉(虽然我跟那先研究生们没比),有时也想想不是用不上,很多时候也许就是不知道去用怎么用.看看这文章有那么点感触.没人敢说数学与计算机无关吧,数学对于开发真是一种美妙.

数学在实际应用面前注定是苍白无力和毫无美感的.因为这是数学在计算机科学中的宿命,更是在这个学科中的根本追求.
4 楼 晨星★~雨泪 2008-03-07  
这个不能跟数学家比吧.在生活中,常常听到一些开发人员说没有数学对于编程似乎没什么作用.很多刚出来的研究生也常说自己的数学学得多么的好,可是开发中几乎用不上.我也时常有数学无用的感觉(虽然我跟那先研究生们没比),有时也想想不是用不上,很多时候也许就是不知道去用怎么用.看看这文章有那么点感触.没人敢说数学与计算机无关吧,数学对于开发真是一种美妙.
3 楼 Elminster 2008-03-06  
数学之美这种字眼不能乱用的 ……

你要是把机器学习、自然语言处理的那帮人搞的东西冠以“数学之美”的头衔,真正的数学家搞不好要冲过来找你拼命。那帮人的论文里面到处都是对数学性质“简单粗暴”的简化、假设、近似,要说“美”,也是象 AK47 那种粗糙、不讲理但是坚固好用的机能性的美,和真正的数学那种优雅、深刻、冷峻的美感完全不是一路的。

哼哼,不过这个吴军倒是很会糊弄外行,知道“数学之美”这种词比较讨喜 ……
2 楼 晨星★~雨泪 2008-03-04  
什么东西你会用,用的活那就是美 ,并不是你知道了就不美。
1 楼 lichray 2008-03-03  
组合策略,人工智能基础课程,学 AI 的大学生的必修课,语义网络中被用烂掉了的技术,还美其名曰“数学之美”,吐槽中~`

相关推荐

    计算机语言学讲义-统计语言模型

    ### 统计语言模型概述 统计语言模型是计算语言学中的一个重要组成部分,它主要用于估计文本序列的概率分布。这种模型能够帮助我们理解一个句子在特定语言中的合理性和可能性大小。统计语言模型的应用范围广泛,包括...

    统计语言模型研究及其应用.pdf

    ### 统计语言模型研究及其应用的关键知识点 #### 一、引言 统计语言模型(Statistical Language Model,简称SLM)是自然语言处理(NLP)领域的重要组成部分,广泛应用于机器翻译、语音识别、文本分类等多个场景。...

    统计语言模型及汉语音字转换的一些新结果

    一篇利用统计语言模型来解决汉语音字转换问题的专业论文。

    基于模糊训练集的领域相关统计语言模型.rar

    基于模糊训练集的领域相关统计语言模型基于模糊训练集的领域相关统计语言模型基于模糊训练集的领域相关统计语言模型基于模糊训练集的领域相关统计语言模型基于模糊训练集的领域相关统计语言模型基于模糊训练集的领域...

    统计语言模型学习

    统计语言模型是自然语言处理中的核心概念,它旨在利用数学模型描述语言的内在规律,以理解和生成人类语言。这种模型广泛应用于语音识别、手写体文字识别、机器翻译、键盘输入和信息检索等多个领域。传统的语言模型...

    《信息检索的统计语言模型》W. Bruce Croft

    ### 统计语言模型在信息检索中的应用 #### 一、引言 W. Bruce Croft作为信息检索(IR)领域的领军人物之一,在该领域内具有极高的声望与影响力。他的研究工作覆盖了信息检索理论和技术的多个方面,其中一项重要的...

    统计语言模型及数据平滑技术.ppt

    统计语言模型及数据平滑技术 概述 统计语言模型是一种基于数学方法的自然语言处理技术,旨在解决自然语言处理问题。统计语言模型的出现可以追溯到1990年代,第13届国际计算语言学大会(Coling’90)正式列入大会...

    统计语言模型XXXXXXX

    统计语言模型XXXXXXX

    20140114-广发证券-基于统计语言模型(SLM)的择时交易研究1

    本报告探讨了一种基于统计语言模型(SLM)的择时交易策略,该策略利用自然语言处理技术来识别市场趋势并做出交易决策。自然语言处理起源于1950年代,经历了从早期的人工智能模仿到统计学方法的应用的转变,后者在...

    20140114-广发证券-另类交易策略之十三:基于统计语言模型(SLM)的择时交易研究1

    广发证券的研究报告《另类交易策略之十三:基于统计语言模型(SLM)的择时交易研究》提供了一个独特的视角,将自然语言处理(NLP)的理论应用于金融市场的交易策略中,开辟了量化投资的一个新天地。 自然语言处理...

    统计自然语言处理模型

    具体来说,统计语言模型提供了一种原则性的方法来建模各种检索问题,包括但不限于文本分类、机器翻译、情感分析等场景。 #### 信息检索中的统计模型优势 1. **高性能表现**:统计模型在信息检索任务中展现出了优越...

    自然语言处理任务中语言模型发展总结

    统计语言模型是早期的语言模型,主要代表是n-gram模型。n-gram模型基于马尔可夫假设,即当前词的出现概率只与其前面的n-1个词相关。例如,一阶马尔可夫模型(bigram)假设当前词只依赖于前一个词,而二阶马尔可夫...

    语音识别技术:第四讲 语言模型.pdf

    语言模型是统计语言模型的简称,它是现代自然语言处理(NLP)和语音识别中的关键技术之一。在自然语言处理领域,语言模型用于计算给定的词语序列出现的概率,它帮助计算机理解并生成自然语言,是许多应用中的核心...

    大语言模型原理.docx

    1. **大模型的起源**:语言模型的发展始于统计语言模型,最初采用n-gram模型,如二元模型(bigram)和三元模型(trigram),这些模型基于相邻词语的历史出现频率来预测下一个词。然而,它们无法捕获长距离的依赖关系...

    汉语信息熵和语言模型的复杂度(pdf格式)

    其中,统计语言模型的应用日益广泛,尤其在文本分析、机器翻译、语音识别等方面发挥了重要作用。统计语言模型的基本原理是通过分析大量的语言材料来构建概率模型,从而预测未知文本的可能性。本文主要探讨汉语信息熵...

    中文版多角度对大语言模型综述

    在过去的二十年中得到了广泛的研究,其从统计语言模型发展为神经语言模型。近年来,通过在大规模语料库上预训练,基于 Transformer 架构的预训练语言模型在解决各种自然语言处理任务方面表现出强大的能力。由于研究...

    语言模型训练工具cmuclmtk

    CMUCLMTK支持多种类型的统计语言模型,包括n-gram模型、混合模型以及更复杂的连续建模方法。 **n-gram模型** 是CMUCLMTK中最基础的模型类型。它基于词语的历史上下文来预测下一个词的概率。例如,二元模型(bigram...

    基于深度学习的声学模型和基于深度学习的语言模型

    传统的统计语言模型如n-gram已被更强大的深度学习模型所超越,比如循环神经网络(RNN)、门控循环单元(GRU)和双向LSTM。这些模型可以捕捉到更深远的依赖关系,使得模型能够理解和生成更加流畅的自然语言。对于中文...

Global site tag (gtag.js) - Google Analytics