1
专业人力资源 100 项工具
82、马尔可夫链模型
马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率
文法等各个自然语言处理等应用领域。经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通用的
统计工具。
马儿可夫过程
到目前为止,它一直被认为是实现快速精确的语音识别系统的最成功的方法。复杂的语音识别问题通过隐
含马尔可夫模型能非常简单地被表述、解决,让人们由衷地感叹数学模型之妙。
主要应用于语音识别、音字转换、词性标注。
自然语言是人类交流信息的工具。很多自然语言处理问题都可以等同于通信系统中的解码问题 -- 一个人
根据接收到的信息,去猜测发话人要表达的意思。这其实就象通信中,人们根据接收端收到的信号去分析、理
解、还原发送端传送过来的信息。比如一个典型的通信系统中:其中 s1,s2,s3... 表示信息源发出的信号。
o1,o2,o3... 是接受器接收到的信号。通信中的解码就是根据接收到的信号 o1,o2,o3... 还原出发送的信
号 s1,s2,s3...。
其实人们平时在说话时,脑子就是一个信息源。人们的喉咙(声带),空气,就是如电线和光缆般的信道。
听众耳朵的就是接收端,而听到的声音就是传送过来的信号。根据声学信号来推测说话者的意思,就是语音识别。
这样说来,如果接收端是一台计算机而不是人的话,那么计算机要做的就是语音的自动识别。同样,在计算机
中,如果我们要根据接收到的英语信息,推测说话者的汉语意思,就是机器翻译;如果我们要根据带有拼写错
误的语句推测说话者想表达的正确意思,那就是自动纠错。那么怎么根据接收到的信息来推测说话者想表达的
意思呢?人们可以利用叫做“隐含马尔可夫模型” (HiddenMarkovModel) 来解决这些问题。以语音识别为例,
当我们观测到语音信号 o1,o2,o3 时,要根据这组信号推测出发送的句子 s1,s2,s3。显然,人们应该在所
有可能的句子中找最有可能性的一个。用数学语言来描述,就是在已知 o1,o2,o3,... 的情况下,求使得条
件概率
专业人力资源 100 项工具 -82 马尔可夫链模型
100 项工具
2
专业人力资源 100 项工具
P(s1,s2,s3,...|o1,o2,o3....) 达到最大值的那个句子 s1,s2,s3,...
当然,上面的概率不容易直接求出,于是人们可以间接地计算它。利用贝叶斯公式并且省掉一个常数项,
可以把上述公式等价变换成
P(o1,o2,o3,...|s1,s2,s3....)*P(s1,s2,s3,...)
其中
P(o1,o2,o3,...|s1,s2,s3....) 表示某句话 s1,s2,s3... 被读成 o1,o2,o3,... 的可能性,而
P(s1,s2,s3,...) 表示字串 s1,s2,s3,... 本身能够成为一个合乎情理的句子的可能性,所以这个
公式的意义是用发送信号为 s1,s2,s3... 这个数列的可能性乘以 s1,s2,s3... 本身可以一个句子的可能性,
得出概率。
(读者读到这里也许会问,你现在是不是把问题变得更复杂了,因为公式越写越长了。别着急,就来简化
这个问题。)人们们在这里做两个假设:
第一,s1,s2,s3,... 是一个马尔可夫链,也就是说,si 只由 si-1 决定 ( 详见系列一 );
第二,第 i 时刻的接收信号 oi 只由发送信号 si 决定(又称为独立输出假设,即 P(o1,o2,o3,...|s1,
s2,s3....)=P(o1|s1)*P(o2|s2)*P(o3|s3)...。
那么人们就可以很容易利用算法 Viterbi 找出上面式子的最大值,进而找出要识别的句子 s1,s2,
s3,...。
满足上述两个假设的模型就叫隐含马尔可夫模型。我们之所以用“隐含”这个词,是因为状态 s1,s2,
s3,... 是无法直接观测到的。
隐含马尔可夫模型的应用远不只在语音识别中。在上面的公式中,如果我们把 s1,s2,s3,... 当成中文,
把 o1,o2,o3,... 当成对应的英文,那么人们就能利用这个模型解决机器翻译问题;如果我们把 o1,o2,
o3,... 当成扫描文字得到的图像特征,就能利用这个模型解决印刷体和手写体的识别。
P(o1,o2,o3,...|s1,s2,s3....) 根 据 应 用 的 不 同 而 又 不 同 的 名 称, 在 语 音 识 别 中 它 被 称 为“ 声 学
模 型 ”(AcousticModel), 在 机 器 翻 译 中 是“ 翻 译 模 型 ”(TranslationModel) 而 在 拼 写 校 正 中 是“ 纠 错 模
型”(CorrectionModel)。而 P(s1,s2,s3,...) 就是我们在系列一中提到的语言模型。
在利用隐含马尔可夫模型解决语言处理问题前,先要进行模型的训练。常用的训练方法由伯姆(Baum)在
60 年代提出的,并以他的名字命名。隐含马尔可夫模型在处理语言问题早期的成功应用是语音识别。七十年代,
当时 IBM 的 FredJelinek( 贾里尼克 ) 和卡内基·梅隆大学的 JimandJanetBaker( 贝克夫妇,李开复的师兄师姐 )
分别独立地提出用隐含马尔可夫模型来识别语音,语音识别的错误率相比人工智能和模式匹配等方法降低了三
倍 ( 从 30% 到 10%)。八十年代李开复博士坚持采用隐含马尔可夫模型的框架,成功地开发了世界上第一个大
词汇量连续语音识别系统 Sphinx。
马尔可夫模型的使用方法
它可以
专业人力资源100项工具-82马尔可夫链模型.pdf