chap8 循环神经网络(1) 语言模型

卷积神经网络可以有效地处理空间信息,循环神经网络(recurrent neural network, RNN)这种设计可以更好地处理序列信息。 循环神经网络通过引入状态变量存储过去的信息和当前的输入,从而可以确定当前的输出。

许多使用循环网络的例子都是基于文本数据的,因此我们将在本章中重点介绍语言模型。 在对序列数据进行更详细的回顾之后,我们将介绍文本预处理的实用技术。 然后,我们将讨论语言模型的基本概念,并将此讨论作为循环神经网络设计的灵感。 最后,我们描述了循环神经网络的梯度计算方法,以探讨训练此类网络时可能遇到的问题。

序列模型的核心在于预测文本序列出现的概率。

给定文本序列 x1,x2,…xT , 语言模型的目标是估计联合概率 p(x1,…,xT) 。

他的应用包括:

  • 做预训练模型 BERT, GPT-3
  • 生成文本,给定前面几个词,生成后续文本
  • 判断多个序列中哪个更常见

N元语法

一元语法:每个 x 的信息独立,马尔可夫假设中 τ=0\tau = 0

二元语法:τ=1\tau = 1,每个 x 的信息只和他前一个项有关

三元语法:τ=2\tau = 2 ,每个 x 的信息只和他前 2 个项有关

P(x1,x2,x3,x4)=P(x1)P(x2)P(x3)P(x4),P(x1,x2,x3,x4)=P(x1)P(x2x1)P(x3x2)P(x4x3),P(x1,x2,x3,x4)=P(x1)P(x2x1)P(x3x1,x2)P(x4x2,x3).\begin{aligned} P(x_1, x_2, x_3, x_4) &= P(x_1) P(x_2) P(x_3) P(x_4),\\ P(x_1, x_2, x_3, x_4) &= P(x_1) P(x_2 \mid x_1) P(x_3 \mid x_2) P(x_4 \mid x_3),\\ P(x_1, x_2, x_3, x_4) &= P(x_1) P(x_2 \mid x_1) P(x_3 \mid x_1, x_2) P(x_4 \mid x_2, x_3). \end{aligned}

优点:可以处理较长的文本序列

总结

  • 语言模型估计文本序列的联合概率
  • 使用统计方法时常采用 n 元语法