自然语言处理(NLP)之三:语言模型

  1. 语言模型的定义
    语言模型是一种预测语句符合语法规范1的概率的计算方法。对给定语句 S = W 1 , W 2 , … , W n S = W_1, W_2, \dots, W_n S=W1,W2,,Wn,其符合语法规范的概率为:
    P ( S ) = P ( W 1 , W 2 , … , W n ) (1) P(S) = P(W_1, W_2, …, W_n) \tag{1} P(S)=P(W1,W2,,Wn)(1)

在条件概率公式的链式传导下, 式 ( 1 ) 式(1) (1)中联合概率可拆解成多个条件概率的乘积,所以语句符合语法规范的概率可改写为:

P ( S ) = P ( W 1 , W 2 , … , W n ) = P ( W 1 ) P ( W 2 ∣ W 1 ) ⋯ P ( W n ∣ W 1 , W 2 , … , W n − 1 ) P(S) = P(W_1, W_2, …, W_n) = P(W_1)P(W_2| W_1) \cdots P(W_n| W_1, W_2, \dots , W_{n-1}) P(S)=P(W1,W2,,Wn)=P(W1)P(W2W1)P(WnW1,W2,,Wn1) P ( S ) = P ( W 1 , W 2 , … , W n ) = ∏ t = 1 n P ( W t ∣ W 1 , ⋯   , W t − 1 ) (2) P(S) = P(W_1, W_2, …, W_n) = \prod_{t=1}^{n} P(W_t | W_1, \cdots, W_{t-1} ) \tag{2} P(S)=P(W1,W2,,Wn)=t=1nP(WtW1,,Wt1)(2)具体来说,语言模型可理解为 式 ( 2 ) 式(2) (2)中条件概率 P ( W t ∣ W 1 , ⋯   , W t − 1 ) P(W_t | W_1, \cdots, W_{t-1} ) P(WtW1,,Wt1) 的计算方法。且按技术的发展阶段和模型功能不同,语言模型的发展脉络大致可归纳为:统计语言模型,神经网络语言模型、文本生成模型和预训练语言模型

2. 语言模型的评估方法

2.1 直接评估法

在理想情况下,我们希望直接在特定任务中测试使用某语言模型后的任务效果,来评价语言模型的好坏。但该评价结果局限于某一具体任务,因此,独立于任务之外的间接模型评估方法被探索建立。

2.2 间接评估法

2.2.1 困惑度(perplexity)

困惑度(perplexity)方法由语言模型定义衍生而出,它的核心思想是:通过语言模型对符合语法规范的标准语句预测概率的高低,来评价语言模型的效果。其计算公式如下所示:
p e r p l e x i t y ( S ) = p e r p l e x i t y ( W 1 , W 2 , … , W n ) = 2 − 1 n ∑ 1 n l o g [ P ^ L M ( W t ∣ W 1 , ⋯   , W t − 1 ) ] (6) perplexity(S) = perplexity(W_1, W_2, …, W_n) = 2^{-\frac{1}{n} \sum_{1}^{n} log[ \hat{P}_{LM}(W_t | W_1, \cdots, W_{t-1} ) ]} \tag{6} perplexity(S)=perplexity(W1,W2,,Wn)=2n11nlog[P^LM(WtW1,,Wt1)](6)

3 统计语言模型

单词在句子出现的概率及条件概率可直接从语料库中统计得到,但随着预测语句长度增长,许多单词在预测语句中出现的上文搭配,在训练语料中未曾出现过。这导致统计得到的单词条件概率为0,使语言模型预测失效。为此衍生出了多种基于统计学原理,简化复杂前置条件概率计算的语言模型,如:Unigram 和 Ngram。

3.1 Unigram

为简化具有复杂前置的条件概率计算,最理想的假设是认为单词在句中出现的概率相互独立,这称作Unigram模型。此条件下,单词在句中出现的条件概率等于该单词独立出现的概率,所以语句符合语法规范的概率可简化为:
P ( S ) = P ( W 1 , W 2 , … , W n ) = P ( W 1 ) P ( W 2 ) ⋯ P ( W n ) (3) P(S) = P(W_1, W_2, …, W_n) = P(W_1)P(W_2) \cdots P(W_n) \tag{3} P(S)=P(W1,W2,,Wn)=P(W1)P(W2)P(Wn)(3)

3.2 N-gram

Unigram模型简化假设过于理想,实际单词间往往存在语境关系、其出现概率不相互独立,所以衍生出基于马尔科夫假设简化条件概率的 n n n 元语法模型(N-gram)。关于 N-gram model 的详细内容,请参见作者文章:语言模型:N元语法模型(N-gram)

3.3 统计语言模型的平滑方法

虽然N-gram等模型有效缓解了长语句预测中,单词在预测语句上文条件下的条件概率极度稀疏(在语句较长时,近乎一定等于0)的问题。但训练得到的语言模型条件概率仍十分稀疏、容易引起模型预测失效,为此可引入模型平滑方法,进一步改善条件概率稀疏问题。详细内容,请参见作者文章:语言模型:统计语言模型的平滑方法

4 神经网络语言模型

神经网络语言模型是解决统计语言模型(N-gram)条件概率稀疏的有效方法,它可以在保证最大 n n n 值的同时,获得稠密的单词条件概率 P ( W t ∣ W 1 , ⋯   , W t − 1 ) P(W_t | W_1, \cdots, W_{t-1} ) P(WtW1,,Wt1)

4.1 神经网络语言模型的结构

神经网络语言模型的结构一般可抽象为顺序排列的嵌入层、特征层和输出层三部分。其中,嵌入层负责将非数值类型的输入(文本)序列 ( x 1 , ⋯   , x T ) (x_1, \cdots, x_T) (x1,,xT),转换成数值类型的编码向量 ( e 1 , ⋯   , e T ) (e_1, \cdots, e_T) (e1,,eT)特征层负责从输入序列中提取特征,输出为一个可以表示历史信息的(隐藏)状态向量 ( h 1 , ⋯   , h T ) (h_1, \cdots, h_T) (h1,,hT)输出层根据接收到的特征向量进行标签预测 ( o 1 , ⋯   , o T ) (o_1, \cdots, o_T) (o1,,oT)

其特征层,可使用多种类型的神经网络来提取特征,常见的有简单平均前馈神经网络前馈神经网络(feedforward neural network)可以是全连接神经网络或卷积神经网络)和循环神经网络三种2

简单平均能处理不定长输入序列,它简单地将序列上文全部单词的词向量的直接平均值或加权平均值3作为本时刻的(隐藏)状态向量。

前馈神经网络要求输入是一个固定长度的序列,它与 N-gram 模型类似,都假设句子此时刻所表达的历史(语义)信息(即:隐藏状态)只与前面的 n−1 个词(token)有关;前馈神经网络某时刻的状态向量 h t = f D e n s e / C o n v ( e t − n + 1 , ⋯   , e t − 1 ;   θ ) ,    t = 1 , 2 , 3 , ⋯   , T h_t = f_{Dense/Conv}(e_{t-n+1},\cdots, e_{t-1} ; \ \theta), \ \ t=1, 2, 3, \cdots, T ht=fDense/Conv(etn+1,,et1; θ),  t=1,2,3,,T

循环神经网络综合前两者优点,在能处理不定长输入序列的同时,也能有效提取输入序列中的特征信息。与只能接受前 − 1 个时刻信息的前馈神经网络不同,循环神经网络利用隐藏状态能记录序列此前所有时刻的信息。
自然语言处理(NLP)之三:语言模型_第1张图片

图1 神经网络语言模型

4.2 使用全连接网络(Dense)作为特征提取器的语言模型

4.3 使用简单循环神经网络(RNN)作为特征提取器的语言模型

4.3.1 使用简单循环神经网络(RNN)作为特征提取器的语言模型

循环神经网络(recurrent neural network, RNN)是转为处理不定长输入序列数据而设计的神经网络,它由全连接神经网络改进而来,理论上可以处理无限长度的输入序列数据(但因存在长期依赖问题4实际上并不能处理很长的输入序列)。

具体内容,请参见作者文章:时序模型:循环神经网络(RNN)

4.3.2 使用长短期记忆网络(LSTM)作为特征提取器的语言模型

长短期记忆网络(long short-term memory,LSTM)是最早被承认能有效缓解长期依赖问题的改进方案。它增设一个额外(状态信息)的记忆单元,并引入(信息)门控机制,来缓解沿时间维度上传播的梯度消失现象。具体内容,

请参见作者文章:时序模型:长短期记忆网络(LSTM)。

4.3.3 使用门控单元网络(GRU)作为特征提取器的语言模型

门控循环单元网络(Gated Recurrent Unit,GRU)是对LSTM模型计算效率上的改进,它未引入额外的记忆单元,且将逻辑门(从LSTM中的三个)简化为两个。实验结果表明:通常情况下,GRU模型能以更快的计算速度,达到与LSTM模型相似的效果5

具体内容,请参见作者文章:时序模型:门控循环单元网络(GRU)

5. 文本生成模型

文本生成模型特征一类专门处理序列到序列转换(文本翻译、摘要或文本生成)任务的(神经网络)语言模型。这类模型统一采用编码器-解码器Encoder-Decoder)架构,组合使用两组神经元数量相同的神经网络语言模型,将输入序列转换成长度不一定与其相等的输出序列。如下图所示:
自然语言处理(NLP)之三:语言模型_第2张图片

图2 编码器-解码器(encoder-decoder)结构

其中, 编码器(Encoder) 起语言理解功能,负责将可变长度的输入语句序列 ( x 1 , ⋯   , x T ) (x_1, \cdots, x_T) (x1,,xT) 转换成表示语句含义的等长(隐藏)状态序列 ( h 1 , ⋯   , h T ) (h_1, \cdots, h_T) (h1,,hT)上下文提取器起信息筛选功能,负责将可变长度的(隐藏)状态序列转换成 固定形状的上下文信息向量 C C C,并输出给解码器(Decoder); 解码器(Decoder) 起语言生成功能,负责根据上下文信息向量逐词(逐token)循环产生输出语句。

5.1 文本生成策略

beam search

5.2 Seq2Seq

Seq2Seq 是编码器-解码器(Encoder-Decoder)架构的最初实现,它采用两组LSTM(或GRU)网络作为编码器和解码器完成输入序列转换,且将编码器(Encoder)输出的最后时刻的(隐藏)状态向量 h t h_t ht 作为上下文向量传递给解码器(Decoder)作为初始状态向量 h 0 ′ h_{0^{'}} h0所以Seq2Seq模型中,编码器与解码器的隐藏层的神经元数量相同

具体内容,请参见作者文章:文本生成:Seq2Seq

5.3 加入Attention机制的Seq2Seq

注意力机制(Attention Mechanism)是一种信息筛选方法,可进一步缓解LSTM和GRU中的长期依赖问题。加入注意力机制,可有效增强Sqe2Seq模型的长文本处理能力。

具体内容,请参见作者文章:文本生成:加入注意力(Attention)机制的Seq2Seq

5.4 Transform

改用全连接网络作为编码器和解码器,是彻底解决(无法根除的)RNN网络长期依赖问题的方法之一。使用全连接神经网络作为编码器和解码器的Transform模型,可处理远长于Seq2Seq模型的输入与输出文本(文献阐述:Transform模型最长可有效处理512个token组成的文本序列6)。

具体内容,请参见作者文章:文本生成:Transform

6. 预训练(语言)模型

预训练模型是一种迁移学习策略,它分为两个训练阶段。首先,第一阶段针对特殊设计的预训练任务,采用易获取的大规模无标签语料训练出基础语言模型(是无监督学习,可以较低成本,充分利用大量易获取数据);然后,第二阶段根据指定任务的少量已标记训练数据进行**微调(fine tuning)**训练(是有监督学习),得到适用于具体任务的语言模型,在实际任务中可取得很好的效果。预训练模型的效果由模型结构和预训练任务共同决定

根据预训练任务和模型结构不同,预训练语言模型可分为自回归(Autoregressive)模型和自编码(Autoencoder)模型两类自回归(Autoregressive)模型,是一类对输入文本序列单向可见的语言模型,它根据上文来预测下一个单词,或根据下文来预测上一个单词;可拼接使用两个方向(从左至右和从右至左)的自回归模型,来实现双向语言模型。自编码(Autoencoder)模型,通常又被称为降噪自编码(Denosing Autoencoder)模型,是一类对输入文本序列双向可见的语言模型。它在输入序列中随机掩盖一些单词(相当于加入噪声),然后在预训练过程中根据上下文来预测被掩码单词,可被认为是一个降噪(denosing)的过程。

常见语言模型中,ELMo、GPT系列和XLNet属于自回归模型,BERT、ERINE、RoBERTa等属于自编码模型。

6.1 Bert

6.2 GPT

6.3 XLNet

6.4 Bert的其他变体


  1. 语法规范即:语言惯用的单词搭配习惯 ↩︎

  2. 详见邱锡鹏老师《神经网络与深度学习》一书中的第15.3.1节 深度序列模型的结构 ↩︎

  3. 加权平均的权重,可由注意力机制等方法给出。 ↩︎

  4. 长期依赖问题:由于时间步维度上不可避免的梯度消失现象,较远时刻处的状态信息,对预测本时刻状态不再产生影响。即:预测本时刻状态时,模型记录的较远时刻的状态信息已经丢失。 ↩︎

  5. Chung, J., Gulcehre, C., Cho, K., & Bengio, Y. (2014). Empirical evaluation of gated recurrent neural networks on sequence modeling. arXiv preprint arXiv:1412.3555. ↩︎

  6. Dai Z, Yang Z, Yang Y, et al. Transformer-xl: Attentive language models beyond a fixed-length context[J]. arXiv preprint arXiv:1901.02860, 2019. ↩︎

你可能感兴趣的:(#,自然语言处理,#,深度学习,自然语言处理,语言模型,概率论)