第二课 文本预处理

预处理通常包括四个步骤:

读入文本

分词

建立字典,将每个词映射到一个唯一的索引(index)

将文本从词的序列转换为索引的序列,方便输入模型

语言模型

假设序列w1,w2,…,wT

中的每个词是依次生成的,我们有

\begin{align*}
P(w_1, w_2, \ldots, w_T)
&= \prod_{t=1}^T P(w_t \mid w_1, \ldots, w_{t-1})\\
&= P(w_1)P(w_2 \mid w_1) \cdots P(w_T \mid w_1w_2\cdots w_{T-1})
\end{align*}

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

P(w_1, w_2, w_3, w_4) =  P(w_1) P(w_2 \mid w_1) P(w_3 \mid w_1, w_2) P(w_4 \mid w_1, w_2, w_3).

语言模型的参数就是词的概率以及给定前几个词情况下的条件概率。设训练数据集为一个大型文本语料库,如维基百科的所有条目,词的概率可以通过该词在训练数据集中的相对词频来计算,例如,w1

的概率可以计算为:

\hat P(w_1) = \frac{n(w_1)}{n}

其中n(w1)

为语料库中以w1作为第一个词的文本的数量,n

为语料库中文本的总数量。

类似的,给定w1

情况下,w2

的条件概率可以计算为:

\hat P(w_2 \mid w_1) = \frac{n(w_1, w_2)}{n(w_1)}

其中n(w1,w2)

为语料库中以w1作为第一个词,w2作为第二个词的文本的数量。

n元语法

P(w_1, w_2, \ldots, w_T) = \prod_{t=1}^T P(w_t \mid w_{t-(n-1)}, \ldots, w_{t-1}) .

n元语法可能有哪些缺陷?

参数空间过大

数据稀疏

循环神经网络


循环神经网络的构造

我们先看循环神经网络的具体构造。假设\boldsymbol{X}_t \in \mathbb{R}^{n \times d}是时间步t的小批量输入,\boldsymbol{H}_t  \in \mathbb{R}^{n \times h}

是该时间步的隐藏变量,则:

\boldsymbol{H}_t = \phi(\boldsymbol{X}_t \boldsymbol{W}_{xh} + \boldsymbol{H}_{t-1} \boldsymbol{W}_{hh}  + \boldsymbol{b}_h).

其中,\boldsymbol{W}_{xh} \in \mathbb{R}^{d \times h}\boldsymbol{W}_{hh} \in \mathbb{R}^{h \times h}\boldsymbol{b}_{h} \in \mathbb{R}^{1 \times h},ϕ函数是非线性激活函数。由于引入了\boldsymbol{H}_{t-1} \boldsymbol{W}_{hh}H_{t}能够捕捉截至当前时间步的序列的历史信息,就像是神经网络当前时间步的状态或记忆一样。由于H_{t}的计算基于H_{t-1}

,上式的计算是循环的,使用循环计算的网络即循环神经网络(recurrent neural network)。

在时间步t,输出层的输出为:

\boldsymbol{O}_t = \boldsymbol{H}_t \boldsymbol{W}_{hq} + \boldsymbol{b}_q.

其中\boldsymbol{W}_{hq} \in \mathbb{R}^{h \times q}\boldsymbol{b}_q \in \mathbb{R}^{1 \times q}

裁剪梯度

循环神经网络中较容易出现梯度衰减或梯度爆炸,这会导致网络几乎无法训练。裁剪梯度(clip gradient)是一种应对梯度爆炸的方法。假设我们把所有模型参数的梯度拼接成一个向量\boldsymbol{g},并设裁剪的阈值是\theta。裁剪后的梯度

\min\left(\frac{\theta}{\|\boldsymbol{g}\|}, 1\right)\boldsymbol{g}L_2

的L2范数不超过\theta

困惑度

我们通常使用困惑度(perplexity)来评价语言模型的好坏。回困惑度是对交叉熵损失函数做指数运算后得到的值。特别地,

最佳情况下,模型总是把标签类别的概率预测为1,此时困惑度为1;

最坏情况下,模型总是把标签类别的概率预测为0,此时困惑度为正无穷;

基线情况下,模型总是预测所有类别的概率都相同,此时困惑度为类别个数。

显然,任何一个有效模型的困惑度必须小于类别个数。在本例中,困惑度必须小于词典大小vocab_size。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容