卷积神经网络可以有效地处理空间信息,循环神经网络(recurrent neural network, RNN)这种设计可以更好地处理序列信息。 循环神经网络通过引入状态变量存储过去的信息和当前的输入,从而可以确定当前的输出。
许多使用循环网络的例子都是基于文本数据的,因此我们将在本章中重点介绍语言模型。 在对序列数据进行更详细的回顾之后,我们将介绍文本预处理的实用技术。 然后,我们将讨论语言模型的基本概念,并将此讨论作为循环神经网络设计的灵感。 最后,我们描述了循环神经网络的梯度计算方法,以探讨训练此类网络时可能遇到的问题。
序列模型的核心在于预测文本序列出现的概率。
给定文本序列 x1,x2,…xT , 语言模型的目标是估计联合概率 p(x1,…,xT) 。
他的应用包括:
- 做预训练模型 BERT, GPT-3
- 生成文本,给定前面几个词,生成后续文本
- 判断多个序列中哪个更常见
N元语法
一元语法:每个 x 的信息独立,马尔可夫假设中 τ=0
二元语法:τ=1,每个 x 的信息只和他前一个项有关
三元语法:τ=2 ,每个 x 的信息只和他前 2 个项有关
P(x1,x2,x3,x4)P(x1,x2,x3,x4)P(x1,x2,x3,x4)=P(x1)P(x2)P(x3)P(x4),=P(x1)P(x2∣x1)P(x3∣x2)P(x4∣x3),=P(x1)P(x2∣x1)P(x3∣x1,x2)P(x4∣x2,x3).
优点:可以处理较长的文本序列
总结
- 语言模型估计文本序列的联合概率
- 使用统计方法时常采用 n 元语法