- 更好的阅读体验请客观移步至个人博客:🦉William@blog(站点右上角有关键字查询可以查看当前文章。)
1. 绪论
从文本翻译到文字、语音识别,再到命名实体识别,词性标注,序列标注问题已然渗透到社会生活中的方方面面。不少自然语言处理的问题都可以想方设法转化为序列标注问题:对邮件等”大块“的信息做命名实体识别,识别出信息中的表单项用于自动填写表单,可以有效地提高工作效率,节约时间;对音频文件进行标注分析,可以用来进行语音识别;抽取出来的电子病历文本中的疾病、治疗、检查等类型的实体,可以用以对电子病历进行分类归档…想要处理好一般性的自然语言处理问题到序列标记问题的转化,关键在于处理好如何定义标记的问题。
作为自然语言处理中常见的问题之一,序列标注问题已经由来已久,并在经历了一系列的发展变革后逐渐壮大健全。最早的有传统的隐马尔可夫模型、最大熵模型和条件随机场模型,最大熵模型抛弃了隐马尔科夫模型的独立输出假设,而条件随机场模型又在最大熵模型的基础上进一步将标签的转移扩大为全局特征,使得上下文之间的联系更加紧密。无论是在理论还是实践结果上来看,条件随机场的整体效果都要优于前两种方法。步入深度学习发展的时代后,新的诸如 R N N RNN RNN和 L S T M LSTM LSTM模型也相继用于序列标注问题,有效地改善了传统方法在处理更长的上下文依赖、过拟合、依赖启发式知识等方面的不足之处。本文主要研究和探讨了传统的序列标注模型——隐马尔可夫模型和条件随机场模型——的理论基础和应用实践。
2. 正文
2.1 定义
序列标注是指将输入的一串观测序列 x 1 x 2 x 3 . . . x n x_1x_2x_3...x_n x1x2x3...xn 转化为一串标记序列 y 1 y 2 y 3 . . . y n y_1y_2y_3...y_n y1y2y3...yn 的过程,要解决序列标记问题,实际上就是要找到一个观测序列到标记序列的映射 f ( x i ) → y i ( i = 1 , 2 , . . . , n ) f(x_i)\rightarrow y_i\space (i=1,2,...,n) f(xi)→yi (i=1,2,...,n)。
2.2 HMM模型
2.2.1 马尔可夫链
马尔可夫链(Markov chain),又称离散时间马尔可夫链,为状态空间中经过从一个状态到另一个状态的转换的随机过程。该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关。
从数学形式上来看,对于随机变量序列 X 1 X 2 X 3 . . . X n X_1X_2X_3...X_n X1X2X3...Xn,满足
P ( X n = x n ∣ X 1 = x 1 , X 2 = x 2 , X 3 = x 3 . . . , X n − 1 = x n − 1 ) = P ( X n = x n ∣ X n − 1 = x n − 1 ) P(X_n=x_n|X_1=x_1,X_2=x_2,X_3=x_3...,X_{n-1}=x_{n-1})=P(X_n=x_n|X_{n-1}=x_{n-1}) P(Xn=xn∣X1=x1,X2=x2,X3=x3...,Xn−1=xn−1)=P(Xn=xn∣Xn−1=xn−1)
,则称该序列为一个一阶马尔可夫链。
从宏观意义上来看,Markov链说明了在状态转移过程中,“未来”与“过去”无关而只与“现在”有关。
Markov链常常被认为是时齐的,即转移概率与n无关。
类似的可以定义m阶Markov链,满足
P ( X n = x n ∣ X 1 = x 1 , X 2 = x 2 , X 3 = x 3 . . . , X n − 1 = x n − 1 ) = P ( X n = x n ∣ X n − m = x n − m , X n − m + 1 = x n − m + 1 . . . , X n − 1 = x n − 1 ) \begin{aligned} &P(X_n=x_n|X_1=x_1,X_2=x_2,X_3=x_3...,X_{n-1}=x_{n-1})\\ =&P(X_n=x_n|X_{n-m}=x_{n-m},X_{n-m+1}=x_{n-m+1}...,X_{n-1}=x_{n-1}) \end{aligned} =P(Xn=xn∣X1=x1,X2=x2,X3=x3...,Xn−1=xn−1)P(Xn=xn∣Xn−m=xn−m,Xn−m+1=xn−m+1...,Xn−1=xn−1)
2.2.2 隐马尔可夫模型
隐马尔可夫模型(Hidden Markov Model 缩写:HMM)基于Markov链,不同与一般的Markov链,HMM 又加入了隐变量这一概念,即该模型包含了观测序列 X 1 X 2 X 3 . . . X n X_1X_2X_3...X_n X1X2X3...Xn和与它一一对应的标记序列 Y 1 Y 2 Y 3 . . . Y n Y_1Y_2Y_3...Y_n Y1Y2Y3...Yn。该模型用到了两个基本假设:
- 时齐的Markov性假设,如2.2.1所述
- 独立输出假设,输出状态的概率仅与输入状态相关,而与输入序列的前后文无关
以图形表示的隐马尔可夫模型如下所示:

HMM 模型解决了被用来解决序列标注问题中的三个基本问题:预测、平滑和解码。本文主要讨论的解码问题,即求解给定观测序列,给出最有可能的标记序列的问题。本文使用 λ ( W , T , π , β , A , B ) \lambda(W,T,\pi,\beta,A,B) λ(W,T,π,β,