隐含马尔科夫模型并不复杂,但是却是解决大多数自然语言处理问题最有效的方法。
通信的本质是编解码和传输的问题。
最为通用的通信模型为:
通信模型与自然语言处理有啥关系?
语言识别:计算机作为接收端,根据收到的信号去分析,理解,还原发送端传送过来的信息。
机器翻译:不同语言之间的编码和解码的过程。
通信模型中,如何根据接收端信息来推断发送端的信息呢?
构建概率模型:
等价代换:
p(o1,o2,o3…)可以认为是常数,因此最后的简化公式为:
如何求解?—隐含马尔科夫模型
19世纪,概率论的研究从随机变量的研究发展到对随机变量的时间序列的研究,即动态随机过程的研究,但研究一个随机过程太过于复杂。
马尔科夫简化问题,即假设随机过程的每一个状态的随机分布只与它的前一个状态有关:
这样的假设被命名为马尔科夫假设,符合这个假设的随机过程被称为马尔科夫链。
在马尔科夫链中,每一个随机变量之间的转换概率是已知的;隐含马尔科夫链是对马尔科夫链的扩展:在任意时刻的st的状态是不可见的,即无法知道不同随机变量间的转换概率,但每一个每个状态会独立产生一个唯一对应的符号。如图:
图中可以看出,这就是一个通信解码的问题,计算输出符号的概率就是我们需要的解码:
隐含马尔科夫的应用过程:
20世纪70年代,IBM华生实验室的贾里尼克团队和贝克夫妇首次提出将隐含马尔科夫模型应用于语音识别。
20世纪80年代,李开复应用隐含马尔科夫模型研发了Sphinx(语音识别系统)
最近二十年,隐含马尔科夫模型陆续应用于机器翻译,,拼写纠错,手写字体识别,图像处理,基因测序等。