曹春萍,武 婷
(上海理工大学 光电信息与计算机工程学院,上海 200082)
近年来,随着社交网络愈来愈繁荣,如何从海量文本中进行信息提取受到越来越多的关注。文本过滤作为更多文本分析的前序工作,成为了自然语言处理工作的研究热点之一[1]。随着互联网进入Web 2.0时代,互联网用户使用网络分享知识、经验、意见、感受等,越来越多的主观性评论文章充斥网络。与科学性文章不同,评论性文章不仅包含多个主题而且含有很多与主题无关的句子,过滤掉这些句子可以提高后续文本分析的效率,所以对评论性文章内容进行文本过滤是进行文本分析中很重要的一步。目前对文本过滤的研究已经有很多,但是在长文本过滤方面仍存在一些亟待解决的问题,如多主题、句子间语义关联等问题造成长文本过滤困难。因此,对评论性文章进行文本过滤依然具有很大的研究价值。
为了从文本中筛选出有用的信息,越来越多的学者采用自然语言处理技术进行文本过滤。传统的基于规则的过滤方法,性能好坏依赖于复杂的人工规则和特征工程[2]。评论性文章内容冗长杂乱,领域性不强等特点使得设计规则和提取特征都非常困难。此外,每个文本都有对应的主题,利用主题模型可以提取文本主题,根据文本主题进行过滤,虽然采用机器学习的方法能在主题分类达到很好的效果,但是仍然依赖人工抽取特征,对专家经验要求较高[3]。深度神经网络模型在自然语言处理方面的巨大成功,使得研究人员将其应用于文本过滤。深度神经网络具有强大的特征学习能力,能够克服人工特征抽取的困难[4]。但是对于评论性长文本过滤,不同的模型和数据处理方法会对过滤效果产生不同的影响。
文中主要针对的是评论性文章多主题且句子语义关联造成的长文本过滤困难的问题。多主题是指一篇文章中涉及到多个主题,如游记中通常会有景色、住宿、美食和交通等多个主题;如果使用传统主题模型进行过滤,可能会把具有语义关联的句子筛选掉,这样会影响后续的方面级情感分析工作。因此,需要采用新方法来提高长文本过滤的准确率。对此,文中提出结合单层神经网络和具有两个隐藏层的长短记忆网络的深度网络模型(A-HLSTM)用于长文本过滤任务中,利用其可以进行多主题分类及上下文语义分析的能力,完成评论性文章的过滤。
传统的文本过滤方法主要分为两大类,基于规则的过滤方法和基于统计的过滤方法[5]。其中基于规则的过滤方法是专家根据需求设置匹配规则,然后通过实验反馈的信息完善规则[6]。基于统计的方法利用人工标注的语料库,通过统计经验的理论进行文本过滤[7]。早期的方法存在很多缺点,例如规则的制定需要依靠很多专家的经验,且有的特征可能考虑的并不全面,另外这些模型计算和语料库的规模成正比,计算量很大,效率很低。
随着机器学习在自然语言中的广泛应用,许多学者将机器学习技术应用于文本过滤。一些学者将此问题看作多分类问题,通常使用支持向量机(SVM)、k近邻分类算法等。文献[8]在涉恐信息文本的研究中将文本过滤视为分类问题,采用k近邻分类算法进行过滤;文献[9]提出基于主题分类的文本过滤方法,筛选出文本内容的最优特征项集合,利用SVM分类技术过滤。文献[1]利用文本分类系统创建特定领域过滤器,减少了手动注释的训练数据量。以上几种方法都不能体现语义,导致文本相似度计算一直很低,因此,一些学者又提出了基于语义的文本过滤方法。文献[10]提出了多词-贝叶斯分类算法,将词与词之间的关系作为重要参考项,克服了传统分类器对语义分析的忽视;文献[11]提出基于多谓词语义框架文本过滤算法,利用文本依存句法分析进行语义分析,提高了文本过滤的准确率。这些方法虽然对文本过滤的准确率有所提高,但不能发现深层次特征并且算法计算量较大,计算时间很长,导致算法的计算效率很低。
最近,深度学习在自然语言处理方面的巨大成功使得研究人员将其应用于文本过滤,因为它可以从大量数据训练中学习并判别特征,并且可以考虑到整体上下文信息。然而,对于深度学习在评论性文章这类长文本过滤的研究很少,但深度学习在其他自然语言处理中的应用给了笔者很大的启发。众所周知,好的词向量作为输入可以改善神经网络模型,Pennington等提出的GloVe词向量构造了一个全局的词共现矩阵,能够融合文本的全局信息和局部上下文信息[12]。目前,用于自然语言处理的神经网络模型主要是RNN和LSTM,RNN可以考虑序列的上下文信息,但RNN在训练过程中梯度向量的分量可能会在长序列上指数增长或消失[13]。LSTM可以解决RNN的梯度问题,但仍然会忘记距离当前序列较远的信息,尤其在处理长文本任务中这个问题更加明显[14]。为了能存储更远距离的信息,各种模型被用来提高LSTM存储远程信息的能力。例如,文献[15]提出将外部存储器加入LSTM中,但外部存储器矩阵庞大,性能不佳;文献[16]提出基于注意力机制的双向LSTM来处理文档级情感分析任务;文献[17]提出了缓存长短记忆神经网络(CLSTM)模型,引入缓存机制来捕获长文本中的整体语义信息。
综上所述,这些都是基于一层LSTM并对其结构稍加改变。受这些研究的启发,文中提出结合单层神经网络和分层长短记忆网络的深度网络模型用于长文本过滤任务中。利用词语层LSTM网络模型可以得到具有语义的句向量,第二层主题依赖度计算模型、句子层LSTM网络以第一层得到的句向量作为输入,既可以获得句子与各主题类别的依赖度,同时也通过句子层LSTM网络挖掘整个文章中的长距离依赖关系,有效提高长文本过滤的性能。
评论性长文本过滤问题主要是在评论性文章中将无主题且与其他句子语义关联低的句子过滤掉。文中旨在研究如何能更好地对长文本进行过滤,主要用LSTM模型提取词语间的语义形成句向量,然后进行主题判断和语义关联。模型的整体框架如图1所示。
图1 长文本过滤结构
数据处理的第一步是将预处理后的全部数据进行分词,然后用GloVe进行词向量训练,将训练好的词向量作为第一层LSTM模块的输入;接着将词向量经过LSTM模型进行训练,得到具有语义的句向量,并将此句向量分别作为主题依赖度计算模型和句子层LSTM的输入;然后通过主题依赖度模型计算,得到句子于主题类别的概率;经过句子层LSTM进一步得到完整的句子语义关系表示;最后综合考虑主题依赖和语义关联两个因素实现长文本过滤。
模型的第一层是LSTM模块,该层主要用来接收最初的词向量数据,将游记文本语料库中的词语用GloVe训练得到词向量表示,通过LSTM模型训练后得到连续的句向量。如图2所示,LSTM主要包含三个门单元(输入门、输出门、遗忘门)和一个记忆单元。
图2 LSTM标准结构
一般地,每个LSTM单元的计算公式如下:
ft=σ(Wfxt+Ufht-1+bf)
(1)
it=σ(Wixt+Uiht-1+bi)
(2)
ot=σ(Woxt+Uoht-1+bo)
(3)
(4)
(5)
ht=ottanh(ct)
(6)
其中,σ表示sigmod激活函数;tanh表示双曲正切激活函数;Wf、Wi、Wo、Uf、Ui、Uo分别表示输入门、忘记门、输出门的权重矩阵;bf、bi、bo表示输入门、忘记门、输出门的偏置向量;ht表示t时刻的输出。
词语层LSTM接收一个以词语为单位的句子作为网络的序列化输入,每个LSTM单元的输入由上个单元隐藏层的输出和本次输入的词向量组成,词语层LSTM可以得到句子内部词语之间的相互关系。文中提出的词语层LSTM网络结构如图3所示。
图3 词语层LSTM结构
模型的第二层的第一部分是主题依赖度计算层,用来将句子与其所属主题类别以加权的形式联接,再通过softmax函数得到句子对于类别的概率分布,即句子的主题依赖度向量。
图4所示的主题依赖度计算模型实际上是基于单层神经网络的softmax分类器,输入为句向量,输出是句向量对于主题类别的概率。图模型的输入为词语层LSTM训练得到的句向量,输出Y是一维实向量,Y的计算公式为
Y=W·si+b
(7)
其中,W是权重矩阵,b为偏置项。
图4 主题依赖度计算模型
输出Y经过sigmoid及softmax函数,得到属于各类别的概率。softmax的输出公式为:
(8)
模型第二层的另一部分是句子层LSTM网络,用来对句子关系进行编码。词语层LSTM网络可以有效获取句子内部词语之间的关系,但对于评论性文档长距离语义关联的问题,仅仅依靠词语层LSTM网络难以正确识别句子间的语义关系,因此,文中使用句子层LSTM来进一步挖掘句子之间的依赖关系。将词语层LSTM输出的句向量作为句子层LSTM的输入,得到的隐藏层输出矩阵作为文档表示,文档表示被用作文档级语义关联的特征,将其馈送到输出长度为关联等级的线性层,并添加softmax层输出语义强关联、弱关联、不关联的概率。softmax函数计算如式9所示,其中C是语义关联程度划分。
(9)
句子的过滤度值综合考虑句子属于主题类别的概率值和语义关联度,过滤度越低,这类句子对后续文本分析任务的贡献度也较低。为了提高后续文本分析任务的效率,因此需要过滤掉过滤度值低的句子。经过前两个模块的训练,已经得到了每个句子主题依赖度和语义关联度,文中提出将主题依赖度向量的均方差与语义关联度之和作为过滤度,对于句子s,其过滤度计算如下:
(10)
其中,k为主题类别数;atti[r]为si对主题类别r的依赖度;a为主题依赖度均值,为1/k;di为句子语义关联度。
文中设置超参数threshold来控制过滤度,在实验中使用交叉验证法来更新threshold对比其对过滤效果的影响。
文中通过随机梯度下降进行模型训练,其中损失函数是监督交叉熵误差。要避免出现过度拟合,过度拟合意味着模型将训练数据(包括噪声数据)进行超分割,从而获得最低成本。但是,总体规律会被忽略,对于未知数据,如测试数据,该模型不能很好地执行。为了克服这一问题,文中在所有参数中加入L2正则化,用于限制权重的大小,使得模型不能随机拟合训练数据中的随机噪声。设y是待过滤句子的预测类别,z是待过滤句子的实际类别。训练目标是尽量减少所有训练文本中y和z之间的交叉熵误差。
(11)
通过使用网络爬虫软件在马蜂窝上采集了关于上海的游记2 000篇,并使用Stanford CoreNLP进行标记和分词,并将数据集分为80/10/10用于训练、验证和测试。训练集主要用于训练模型、避免过度拟合,使用验证数据集来进一步确定模型的参数并在不同的参数下评估模型过滤效果,不能根据测试集的结果调整参数。
对于参数配置,使用GloVe词向量来初始化实验数据中的词向量,其中每个词向量为300维的连续值。对于模型初始化,从均匀分布[-0.1,0.1]之间随机采样初始化所有矩阵,并使用随机梯度下降法来更新所有参数。文中使用Adagrad作为优化器,其初始学习率设置为0.01。
将文中方法和机器学习算法以及典型的机器学习和神经网络模型进行了对比实验:
(1)NB(Naïve Bayesian,朴素贝叶斯):朴素贝叶斯是一种常见的机器学习分类算法,使用词袋模型收集特征。
(2)SVM(Support Vector Machine,支持向量机):文中对文献[9]提出的SVM算法加以修改,使用词袋模型收集特征并且使用LibLinear训练SVM分类器。
(3)RNN:文献[13]提出的RNN是对连续文本进行建模的基本方法。
(4)LSTM:文献[14]提出的LSTM是具有存储单元和三个门机制的递归神经网络。
(5)2-layer LSTM:文献[16]提出的2-layer LSTM模型中,为了让第二层LSTM捕获输入序列的长期依赖关系,第一层LSTM单元的隐藏层输出矩阵在同一时间步骤中输入第二层LSTM中。
(6)CLSTM:文献[17]提出的CLSTM旨在通过缓存机制捕获远程信息,它将存储器分为若干组,并且不同的遗忘率(过滤器)分成不同的组。
3.4.1 不同模型对比实验结果分析
文中使用准确度和MSE(mean square error,均方误差)来评估模型,其中准确度是衡量文本过滤的标准指标。MSE是一种测量平均误差的便捷方法。由此,通过评估数据的变化度,MSE值越小,表明实验模型的可靠性越高。
(12)
文中对比了不同模型下长文本过滤的准确度和MSE,结果如表1所示。
表1 不同模型下长文本过滤的准确度和MSE
从表1可以发现:
(1)对比了两种机器学习算法(NB和SVM),可以发现SVM比NB有更好的过滤效果。机器学习方法几乎能达到LSTM相同的效果,但它需要大量的特征工程。标记有效特征是一项非常基础的工作,机器学习分类器的性能很大程度上取决于数据表示和特征的选择,但神经网络模型可以根据数据的特征自动学习,这是它被广泛应用的原因。
(2)在循环神经网络中,由于梯度消失问题,RNN在长文本建模方面表现最差。相比而言,LSTM有更好的性能,这表明内部存储器和三个门的结构在长文本建模中的作用很关键。
(3)提出的A-HLSTM深度分层网络模型具有最佳性能,比Bi-LSTM提升了1.4%。
(4)在双向体系结构中,长文本模型可以向前和向后捕获特征,因此,Bi-LSTM比单向模型具有更好的性能。在双向模型中,文中模型具有良好的性能,准确度达到46.3%。
(5)在时间复杂度和参数数量方面,A-HLSTM和2-layer LSTM都有两个隐藏层,但A-HLSTM比2-layer LSTM需要更少的计算资源,却达到了更高的准确率。与完全连通层比,该模型仅使用第一层输出的句子向量作为第二层的输入,因此该模型具有较少的参数和计算时间。
3.4.2 threshold值对文本过滤的影响
图5是用文中算法进行过滤后的文本长度、句子数占过滤前文本的比例随threshold的变化情况。实验结果表明,当threshold为3.1×10-4时,没有任何句子被过滤;当threshold为5.0×10-4时,过滤后的文本长度是过滤前的42.13%,过滤后的句子数是过滤前的42.49%,并且文本长度变化和句子数变化趋势基本一致,说明文中算法过滤质量较好,没有出现集中过滤短句或者长句的现象。
图5 threshold值对文本过滤的影响
3.4.3 词向量的影响
众所周知,神经网络的输入是词向量,词向量的选择对优秀的文档表示至关重要。为了了解不同词向量对模型的影响,文中选择随机初始化向量,word2vec模型(CBOW和Skipgram)和GolVe在两种模型(LSTM和A-HLSTM)上做了对比实验。所有词向量都是300维,结果见表2
表2 不同词向量下LSTM,A-HLSTM的文本过滤准确率
从表2中可以发现,word2vec和GloVe比随机初始化向量表现更优。这表明上下文信息对词向量学习的重要性。此外,还可以看出GloVe在这两个模型上的准确度略有提高,这充分说明一个好的词向量需要考虑全局上下文信息。
文中还对比了不同维度的GloVe向量(50/100/200/300)。表3和表4分别给出文本过滤准确度和时间成本,可以发现200维词向量比50和100维表现更好,而300维词向量没有显著改进。此外,A-HLSTM比LSTM花费更多的时间,因为A-HLSTM的参数数量更多,但它们有更高的准确率。
表3 不同维度GloVe词向量下LSTM、A-HLSTM的文本过滤准确率
表4 不同维度GloVe词向量下LSTM、A-HLSTM的训练时间成本(单位:分钟)
社交网络上存在大量的分享个人经验的长文本,如游记等,这些长文本与专业文献不同,主题类别多且语义间的关联性强。因此,为了更好地进行下一步的方面级情感分析工作,先对其进行文本过滤。首先通过词语层LSTM网络获得句子内部词语之间的关系并得到具有语义的句向量,然后将句向量输入主题依赖度计算模型和句子层LSTM网络模型,进而得到句子与各主题类别的依赖度以及待过滤句子与其他句子之间的关联。最后在游记数据集上进行了实验,实验结果验证了文中模型的有效性。