02 数学符号(Notation)
02 数学符号(Notation)
1. 任务背景:命名实体识别 (NER)
- 目标:建立一个序列模型,输入一个句子,输出每个单词是否属于人名(或其他实体如公司、地点等)。
- 示例:输入 “Harry Potter and Hermione Granger invented a new spell.”,模型需识别出 “Harry Potter” 和 “Hermione Granger” 是人名。
- 输出形式:最简单的形式是为输入序列中的每个单词对应一个二元标签(是否为人名的一部分)。更复杂的形式可以标记实体的起止位置。
2. 数学符号定义
为了描述序列数据,定义了以下符号:
- 序列索引:使用 $t$ 来表示序列中的时间步或位置索引($x^{\langle t \rangle}, y^{\langle t \rangle}$)。虽然常用于时序数据,但也适用于一般序列。
输入与输出:
- $x^{\langle t \rangle}$:序列中第 $t$ 个位置的输入元素(单词)。
- $y^{\langle t \rangle}$:序列中第 $t$ 个位置的输出标签。
序列长度:
- $T_x$:输入序列的长度(例如示例句子有9个单词,则 $T_x = 9$)。
- $T_y$:输出序列的长度。在基础 NER 任务中,通常 $T_x = T_y$,但在其他序列任务中两者可能不同。
训练样本表示:
- $x^{(i)\langle t \rangle}$:第 $i$ 个训练样本中,第 $t$ 个位置的输入元素。
- $T_x^{(i)}$:第 $i$ 个训练样本的输入序列长度(不同样本长度可能不同)。
- $y^{(i)\langle t \rangle}$ 和 $T_y^{(i)}$:同理,分别表示第 $i$ 个样本的输出元素和输出长度。
3. 单词表示方法
在自然语言处理 (NLP) 中,需要将单词转换为数值向量:
构建词表 (Vocabulary/Dictionary) :
- 列出所有用到的单词,并按顺序编号。
- 规模:示例中使用 $10,000$ 个单词,实际商业应用常用 $30,000$ 到 $50,000$,大型应用可达百万级。
- 示例映射:a $\to$ 1, Aaron $\to$ 2, …, and $\to$ 367, Harry $\to$ 4075, Potter $\to$ 6830, …, Zulu $\to$ 10,000。
One-hot 编码:
- 每个单词表示为一个维度等于词表大小的向量。
- 向量中仅对应该单词索引的位置为 $1$,其余位置均为 $0$。
- 若词表大小为 $10,000$,则每个 $x^{\langle t \rangle}$ 是一个 $10,000$ 维的向量。
示例:
- $x^{\langle t \rangle} = \text{Harry}$ $\implies$ 第 $4075$ 行为 $1$,其余为 $0$。
- $x^{\langle t \rangle} = \text{and}$ $\implies$ 第 $367$ 行为 $1$,其余为 $0$。
未知单词处理:
- 对于不在词表中的单词,使用特殊标记
<UNK>(Unknown Word) 表示。
- 对于不在词表中的单词,使用特殊标记
4. 学习目标
- 这是一个监督学习问题。
- 目标是利用带有标签 $(x, y)$ 的训练数据,学习一个从输入序列 $x$ 到输出序列 $y$ 的映射函数。
- 后续课程将介绍如何使用循环神经网络 (RNN) 来构建这种映射。
本文由作者按照 CC BY 4.0 进行授权