视频封面

视频元信息

  • 课程来源:吴恩达(Andrew Ng)深度学习专项课程 —— 序列模型(Sequence Models)第一周
  • 本节主题:序列模型的数据表示符号约定(Notation)
  • 时长:约 9 分钟

内容摘要(TL;DR)

本节是序列模型的开篇,吴恩达以「命名实体识别」为动机案例,系统定义了序列数据的符号约定:用 $x^{}$ 表示序列中第 $t$ 个位置的输入,$y^{}$ 表示对应输出,$T_x$、$T_y$ 表示输入输出序列长度,上标 $(i)$ 表示第 $i$ 个训练样本。同时讲解了如何用词表(Vocabulary)和 one-hot 向量表示单个单词,并引入 <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>}$ 对应的输出序列

关键点:使用尖括号 $$ 而非圆括号,是为了与训练样本上标 $(i)$ 区分开。

序列长度

  • $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 万甚至更大 的词表

词表的构建方法

  1. 遍历训练集,找出出现频率最高的 10,000 个词;
  2. 或查阅在线词典,获取英语中最常见的 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]

本节完成了序列模型学习的第一块基石——符号约定:

  1. 定义了 $x^{}$、$y^{}$、$T_x$、$T_y$、$x^{(i)}$ 等核心符号;
  2. 明确了 $T_x$ 与 $T_y$ 可以不同;
  3. 讲解了如何用词表 + one-hot 向量表示单个单词;
  4. 引入 <UNK> 处理未登录词;
  5. 将序列学习定位为监督学习问题:给定带标签的 $(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