蔺伟斌 杨世瀚
摘 要:针对传统循环神经网络训练算法无法处理梯度消失和梯度爆炸等问题,基于循环神经网络建立LSTM模型和seq2seq模型,提出时间递归序列模型TRSM,处理序列中间隔和延迟相对较长的输入,使用BPTT反向传播算法对中文微博语料库进行训练。建立三组不同的实验作为对比,实验结果表明,TRSM模型处理后的微博文本更加简洁精炼,更适合文本语义的提取,大大减少了计算量,文字缩减率达到60%以上,语义保持率达到1.8,简化了用户要处理的大量信息,处理后的结果能够更好地用于几个关键中文语义的处理任务。
关键词:短文本信息;文本简化;LSTM模型;TRSM模型;BPTT反向传播算法;循环神经网络
中图分类号:TP391 文献标识码:A 文章编号:2095-1302(2019)05-00-06
0 引 言
随着互联网的高速发展,各种互联网信息(如语音信息、图片信息、文本信息等)也呈爆发式增长。人们每天都能接触到大量多样的信息,如来自新闻报导、博客、微博等各个渠道的文本信息。为了对这些海量信息进行快速、高效地分析与处理,使机器准确理解这些信息,经研究发现,基于高语义保持度的文本简化就是一个可行的方法。所以文本简化逐渐成为人们的重要需求之一,也是自然语言处理领域的热点问题。
目前,文本简化的研究方法大致可以分为抽取型和生成型两种类型。自然语言处理领域的研究员用不同的方式从这两种类型中做文本简化。文献[1]采用Hedge Trimmer句子压缩技术对英文语句进行压缩,划分出原句的语法结构,组织成语法树,再应用一定的语法规则修改语法树的一些组成部分。由于其主要依赖语法规则实现语句简化,可能会忽略原文的某些语义,因此压缩后的句子可能会丢失原句中的一些重要信息。文献[2]提出基于句法规则的新闻稿首句压缩技术,其目的是实现新闻标题的自动生成,采样文本为新闻稿首句,依照句法规则进行压缩,生成更为简洁的新句子作为新闻标题。由于缺少对语义的规则限制,因此会相对减少压缩后新句中核心内容的保留度。文献[3]提出带有LSTM(Long Short-Term Memory)单元的编码-解码器,循环神经网络模型用于提取新闻内容生成标题,根据神经网络计算关键单词的权重,生成摘要时有利于提高核心内容在语义上的保留度。文献[4]提出指针生成网络和覆盖机制处理生成的词语未出现在词汇表中以及生成词的重复问题,其自动生成文本摘要的方法可提高生成句子的语义流畅度,从而提高了对原文内容的语义保留。综上可知,在文本简化中提高语义保持度成为了一个非常重要的研究课题。
本文针对语义保持度,提出时间递归序列模型(Time Recursive Sequence Model,TRSM),结合序列到序列(seq2seq)的框架以及基于循环神经网络长短时记忆模型(LSTM)的方法来处理短文本的语义简化,能够缓解训练中梯度消失和梯度爆炸的问题,同时又能处理序列中间隔和延迟相对较长的输入。该方法采用循环神经网络中的LSTM,能够学习长期依赖信息,通过刻意设计来处理长期依赖问题,从而可以更好地处理向量空间中距离过长的时间序列,并能够对更早时间位置的信息保留记忆。通过实验可以发现,采用该模型能更准确地对文本进行简化。
1 相关工作
1.1 基于循环神经网络的文本简化
人工神經网络[5]技术起源于20世纪60年代,当时被称为感知机,包含输入层、隐含层和输出层。输入层输入的特征向量经过隐含层变换到达输出层,输出层得到具有特征的分类结果。卷积神经网络、循环神经网络、深度神经网络等都属于人工神经网络的分支,其中循环神经网络与其他神经网络的主要区别是输出不仅取决于这一时刻的输入,同时还取决于上一时刻的输出,如图1所示。
其中,t表示时刻,xt是输入层的值,U是输入xt的权重,st是隐含层的值,W是上一时刻隐含层的输出st-1的权重,V是隐含层的输出st的权重,ot是t时刻输出层的值,可用公式表示为:
循环神经网络在自然语言处理领域中应用最广、效果最好。如建立语言模型、新闻标题生成、文本生成、文本简化等。Tomas Mikolov[6]提出的基于RNN的语言模型主要根据循环神经网络处理上下文时没有文本长度的限制,通过各层神经元的循环连接,文本信息可在网络中传递和学习更长的时间。李[3]在新闻标题生成结合RNN的LSTM模型中引入注意力(Attention)机制,当信息输入至编码器(Encoder)后,不再限制编码器输出的向量长度。
1.2 中文语义分析中的文本简化
中文语义分析是自然语言处理领域的众多任务之一。任何对中文的理解都可以认为是属于中文语义分析的范畴。一段文字通常由单词、句子和段落组成,可进一步分解为词汇层面的语义分析、句子层面的语义分析和文本层面的语义分析[7]。语义分析的目的是通过建立有效的语言模型和系统实现每个语言级别(包括词、句子、章节等)的自动语义分析,得到并理解整个文本表达的真实语义。
文本简化是中文语义分析的技术之一,用一段短文本作为输入,经过系统处理后,输出为一小段文本,并且文本语义不变,相对于输入来说文本更加简洁精练,这个过程就叫做文本简化。近年来,文本简化在神经网络技术中的应用越来越广泛,其中使用最多的框架是seq2seq模型。seq2seq是一种编码器-解码器(Decoder)架构,模型如图2所示。
seq2seq模型中,编码器将输入的文本编码为语义表达向量(对应于图2中第4个节点的隐含状态),使用解码器的语义向量输入序列和表达式来生成目标文本序列W-X-Y-Z-〈EOS〉。〈EOS〉表示序列的结尾(End of Sequence),符号表示输入序列或输出序列的结束[8]。解码器接收到〈EOS〉符号后开始解码过程,直到〈EOS〉符号形成标记解码过程结束。本文使用的编码器框架是基于循环神经网络的LSTM模型,解码器框架同样也是LSTM模型。
序列模型是一个字符在逐一处理序列过程中,逐个编码器接收一个输入字符的编码过程,解码器输出在解码过程中逐个字符地产生。原始模型的训练过程中,解码器每接收一个答案中的字符序列(如W),就预测下一个字符输出(如X)。经典的训练目标编码器-解码器架构在编码器输入中给出,解码器的输出能够最大化拟合训练集概率模型中的答案,即最大化数据似然[9]。
2 基于RNN的长短时记忆模型
2.1 把单词表示成词向量(word2vec)
word2vec过程分为三步:数据预处理、分词及训练词向量。
由于计算机无法直接识别自然语言,因此要先把文本中的每个词转化成计算机可以识别的语言,即把单词用词向量表示。采用word2vec构建中文词向量时,word2vec的文本输入是需要分词的,故在PyCharm开发环境下使用jieba工具对文本进行分词。
word2vec中常用的重要模型有CBOW连续词袋模型和Skip-Gram模型,前者是已知上下文预测当前时刻的词,后者是已知当前时刻的词预测上下文。采用语料库训练word2vec模型,得到每个词的词向量表示并保存。
2.2 建立RNN模型RNN模型如图3所示。
由图3可知,隐含层s当前时刻的输出经过权重W之后又返回自身作为下一时刻隐含层的输入。用公式表达为:。其展开模型如图4所示。
在计算s0,即第一个单词的隐含层状态时,需要用到上一时刻的隐含状态st-1,但是这个状态不存在,实现时一般设为0向量。
各隐含层单元相连接,网络在t时刻的输出ot用公式表达为:
对RNN的训练与对传统ANN训练相同,均使用相同的BP误差反向传播算法。而在梯度下降算法中,每个时刻的输出不仅取决于当前网络,还取决于前几个时刻的网络状态。例如,当t=4时,还需要向后传递3个步骤,接下来的3个步骤需要添加各种梯度,这就是BPTT(Backpropagation Through Time)反向传播算法。需要指出的是,在RNN训练中,BPTT不能解决长期依赖问题(即当前输出与之前的长序列有关),一般来说,不要超过10个步骤。当然,有很多方法可以解决这个问题,如LSTM模型。因此,将LSTM模型添加到RNN中,以解决训练中出现梯度消失和梯度爆炸[10]的问题。
2.3 建立LSTM模型
LSTM模型对传统RNN中的隐含层做了一些修改,在一个隐含单元中加入遗忘门(Forget Gate)、输入门(Input Gate)、输出门(Output Gate)和细胞状态(Cell State),如图5所示。
其中,σ是Sigmoid 函数,遗忘门控制上一时刻细胞状态Ct-1传递到当前时刻细胞状态Ct的信息量,bf是前面所有时刻遗忘门的值,公式表示为:
输入门控制当前时刻产生的新信息C't加入到细胞状态Ct的信息量,bi是前面所有时刻新信息的值,bC是前面所有时刻细胞状态的值,公式表示为:
细胞状态根据遗忘门和输入门的输出更新,即上一时刻细胞状态通过遗忘门的输出与输入门的输出(当前时刻的新信息)C't相加,公式表示为:
输出门控制当前时刻已更新的细胞状态传递的信息量,并得到当前时刻隐含单元的输出ht,公式表示为:
LSTM模型主要是增加了遗忘门机制。例如,当有序列输入到模型时,模型可选择在较长时刻的信息中保留重要信息,选择遗忘不重要信息,避免模型一直学习。
2.4 建立seq2seq模型
seq2seq模型主要由编码器和解码器组成,编码器和解码器都由基于循环神经网络的LSTM模型构成,其模型如图6所示。
图6中,h1,h2,…,hn是编码器在每个时刻的隐含层状态,C是经过编码器编码之后的原始语料文本向量,s1,s2,…,sn是解码器在每个时刻的隐含层状态。整个过程是把原始语料数据输入到编码器中进行编码,得出编码器中隐含层的状态映射,即得出文本向量C,然后输入到解码器中进行解码,经过解码器隐含层状态计算后得到序列的输出结果。
3 TRSM模型
TRSM模型是结合基于循环神经网络建立的LSTM模型和seq2seq模型提出的处理文本简化的一种时间序列模型。结合基于LSTM模型的编码器中细胞状态Ct与基于LSTM模型解码器中的输出门ot,训练后得到TRSM模型的输出。公式表示为:
建立好各结构所需模型后,将各模型合并起来,建立TRSM模型。
TRSM模型的建立步骤为:
(1)得到可用的原始语料数据,即使用word2vec对原始语料文本进行向量化处理,得到词向量的结果;
(2)将由步骤(1)得到的词向量作为编码器的输入,联合LSTM模型构成编码器,在编码器中输出隐含层状态的映射,得到文本向量;
(3)采用LSTM模型构成解码器,将由步骤(2)得到的文本向量输入到解码器LSTM模型中,经过隐含层状态计算后得到输出的文本结果。合并各模型后的框架如图7所示。
TRSM模型的优点主要体现在以下几点:
(1)输入。传统循环神经网络模型框架的输入只能是固定大小的词向量输入,本文提出的TRSM模型突破了固定大小输入的问题。
(2)訓练。传统循环神经网络在训练时会出现梯度消失和梯度爆炸等问题,而本文LSTM模型很好地缓解了模型训练中产生的梯度消失和爆炸问题。
但是使用时联合模型也会出现一些不足,如原始数据库的大小对实验结果的影响,训练时各参数的调试对实验结果的影响等。
构建网络模型的训练算法是BPTT反向传播算法,文献[11-12]给出了该算法的详细推导过程,训练的基本思想如下:
(1)正向计算得出每个神经元的输出值,即6个变量ft,it,C't,ot,ht,Ct。
(2)反向计算得出每个神经元的误差项值,分为两个方向:一是网络沿时间序列的反向传播,二是误差项向上一层传播[13]。
前向细胞输出:
后向细胞输出:
(3)根据得出的相应的误差项值,计算得出每个权重的梯度。
在处理全部编码器与解码器过程中,使用梯度优化算法以及最大似然条件概率对损失函数loss值进行模型训练与优化:
4 实验与分析
4.1 测试训练语料库
本文选取NLPIR微博语料库[14],先抽取大约20万条数据进行训练与实验,同时抽取大约100万条数据进行横向对比实验。对两组实验原始语料数据作相同预处理。首先去掉正文插入时间,正文发布时间,转发、来源、评论数目等对实验无影响的因素,同时去掉无用的符号和停用词;然后对过滤后的数据进行分词;再把数据作为输入代入word2vec模型中进行训练,得到每个词的向量表示并输出文件“vector.bin”,计算两个词向量之间的余弦值得出词向量之间的余弦相似度。以输入数据样本作为样例测试词向量训练结果,选取余弦相似度值最靠前的2个作为样本示例,实验结果及余弦相似度比较见表1所列。
4.2 模型参数设置
本文采用PyCharm开发工具,在PyCharm中搭建并安装TensorFlow深度学习工具以及数据处理需要用到的word2vec,jieba分词等工具,调试各代码块功能。同时给模型中的可调参数赋初始值,见表2所列。
参数设置过程伪代码如下:
1.batch_size=256#batch大小
2.num_epochs=200#訓练循环次数
3.seq_length=20#训练步长
4.learning_rate=0.001#学习速率
5.embed_dim=512#embedding layer大小
4.3 实验结果与分析
抽取训练语料库(NLPIR微博语料库)中微博正文长度在50个中文字左右的几条微博作为样本进行3组实验,同时在模型中读出loss值并打印,取第1条微博样本作为对比实验,3组实验设置如下:
(1)原始参数值;
(2)训练循环次数为200~300,其他参数值不变;
(3)学习速率为0.001~0.01,其他参数值不变;
实验结果分别见表3、表4所列。
通过以上实验结果可得:
(1)第1组实验中使用原始参数值,经过模型处理后,输出的语句通顺程度一般,loss值大约为1.87。
(2)第2组实验把原始参数值中的训练循环次数从200增加至300,经过模型处理后,输出的语句通顺程度一般,loss值大约为1.83,相比表1的loss值下降了0.04。
(3)第3组实验把原始参数值中的学习速率从0.001增加至0.01,经过模型处理后,输出的语句通顺程度一般,loss值大约为1.76,相比表1的loss值下降了0.11。
(4)在横向对比实验中,训练数据量由20万增至100万,经过模型处理后,输出的语句通顺程度较为优化,调参后的各组实验中loss值普遍下降,loss值平均下降0.05左右。
文字缩减率横向对比实验结果如图8所示,语义保持率横向对比实验结果如图9所示。
由图8可知,3组实验的文字缩减率分别为67.2%,72.5%,62.5%,文字缩减率都在60%以上,说明实验模型在文本简化的效果中比较显著,文字缩减是实验的前提,体现样本简化的程度,而语义保持是实验的目的。由图9可知,3组实验的语义保持率由模型结果与正文相比较,大致可用实验结果数据中的loss值体现,即3组样本的语义保持程度分别为1.87,1.86,1.81,根据数据可以判断实验模型对正文简化后的语义保持程度一般,对比每组更改后的参数值,训练循环次数和学习速率都能够提升loss值,其中增加训练循环次数,对loss值提升4%,增加学习速率对loss值提升11%,即增加学习速率对loss值的增大效果更为明显,同时也提高了模型输出结果的语义保持率。
横向对比实验中,扩大训练数据的规模至100万,模型输出的语句相比20万训练数据量下的语句较为流畅。扩大训练数据规模的loss值如图10所示,ID1,ID2,ID3在20万训练数据量下loss值分别为1.87,1.86,1.81,在100万训练数据量下loss值分别为1.81,1.80,1.76。由loss值分析可得,随着训练数据量增加,loss值逐渐下降,3组实验下loss值平均下降5%左右,从而表明扩大训练数据量,模型结果更加优化。
综上所述,采用TRSM模型的输出结果已经出现“结婚”“辛苦”“迅速”“祝福新人幸福”这样的词语和短句,说明该模型在微博正文简化中是有效的。通过以上3组实验结果以及横向对比实验,可分析得出:调试模型参数值及扩大训练数据量能够影响到模型的输出结果;增加训练循环次数、增大学习速率值可减小loss值;但模型输出的语句通顺程度与loss值的下降程度不算可观,除参数值这个影响因素外,还可能存在其他影响因素,如训练语料库的数据量不够大等。由此可见,TRSM模型在处理文本简化方面具有可行性与可靠性,对于如何提高可靠性以及实验结果,将成为今后需要进行的工作。
5 结 语
本文基于循环神经网络的LSTM模型与seq2seq模型的复合提出时间递归序列模型TRSM,缓解了训练中梯度消失与梯度爆炸的问题,同时又能处理序列中间隔与延迟相对较长的输入。针对实验所需微博语料数据,对用户的微博内容进行语义分析与简化,测试、验证语料库的训练,通过对模型参数的调试,优化训练算法与实验结果,得到了文本简化方面可行且可信的结果,为方便处理各种中文语义任务提供了高效的预处理机制,平均文字缩减率达到60%以上,语义保持度达到1.8左右。
未来的工作是继续扩大训练的语料库,增至500万甚至1 000万级别,并扩展数据长度,引入注意力机制等,进一步提高实验的精度与可信度,并评估其对后续中文语义处理任务的优化程度。
参 考 文 献
[1]景秀丽.Hedge Trimmer句子压缩技术的算法实现及改进[J].沈阳师范大学学报(自然科学版),2012,30(4):519-524.
[2] DAVID B D,ZAJIC D.Hedge Trimmer: a parse and trim approach to headline generation[J]. Proceedings of the HLT-NAACL,2003(3):1-8.
[3]李慧,陳红倩.结合注意力机制的新闻标题生成模型[J].山西大学学报(自然科学版),2017,40(4):670-675.
[4]庞超.神经网络在新闻标题生成中的研究[D]. 北京:北京交通大学,2018.
[5]朱大奇.人工神经网络研究现状及其展望[J]. 江南大学学报(自然科学版),2004,3(1):103-110.
[6] MIKOLOV T ,MARTIN KARAFI?T,BURGET L ,et al.Recurrent neural network based language model[C]// Interspeech,Conference of the International Speech Communication Association,Makuhari,Chiba,Japan,September. DBLP,2015.
[7]神州泰岳.人工智能中的语义分析技术及其应用[J].软件和集成电路,2017(4):42-47.
[8] CHENG J P,LAPATA M.Neural summarization by extracting sentences and words[J].Computer science,2016(3):484-494.
[9] HU B,CHEN Q,ZHU F. LCSTS: a large scale chinese short text summarization dataset[J].Computer science,2015(7):2667-2671.
[10] PASCANU R,MIKOLOV T,BENGIO Y.On the difficulty of training recurrent neural networks[C]// International Conference on Machine Learning.JMLR.org,2013.
[11] CHELBA C,MIKOLOV T,SCHUSTER M.One billion word benchmark for measuring progress in statistical language models based on neural networks[J].Computer science,2013(12):34-39.
[12] BODEN M.A Guide to recurrent neural networks and backpropagation[Z].2002.
[13] GRAVES A.Supervised sequence labelling with recurrent neural networks[Z].Studies in computational intelligence,2008.
[14] NLPIR微博语料库.自然语言处理与信息检索共享平台[OL].http://www.nlpir.org.