HMM(隐马尔可夫模型)用于 NER 时,其隐状态和观测状态分别对应什么?

📅 2026/7/25 15:51:55 👁️ 阅读次数 📝 编程学习
HMM(隐马尔可夫模型)用于 NER 时,其隐状态和观测状态分别对应什么?

HMM 用于 NER 时的隐状态与观测状态

一、HMM 基本框架回顾

HMM 是一个双重随机过程:

隐状态链: z₁ → z₂ → z₃ → ... → zₙ (马尔可夫转移,不可直接观测) ↑ ↑ ↑ ↑ 观测序列: x₁ x₂ x₃ ... xₙ (由隐状态生成,可观测)

两个核心假设:

  • 马尔可夫假设:当前隐状态只依赖前一个隐状态P(zt∣zt−1)P(z_t|z_{t-1})P(ztzt1)
  • 观测独立假设:当前观测只依赖当前隐状态P(xt∣zt)P(x_t|z_t)P(xtzt)

二、NER 中的对应关系

隐状态 = 实体标签序列

隐状态是不可直接观测的、需要推断的目标,对应每个词(或字)的 NER 标签。

采用 BIO 编码方案时,隐状态集合为:

隐状态含义
B-PER人名起始
I-PER人名内部
B-ORG机构起始
I-ORG机构内部
B-LOC地名起始
I-LOC地名内部
O非实体

若实体类别有 K 种,隐状态数量 =2K+12K + 12K+1(每个类别 B/I 各一个 + O)。

观测状态 = 输入文本序列

观测状态是可直接看到的输入,对应句子中的每个词(或字)。

具体示例

观测序列(词): 苹果 公司 在 加州 成立 于 1976年 ↑ ↑ ↑ ↑ ↑ ↑ ↑ 隐状态(标签): B-ORG I-ORG O B-LOC O O B-DATE
HMM 要素NER 对应说明
隐状态ztz_tzt第 t 个词的 NER 标签不可观测,需推断
观测xtx_txt第 t 个词本身可直接观测的输入
初始概率π\piπ句首词的标签分布句首更可能是 B-X 或 O,不太可能是 I-X
转移概率AAA标签间的转移概率如 B-ORG→I-ORG 概率高,I-ORG→B-PER 概率低
发射概率BBB给定标签时词的概率如 P(“公司”|I-ORG) 较高,P(“公司”|B-LOC) 较低

三、三个概率矩阵的具体含义

1. 初始概率π\piπ

πi=P(z1=si)\pi_i = P(z_1 = s_i)πi=P(z1=si)

句首位置的标签分布:

π(B-ORG) = 0.15 句首常以机构名开头 π(B-PER) = 0.10 句首常以人名开头 π(O) = 0.60 句首最常见的是非实体词 π(I-ORG) = 0.01 句首极少是实体内部词(结构约束)

2. 转移概率AAA

Aij=P(zt=sj∣zt−1=si)A_{ij} = P(z_t = s_j \mid z_{t-1} = s_i)Aij=P(zt=sjzt1=si)

标签间的转移规律,体现 BIO 结构约束:

前一标签 → 当前标签转移概率解释
B-ORG → I-ORG高 (0.7)实体起始后通常跟内部词
I-ORG → I-ORG中 (0.4)多词实体继续延伸
I-ORG → O中 (0.3)实体结束,转为非实体
I-ORG → B-PER低 (0.05)实体结束后开始新实体
O → I-ORG极低 (0.01)非实体不能直接跳到实体内部
B-ORG → B-LOC低 (0.05)两个实体直接相邻较少

转移概率天然编码了 BIO 标签的结构合法性约束,这是 HMM 用于序列标注的优势。

3. 发射概率BBB

Bi(w)=P(xt=w∣zt=si)B_i(w) = P(x_t = w \mid z_t = s_i)Bi(w)=P(xt=wzt=si)

给定标签时观测到某词的概率:

P("公司" | I-ORG) = 0.08 "公司"常出现在机构名内部 P("公司" | B-LOC) = 0.001 "公司"极少作为地名起始 P("在" | O) = 0.05 "在"是非实体高频词 P("苹果" | B-ORG) = 0.03 "苹果"常作为机构名起始 P("苹果" | O) = 0.01 "苹果"偶尔作为普通名词(水果)

四、NER 推断过程

给定观测序列(句子),HMM 通过Viterbi 算法求解最大后验概率的隐状态序列(标签序列):

Y^=arg⁡max⁡YP(Y∣X)=arg⁡max⁡Y∏t=1nP(xt∣yt)⋅P(yt∣yt−1)⋅π(y1)\hat{Y} = \arg\max_Y P(Y|X) = \arg\max_Y \prod_{t=1}^{n} P(x_t|y_t) \cdot P(y_t|y_{t-1}) \cdot \pi(y_1)Y^=argYmaxP(YX)=argYmaxt=1nP(xtyt)P(ytyt1)π(y1)

Viterbi 动态规划递推:

δt(j)=max⁡i[δt−1(i)⋅Aij]⋅Bj(xt)\delta_t(j) = \max_i \left[ \delta_{t-1}(i) \cdot A_{ij} \right] \cdot B_j(x_t)δt(j)=imax[δt1(i)Aij]Bj(xt)

位置: 1 2 3 4 观测: 苹果 公司 在 加州 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Viterbi逐位计算最优路径: t=1: δ(B-ORG) = π(B-ORG) × B(B-ORG|"苹果") ← 最优 t=2: δ(I-ORG) = δ(B-ORG) × A(B-ORG→I-ORG) × B(I-ORG|"公司") ← 最优 t=3: δ(O) = δ(I-ORG) × A(I-ORG→O) × B(O|"在") ← 最优 t=4: δ(B-LOC) = δ(O) × A(O→B-LOC) × B(B-LOC|"加州") ← 最优 最优路径: B-ORG → I-ORG → O → B-LOC

五、HMM 用于 NER 的局限性

局限说明
观测独立假设过强HMM 假设P(xt∣zt)P(x_t|z_t)P(xtzt)只依赖当前词,无法利用上下文词信息。但 NER 中"苹果"是 ORG 还是 MISC,取决于上下文(“苹果发布财报” vs “吃了个苹果”)
生成模型方向反了HMM 建模P(x∣z)P(x|z)P(xz)(标签生成词),但实际任务是P(z∣x)P(z|x)P(zx)(词推断标签),生成式建模引入了不必要的建模负担
特征利用受限难以融入丰富的重叠特征(词缀、词性、词典匹配等),而 CRF 等判别模型可灵活使用任意特征

这些局限正是 CRF(条件随机场)和 BiLSTM-CRF 等方法取代 HMM 的原因:CRF 直接建模P(Y∥X)P(Y\|X)P(YX)且可利用丰富上下文特征,BiLSTM-CRF 进一步用神经网络自动提取上下文表示。

六、总结

HMM 要素NER 对应
隐状态NER 标签序列(BIO 编码的实体标签)
观测状态输入词序列(句子中的每个词)
初始概率句首标签分布
转移概率标签间转移(编码 BIO 结构约束)
发射概率给定标签时词的概率
推断算法Viterbi 算法求最优标签路径

HMM 将 NER 建模为"隐标签序列生成可观测词序列"的过程,隐状态是需要推断的实体标签,观测状态是可直接看到的输入文本。其核心局限在于观测独立假设无法利用上下文词信息,这也是后续 CRF 和深度学习方法成为主流的根本原因。