牛伯浩
宁夏大学信息工程学院,宁夏银川 750021
近年来,语言模型中,从前经典的N-gram模型应用比较常见,因其易于实现的特性而使很多科研人员对其的研究充满浓厚的兴趣。研究发现,这种方法其实存在着数据稀疏与缺乏长距离语言约束的问题。随着深度神经网络方法的兴起,越来越多的深度网络变得流行起来。因此,为了解决这些问题,获得长距离信息,基于循环神经网络(RNN) 语言模型被发掘出来[1];但是,由于循环神经网络自身的局限性,在取得长距离的信息时可能会出现梯度下降或者梯度消失的问题。因此,为了应对这一系列的问题,本文在前人的循环神经网络语言模型的研究的基础上,使用长短时记忆神经网络(LSTM) 来尝试改进其预测能力,希望在大词汇连续语言文本识别预测过程中有一定程度的改善。所谓智能预测,就是体现在循环神经网络能够很好地对自然语言进行预测,为了确保精度,提高文本智能预测的准确率,我们的实验主要是借助于长短时记忆神经网络 (LSTM) 来实现。
循环神经网络(Recurrent Neural Networks , RNN) ,也称递归神经网络[1],其最主要的特征就是共享权值W,循环神经网络模型的基本结构如图1所示。
图1 观测系统示意图
如图1所示,就是RNN网络的基本结构图。
输出层:
隐藏层:
式 (1)是输出层的计算公式,式中,x—输入单元,标记为{X0, X1,…,Xt…},其中Xt代表 t 时刻的输入;s—隐含单元,标记为{S0,S1,…,St,…}。
RNN最主要的特征就是体现在隐藏层这边,也可以把隐藏层看作整个网络的一个记忆单元。因此,整个网络模型的应用主要是充分利用了这一特点。在经过一系列的实验之后,我们发现循环神经网络在自然语言处理上取得了很好的结果,尤其像词向量表达、语句合法性检查、词性标注等方面,表现更加突出。
循环神经网络(RNN) 的算法称之为BPTT,包括前向传播和反向传播[3]。整个模型的训练主要是对参数的训练,因为每一层的参数U、V、W都是共享的,因此我们可以假设整个模型每一层的任务都是相同的。这样可以提高我们整个模型的效率。而整个模型的关键就是隐藏层,对于隐藏层的训练在这里是尤为重要的。
前向传播主要就是一个参数前向传递的过程,在这个过程中,既有时间上的前后传递,同时还有一个共享的权重,主要由以下两个公式体现:
循环神经网络能够根据具有相关性语义的输入进行预测输出结果,我们充分利用了循环神经网络的这一特点,实现基于此网络设计实验来实现对文本进行预测。由于循环神经网络的预测结果和人的判断具有一定的相关性,因此,我们就借助此网络实现语言文本的智能预测。由于单纯的递归网络在实际处理问题的过程中并不能达到一个很好地效果,就像一个容易忘记事情的老人,所谓梯度消失,就可以比作是老人忘记事情,这达不到智能预测的要求。为了确保精度,我们尝试了很多方法进行改进,其中一个有明显效果的就是增加网络层数,很显然,网络层数的增加,预测的准确度有所提升,但是在训练的时候,耗时也比较大,那么这时候就需要一个新的方法来平衡精度和效率。这时,双向循环神经网络就应运而生了。其基本原理示意图如图2所示。所谓“双向”就是在原来网络模型的基础上,我们又加了一个共享权值W。很显然,两个共享权值肯定会比一个共享权值的效果好。两个权值一个参与正向计算,一个参与反向计算。更进一步地提高了性能。因此我们的循环神经网络又有了一个新的阶段性的进步。随着人们对性能的要求越来越高,新的模型又不断出现,比如长短时记忆神经网络(LSTM) 。
图2 双向RNN 示意图
在实验的过程中,为了提高智能文本预测的性能,首先尝试了加深循环神经网络的层数,效果确实有了一定的提高,接着,又尝试使用双向循环神经网络,以及改进的循环神经网络如(LSTM) 。最终我们为了达到比较好的智能文本预测效果,选择和(LSTM) 网络相结合,以达到相对较好的效果。因为我们的智能文本预测效果主要是借助于 (LSTM) 网络来实现,因此接下来将对(LSTM) 网络进行重点介绍。
由图3可知, 基于 LSTM (long short term memory, LSTM) 结构的神经网络语言模型和递归神经网络也叫作循环神经网络的语言模型原理一致,区别最大的地方在于隐藏层引入了 LSTM 结构单元。可以说是RNN的一个改进。
图3 LSTM 结构单元图示
输入门 (input gate):一个Sigmoid层,观察ht-1和xt,对于元胞状态ct-1中的每一个元素,输出一个0~1之间的数。具体数字的大小代表我们对输入元素的的保留程度,如果是1表示“我们将该输入信息完全保留”,如果是0表示放弃该信息。
遗忘门(forget gate):我们网络处理之后将数据传到Sigmoid层,在这里我们主要完成的任务是我们要更新哪些信息,然后将信息传递到tanh层,在这里我们主要是根据判断产生新的候选值(结果在(-1,1) 范围)。
输出门(output gate) :我们将处理之后的结果传递到这一层,并输出。
在复杂语言场景中,有用信息的间隔有大有小、长短不一,RNN在实际的操作中可能会遇到各种问题,比如梯度消失和梯度下降[3]。长短时记忆网络的设计就是为了解决这个问题,而循环神经网络被成功应用的关键就是LSTM。在很多的任务上,采用LSTM结构的循环神经网络比标准的循环神经网络表现更好[4]。因此我们接下来的文本智能预测实验主要是借助于LSTM来实现。
语言模型的目的是为了计算一个句子的出现概率。我们先后在deep循环神经网络以及双向循环神经网络,接着是长短时记忆神经网络(LSTM) 进行实验,最后发现在LSTM网络的实验效果相对更好一些,具体是:给出一个单词序列, 然后根据前面的单词来预测接下来的最有可能的结果。在这里把句子看成是单词的序列,于是语言模型需要计算的就是p(w1,w2,w3,…,wn) 。利用语言模型,可以确定哪个单词序列的可能性更大,或者给定若干个单词,可以预测下一个最可能出现的词语。本实验中用TensorFlow训练各类神经网络语言模型:前向神经网络语言模型、循环神经网络语言模型以及基于LSTM 结构的神经网络语言模型。神经网络语言模型迭代次数均为2。从输出可以看出,在迭代开始时perplexity值为10003.783,这基本相当于从1万个单词中随机选择下一个单词。而在训练结束后,在训练数据上的perplexity值降低到了179.420。这表明通过训练过程,将选择下一个单词的范围从1万个减小到了大约180个。通过调整LSTM隐藏层的节点个数和大小以及训练迭代的轮数还可以将perplexity值降到更低。
在文本预测系统中,我们提供的具有的上下文相关性的语料,也就是输入。本文基于LSTM语言模型,研究了这种模型对语言模型的预测功能。实验表明:基于LSTM结构的深度神经网络语言模型性能与之前相比有一定的提高,能够完成对文本信息的筛选,实现文本智能预测的功能。
[1] 文娟.统计语言模型的研究与应用[D].北京:北京邮电大学,2009.
[2] 周长建,司震宇,刑金阁 , 等.基于 Deep Learning 网络安全态势感知建模方法研究 [J]. 东北农业大学学报,2013, 44(5):144-149.
[3] MIKOLOV T,KOMBRINK S,DEORAS A,et al.RNNLM-Recurrent neural network language modeling toolkit[C]/ / Proceeding of the 2011 ASRU Workshop.Waikoloa,Hawaii: Institute of Electrical and Electronic Engineers,2011: 196-201.
[4] 司玉景.递归神经网络在电话语音识别系统中的研究与应用[D].北京:中国科学院大学,2014.
[5] K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In ICLR, 2015.