HMM词性标注
HMM是一个生成模型,由隐藏状态序列生成观测序列。HMM有三个重要知识点:HMM的三个参数:初始概率,状态转移概率,和观测概率。HMM三个任务:预测问题(计算观测序列的概率),解码问题(已知观测序列求最可能产生该观测序列的状态序列),以及学习问题(学习HMM的三个参数)。HMM两个假设:齐次马尔可夫假设(当前状态只与前一状态有关)和观测独立假设(当前观测只与当前状态有关)。HMM详细的介绍可以参照《统计学习方法》的第十章。这里我就简单介绍一下HMM如何用于词性标注(POS tagging)。
任务描述
输入序列 O:I love NLP.
输出序列 T:PRP VB NN
其中PRP是人称代词, VB是动词原形,NN是名词。这里只是举个例子,实际任务中的POS tag会复杂很多。对应于HMM模型,状态序列对应了序列T,也就是词性标签序列;而观测序列对应了序列O。因此词性标注可以理解为HMM三大问题中的第三个问题:解码问题。因此,我们的目标是得到最符合原句子词性的组合序列,即:
T = a r g m a x T P ( T ∣ O ) T = argmax_T P(T|O) T=argmaxTP(T∣O)
其中:
O = { O 1 , O 2 , . . . , O N } ,是观测序列。 O = \{O_1, O_2,...,O_N\} \text{,是观测序列。} O={ O1,O2,...,ON},是观测序列。
T = { T 1 , T 2 , . . . , T N } ,是状态/标签序列。 T i ∈ a l l P O S t a g s T = \{T_1, T_2,...,T_N\} \text{,是状态/标签序列。} T_i \in all \ POS\ tags T={ T1,T2,...,TN},是状态/标签序列。Ti∈all POS tags
贝叶斯转换
根据贝叶斯公式:
P ( T ∣ O ) = P ( O ∣ T ) P ( T ) P ( O ) P(T|O) = \frac{P(O|T)P(T)}{P(O)} P(T∣O)=P(O)P(O∣T)P(T)
首先,由于对于给定的观测序列P(O)是固定不变的,因此我们可以省略分母。其次,在贝叶斯公式中P(O|T)被称为似然函数,P(T)被称为先验概率。对应到我们的任务,P(O|T)是“已知状态序列T求观测序列O的概率”,P(T)则是状态序列本身的概率,因此任务变成了:
T = a r g m a x T P ( T ∣ O ) = a r g m a x T P ( O ∣ T ) P ( T ) T = argmax_TP(T|O) = argmax_T P(O|T)P(T) T=argmaxTP(T∣O)=argma