摘要
针对传统长短时记忆网络(long short-term memory,LSTM)在文本分类中无法自动选取最重要潜在语义因素的问题,提出一种改进的LSTM模型。首先,将传统LSTM的运算关系拓展为双向模式,使网络充分记忆输入特征词的前后关联关系;然后在输出层前面增加池化层,以便更好选择找到最重要的潜在语义因素。互联网电影资料库评论数据实验结果表明,该模型优于传统长短时记忆神经网络以及其他同类模型,揭示了改进方案对提高文本分类准确率是有效的。
随着互联网行业蓬勃发展,大数据进入人们生活。在大数据时代,数据有着多样的表达方式,如最传统的文本格式,能直观获取信息的图片格式,深受喜爱的短视频形式,节约时间成本的语音格式等。其中,文本作为信息的一种重要承载方式,相对于其他信息载体,具有容量小,方便存储和管理的特点。但是,文本无法像图像、视频或语音等直观表示其内在含义,更多依靠人工阅读理解才能得到含义,然而在如今海量的文本信息中,人工实现对文本内容定义十分困难。因此,在海量文本信息中,快速提取人们所需尤为重
文本分类中一个重要问题是特征表
针对以上传统LSTM分类模型的不足,笔者提出一种带池化层的双向LSTM模型(Bi-LSTM-pooling)。首先将传统LSTM扩展为双向LSTM(即BiLSTM)。与传统LSTM相比,他可以更加准确地捕捉文本序列中上下文之间的关联关系,以便在学习单词表示时尽可能准确地捕获上下文信息。其次,在BiLSTM的输出层之前引入池化层。实验采用最大池化层对文本提取的特征进行判断,分辨特征的分类效果,从而提出文本中对分类更关键成分。该模型可融合循环神经网络和卷积神经网络的优点。互联网电影资料库(IMDB)评论数据实验结果表明,该模型的分类性能优于传统长短时记忆网络,从而验证了改进措施的有效性。
针对特定任务文本分类的递归神经网络,神经模型的主要作用是将变长文本表示为固定长度的向量。循环神经网络(RNN)处理任意长度的序列一般使用递归方法,使用转换函数与输入序列的内部隐藏状态向量相结合,起到处理作用,循环神经网络的结构如

图1 循环神经网络RNN结构图
Fig.1 RNN structure diagram of recurrent neural network
是一个n维向量,每一个代表一个词向量,是时间处的记忆
, | (1) |
代表时刻的隐藏状态,一般使用非线性的函数作为转换函数,如等函数,为隐藏层到隐藏层的权重
, | (2) |
其中:代表时刻的输出;一般为函数;为隐藏层到输出层的权重
, | (3) |
利用和的变换,将状态转换函数作为元素非线性的组成,建模序列使用将输入序列映射到固定大小的向量,将该向量馈送到一个分类的层。然而具有这种形式的转换函数的RNN有一个问题,在训练过程中,梯度向量的分量可以在长序列上呈指数增长或衰减。这一爆炸或消失的问题RNN模型很难在序列中学习长距离相关。
Hochreiter和Schmidhuber提出了长期短期记忆网
, | (5) |
, | (6) |
输入门是在遗忘门进行遗忘后,进行补充的部分,主要负责处理当前序列位置的输入,由2部分组成:用激活函数,输出为;用激活函数,输出为,结果进行相乘来更新细胞状态。
为解决无法编码从后到前的信息问题,使用Bi-LSTM模型进行改进,此模型可以更好捕捉双向的语义依赖。
在改进中,改进模型的输入是文档,是单词的序列,输出是分类结果。使用来表示文档为k类的概率,是模型中的参数。结合一个词和它的上下文来表示一个词。上下文有助于获得更精确的词义,在模型中,使用双向长短时记忆网络来对文本的整体进行信息的提取。将定义为单词的左上下文,将定义为单词的右上下文。和都是有实值向量。单词的左侧上下文使用
, | (11) |
。 | (12) |
通过和来提取文本中的信息,定义了的表示。在
。 | (13) |
循环结构可以在文本的前向扫描中获得所有,在文本的后向扫描中获得。时间复杂度为。在获得单词的表示之后,将线性变换与激活函数一起应用到,并将结果发送到下一层。
, | (14) |
是一个潜在的语义向量,在这个向量中,每一个语义因子都会被分析,以确定最有用的表示文本的因素。
模型中的卷积神经网络是从卷积神经网络的角度来表示文本,前面提到的循环结构是卷积层。当计算出所有单词的表示形式时,将应用最大化池层。
, | (15) |
其中,max函数是一个按元素排序的函数。的k元素是的k元素中最大的元素。
通过池层将不同长度的文本转换为固定长度的向量。当然,在深度学习中也有其他类型的池层,例如平均池层等,但其对于获取文本中对分类有效成分的作用并没有很突出。因此,笔者使用最大池层的原因是其能够在文本中选取对于文本分类更有效果的词。池层利用双向长短时记忆网络的输出作为自己的输入。池层的时间复杂性是。总体模型是循环结构和最大池层,最后模型的时间复杂性仍然是。
模型的最后一部分是输出层。类似于传统的神经网络。它被定义为
, | (16) |
最后,将SoftMax函数应用于,将输出数字转换为概率
。 | (17) |
综上所述,提出的改进LSTM模型如

图2 改进LSTM结构图
Fig.2 Improved LSTM structure diagram
在实施分类之前,首先要将数据集中的文本对照词汇表进行数据预处理,并且训练词向量。并带入模型进行训练。训练网络参数将所有要训练的参数定义为
, |
, | (18) |
具体来说,参数为嵌入词,偏倚向量,,初始上下文,变换矩阵,,,,其中:是词汇表中的单词数;是隐藏层大小;是文档类型数。
采用随机梯度下降法对训练目标进行优化。在每个步骤中,随机选择一个例子(,)并进行梯度步骤
, | (19) |
其中,是学习率。训练采用训练随机梯度下降的神经网络的方法。
在这部分,使用skip-gram模型预先训练嵌入的单词。最后通过最大化平均对数概率训练单词的嵌入
, | (20) |
, | (21) |
其中:是未标记文本的词汇。是的一个嵌入。
Pooling层是特征提取层,将不同长度的文本转换为固定长度矢量,通过pooling层获取文本分类所需信息,研究使用最大池层,在文本中找到对分类准确率提升最有效果的词,池层利用循环结构的输出作为输入,最后利用softmax层进行分类。
本次实验使用Windows10编译Python程序,并在GPU上进行实验。选择的分类数据集为英文的IMDB电影评论的情感分析数据集,本数据集总共有3个部分组成,使用为带标签的训练集,共有数据25 000条,同时数据集中还包括50 000条不带标签的训练集以及25 000条数据的测试集。数据集中的id代表电影评论的id,review代表电影评论的内容,sentiment代表情感分类的标签(只在带标签的数据集中存在)。
数据集为英文格式,不需要进行文本分词,只需要去掉停用词即可。停用词即出现频率比较高,但没有统计意义的词。通常将限定词视为停用词如:“the”、“a”、 “that”、和“those”,这些词在文本中仅仅起到描述名词和表达概念的作用,对文本本身的内容并没有作用。介词如:“on”,“over”,“beneath” 等表示相对位置,在文档处理中需要很大的空间,并且这些词的存在很普遍,只是丰富了文本,对文本分类的准确率没有较大提升。将停用词用列表的形式生成,方便之后查找停用词。
使用计算机进行文本分类,首先需要对使用的文字建模,适用于计算机处理。自然语言的建模方法从一般使用基于规则的方法到后期使用基于统计的方法,随着发展深度学习,建模方法也变得多种多样,特别是基于统计的方法受到广泛发展,如:n-gram、神经网络以及 log_linear 模型等建模方法。通常来说,建模的问题主要出现在建模维度过大、词的相似性难以区分、模型的针对性强等方面。为解决这些问题,模型的优化也在自然语言处理占了举足轻重的位置。对统计语言模型进行研究的背景下,Google推出 Word2vec训练词向量,能够通过给定的语料库,快速准确地将词转成向量的形式,对自然语言处理的发展打下了坚实基础。word2vec依托于浅层神经网络,依赖skip-grams或CBOW建立神经词嵌入。词袋模型(Bag-of-words model)是在自然语言处理和信息检索(IR)下被简化的表达模型。在文本处理中的作用主要是将文字整理成不考虑文法和顺序的词向量形式。CBoW模型能将输入词的上下文变成输出这个特定词的词向量格式。由于词袋模型对于文本处理的优势,在很多分类问题中都体现出较好性能,词出现的频率可以用来当作训练分类器的特征。Skip-gram模型是一个简单实用的模型。通常在解决自然语言处理的相关问题时,语料选取特别重要。首先,要解决语料不足的情况,特别是需要反应词语关系的句子,其次需要解决语料准确性问题,输入与输出的对应关系对于文本问题的处理十分重要。CBoW使用在小型数据库,Skip-Gram使用在大型语料中。
这部分需要生成词向量和词汇-索引映射字典,去掉停用词,进行词频的统计,将统计出来的低频词删除,最后构建适于文本的专属词典,将处理后的数据与词典带入Word2vec模型,构建词向量。
利用预训练的词向量初始化词嵌入矩阵,利用词嵌入矩阵将输入数据中的词转换成词向量,复制一份词嵌入层输入,嵌入层可以对词向量处理,使得维度降低,减少运算量。将处理后的数据输入Bi-LSTM结构,将前向,后向的输出和最早的词向量拼接在一起得到最终词表征,做max-pooling的操作,将时间步的维度消失,最后全连接层输出分类结果。
模型与循环神经网络模型,长短时记忆网络模型,带注意力的长短时记忆网络模型进行对比实验。为充分展示改进模型的分类优势,实验中各模型均采用
参数名称 | 设置1 | 设置2 | 设置3 |
---|---|---|---|
迭代次数 | 1 000 | 2 000 | 1 000 |
隐层神经元个数 | 128 | 128 | 128 |
学习率 | 0.001 | 0.001 | 0.003 |
嵌入层神经元个数 | 200 | 200 | 200 |
对于每组参数设置,各模型分别独立运行50次,对测试集的平均识别率,随迭代步数动态变化的曲线如图

图3 设置1各模型的准确率与迭代次数关系
Fig.3 The relationship between the accuracy of each model and the number of iterations of set 1

图4 设置2各模型的准确率与迭代次数关系
Fig.4 The relationship between the accuracy of each model and the number of iterations of set 2

图5 设置3各模型的准确率与迭代次数关系
Fig.5 The relationship between the accuracy of each model and the number of iterations of set 3
模型 | IMDB评论数据 | ||
---|---|---|---|
设置1 | 设置2 | 设置3 | |
循环神经网络 | 87.4 | 90.2 | 88.9 |
LSTM | 90.4 | 91.5 | 92.7 |
带注意力的LSTM | 93.2 | 93.7 | 92.4 |
改进LSTM | 94.6 | 95.3 | 94.5 |
接下来,将会考虑在引入对抗学习进行文本分
研究通过2次改进,提高文本分类的效果。一方面将传统的长短时记忆网络拓展为可双向捕捉文本重点的双向长短时记忆网络,根据文本的整体含义来进行分类,增强对数据的利用效果;另一方面在分类前增加了最大池化层,使得对文本分类更重要的词能够发挥其对分类的影响。综合以上,研究提出的模型成功提高了分类的成功率。
参考文献
石锋. 面向中文新闻文本的实体关系抽取研究[D]. 哈尔滨: 哈尔滨工业大学, 2017. [百度学术]
Shi F. Research on entity relationship extraction for Chinese news text[D]. Harbin: Harbin Institute of Technology, 2017. (in Chinese) [百度学术]
Abdi A, Shamsuddin S M, Hasan S, et al. Deep learning-based sentiment classification of evaluative text based on Multi-feature fusion[J]. Information Processing & Management, 2019, 56(4): 1245-1259. [百度学术]
崔莹. 深度学习在文本表示及分类中的应用研究[J]. 电脑知识与技术, 2019, 15(16): 174-177. [百度学术]
Cui Y. Application of deep learning in text representation and classification with deep learning[J]. Computer Knowledge and Technology, 2019, 15(16): 174-177.(in Chinese) [百度学术]
Liu Q , Yuan J Z , Weng C H. Survey of short text classification based on deep learning[J].Computer Sciences,2017, 44(A),11-15 [百度学术]
Bi H, Sun J, Xu Z. A Graph-Based semisupervised deep learning model for polSAR image classification[J]. IEEE Transactions on Geoscience and Remote Sensing, 2019, PP(99):1-17. [百度学术]
陈文实, 刘心惠, 鲁明羽. 面向多标签文本分类的深度主题特征提取[J]. 模式识别与人工智能, 2019, 32(9): 785-792. [百度学术]
Chen W S, Liu X H, Lu M Y. Feature extraction of deep topic model for multi-label text classification[J]. Pattern Recognition and Artificial Intelligence, 2019, 32(9): 785-792.(in Chinese) [百度学术]
Lee J, Yu I, Park J, et al. Memetic feature selection for multilabel text categorization using label frequency difference[J]. Information Sciences, 2019, 485: 263-280. [百度学术]
牛硕硕, 柴小丽, 李德启, 等. 一种基于神经网络与LDA的文本分类算法[J]. 计算机工程, 2019, 45(10): 208-214. [百度学术]
Niu S S, Chai X L, Li D Q, et al. A text classification algorithm based on neural network and LDA[J]. Computer Engineering, 2019, 45(10): 208-214.(in Chinese) [百度学术]
向进勇, 杨文忠, 吾守尔·斯拉木. 基于特征选择和深度信念网络的文本情感分类算法[J]. 计算机应用, 2019, 39(7): 1942-1947. [百度学术]
Xiang J Y,Yang W Z,Silamu W. Text sentiment classification algorithm based on feature selection and deep belief network[J]. Journal of Computer Applications, 2019, 39(7): 1942-1947.(in Chinese) [百度学术]
马力, 李沙沙. 基于词向量的文本分类研究[J]. 计算机与数字工程, 2019, 47(2): 281-284, 303. [百度学术]
Ma L, Li S S. Research on text classification based on word embedding[J]. Computer & Digital Engineering, 2019, 47(2): 281-284, 303.(in Chinese) [百度学术]
陈巧红, 王磊, 孙麒, 等. 卷积神经网络的短文本分类方法[J]. 计算机系统应用, 2019, 28(5): 137-142. [百度学术]
Chen Q H, Wang L, Sun Q, et al. Short text classification based on convolutional neural network[J]. Computer Systems & Applications, 2019, 28(5): 137-142.(in Chinese) [百度学术]
涂文博, 袁贞明, 俞凯. 针对文本分类的神经网络模型[J]. 计算机系统应用, 2019, 28(7): 145-150. [百度学术]
Tu W B, Yuan Z M, Yu K. Neural network models for text classification[J]. Computer Systems & Applications, 2019, 28(7): 145-150.(in Chinese) [百度学术]
Deng H L, Zhang L, Shu X. Feature memory-based deep recurrent neural network for language modeling[J]. Applied Soft Computing, 2018, 68: 432-446. [百度学术]
Hochreiter S, Schmidhuber J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780. [百度学术]
Poon H K, Yap W S, Tee Y K, et al. Hierarchical gated recurrent neural network with adversarial and virtual adversarial training on text classification[J]. Neural Networks, 2019, 119: 299-312. [百度学术]
Wang Y S, Sohn S, Liu S J, et al. A clinical text classification paradigm using weak supervision and deep representation[J]. BMC Medical Informatics and Decision Making, 2019, 19(1): 1. [百度学术]