目录
一、语言建模中的统计语言模型
1)计算单词序列语句出现的概率:
2)预测下一个词出现的概率:
实现上述功能的模型称为语言模型(LM,language model)。
二、从统计语言模型到ngram语言模型
马尔可夫假设认为,随意一个词出现的概率只与它前面出现的有限的一个或者几个词有关。
2、优点
1) 采用极大似然估计,参数易训练;2) 完全包含了前 n-1 个词的全部信息;3) 可解释性强,直观易理解。
3、缺点
1) 缺乏长期依赖,只能建模到前 n-1 个词;2) 随着 n 的增大,参数空间呈指数增长;3) 数据稀疏,难免会出现OOV的问题;4) 单纯的基于统计频次,泛化能力差。
三、从ngram语言模型到NNLM神经语言模型
Bengio 等人在 2003 年提出了一个神经网络语言模型NNML,该语言模型使用了一三层前馈神经网络来进行建模。
2、优点
1)长距离依赖,具有更强的约束性;2)避免了数据稀疏所带来的OOV问题;3)好的词表征能够提高模型泛化能力。
3、缺点
1)仅包含了有限的前文信息;2)无法解决长距离依赖;3)模型训练时间长;4)神经网络黑盒子,5)可解释性较差。
四、从NNLM神经语言模型到循环神经语言模型
循环神经网络(RNN),LSTM,GRU
RNN
为了刻画一个序列当前的输出与之前信息的关系,利用之前的信息影响后面结点的输出,以解决时间序列输入输出问题。
缺点:它能够处理一定的短期依赖,但无法处理长期依赖问题。
当序列较长时,序列后部的梯度很难反向传播到前面的序列,比如10个元素以前,这就产生了梯度消失问题。此外,由于RNN本时刻的隐藏层信息只来源于当前输入和上一时刻的隐藏层信息,没有记忆功能。
LSTM
为了解决RNN的长期依赖和梯度消失问题。
GRU
为了加快lSTM的训练速度,GRU作为LSTM的一种变体被提出。
循环神经网络优点
循环神经语言模型能够比NNLM前馈神经网络相比,捕捉到了上下文的语义信息,在一定程度上解决了序列的长期依赖问题。
循环神经网络缺点
循环神经语言模型能够解决序列的长期依赖问题,但是对于很长的序列(一般长度超过30),L效果也难以让人满意,所以在处理更精确和更长文本的问题上还稍微欠缺。
五、从循环神经语言模型到注意力机制的预训练语言模型
为了更好的捕捉长距离信息,可以探索一种更强的语言模型方法,即引入注意力机制,用来在长文本中刻画词语之间的相关性分配。并引申出了以transformer结构为基石的预训练语言模型。
Transformer
Transformer是由一组编码Encode组件和Decoder组件组成的特征抽取器,编码器获取输入序列并将其映射到表示整个序列的单个潜在向量,然后将该向量传递给解码器,解码器将其取出到所需的目标序列。
特点:位置embedding、多头自注意力机制。
GPT
在Transformer的基础上进行了改进。
使用更强大的利用自注意力(self-attention)机制的Transformer解码器(即Transformer的Decoder部分)作为特征抽取器,Decoder使用Masked Multi Self Attention 屏蔽了单词的后面内容,所以是现成的语言模型,这是实现单向的关键,也是GPT作为生成式模型的重要原因;只选用利用上文预测下文进行单向语言训练。
缺点:GPT语言模型都是采用单向语言模型来学习的语言表示问题,并不能充分利用到双向信息。
BERT
BERT进一步使用了基于双向的训练方法,并在GPT和ELMO的基础上做了多种改进。
采用Transformer编码器(与解码器不同,模型所有上下层全部互相相连);
改进地方:
提出遮挡语言模型(MLM):即在输入的词序列中,随机的挡上15%的词,然后预测挡上的这些词,如此一来,MLM可以从任何方向去预测这些挡上的词,真正实现双向,这一想法与完形填空的思想很类似;
提出预测下一个句子(NSP)任务:即针对传统语言模型并没有对句子之间的关系进行学习的问题,两个任务同时训练,整个预训练的目标函数就变成了两个任务的取和求似然。
预训练模型优点
引入注意力机制的预训练语言模型,能够比NNLM解决序列的长期依赖问题,并且能够捕捉出更丰富的上下文特征,这在现有的方法里最程度地缓解了上述ngram语言模型的稀疏性、泛化性以及长依赖性不足的问题。
Bert预训练语言模型还进一步推出MML语言模型和其他任务一起训练,进行了多样化的延伸,意义也十分重大,使得捕捉到的知识信息越来越丰富。
预训练模型缺点
众所周知,对于工业落地来说,参数太多,模型复杂度高,模型太重,训练成本高以及黑盒程度加深是当前预训练语言模型的劣势。
总结
统计语言模型语言模型(Language Model),是当前非规则自然语言处理的根基。
本文主要介绍了语言模型的简单发展脉络,其本质目标没有变,都在估算P(wi|w1,w2,...,wi−1)。
先后出现的ngram语言模型,nnlm前馈神经语言模型,循环神经语言模型,并最终形成当前大火的Bert预训练语言模型都是有脉络可寻的,都是为了逐步解决前者的不足而展开的。