
视频元信息
- 课程来源:吴恩达(Andrew Ng)深度学习专项课程 —— 序列模型(Sequence Models)第一周
- 本节主题:序列模型的数据表示符号约定(Notation)
- 时长:约 9 分钟
内容摘要(TL;DR)
本节是序列模型的开篇,吴恩达以「命名实体识别」为动机案例,系统定义了序列数据的符号约定:用 $x^{<UNK> 标记处理未登录词。
一、动机案例:命名实体识别 [00:10]
核心问题
给定一个句子,让模型自动识别出其中的人名、公司名、时间、地点、国家名、货币名等实体。
示例句子:
Harry Potter and Hermione Granger invented a new spell
(这些是 J.K. 罗琳《哈利·波特》系列小说中的人物)
命名实体识别(Named Entity Recognition, NER)
- 定义:从文本中识别出具有特定意义的实体,如人名、公司名、时间、地点、国家、货币等。
- 应用场景:搜索引擎用它对过去 24 小时新闻中提到的所有人名建立索引,以便正确检索。
- 输出形式:对每个输入单词输出一个 $y$ 值,告诉该词是否属于人名的一部分。
易错点:视频中采用的输出表示(每个词输出 0/1)并非最优方案。更完善的表示会标注人名实体的起始位置和结束位置(如区分 "Harry Potter" 是一个完整人名)。本节为简化教学,先采用简单表示。
理解:这种简化的 0/1 输出实际上就是逐词的二分类,而更成熟的 NER 方案(如 BIO 标注:B-PER、I-PER、O)能处理多词连续实体和实体边界问题,是后续进阶内容的基础。
二、序列数据的符号约定(Notation)[01:42]
输入与输出的位置索引
对于输入为 9 个单词的句子:
| 符号 | 含义 |
|---|---|
| $x^{<1>}, x^{<2>}, \dots, x^{<9>}$ | 输入序列中第 1 到第 9 个位置的单词 |
| $x^{ |
序列中间第 $t$ 个位置的输入($t$ 暗示时间序列 temporal) |
| $y^{<1>}, y^{<2>}, \dots, y^{<9>}$ | 对应的输出序列 |
关键点:使用尖括号 $
序列长度
- $T_x$:输入序列的长度(本例中 $T_x = 9$)
- $T_y$:输出序列的长度(本例中 $T_y = 9$)
考点:$T_x$ 和 $T_y$ 可以不同。例如机器翻译中,输入英文句子和输出法文句子长度往往不一致;情感分类中,输入是长文本而输出只有一个标签。
训练样本的索引约定
回顾之前课程使用的符号:$x^{(i)}$ 表示第 $i$ 个训练样本。
扩展到序列数据:
| 符号 | 含义 |
|---|---|
| $x^{(i) |
第 $i$ 个训练样本中,序列的第 $t$ 个元素 |
| $T_x^{(i)}$ | 第 $i$ 个训练样本的输入序列长度 |
| $y^{(i) |
第 $i$ 个训练样本输出序列的第 $t$ 个元素 |
| $T_y^{(i)}$ | 第 $i$ 个训练样本的输出序列长度 |
举例说明:本例中 $T_x^{(i)} = 9$,但若另一个训练样本有 15 个单词,则其 $T_x^{(i)} = 15$。
理解:这里体现了序列数据的核心特点——不同样本的序列长度可以不同。这正是后续需要 RNN 等模型(而非固定维度全连接网络)来处理序列的根本原因。
三、单词的表示:词表与 One-hot 向量 [04:34]
第一步:构建词表(Vocabulary / Dictionary)
词表 = 你在表示中会用到的所有单词的列表。
示例词表(大小 10,000):
| 单词 | 词表中的位置(索引) |
|---|---|
| a | 1 |
| Aaron | 2 |
| and | 367 |
| Harry | 4075 |
| Potter | 6830 |
| Zulu | 10000(最后一个词) |
词表规模的行业参考
- 本示例使用 10,000 词(取整便于教学)
- 商业应用常见:30,000 ~ 50,000 词
- 资源充足的商业应用:100,000 词也不罕见
- 大型互联网公司:可能使用 100 万甚至更大 的词表
词表的构建方法
- 遍历训练集,找出出现频率最高的 10,000 个词;
- 或查阅在线词典,获取英语中最常见的 10,000 个词。
第二步:One-hot 表示
每个单词表示为一个 10,000 维向量,只有对应词表位置为 1,其余全为 0。
示例:
- $x^{<1>}$(Harry,位置 4075):第 4075 位为 1,其余为 0
- $x^{<2>}$(Potter,位置 6830):第 6830 位为 1,其余为 0
- $x^{<3>}$(and,位置 367):第 367 位为 1,其余为 0
- $x^{<7>}$(a,位置 1):第 1 位为 1,其余为 0
考点:one-hot 向量的特点是有且仅有一个 1,其余全为 0。本例中需要 9 个这样的向量来表示 9 个单词。
理解:one-hot 表示的缺点很明显——向量维度等于词表大小(可能上百万),且任意两个不同词的向量内积都为 0,无法表达词与词之间的语义相似性(如 "Harry" 和 "Potter" 的关系)。这正是后续引入词嵌入(Word Embedding) 的动机。
思考:吴恩达在此处刻意先用 one-hot 打基础,后续课程会讲 word2vec、GloVe 等更高效的词向量表示,形成从简到繁的知识递进。
四、未登录词(Unknown Word)的处理 [08:37]
问题
如果遇到词表中不存在的单词怎么办?
解决方案
创建一个新的标记(token)或伪词,称为 未知词,记作 <UNK>(angle brackets UNK),用来表示不在词表中的所有单词。
易错点:
<UNK>是一个统一的占位符,所有未登录词都映射到它,而不是为每个新词单独创建索引。这样能保证词表规模可控。
拓展:现代 NLP 中,处理未登录词的方式已更加丰富,包括子词切分(BPE、WordPiece、SentencePiece)、字符级建模、以及用 <PAD> 处理变长序列的填充等。<UNK> 是早期最基础的做法,但在 Transformer 时代逐渐被 BPE 等子词方法取代。
五、本节总结 [09:01]
本节完成了序列模型学习的第一块基石——符号约定:
- 定义了 $x^{
}$、$y^{ }$、$T_x$、$T_y$、$x^{(i) }$ 等核心符号; - 明确了 $T_x$ 与 $T_y$ 可以不同;
- 讲解了如何用词表 + one-hot 向量表示单个单词;
- 引入
<UNK>处理未登录词; - 将序列学习定位为监督学习问题:给定带标签的 $(X, Y)$ 数据,学习从 X 到 Y 的映射。
下一节预告:描述用于学习 $X \to Y$ 映射的循环神经网络(RNN)。
关键标签 / 关键词
序列模型 Sequence Models 命名实体识别 NER 符号约定 Notation 词表 Vocabulary One-hot 向量 UNK 未登录词 NLP 自然语言处理 吴恩达 深度学习 监督学习 $T_x$ $T_y$
生成时间:2026-10-11 00:35:32 生成平台:VideoNote www.xygy.top