学校编码:10384 分类号 密级 学号:23020061152488 UDC
厦
门
大
学
硕 士 学 位 论 文
海量语言模型的研究及其在机器翻译中的应用
Research on Large Language Models and Its Application
in Machine Translation
张润延
指 导 教 师 : 史晓东 教授
专 业 名 称 : 计算机应用技术
论文提交日期 : 2009 年 5 月
论文答辩日期 : 2009 年 6 月
学位授予日期 : 2009 年 月
答辩委员会主席:
评 阅 人:
二○○九年五月厦门大学博硕士论文摘要库
厦门大学学位论文原创性声明
本人呈交的学位论文是本人在导师指导下,独立完成的研究成果。
本人在论文写作中参考其他个人或集体已经发表的研究成果,均在文
中以适当方式明确标明,并符合法律规范和《厦门大学研究生学术活
动规范(试行)》
。
另外,该学位论文为( )课题(组)
的研究成果,获得( )课题(组)经费或实验室的
资助,在( )实验室完成。
(请在以上括号内填写课
题或课题组负责人或实验室名称,未有此项声明内容的,可以不作特
别声明。)
声明人(签名):
年 月 日
厦门大学博硕士论文摘要库
厦门大学学位论文著作权使用声明
本人同意厦门大学根据《中华人民共和国学位条例暂行实施办法》
等规定保留和使用此学位论文,并向主管部门或其指定机构送交学位
论文(包括纸质版和电子版),允许学位论文进入厦门大学图书馆及
其数据库被查阅、借阅。本人同意厦门大学将学位论文加入全国博士、
硕士学位论文共建单位数据库进行检索,将学位论文的标题和摘要汇
编出版,采用影印、缩印或者其它方式合理复制学位论文。
本学位论文属于:
( )1.经厦门大学保密委员会审查核定的保密学位论文,
于 年 月 日解密,解密后适用上述授权。
( )2.不保密,适用上述授权。
(请在以上相应括号内打“√”或填上相应内容。保密学位论文
应是已经厦门大学保密委员会审定过的学位论文,未经厦门大学保密
委员会审定的学位论文均为公开学位论文。此声明栏不填写的,默认
为公开学位论文,均适用上述授权。)
声明人(签名):
年 月 日
厦门大学博硕士论文摘要库
摘要
近年来,随着自然语言处理技术的发展和大规模语料库的出现,各类自然语 言应用中使用的语言模型规模也越来越大。机器翻译是大规模语言模型的主要应 用领域之一,语言模型有助于机器翻译时选择更符合目标语言习惯的翻译项,研 究结果表明,语言模型训练语料的增大可以稳定地提高翻译的效果。故海量语言 模型成为近年来统计语言模型研究的一个热点。 本文对统计语言模型的重要技术和发展脉络进行了整理和分析,并在此基础 上设计并实现了一套海量语言模型训练工具和一组海量语言模型调用接口,并把 在 Google Web 1T 语料库上训练得到的海量语言模型应用到机器翻译中。 首先,我们设计并实现了可用于 Google Web 1T 语料库的海量语言模型训练 工具。通过采用紧凑合理的数据结构、更简单的平滑算法、概率离散化等方法来 优化空间代价,提高性能,使其可以真正在统计机器翻译系统中使用。通过此训 练工具,我们可以完成语言建模任务,生成语言模型文件。 接下来,我们设计并开发了供机器翻译等自然语言应用调用海量语言模型的 接口。通过这些接口,其他自然语言应用可以访问已经生成的语言模型,获取词 串的概率。针对不同的需求,提供有以下三种语言模型调用方式:通过动态链接 库直接调用;通过与语言模型服务器通信来调用;通过与分布式语言模型服务器 通信来调用。动态链接库的调用方式效率最高;语言模型服务器对客户端的要求 较少,方便了客户端的开发;分布式语言模型服务器通过并行技术来提高 I/O 带 宽,在提高性能的同时降低了对服务器的内存要求。 最后,我们在机器翻译系统中使用上述接口来访问基于 Google Web 1T 的海 量语言模型。在 NIST2008 机器翻译评测测试语料上,机器翻译系统的 BLEU 得分, 从 20.54 提高到 21.96,提高约 7%。初步体现了海量语言模型对机器翻译的帮助。 关键词 语言模型;海量语料库;机器翻译厦门大学博硕士论文摘要库
Abstract
As a result of progress of natural language processing and appearance of large-scale corpus, large-scale statistical language modeling becomes both realistic and necessary. Language Models contribute to the selection of good translation in Machine Translation. Research results show that translation quality indicated by BLEU score improves steadily with increasing language model size. So large language model becomes an active area in recent years.
In this paper, based on the analyses of milestone technologies in language modeling, we design and implement a set of large language model training tools and a group of interfaces to accessing language model trained.
First of all, we design and implement language model training tools that are applicable to Google Web 1T corpus. We optimize the space cost and improve performance through using more compact data structure, easier smoothing algorithm and probability quantization technology. We can complete the task of language modeling and generate language model files with these tools.
Next, we design and implement interfaces to accessing language model, which can be called by natural language applications such as machine translation to fetch probability of word sequences. To meet different needs, there are three ways to access an existed language model: through dynamic linked library, through communication with language model server or distributed language model server.
Finally, we make use of large language model trained on Google Web 1T by our tools in machine translation application. The Bleu score improves from 20.54 to 21.96, 7% respectively, on the test set of Nist2008 international machine translation evaluation. Preliminary results show that large language model does improve translation quality.
Keywords: Large Language Model; Large-scale Corpus; Machine Translation
目录
第一章 绪论
... 1
1.1 统计语言模型简介 ... 1 1.2 机器翻译简介 ... 2 1.3 本文的工作 ... 4第二章 统计语言模型
... 7
2.1 理论基础 ... 7 2.1.1 概率论基础 ... 7 2.1.2 最大似然估计 ... 8 2.1.3 n 元语言模型(N-gram 模型) ... 9 2.1.4 其他语言模型 ... 10 2.1.5 语言模型的评价标准 ... 11 2.2 经典平滑算法 ... 13 2.2.1 加法平滑技术 ... 14 2.2.2 Good-Turing 平滑算法 ... 14 2.2.3 katz 平滑算法 ... 14 2.2.4 线性插值平滑 ... 15 2.2.5 Witten-Bell 平滑算法 ... 15 2.2.6 Kneser-Ney 平滑算法 ... 16 2.3 海量语言模型 ... 17 2.3.1 分块-合并算法 ... 17 2.3.2 分布式语言模型 ... 18 2.3.2 更简单的平滑算法 ... 20 2.4 小结 ... 22第三章 海量语言模型的训练
... 23
3.1 Google Web 1T 语料库 ... 23 3.2 总体设计 ... 24 3.2.1 设计原则 ... 24 3.2.2 语言模型的训练流程 ... 26 3.3 词典的生成和快速存取算法 ... 28 3.4 n-gram 计数 ... 30 3.5 语言模型的生成 ... 34 3.5.1 语言模型的数据结构 ... 34 3.5.2 数据结构中字段大小的设置 ... 36 3.5.3 从 n-gram 计数文件创建语言模型 ... 39 3.6 小结 ... 42第四章 海量语言模型的调用
... 43
4.1 动态链接库 ... 43 4.2 语言模型服务器 ... 45 4.3 分布式语言模型 ... 49厦门大学博硕士论文摘要库
4.3.1 子语言模型的切割 ... 49 4.3.2 分布式语言模型的架构 ... 50
第五章 在机器翻译系统中的实验结果
... 53
5.1 实验结果 ... 53 5.2 机器翻译结果示例 ... 56第六章 总结展望
... 59
参考文献
... 61
致谢
... 65
厦门大学博硕士论文摘要库
Contents
Chapter 1 Introduction
... 1
1.1 Introduction to Language Modeling ... 1
1.2 Introduction to Machine Translation ... 2
1.3 Overview of our work ... 4
Chapter 2 Statistical Language Modeling
... 7
2.1 Theoretical Basis ... 7
2.1.1 Probability Background ... 7
2.1.2 Maximum Likelihood Estimation ... 8
2.1.3 N-gram Language Modeling ... 9
2.1.4 Other Language Modeling ... 10
2.1.5 Evaluation of Language Modeling ... 11
2.2 Classical Smoothing Algorithm ... 13
2.2.1 Add Smoothing ... 14
2.2.2 Good-Turing Smoothing ... 14
2.2.3 katz Smoothing ... 14
2.2.4 Linear Interpolation Smoothing ... 15
2.2.5 Witten-Bell Smoothing ... 15
2.2.6 Kneser-Ney Smoothing ... 16
2.3 Large Language Model ... 17
2.3.1 Split-Merge Algorithm ... 17
2.3.2 Distributed Language Model ... 18
2.3.2 Easier smoothing ... 20
2.4 Summary ... 22
Chapter 3 Training of Large Language Model
... 23
3.1 Google Web 1T Corpus ... 23
3.2 Main Design ... 24
3.2.1 Principles of Design ... 24
3.2.2 Flow of Language Model Training ... 26
3.3 Generation of Dictionary ... 28
3.4 N-gram Counting ... 30
3.5 Generation of Language Model ... 34
3.5.1 Data Structure for LM ... 34
3.5.2 Field Size in Data Structure ... 36
3.5.3 Creation of LM ... 39
3.6 Summary ... 42
Chapter 4 Interfaces for Large Language Model
... 43
4.1 Dynamic Link Library ... 43
4.2 Language Model Server ... 45
4.3 Distributed Language Model ... 49
厦门大学博硕士论文摘要库
4.3.1 Cutting Algorithm for sub-LMs ... 49
4.3.2 Structure for Distributed LM ... 50
Chapter 5 Experiment in Machine Translation
... 53
5.1 Results and Analysis ... 53
5.2 Samples of Machine Translation ... 56
Chapter 6 Conclusion
... 59
Reference
... 61
Acknowledgement
... 65
第一章 绪论 1
第一章 绪论
1.1 统计语言模型简介
统计语言模型是描述语言内在规律的数学模型[1] 。统计语言模型的任务可以 描述为针对词串(word sequences)s,给出其概率p(s)。p(s)描述了词串s出现的 可能性的大小。一般情况下,正确的词串概率应该大于错误的词串,常见的词串 概率应该大于不常见的词串。比如在汉语中,“早上好”是语法正确的词串,比 较常见,“早好上”的语法错误,很少见到。那么一个理想的语言模型应该赋予 前者远远大于后者的概率。 在很多语言模型的应用中,我们感兴趣的不是词串的概率,而是当前上下文 情况下某个词或词串出现的概率,即p W | W … W ,可以通过贝叶斯条件 概率公式将其转换为两个词串概率的商,故也可以通过语言模型来得到该概率。 举拼音输入法为例,当前历史为“早上”,p(好|早上)=p(早上好)/p(早上),p(号 |早上)=p(早上号)/p(早上)。对于理想的语言模型,p(早上好) p(早上号), 所以p(好|早上) p(号|早上)。故利用语言模型可以帮助输入法选择更合理的 汉字,减少用户的选择操作。 人们对统计语言模型的研究由来已久。早在20世纪初期,Andrei Markov便 用统计语言模型理论对俄语单词的字母序列进行建模研究。另一个著名的应用事 例来自于香农,他在编码与信息论中用语言模型的原理来研究字母和单词序列。 随后,统计语言模型逐渐应用于自然语言处理领域。但当时受限于计算机的性能 和语料库的建设,很难在大规模语料库上进行经验学习,故相关研究的进展缓慢。 近年来,计算机硬件得到了飞速的发展,机器的存储量越来越大,运算速度 越来越快,而价格却越来越便宜,这样的客观条件使大容量的机器可读语料库的 建设成为可能。仅仅在十几年以前,一百万词的Brown语料库还被认为是巨大无 比难以利用。但其后,更大的语料库不断出现。今天,许多地方都有了几亿甚至 数十亿词的文本样例,而Google通过网上搜集得到的文本规模更是达到万亿词次 这个级别[2] 。同时,一些新的、更好的语言模型也不断涌现。所有这些因素推动厦门大学博硕士论文摘要库
海量语言模型的研究及其在机器翻译中的应用 2 了基于语料库的经验主义研究方法成为目前自然语言处理(Natural Language Processing,NLP)研究中的一个热点。统计语言模型是语料库语言学的核心。 作为当前自然语言处理的主流技术,统计语言模型已经被广泛应用于机器翻译、 语音识别、手写识别、拼音输入、文本校对、信息检索等诸多领域[3] 。 随着自然语言处理技术的发展和大规模语料库的出现,各类自然语言应用中 使用的语言模型规模也随之增大。具体表现为训练语料越来越大,语言模型的维 数也不断提高。但是在海量数据上训练和使用语言模型需要使用大量的内存空间, 所以如何有效地训练和使用海量语言模型,成为近年来统计语言模型研究的一个 热点[4][5][6][7][8] 。
1.2 机器翻译简介
机器翻译[9] 一般是指使用计算机把一种语言表达为另外一种语言的转化过 程。机器翻译的研究已有半个多世纪的历史,在计算机发明后不久,便有多位科 学家与发明家陆续提出机器翻译的理论与实践计划或想法。 1954 年美国乔治城大学的一项实验,将约 60 句的俄文翻译成英文,被视 为世界上第一个机器翻译系统。自此之后一直到 20 世纪 60 年代前期, 欧美各 国的机器翻译出现了不断上升的趋势。然而,ALAPC(自动语言处理顾问委员会, Automatic Language Processing Advisory Committee)在 1966 年提出的一项 报告中表明十年来的机器翻译研究进度缓慢,未达预期,宣称:“在近期和可以 预见的未来, 开发出实用的机器翻译系统是没有指望的”。该项报告使得之后的 研究资金大为减缩,MT 研究陷入了近乎停滞的僵局。 一直到上世纪 90 年代以前,机器翻译的主流方法一直是基于规则的方法。 同句法分析一样,规则方法在机器翻译问题中同样面临着规则数目庞大,关系复 杂,条目过细的问题。 1990 到 1993 年间,IBM 的 Brown 等人[10] 首先提出基于单词的统计机器翻译 模型,并根据该模型构建了系统 Candide,效果超越了当时基于规则的方法。基 于单词的模型首次突破了以往基于规则描述信号变化机理的思维模式,转而通过 观察信号变化现象,建立模型,利用机器学习的算法从变化现象中估计模型参数, 最终通过模型和参数来指导翻译。这个思维模式为后来的研究者开辟了一个新的厦门大学博硕士论文摘要库
第一章 绪论 3 方向。在这个新的思维模式指导下,机器学习算法,翻译模型,语料库的分析取 代了原先规则方法中的规则描述体系和规则细节,成为研究人员新的关注焦点。 在 IBM 的统计机器翻译模型中,最引人注目的是引入了基于统计的信源信道 模型。基于信源信道模型的统计机器翻译方法的基本思想是把机器翻译看成是一 个信息传输的过程,信息经过通道也就意味着信息被翻译过了。也就是说,假设 源语言文本 S 是由一段目标语言文本 T 经过某种奇怪的编码得到的,那么翻译的 目标就是要将 S 还原成 T,也就是一个解码的过程。如图 1.2-1 所示 图 1-1 噪声通道模型 根据贝叶斯公式可以得到: T argmaxTP T P S|T 公式1 值得注意的是,在公式 1 中,P(T)是目标语言的文本 T 出现的概率,该概率 只与目标语言相关,与源语言无关,反映的是一个句子在目标语言中出现的可能 性,而估算该概率正是统计语言模型的任务。P(S|T)是由目标语言文本 T 翻译成 源语言文本 S 的概率,称为翻译模型,反映的是两个句子互为翻译的可能性。也 就是说整个机器翻译过程由语言模型和翻译模型共同作用完成,语言模型保证流 利度(fluency,达),翻译模型保证忠实度(adequacy,信)。由此可见语言模型 在统计机器翻译中的重要性。 之 后 为 了 包 容 丰 富 的 上 下 文 信 息 , 人 们 将 翻 译 的 单 位 由 词 对 齐 (word-to-word)扩展为短语对齐(phrase-to-phrase),这样就产生了基于短 语的翻译模型[11] 。这里所说的短语并不是语言学上的词组概念,而是任意连通的 子串。2002 年,Och 将对数线性模型引入统计机器翻译[12] 。Och 认为,翻译的过 程应该受到多种知识的影响,将每一个影响翻译的因素表现为一个特征函数,最 终综合全部的特征函数共同作用于译文的选择;而针对每一个特征函数的影响程 度的估值则采用最大熵的想法,即保证模型尽可能的“均匀”,也即信息熵最大。 假设h e, f ,h e, f … h e, f 分别是双语对(e,f)上的 m 个特征函数,则 e 到 f 的翻译就可以表示为:
厦门大学博硕士论文摘要库
海量语言模型的研究及其在机器翻译中的应用 4 公式 2 这是一个比信源信道模型更为一般化的方法,基于信源信道的方法可以看做 基于最大熵的方法的一个特例。对数线性模型的主要优点在于可以很容易地整合 各种知识源并用机器学习的方法调节知识源之间的权重。Och 的这篇 ACL 2002 最佳论文对统计机器翻译的影响极大。现在的统计机器翻译系统几乎全部采用对 数线性模型框架。虽然该框架并没有要求一定引入语言模型作为特征函数。但近 年来统计机器翻译的研究实践表明,如果不引入语言模型或者语言模型质量不好, 无论是基于短语的模型还是基于句法的模型,翻译质量都很差。所以语言模型是 对数线性机器翻译模型很重要的一个特征函数,对系统的翻译质量影响很大。 统计机器翻译是海量语言模型的主要应用领域之一。研究结果表明,语言模 型训练语料的增大可以稳定地提高机器翻译的效果[2] 。在 2006 年的 Nist 机器翻 译评测中,表现较好的系统都使用了 5 元以上的语言模型,而训练语料规模则在 13 亿词次之上。之后,为了改善机器翻译的质量,各系统所采用语言模型的规 模仍然不断扩大。
1.3 本文的工作
2006 年 9 月,Google 公司通过 LDC(语言数字协会, Linguistic Data Consortium)向外公布了在词次数量达到 1T 的 web 文本上整理得到的英语语料库。 其中,词频超过 40 次的 5 元组个数就超过 11 亿个。海量语料库为训练和使用海 量语言模型创造了条件。但如何处理海量语料库却是一个难题:训练和使用海量 数据上的语言模型需要大量的内存空间,当物理内存不够导致需要频繁地页面交 换时,训练和使用语言模型的时间代价会急剧增加,最终导致无法将其应用于机 器翻译中。因此,探索如何在海量语料库上训练和使用语言模型具有很强的研究 价值。 本文的主要工作可以归结为如下三点: 1) 设计并实现可用于 Google Web 1T 语料库的海量语言模型训练工具。通过采 用紧凑的数据结构、更简单的平滑算法、概率离散化等方法来优化空间代价,提
厦门大学博硕士论文摘要库
Degree papers are in the “Xiamen University Electronic Theses and Dissertations Database”. Full texts are available in the following ways:
1. If your library is a CALIS member libraries, please log on http://etd.calis.edu.cn/ and submit requests online, or consult the interlibrary loan department in your library.
2. For users of non-CALIS member libraries, please mail to [email protected] for delivery details.