1. HMM(隐马尔可夫模型)
HMM 是生成式模型(Generative Model)
HMM 通过建模整个联合概率分布 P ( X , Y ) P(X, Y) P(X,Y) 来进行序列标注,其中:
- X = ( x 1 , x 2 , . . . , x n ) X = (x_1, x_2, ..., x_n) X=(x1,x2,...,xn) 是观测序列(例如一个句子中的单词)。
- Y = ( y 1 , y 2 , . . . , y n ) Y = (y_1, y_2, ..., y_n) Y=(y1,y2,...,yn) 是状态序列(例如词性标注中的词性标签)。
HMM 的核心假设:
- 马尔可夫假设:当前隐藏状态 y t y_t yt 仅依赖于前一个隐藏状态 y t − 1 y_{t-1} yt−1,即:
P ( y t ∣ y 1 , y 2 , . . . , y t − 1 ) = P ( y t ∣ y t − 1 ) P(y_t | y_1, y_2, ..., y_{t-1}) = P(y_t | y_{t-1}) P(yt∣y1,y2,...,yt−1)=P(yt∣yt−1)
- 观测独立性假设:当前观测值 x t x_t xt 仅依赖于当前隐藏状态 y t y_t yt,即:
P ( x t ∣ y t , x 1 , . . . , x t − 1 ) = P ( x t ∣ y t ) P(x_t | y_t, x_1, ..., x_{t-1}) = P(x_t | y_t) P(xt∣yt,x1,...,xt−1)=P(xt∣yt)
HMM 的概率计算
HMM 的关键是计算状态转移概率和观测概率:
P ( Y , X ) = P ( Y ) P ( X ∣ Y ) P(Y, X) = P(Y) P(X | Y) P(Y,X)=P(Y)P(X∣Y)
其中:
- 状态转移概率(Transition Probability): P ( y t ∣ y t − 1 ) P(y_t | y_{t-1}) P(yt∣yt−1)
- 观测概率(Emission Probability): P ( x t ∣ y t ) P(x_t | y_t) P(xt∣yt)
- 初始状态概率(Initial Probability): P ( y 1 ) P(y_1) P(y1)
HMM 适用于哪些任务?
- 词性标注(POS tagging)
- 语音识别(Speech Recognition)
- 生物信息学中的基因序列分析
- 拼写错误检测
HMM 通过 Viterbi 算法 寻找最优状态序列。
2. MEMM(最大熵马尔可夫模型)
MEMM 是判别式模型(Discriminative Model)
与 HMM 不同,MEMM 直接建模条件概率 P ( Y ∣ X ) P(Y | X) P(Y∣X):
P ( y t ∣ x 1 , x 2 , . . . , x t , y t − 1 ) = exp ( w ⋅ f ( x t , y t , y t − 1 ) ) ∑ y ′ exp ( w ⋅ f ( x t , y ′ , y t − 1 ) ) P(y_t | x_1, x_2, ..., x_t, y_{t-1}) = \frac{\exp(w \cdot f(x_t, y_t, y_{t-1}))}{\sum_{y'} \exp(w \cdot f(x_t, y', y_{t-1}))} P(yt∣x1,x2,...,xt,yt−1)=∑y′exp(w⋅f(xt,y′,yt−1))exp(w⋅f(xt,yt,yt−1))
其中:
- f ( x t , y t , y t − 1 ) f(x_t, y_t, y_{t-1}) f(xt,yt,yt−1) 是特征函数,用于刻画输入 x t x_t xt 与状态 y t y_t yt 之间的关系。
- w w w 是参数权重,由训练数据学习得到。
MEMM 通过 最大熵(Maximum Entropy) 方式选择最符合数据的概率分布,不需要像 HMM 那样假设观测独立性。
MEMM 的核心特点
- 可以灵活引入特征,如单词形态、上下文信息,而 HMM 只能依赖状态转移和观测概率。
- 解决 HMM 的强独立性假设问题,更适合自然语言处理任务。
MEMM 适用于哪些任务?
- 命名实体识别(NER)
- 词性标注(POS tagging)
- 语音标注
- 信息抽取
MEMM 采用 维特比算法(Viterbi Algorithm) 进行解码。
3. HMM vs. MEMM:对比分析
特性 |
HMM(隐马尔可夫模型) |
MEMM(最大熵马尔可夫模型) |
类型 |
生成式模型(Generative Model) |
判别式模型(Discriminative Model) |
建模方式 |
计算 P ( Y , X ) P(Y, X) P(Y,X) |
计算 $P(Y |
假设 |
观测独立性、马尔可夫性 |
仅马尔可夫性 |
是否可以使用特征 |
不能引入复杂特征 |
可引入任意特征 |
是否受限于观测空间 |
是,观测空间必须预定义 |
不是,可以处理多种特征 |
计算方法 |
前向-后向算法、Viterbi 算法 |
Viterbi 算法 |
适用场景 |
适用于结构较清晰的任务,如语音识别、生物信息学 |
适用于 NLP,如命名实体识别、词性标注 |
4. MEMM 的一个问题:标签偏置问题(Label Bias Problem)
MEMM 由于使用归一化的 softmax 计算 P ( y t ∣ x , y t − 1 ) P(y_t | x, y_{t-1}) P(yt∣x,yt−1),会导致 状态转移概率较少的标签被低估,这就是 标签偏置问题(Label Bias Problem)。
例子:
假设在某个任务中:
- 状态 A A A 只有一个可能的后续状态 B B B。
- 状态 C C C 有多个可能的后续状态 D , E , F D, E, F D,E,F。
由于 MEMM 计算每个状态的条件概率是独立归一化的, P ( B ∣ A ) P(B|A) P(B∣A) 可能始终较高,而 P ( D ∣ C ) , P ( E ∣ C ) , P ( F ∣ C ) P(D|C), P(E|C), P(F|C) P(D∣C),P(E∣C),P(F∣C) 可能会被平均分配,导致 A → B 这样的路径更容易被选择,而实际应该选的状态可能被忽略。
为了解决这个问题,通常使用 条件随机场(CRF, Conditional Random Field) 作为改进方案。
总结
- HMM 和 MEMM 都是序列分类器,但 HMM 是生成式模型,MEMM 是判别式模型。
- HMM 适合规则较明确的任务,如语音识别、生物信息学,而 MEMM 更适合 NLP 任务,如词性标注、NER。
- MEMM 解决了 HMM 的独立性假设问题,但存在标签偏置问题,通常使用 CRF(条件随机场) 作为进一步改进。
如果你的任务需要处理多种特征信息,并且不希望受到 HMM 的独立性假设限制,MEMM 会更合适。如果你想使用 贝叶斯方法建模整个序列的概率分布,HMM 是更好的选择。、