数学之美 系列七 -- 信息论在信息处理中的应用

http://googlechinablog.com/2006/05/blog-post_25.html

我们已经介绍了信息熵,它是信息论的基础,我们这次谈谈信息论在自然语言处理中的应用。

先看看信息熵和语言模型的关系。我们在系列一中谈到语言模型时,没有讲如何定量地衡量一个语言模型的好坏,当然,读者会很自然地想到,既然语言模型能减少语音识别和机器翻译的错误,那么就拿一个语音识别系统或者机器翻译软件来试试,好的语言模型必然导致错误率较低。这种想法是对的,而且今天的语音识别和机器翻译也是这么做的。但这种测试方法对于研发语言模型的人来讲,既不直接、又不方便,而且很难从错误率反过来定量度量语言模型。事实上,在贾里尼克(Fred Jelinek)的人研究语言模型时,世界上既没有像样的语音识别系统,更没有机器翻译。我们知道,语言模型是为了用上下文预测当前的文字,模型越好,预测得越准,那么当前文字的不确定性就越小

信息熵正是对不确定性的衡量,因此信息熵可以直接用于衡量统计语言模型的好坏。贾里尼克从信息熵出发,定义了一个称为语言模型复杂度(Perplexity)的概念,直接衡量语言模型的好坏。一个模型的复杂度越小,模型越好。李开复博士在介绍他发明的 Sphinx 语音识别系统时谈到,如果不用任何语言模型(即零元语言模型)时,复杂度为997,也就是说句子中每个位置有 997 个可能的单词可以填入。如果(二元)语言模型只考虑前后词的搭配不考虑搭配的概率时,复杂度为 60。虽然它比不用语言模型好很多,但是和考虑了搭配概率的二元语言模型相比要差很多,因为后者的复杂度只有 20。

信息论中仅次于熵的另外两个重要的概念是互信息Mutual Information) 相对熵Kullback-Leibler Divergence)

互信息是信息熵的引申概念,它是对两个随机事件相关性的度量。比如说今天随机事件北京下雨和随机变量空气湿度的相关性就很大,但是和姚明所在的休斯敦火箭队是否能赢公牛队几乎无关。互信息就是用来量化度量这种相关性的。在自然语言处理中,经常要度量一些语言现象的相关性。比如在机器翻译中,最难的问题是词义的二义性(歧义性)问题。比如 Bush 一词可以是美国总统的名字,也可以是灌木丛。(有一个笑话,美国上届总统候选人凯里 Kerry 的名字被一些机器翻译系统翻译成了"爱尔兰的小母牛",Kerry 在英语中另外一个意思。)那么如何正确地翻译这个词呢?人们很容易想到要用语法、要分析语句等等。其实,至今为止,没有一种语法能很好解决这个问题,真正实用的方法是使用互信息。具体的解决办法大致如下:首先从大量文本中找出和总统布什一起出现的互信息最大的一些词,比如总统、美国、国会、华盛顿等等,当然,再用同样的方法找出和灌木丛一起出现的互信息最大的词,比如土壤、植物、野生等等。有了这两组词,在翻译 Bush 时,看看上下文中哪类相关的词多就可以了。这种方法最初是由吉尔(Gale),丘奇(Church)和雅让斯基(Yarowsky)提出的。

当时雅让斯基在宾西法尼亚大学是自然语言处理大师马库斯 (Mitch Marcus) 教授的博士生,他很多时间泡在贝尔实验室丘奇等人的研究室里。也许是急于毕业,他在吉尔等人的帮助下想出了一个最快也是最好地解决翻译中的二义性,就是上述的方法,这个看上去简单的方法效果好得让同行们大吃一惊。雅让斯基因而只花了三年就从马库斯那里拿到了博士,而他的师兄弟们平均要花六年时间。

信息论中另外一个重要的概念是相对熵,在有些文献中它被称为成交叉熵。在英语中是 Kullback-Leibler Divergence,是以它的两个提出者库尔贝克和莱伯勒的名字命名的。相对熵用来衡量两个正函数是否相似,对于两个完全相同的函数,它们的相对熵等于零。在自然语言处理中可以用相对熵来衡量两个常用词(在语法上和语义上)是否同义,或者两篇文章的内容是否相近等等。利用相对熵,我们可以得出信息检索中最重要的一个概念:词频率-逆向文档频率(TF/IDF)。我们下回会介绍如何根据相关性对搜索出的网页进行排序,就要用的上TF/IDF 的概念。另外,在新闻的分类中也要用到相对熵和TF/IDF。

对信息论有兴趣又有一定数学基础的读者,可以阅读斯坦福大学托马斯.科弗 (Thomas Cover) 教授的专著 "信息论基础"(Elements of Information Theory):
http://www.amazon.com/gp/product/0471062596/ref=nosim/103-7880775-7782209?n=283155
http://www.cnforyou.com/query/bookdetail1.asp?viBookCode=17909
科弗教授是当今最权威的信息论专家。

数学之美 系列七 -- 信息论在信息处理中的应用相关推荐

  1. 数学之美系列16(转帖)

    数学之美 系列十六(上) 不要把所有的鸡蛋放在一个篮子里 -- 谈谈最大熵模型2006年10月8日 上午 07:27:00 发表者:Google 研究员,吴军 [我们在投资时常常讲不要把所有的鸡蛋放在 ...

  2. 数学之美 系列十六(上) 不要把所有的鸡蛋放在一个篮子里 -- 谈谈最大熵模型

    数学之美 系列十六(上) 不要把所有的鸡蛋放在一个篮子里 -- 谈谈最大熵模型 [我们在投资时常常讲不要把所有的鸡蛋放在一个篮子里,这样可以降低风险.在信息处理中,这个原理同样适用.在数学上,这个原理 ...

  3. 数学之美系列 4 -- 怎样度量信息?

    数学之美系列 4 -- 怎样度量信息? 前言: Google 一直以 "整合全球信息,让人人能获取,使人人能受益" 为使命.那么究竟每一条信息应该怎样度量呢? 信息是个很抽象的概念 ...

  4. 数学之美 系列一 -- 统计语言模型

    数学之美 系列一 -- 统计语言模型 Posted on 2009-09-11 14:54 小y 阅读(576) 评论(0) 编辑 收藏  发表者: 吴军, Google 研究员 前言 也许大家不相信 ...

  5. 数学之美 系列九 -- 如何确定网页和查询的相关性

    数学之美 系列九 -- 如何确定网页和查询的相关性 [我们已经谈过了如何自动下载网页.如何建立索引.如何衡量网页的质量(Page Rank).我们今天谈谈如何确定一个网页和某个查询的相关性.了解了这四 ...

  6. 数学之美 系列八-- 贾里尼克的故事和现代语言处理

    数学之美 系列八-- 贾里尼克的故事和现代语言处理 读者也许注意到了,我们在前面的系列中多次提到了贾里尼克这个名字.事实上,现代语音识别和自然语言处理确实是和它的名字是紧密联系在一起的.我想在这回的系 ...

  7. 数学之美系列14(转帖)

    数学之美 十四 谈谈数学模型的重要性2006年8月9日 上午 09:12:00 发表者:吴军,Google 研究员 [注:一直关注数学之美系列的读者可能已经发现,我们对任何问题总是在找相应的准确的数学 ...

  8. 数学之美 系列十六 (下)- 不要把所有的鸡蛋放在一个篮子里 最大熵模型

    数学之美 系列十六 (下)- 不要把所有的鸡蛋放在一个篮子里 最大熵模型 我们上次谈到用最大熵模型可以将各种信息综合在一起.我们留下一个问题没有回答,就是如何构造最大熵模型.我们已经所有的最大熵模型都 ...

  9. 数学之美 系列十五 繁与简 自然语言处理的几位精英

    数学之美 系列十五 繁与简 自然语言处理的几位精英 我在数学之美系列中一直强调的一个好方法就是简单.但是,事实上,自然语言处理中也有一些特例,比如有些学者将一个问题研究到极致,执著追求完善甚至可以说完 ...

最新文章

  1. 推荐系统中基于深度学习的混合协同过滤模型
  2. ITIL应用系列之服务台
  3. wxWidgets:wxProcessEvent类用法
  4. 查询计算机专业及选修了英语的学生,实验五 数据库综合查询(学生)
  5. 联邦学习--数据攻击(1)
  6. JavaScript高级程序设计学习(二)之基本概念
  7. 【整数转字符串】LeetCode 9. Palindrome Number
  8. 终于会用c#中的delegate(委托)和event(事件)了
  9. python-opencv 角点检测的 FAST 算法
  10. 2.3用卡诺图化简逻辑函数210807
  11. 淘宝用户行为数据挖掘-python
  12. android 读取sdcard图片 不显示,Android 读取sdcard上的图片实例(必看)
  13. 【python】基础网络爬虫教程
  14. Java进阶(七)Set系列集合、Map集合体系
  15. django和mezzanine搭建博客小站1
  16. 基于云平台的电力供电设备远程监控系统
  17. Google Cast
  18. c++/qt/opencv实现魔方复原【娱乐】
  19. 幸运与不幸-一起来编个有趣的故事
  20. Kinect with Unity3D游戏开发的一点思路总结(体感赛车游戏)

热门文章

  1. 机器学习笔试精选题精选(四)
  2. 形变立体跟踪-基于稠密运动估计和力学仿真(1)
  3. Matlab生成各种伪随机信号_idinput指令
  4. Delphi中的TreeView
  5. Library reports error: __use_no_semihosting was requested, but _tty
  6. Resource stopwords not found. Please use the NLTK Downloader to obtain the r
  7. 青年歌手大奖赛_评委会打分
  8. 【C/C++多线程编程之八】pthread条件变量
  9. 日常生活小技巧 -- “Error: Encountered an improper argument”的解决方法
  10. 群晖 设置 php 服务器,群晖NAS服务器iSCSI管理器配置连接及使用说明