Coursera 笔记

Module 01 · Recurrent Neural Networks

Notation序列模型的符号表示

Coursera ↗

在上一期视频中,您看到了许多可以应用序列模型的广泛领域。在本视频中,我们将开始定义一个符号系统,以帮助我们构建这些序列模型。作为一个动机性例子,假设您希望构建一个序列模型,输入一个句子:

Harry Potter and Hermione Granger invented a new spell.
(这些人物来自J.K. Rowling的《哈利·波特》系列小说)

假设您希望模型自动识别句子中哪些是人物姓名。这就是一个经典的命名实体识别(Named-Entity Recognition, NER)问题,这种技术常被搜索引擎用来识别新闻文章中的人物、公司、时间、地点等信息,以便为其正确索引。


1.命名实体识别的应用场景

命名实体识别系统广泛应用于:

  • 新闻索引:搜索引擎可以通过NER技术,识别过去24小时内新闻文章中提到的所有人物姓名,并进行适当的索引。
  • 多种文本类型的实体识别:包括人物姓名、公司名称、时间、地点、国家、货币等。

2.输入与输出的符号表示

假设输入 X 是如下的句子:

Harry Potter and Hermione Granger invented a new spell.

该句子包含 9 个单词,因此输入是一个长度为 9 的序列。在模型中,我们希望为每个输入的单词预测一个标签,输出的 Y 是与输入单词相对应的标签序列。目标输出是:

  • 对于每个输入的单词,模型将告诉您该单词是否是一个人的名字。

2.1符号定义

我们用以下符号来表示输入和输出的序列:

  • 输入序列:X,其中 XtX_t 表示序列中第 t 个位置的词。
  • 输出序列:Y,其中 YtY_t 表示第 t 个词的标签(例如,是否是人的名字)。
  • 输入序列的长度:TxT_x,在本例中,Tx=9T_x = 9。
  • 输出序列的长度:TyT_y,在本例中,TyT_y 也为 9。

当处理多个训练样本时,记作:

  • X(i)X^{(i)} 表示第 i 个训练样本的输入序列。
  • Tx(i)T_x^{(i)} 表示第 i 个训练样本的输入序列的长度。
  • Yt(i)Y^{(i)}_t 表示第 i 个训练样本中输出序列的第 t 个标签。


3.表示单词的方式

接下来,我们讨论如何表示一个句子中的单词。为了表示单词,首先需要构建一个词汇表(Vocabulary),也叫做字典(Dictionary)。词汇表的构建步骤如下:

  • 列出训练数据集中所有的单词。
  • 为每个单词分配一个唯一的索引,比如:
    • 第一个单词 a 在词汇表中为词汇位置 1。
    • 第二个单词 Aaron 为词汇位置 2。
    • Harry 在位置 4075。
    • Potter 在位置 6830。
    • Zulu 可能在词汇表的最后,位置 10000。

在实际应用中,词汇表大小通常很大:

  • 小型词汇表:10,000 个单词(本例所用词汇表大小)。
  • 中型词汇表:30,000 到 50,000 个单词。
  • 大型词汇表:一些互联网公司会使用高达 100,000,甚至达到 1,000,000 的词汇表。


3.1独热编码(One-hot Encoding)表示法

在独热编码中,每个单词都被表示为一个向量,向量的长度等于词汇表的大小。在本例中,词汇表大小为 10,000,因此每个单词的表示是一个 10,000 维的向量,只有一个位置为 1,其他位置均为 0。例如:

  • Harry 在词汇表中的位置是 4075,因此 x₁ 是一个全零向量,只有第 4075 个元素为 1。
  • Potter 在词汇表中的位置是 6830,因此 x₂ 是一个全零向量,只有第 6830 个元素为 1。

3.2句子的表示

假设句子有 9 个单词(如 Harry Potter and Hermione Granger invented a new spell),每个单词用一个独热编码向量表示,总共有 9 个独热编码向量,每个向量的长度是 10,000。

  • x₁:Harry 的独热编码。
  • x₂:Potter 的独热编码。
  • x₃:and 的独热编码。
  • ...


4.词汇表外的词处理

如果在测试数据中出现一个在词汇表中没有的单词,怎么办?

  • 答案是:使用一个特殊标记(通常称为 UNK,即“未知词”),表示该单词不在词汇表中。

总结

在本视频中,我们介绍了用于描述序列数据的符号系统,包括:

  • 输入序列(X)和输出序列(Y)的表示。
  • 如何构建一个简单的词汇表并使用独热编码表示单词。

在下一期视频中,我们将开始介绍递归神经网络(Recurrent Neural Networks, RNNs),并探讨如何使用这些网络来学习从 X 到 Y 的映射。