Theme
下面是基于 Lecture 3 的结构化学习笔记。本讲的核心目标不是“背 POS tag”,而是从词性歧义出发,推导为什么需要用概率序列模型,最终自然引出 Hidden Markov Model, HMM。
Lecture 3 学习笔记:从 POS Tagging 到 Hidden Markov Model
1. 本章核心目标:给每个词分配最合理的隐藏词性序列
本讲要解决的问题是 Part-of-Speech Tagging,即给定一个句子中的观测词序列:
预测对应的词性标签序列:
其中:
表示第 个观测到的词, 是 vocabulary,即词表;
表示第 个词的 POS tag, 是所有可能词性标签的集合,例如 NN, VB, JJ, RB, DT 等;
表示句子长度。
核心任务可以写成:
也就是说:在看到句子 之后,找到后验概率最大的词性序列 。
这就是本讲从 POS 到 HMM 的主线。
2. 知识进化树:从语言现象到概率图模型
本讲的逻辑不是孤立知识点,而是一条逐步抽象的链:
text
词性分类 POS
↓
词性有语法和语义作用
↓
词性歧义:同一个词在不同上下文中有不同 tag
↓
仅靠单词本身不够,需要上下文
↓
上下文可以分成两类概率信息:
1. emission: 某个 tag 生成某个 word 的概率
2. transition: 某个 tag 后面接另一个 tag 的概率
↓
直接建模完整序列概率参数爆炸
↓
引入 Markov assumption
↓
Hidden Markov Model:
hidden states = POS tags
observations = words
↓
后续问题:
estimation, inference, prediction换句话说,本讲的真正主题是:如何把“词性标注”形式化为一个可计算的概率推断问题。
3. POS Tagging 为什么重要?
3.1 语法信息:词性决定句法结构
POS tag 提供 syntactic information,即句子中词语如何组合。
例如:
| 结构 | 例子 |
|---|---|
| noun-verb | she laughs |
| determiner-noun | a rabbit |
| adjective-noun | high building |
| verb-adverb | move faster |
| preposition-noun | on tables |
词性可以帮助模型判断一个句子是否符合英语的局部语法规律。例如:
表示 determiner 后面常接 noun,比如 “the dog”, “a rabbit”。
3.2 语义信息:词性影响词义解释
POS 不只是语法标签,也直接影响语义解释。
例如:
“building” 可以是:
也可以是:
所以在机器翻译中,如果不知道 POS,就可能把 “building a building” 错译。
类似地:
| 任务 | POS 的作用 |
|---|---|
| machine translation | 区分同形异义词 |
| relation extraction | 判断 Bill Gates 是实体还是 Gates 是动词 |
| event extraction | 判断 concert 是名词事件还是动词 |
| entity extraction | 判断 DC 是否是 proper noun |
因此 POS tagging 是早期 NLP 的基础中间任务。即使 LLM 时代显式 POS tag 用得少了,它仍然是理解 NLP 建模思想的重要入口。
4. POS Tagging 为什么难?
4.1 表面难点:Lexical Ambiguity
同一个词可能对应多个 POS tag。
例如:
| Word | Possible Tags | Examples |
|---|---|---|
| back | RB, NN, JJ, VB | Step back / His back hurts / the back door |
| like | IN, VB, JJ | I like coffee / He acts like a killer |
| fast | JJ, RB, NN | a fast horse / he ran fast |
问题不在于大多数词都模糊,而在于常见词经常模糊。课件指出,约 85% 的 tag type 不模糊,但 ambiguous words 却覆盖了大量 running text tokens。
这解释了为什么简单方法已经很强,但仍然无法解决关键错误。
4.2 baseline 的瓶颈:Most-Frequent-Tag
一个简单 baseline 是:
即对每个词永远选择它最常见的 tag。
例如 “back” 最常见可能是 RB,那么模型可能把:
错误标成:
问题是它只看当前词,不看上下文。
这个方法能做到约 92% accuracy,但无法处理上下文改变词性的情况。人类 baseline 约 97%,说明剩余错误主要来自上下文推理。
5. 方法论演进一:从词典查表到上下文建模
5.1 方法 A:只看 emission probability
最朴素的想法是看某个 tag 生成当前 word 的概率:
例如:
表示当词性是 NN 时,生成 “back” 这个词的概率。
这个概率叫 emission probability。
问题:只看 emission 会忽略句法上下文
如果只最大化:
模型会为每个词独立选择最适合该词的 tag,却不考虑 tag 序列是否合理。
例如:
单看 “back”,RB 可能很常见;但在 “His ___” 后面,NN 更合理。
所以只看 emission 会失败,因为它把 POS tagging 当成了 independent classification,而不是 sequence labeling。
5.2 方法 B:加入 transition probability
上下文信息可通过 tag-to-tag transition 建模:
例如:
因为英语中 “someone’s noun” 很常见,而 “someone’s the” 不自然。
所以 “His back hurts” 中,前一个 tag 是 possessive pronoun:
这会强烈暗示下一个 tag 更可能是 noun:
改进直觉
Emission 解决的是:
“这个词像什么词性?”
Transition 解决的是:
“这个词性放在这个上下文里合理吗?”
因此 POS tagging 必须同时考虑:
和
前者是词和 tag 的匹配程度,后者是 tag 序列本身的合理性。
6. 数学形式化:从 MAP 到 HMM
6.1 MAP prediction
目标是:
其中:
| 符号 | 含义 |
|---|---|
| 一个候选 POS tag 序列 | |
| 最优 POS tag 序列 | |
| 观测到的 word 序列 | |
| 给定句子后,某个 tag 序列的后验概率 |
根据 Bayes rule:
因此:
由于 是固定输入, 与 无关,所以可省略:
这一步非常关键:POS tagging 被拆成两个建模问题。
第一项:
表示给定词性序列后,生成这些词的概率,也就是 likelihood。
第二项:
表示词性序列本身出现的概率,也就是 prior。
7. 方法论演进二:从完整序列建模到 Markov assumption
7.1 完整建模的参数爆炸问题
如果直接建模完整 tag 序列:
它需要考虑所有长度为 的 tag 组合。
若 tag 集合大小为:
那么长度为 的 tag 序列总数为:
这会导致指数级复杂度。
同理,如果直接建模:
也会涉及复杂的高阶依赖,例如每个词可能依赖所有 tag、所有过去词、甚至未来词。
这在数据量和计算量上都不可行。
7.2 Markov assumption:只依赖当前状态
Markov assumption 的核心是:
意思是:预测当前 tag 时,只看前一个 tag,而不看完整历史。
于是:
被近似为:
其中:
| 符号 | 含义 |
|---|---|
| 第一个 POS tag 的起始概率 | |
| 从前一个 tag 转移到当前 tag 的概率 | |
| 序列长度 |
这个假设牺牲了长程依赖,但极大降低了参数复杂度。
8. Transition Matrix
定义 transition matrix:
其中:
| 符号 | 含义 |
|---|---|
| transition probability matrix | |
| 从 POS tag 转移到 POS tag 的概率 | |
| 当前或前一个 POS tag | |
| 下一个 POS tag | |
| POS tag 数量 |
矩阵大小为:
每一行必须满足:
因为从某个 tag 出发,下一个 tag 必须落在某个 tag 上。
课件中的例子说明了英语局部语法规律:
| Transition | 直觉 |
|---|---|
| “the big”, “a dog” | |
| “red car”, “happy child” | |
| “dog runs” | |
| “eat apple” | |
| “see the” | |
| “computer science”, “coffee cup” |
注意:transition matrix 通常不是对称矩阵。
例如:
可能很高,因为 determiner 后常接 noun;但:
不一定同样高。
9. Emission Matrix
HMM 的另一个核心假设是:当前 word 只由当前 POS tag 生成。
定义 emission matrix:
其中:
| 符号 | 含义 | ||
|---|---|---|---|
| emission probability matrix | |||
| POS tag 生成 word 的概率 | |||
| 某个 POS tag | |||
| 某个 vocabulary word | |||
| ( | S | ) | tag 数量 |
| ( | V | ) | vocabulary size |
矩阵大小为:
每一行满足:
因为给定某个 tag,它最终必须生成词表中的某个词。
例如:
通常较高,因为 “the” 是 determiner 的典型词。
表示动词 tag 生成 “run” 的概率。
10. HMM 的完整形式
HMM 中:
| HMM 元素 | POS tagging 中的含义 |
|---|---|
| hidden states | POS tags |
| observations | words |
| transition probability | tag 到 tag 的转移 |
| emission probability | tag 生成 word |
| starting probability | 第一个 tag 的分布 |
完整 prior 是:
其中:
是 starting probability,表示第一个 POS tag 是 的概率。
完整 likelihood 是:
完整 posterior 是:
用于预测时,可以写成:
代入 HMM 分解:
用矩阵符号写成:
这是本讲最核心的公式。
11. 为什么不能只最大化其中一项?
11.1 只最大化 likelihood
如果只看:
模型会选择最能生成每个 word 的 tag,但可能得到语法不合理的 tag 序列。
例如:
“back” 单独看可能像 RB,但在 “His” 后面应该是 NN。
11.2 只最大化 prior
如果只看:
模型会选择最常见的 POS 模板,例如:
这可能对应 “the red car” 这类常见结构,但它完全不关心输入句子具体是什么。
所以 POS tagging 必须联合考虑:
和:
这就是 HMM 的合理性来源。
12. 从 HMM 引出的三个后续任务
课件最后指出 HMM 有三个核心任务:
| 任务 | 问题 | 对应算法/方向 |
|---|---|---|
| Estimation | 如何估计 ? | 用语料频率估计 |
| Inference | 如何估计一个句子的概率 ? | Forward / Backward algorithm |
| Prediction | 如何预测最优 tag 序列 ? | Viterbi algorithm |
本讲主要完成建模,后续 lecture 会进入 dynamic programming。
13. 关键对比表:方法演进
| 阶段 | 核心思想 | 公式 | 失败原因 | HMM 如何改进 |
|---|---|---|---|---|
| Most-frequent-tag | 每个词选最常见 tag | 不看上下文 | 加入 tag transition | |
| Emission-only | tag 生成 word | 独立分类,忽略语法序列 | 加入 | |
| Full sequence model | 建模完整 | 参数指数爆炸 | Markov assumption | |
| HMM | hidden tag + observed word | 仍是简化模型,长程依赖弱 | 后续用 DP 高效推断 |
14. 本讲总结
Lecture 3 的核心思想可以压缩成一句话:
POS tagging 是一个 hidden sequence prediction problem;HMM 通过 emission probability 连接 tag 和 word,通过 transition probability 连接相邻 tag,并用 Markov assumption 将指数级序列建模简化为可计算的概率图模型。
最重要的最终公式是:
它同时表达了三件事:
第一,句子的第一个 tag 有起始概率 。
第二,相邻 POS tag 之间通过 transition matrix 建模。
第三,每个 word 由当前 hidden tag 通过 emission matrix 生成。
这就是 Hidden Markov Model 用于 POS tagging 的完整数学骨架。