动手学深度学习,二:循环神经网络

语言模型

语言模型(language model)是自然语言处理的重要技术。自然语言处理中最常见的数据是文本数据。

我们可以把一段自然语言文本看作一段离散的时间序列。假设一段长度为T的文本中的词依次为w1,w2,…,wT,那么在离散的时间序列中,wt(1≤t≤T)可看作在时间步(time step)t的输出或标签。

1、语言模型的计算

动手学深度学习,二:循环神经网络

例如,在一段含有4个词的文本序列的概率:

动手学深度学习,二:循环神经网络

我们需要计算词的概率,以及一个词在给定前几个词的情况下的条件概率,即语言模型参数。P(w1)可以计算为w1在训练数据集中的词频(词出现的次数)与训练数据集的总词数之比。P(w2∣w1)可以计算为w1,w2两词相邻的频率与w1词频的比值,因为该比值即P(w1,w2)与P(w1)之比;而P(w3∣w1,w2)同理可以计算为w1、w2和w3三词相邻的频率与w1和w2两词相邻的频率的比值。以此类推。

2、n元语法

当序列长度增加时,计算和存储多个词共同出现的概率的复杂度会呈指数级增加。n元语法通过马尔可夫假设(虽然并不一定成立)简化了语言模型的计算。这里的马尔可夫假设是指一个词的出现只与前面n个词相关,即n阶马尔可夫链。

例如,长度为4的序列w1,w2,w3,w4在一元语法、二元语法和三元语法中的概率分别为

动手学深度学习,二:循环神经网络

循环神经网络

通过隐藏状态来存储之前时间步的信息。

动手学深度学习,二:循环神经网络