从统计语言模型到预训练语言模型---神经网络语言模型

随着神经网络的发展,神经语言模型(Neural Network Language Models,NNLM)展现出了比统计语言模型更强的学习能力,克服了N-gram语言模型的维度灾难,并且大大提升了传统语言模型的性能。神经网络先进的结构使其能有效的建模长距离上下文依赖,以词向量(Word Embedding)为代表的分布式表示的语言模型,深刻地影响了自然语言处理领域的其他模型与应用。

从统计语言模型到预训练语言模型---神经网络语言模型_第1张图片

神经网络语言模型的主要代表

前馈神经网络语言模型

在具体实现上,前馈神经网络语言模型与N-gram语言模型计算条件概率的方法是简单的用词频做除法然后归一化不同,该方法将所考虑的问题建模后先为其构造一个目标函数,然后对这个目标函数进行优化,从而求得一组最优的参数(即上述的参数量),最后再利用这组参数对应的模型来预测整个句子成立的概率。利用最大化对数似然,将目标函数设计为:

从统计语言模型到预训练语言模型---神经网络语言模型_第2张图片

其中,Context代表词w的上下文,对应N-gram就是词w的前N-1个词,θ为待定参数集,这样将计算所有的条件概率转化为了最优化目标函数,求解得到θ的过程。 因此,通过选取合适模型可以使得θ参数的个数远小于N-gram模型中参数的个数,这可以解决参数解的问题;利用神经网络最后一层的softmax进行归一化求解,得到的概率是平滑的,也解决了语言模型稀疏性的问题。前馈神经网络语言模型沿用了马尔可夫假设,即下一时刻的词只与过去n-1个词相关,通过将词映射到低维向量,从而解决了维度灾难问题。其主要由输入层、隐藏层和输出层构成。在输入层中,由文本组成的词序列转化为模型可接受的低维稠密向量。先给每个词在连续空间中赋予一个向量(词向量),再通过神经网络去学习这种分布式表征。

从统计语言模型到预训练语言模型---神经网络语言模型_第3张图片

前馈神经网络语言模型示例

  • 优点:利用神经网络去建模当前词出现的概率与其前n-1个词之间的约束关系,但这种方式相比n-gram具有更好的泛化能力,只要词表征足够好,从而很大程度地降低了数据稀疏带来的问题。尽管与统计语言模型的直观性相比,神经网络的黑盒子特性决定了NNLM的可解释性较差,但这并不妨碍其成为一种非常好的概率分布建模方式。总结起来,优点可以是1)长距离依赖,具有更强的约束性;2)避免了数据稀疏所带来的OOV问题;3)好的词表征能够提高模型泛化能力。

  • 缺点:这个结构的缺点也比较明显,仅包含了有限的前文信息,并且无法解决长距离依赖。并且,模型训练时间长;神经网络黑盒子,可解释性较差。

循环神经网络语言模型

在语言的应用场景中,固定长度的历史并不总能提供有效信息,有时候需要依赖长期历史才能有效完成任务,这时就需要新的神经网络模型来处理长序列问题了。举例来说,对于以下这个长序列,采用较短的固定长度的历史就无法判断后面的“他”是指“小李”,

添加图片注释,不超过 140 字(可选)

为了解决定长信息依赖的问题,Mikolov 于2010年发表的论文 Recurrent neural network based language model 正式揭开了循环神经网络(RNN:Recurrent Neural Network)在语言模型中的强大历程,并随后出现LSTM、GRU等变体。 而循环神经网络(RNN)在处理序列信息时具有优势,其上一时刻的模型隐藏层状态会作为当前时刻模型的输入,因此每一时刻的隐藏层状态都会维护所有过去词的信息。因此循环神经网络语言模型不再基于马尔可夫假设,每个时刻的单词都会考虑到过去所有时刻的单词,词之间的依赖通过隐藏层状态来获取。不过尽管如此,循环神经网络在处理长序列时可能会遇到梯度消失或梯度爆炸的问题导致训练失效。当序列较长时,序列后部的梯度很难反向传播到前面的序列,比如10个元素以前,这就产生了梯度消失问题。对于梯度爆炸可以采用算法来控制梯度上线,也就是所谓的“梯度裁剪”。而对于梯度消失,则需要采用一些使用了特殊门控组件的循环神经网络,也就是所谓的 Gated RNN。

从统计语言模型到预训练语言模型---神经网络语言模型_第4张图片

循环神经网络语言模型

长短期记忆神经网络语言模型

为了解决RNN的长期依赖和梯度消失问题,LSTM被提出。长短期记忆神经网络(Long Short-Term Memory,LSTM)是一种 Gated RNN,适合被用于处理和预测时间序列中间隔和延迟非常长的重要事件。

标准的RNN 中只包含着单个tanh 层的重复模块,而 LSTM 存在着更多以特殊方式进行交互的神经网络。这些特殊模块可以决定信息的遗忘和记忆,实现对重要信息的长期记忆。

从统计语言模型到预训练语言模型---神经网络语言模型_第5张图片

长短期记忆神经网络语言模型

相比于原始的 RNN 的隐层 (hidden state),LSTM 增加了一个细胞状态 Ct(cell state),这是信息记忆的地方, 从每个单元中流过时,通过控制门来决定信息的增删。LSTM 的门结构主要有 3 个,为“遗忘门”,“输入门”和 “输出门”。通过门控组件来决定什么信息需要被长期记忆,而哪些信息则是不重要的可以遗忘的,以此保持长期记忆的能力。遗忘门结合上一隐藏层状态值和当前输入,通过sigmoid函数,决定舍弃哪些旧信息;输入门和tanh决定从上一时刻隐藏层激活值和当前输入值中保存哪些新信息,输出门结合tanh决定上一时刻隐藏层激活值、当前输入值以及当前细胞状态中哪些信息输出为本时刻的隐藏层状态。

打一个比较通俗的比方,RNN 就像只依靠记忆,对最近发生的事情印象深刻,但很容易遗忘过去比较久的事情。LSTM 就像借助一个日记本来辅助记忆,可以把想要记住的信息写在日记里(输入门),但是由于本子的大小是有限的,因此需要擦除一些不必要的记忆(遗忘门),这样来维持长期的记忆。

PS:欢迎扫码关注微信公众号^-^.

从统计语言模型到预训练语言模型---神经网络语言模型_第6张图片

你可能感兴趣的:(大语言模型,语言模型,神经网络,人工智能)