基于MCNN的铁路信号设备故障短文本分类方法研究
2019-12-18周庆华李晓丽
周庆华,李晓丽
基于MCNN的铁路信号设备故障短文本分类方法研究
周庆华,李晓丽
(兰州交通大学 电子与信息工程学院,甘肃 兰州 730070)
铁路运营维护中产生了大量非结构化的文本数据,针对这些文本信息,提出一种基于Word2Vec+MCNN的文本挖掘分类方法。首先采用Word2Vec训练故障词向量;其次丰富词向量矩阵信息,使网络模型从多方位的特征表示中学习输入句子的故障信息;最后使用多池化卷积神经网络模型作为故障分类的方法,得到更多全面的隐藏信息。通过与传统分类器以及其他类型的多池化卷积神经网络模型实验对比,得出本文的模型可以更好地达到分类效果,具有较高的分类准确率。
故障分类;信号设备;Word2Vec;卷积神经网路
随着信息技术以及存储介质的高速发展,人们所接触的文本信息正在逐步递增,在处理这些人工记录的文本信息时,所消耗的时间和精力也越来越多。尤其是铁路方面,铁路信号系统在运营维护中产生海量故障数据,这些故障现象描述等都以非结构化的文本形式记录,维修人员在处理故障时仍然依靠经验以及专家知识处理,这种方式经常由于交流不当、延误事故处理时间而导致重大安全隐患。这些故障文本记录数量庞大,无论是电子版还是纸质版在存储上都带来了不必要的负担,并且维修维护以及管理人员都没有对这些海量数据重视起来,未能合理利用,造成资源的堆积浪费。铁路信号设备是行车安全的重要保障,在铁路大数据应用平台下,使用文本挖掘技术分析故障文本,对故障信息准确分类,这既能对故障处理做到及时预判,又能对维护信号设备提供技术支撑,也为管理人员在存储故障信息时提供便利。赵阳等[1]将文本挖掘技术运用在车载设备故障诊断中,杨连报等[2]对这些不平衡文本数据进行信号设备智能故障分类,利用文本挖掘技术处理铁路信号设备故障诊断取得了些许成就。对于文本分类,传统的分类方法有向量空间法、朴素贝叶斯和支持向量机算法[3]等。这些方法在文本分类中都取得了不错的成果,但是由于部分数据维数过高、数据稀疏,往往不能正确表示,丢失大量词语的语法信息和相关的语义信息。近年来,深度学习蓬勃发展,在自然语言处理中也得到了很好应用。Mikolov等[4−5]利用Word2Vec工具在语料库上进行训练,得到了短文本中词的分布式表示。Mikolov等[6]提出提取多粒度主题的方案,可更好地描述短文本语义信息。Kim[7]将卷积神经网络应用于句子模型的构建中。Socher等[8]提出基于递归自编码的半监督学习模型,有效学习短文本中多词短语及句子层次的特征向量表示。He等[9]采用多种不同类型的卷积和池化,实现对句子的特征表示。基于以上研究,本文针对铁路故障文本记录数据,通过Word2Vec训练大量中文词向量,构建卷积神经网络(Convolutional Neural Network,简称CNN)模型,实现信号设备的故障分类。为提高分类准确率,本文提出采用并行的多池化卷积神经网络模型,确保获取完整的故障信息,调整不同的参数,提高分类效果。
1 文本数据预处理
铁路信号设备主要包含调度集中CTC (Centralized Traffic Control)设备、列车调度指挥系统TDCS(Train Operation Dispatching Command System)设备、列车运行监控装置LKJ、车载设备、联锁设备、闭塞设备、道岔、轨道电路、信号机和电源屏设备[2]。本文按照设备功能及现象,选取某铁路局2015~2016年所记录的故障文本数据。根据目前已获取的数据,本文舍弃小类别数据以防止出现过拟合现象,基于已有的数据将故障类别分为4类,即车载设备故障、道岔故障、轨道电路故障和信号机故障。
图1是使用卷积神经网络模型进行故障分类的流程图。首先对故障文本使用Word2Vec词向量化,训练好的词向量矩阵作为卷积神经网络的输入,使用本文提出的多池化卷积神经网络模型进行信号设备故障分类。
图1 故障分类流程
1.1 故障词库
对于文本处理,首先需要对句子进行分词。不同的语言文本,处理方法也是不同的。中文分词便是将一个汉字序列(句子)切分成一个一个单独的词[10],句子的表示是否精确,也要看分词是否准确,分词精度对后续应用影响很大[11]。
本文使用jieba分词工具,对文本进行分词。jieba分词字典库中对于铁路信号设备故障文档尚无这样的标准词库,这就需要建立一个自定义的故障词典库。剔除“到”和“的”等无意义的虚词,将对故障描述有意义的词语保留[13]。词典包括:“红光带、道岔”等词。
1.2 Word2Vec
故障文本如何表示,关键是构建词向量空间。而Word2vec通过训练,可以把对文本内容的处理简化为K维向量空间中的向量运算,向量空间上的相似度可以用来表示文本语义上的相似度。Word2vec通常采用一个3层的神经网络,输入层−隐藏层−输出层[12]。Word2Vec一般分为CBOW (Continuous Bag-of-Words)与Skip-gram 2种模型。
CBOW模型就是通过上下文词来预测中心词。而Skip-gram模型是利用中心词来预测上下文词。一般来说,CBOW模型算法效率高,而Skip-gram模型训练词向量准确率高。对于进行铁路信号设备故障分类时,为提高分类准确率,所以选择Skip-gram模型。图2是Skip-gram网络模型。
图2 Skip-gram网络模型图
假设有一条分好词的故障句子,产生了一系列词(1),(2),…,()。Skip-gram模型的目的就是使式(1)的值最大化:
其中:表示窗口的长度,即当前词()的前面的个词和后面的的词。
1.3 词向量矩阵的生成
将句子经过jieba分词后,就形成了一个由多个词所构成的句子。分词后的句子={1,2,3,…,m},它们之间都是以一个⊕来连接。长度为的句子就可以表示为:
使用Skip-gram网络模型,训练出词向量。例如,“道岔”一词,词向量维数200维(一般维度高的词向量可以更好地对语义特征进行描述,但同时也增大了过拟合的风险。本文数据都是以短文本为主,所以采用200维),对应的词向量[−1.322 135 78×10−1,1.723 149 23×10−2,…,2.073 596 42×10−1]。将所获得词向量纵向累加,得到了整句话的表示,也即获得了词向量矩阵。根据句子的最大长度,若为,则组合成一个*的二维矩阵,为词向量维数。
2 基于多池化卷积神经网络故障分类
2.1 卷积神经网络
卷积神经网络是目前自然语言处理中应用较为广泛的一种深度学习结构,其网路层数深,网络结构复杂,存在多层隐藏层[13]。
整个网络模型分为4层。
第1层是嵌入层(Embedding Layer)。对于数据集里所有的词,每个词都可以表示成一个向量,所以就得到了一个嵌入矩阵*(为文本的最大长度,为词向量的维数),矩阵中的每一行词向量代表一个完整的单词。
第2层是卷积层(Convolution Layer)。对文本数据构建卷积核时,卷积核的宽度应该刚好等于输入矩阵的宽度。将卷积核通过从上往下的滑动扫描整个数据,得到卷积输出。
对于窗口以为长度、为宽度的卷积核,当其作用于句子的第至(+−1)个单词区间时,结果输出可以用式(3)来形式化表示:
其中:是卷积核的权重参数;是激活函数;是卷积层的偏置项,∈R,即实数集,偏置项是一个常量,可以随着模型的训练自动调整。最终的卷积输出可以表示为式(4):
第3层是池化层(Max-Pooling Layer)。池化层主要是将卷积出来的特征向量进行处理,是不同长度的句子经过卷积之后,特征向量变成定长的表示[14]。通常采用最大池化策略得到每一个卷积输出向量的最大值,即得到了文本的特征表示[15]。将这些最大值连接,作为全连接层的输入。这里的最大池化策略就是采用最大池化函数,如式(5)所示:
第4层是全连接层。一般通过softmax函数得到每一个文本的分类。softmax函数如式(6):
2.2 多池化卷积神经网络模型的故障分类
本文提出一种多池化的卷积神经网络模型,记为MCNN,以此更精确地进行故障分类。将每条故障记录中特定的故障特征词进行标记,让模型充分利用对故障分类有重要作用的词语,重点学习这些词语的特征信息。重点标记的词主要是对故障判别影响比较大的词,例如故障现象描述:“接车线内无机车车辆占用,控制台显示接车线轨道电路红光带,导致进站信号机不能开放”,对这句话以一个字符串序列的形式,对当中的“轨道电路”、“红光带”、“信号机”词做标记,突出句子重点信息。通过向量化的操作,将标记的词映射为一个维向量Tag,即Tag∈R,对没有标记的记为0。同时,确定标记词的位置。同一个词出现的位置不同,所包含的信息也就不同。计算句子中第个标记词的位置值[15],采用式(7):
其中:Pos为标记词在句子中的位置;为标记词在句子中的位置;()为句子长度;max为输入的句子最大长度[15]。将每个位置值映射到一个维向量,即Pos∈R ,其中,os为第个位置值的向量。本文对于句子的输入设定一个最大长度max,对于长度小于max的句子用0向量补全。
本文以词为单位,根据图3所示,输入层以词向量矩阵1,词向量与标记矩阵组成的组合矩阵2,词向量,标记矩阵以及位置矩阵所组成的组合矩阵3,具体见式(8)~(10)所示。通过这3种矩阵,使得模型的输入层更为多样化,使得特征之间的联系更为紧密,并且能更精确、更全面地捕获到故障特征信息。
卷积层通过并行卷积操作获得句子组合语义信息,经过不同的卷积操作生成不同的特征,保留了词与词之间的联系。
池化层中,传统的CNN在池化操作中,对每个特征向量只能含一个最大值表示该句子的一个事件,而在故障诊断中,一个句子中可能含有2个或多个故障干扰词语,所以本文通过多池化层来处理该问题。根据不同窗口大小的滤波器所得的特征向量,在进行池化时,采用并行的三池化方式,选择最大池化函数和平均池化函数的组合方式。和传统的CNN相比,MCNN在不丢失最大池化值的基础上可以保留更多有价值的信息。其中,平均池化函数公式如下:
由多池化得到每个特征向量池化后的值,再将这些值连接一同送入全连接层。整个模型以并行化的方式提取特征,最后在全连接层输出分类结果。
与传统的卷积神经网络相比,MCNN模型在输入时,以不同的特征组合形式输入,可以使训练过程获取更多语义信息,加强特征之间相互联系,保证重要信息被提取到。同时,模型在训练过程中也能对多个特征进行参数调整,降低网络模型训练损耗。卷积后使得模型学习到更加多样化的信息。利用池化层对特征信息进行过滤提取时,使用并行的三池化方式,最大池化提取出经卷积后的特征矩阵中最大值,平均池化函数提取出卷积后特征矩阵中的平均值。对这2种池化算法相结合,以三池化的方式,可以获取比较全面的特征信息,不至于忽略掉次要信息。
3 实验分析
3.1 实验准备
本文实验的测试环境是在Windows10系统下进行,使用的CPU是Inter Core i7-8750H 2.2 GHZ,内存8 GB,编程语言为Python3.5.4,开发工具为Pycharm,使用到的深度学习框架为Tensorflow。使用Python提供的gensim库,完成文档的词向量化。
本文对之前所提取到的故障数据总共3 204条,将其中的3 000条作为训练集,204条作为测试集,通过损失率和准确率评价指标对比分析。
3.2 实验评价标准
本文主要以准确率(Accuracy)作为评价指标。正确率是最常见的评价指标,通常说,正确率越高,分类器越好。分类正确率是分类器正确分类样本数与测试数据集总样本数之比。
3.3 实验设计
本文采用Word2Vec+MCNN模型,这里的Word2Vec用到的是Skip-gram模型,对铁路设备故障数据进行了分类。
图3 多池化卷积神经网络模型结构
关于卷积神经网络实验参数设定,卷积核大小选取3,4和5,维数128维。卷积核数目选取128。为防止过拟合,使用L2正则化对网络参数进行约束,即在原来损失函数基础上加上权重参数的平方和,限制参数过多或者过大,避免模型更加复杂。同时模型训练过程中引入Dropout策略,即每次迭代中随机放弃一部分训练好的参数,以防止过拟合。经过交叉验证,Dropout值为0.5,随机生成的网络结构最多,效果最好。Batch值是批处理参数,据经验取值为64时,可以确保寻找到最优解的同时加快训练速度。实验中,词向量维数200维,词性特征为50维,位置特征为10维,Word2Vec采用默认参数。
3.4 实验结果分析
3.4.1 Word2Vec+CNN模型
为验证Word2Vec+CNN模型的效果,本文实验选取传统的朴素贝叶斯(Naive Bayes,简称NB)模型与支持向量机(Support Vector Machine,简称SVM)模型作对比。在采取数据集相同的情况下,为排除由于特征构建方式不同导致实验结果无法对比,所以对于传统模型也都是使用Word2Vec训练词向量,结果如表1所示。
表1 不同分类模型的整体平均Loss值及Accuracy值
由表1中可以得出,SVM比CNN模型损失率较低,但是两者之间差别不是很大,从准确率上来看,CNN 模型比NB模型提高了1.2%,比SVM模型提高了3.9%。表明使用CNN模型可以有效的提高分类效果。由此可见,CNN模型能够自主地提取并学习到更多的分类特征,这比传统的机器学习模型更有优势,同时也提高了分类性能。
3.4.2 Word2Vec+MCNN模型
实验中,在进行多池化时,分别采用3个最大池化策略、3个平均池化策略、2个最大池化策略+平均池化混合策略这3种池化方法作对比,具体结果如表2所示。
表2 不同池化模型的整体平均Loss值及Accuracy值
由表2中可以清晰地看出,多池化卷积神经网络模型分类效果明显比传统的卷积神经网络模型效果好。从分类准确率上看,Word2Vec+MCNN1比Word2Vec+CNN模型由0.915提高到0.932,整整提高了1.7%,损失率由原来的0.205降到0.184,降了2.1%。同样地,Word2Vec+MCNN2和Word2Vec +MCNN3都比Word2Vec+CNN模型的分类效果好。对于不同池化模型,对比表1和表2,可以看出,无论哪种形式的多池化卷积神经网络都要比传统的分类模型分类效果好,且具有较高的分类准确率,Word2Vec+MCNN1比NB分类模型准确率提高了2.9%,而损失率直接降低了5.3%。对比内部不同的池化方式,Word2Vec+MCNN1模型无论是从准确率还是损失率上看都比其他2种池化模型好。
Word2Vec+MCNN1模型能够得到较高的准确率、较好的分类效果主要原因是:1) 使用Word2Vec训练词向量。Word2Vec训练词向量,可以控制特征向量的维数,解决维数灾难问题,不会忽略词与词在文本中的相对位置关系,而且还保留了词与词之间的语义关系。2) 使用卷积神经网络分类。以并行的多通道卷积模式,捕获到重点信息词。采用三池化方式,提取到比较全面的信息,不至于把句中次重要的信息忽略。在训练过程中,采用L2正则化和Dropout策略防止陷入局部最优,避免过拟合现象,同时也得到了较好的分类效果。
4 结论
1) 铁路信号设备是铁路行车安全的重要保障,使用文本挖掘技术为维护信号设备的正常运行提供辅助决策,为管理人员分析存储提供技术支撑。本文通过所采集到的铁路信号文本数据对铁路信号故障设备进行分类。由于个别设备故障次数比较少,所以只对常见的几种故障设备进行了分类。
2) 针对铁路故障文本记录数据,首先使用jieba分词工具进行分词,然后采用本文提出的Word2Vec+MCNN模型进行分类,通过NB和SVM传统分类器以及各MCNN模型的对比,验证模型的准确性,最终得出Word2Vec+MCNN(max*2+ave)模型更能达到最优分类效果。同时也为今后铁路信号设备分类提供了新方法和新思路。
[1] 赵阳, 徐田华. 基于文本挖掘的高铁信号系统车载设备故障诊断[J]. 铁道学报, 2015, 37(8): 53−59. ZHAO Yang, XU Tianhua. Fault diagnosis of vehicle equipment in high-speed railway signal system based on text mining[J]. Journal of the China Railway Society, 2015, 37(8): 53−59.
[2] 杨连报, 李平, 薛蕊, 等. 基于不平衡文本数据挖掘的铁路信号设备故障智能分类[J]. 铁道学报, 2018, 40(2): 59−66. YANG Lianbao, LI Ping, XUE Rui, et al. Intelligent classification of railway signal equipment faults based on unbalanced text data mining[J]. Journal of the China Railway Society, 2018, 40(2): 59−66.
[3] 朱磊. 基于Word2Vec词向量的文本分类研究[D]. 重庆: 西南大学, 2017. ZHU Lei. Text classification based on word2vec word vector[D]. Chongqing: Southwest University, 2017.
[4] Mikolov T, Sutskever I, Chen K, et al. Distributed representations of words and phrases and their compositionality[C]// Advances in Neural Information Processing Systems, 2013: 3111−3119.
[5] Chen M, Shen D, Shen D. Short text classification improved by learning multi-granularity topics[C]// International Joint Conference on Artificial Intelligence. AAAI Press, 2011: 1776−1781.
[6] Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space[C]// [2014−02− 10].http://arxiv.org/pdf/1301.3781.pdf.
[7] Kim Y. Convolutional neural networks for sentence classification[C]// Proceedings of the 2014 Conference on Empirical Mathods in Natural Language Processing. Stroudsburg: ACL, 2014: 1746−1751.
[8] Socher R, Pennington J, HUANG E H, et al. Semi- supervised recursive autoencoders for predicting sentiment distributions[C]// Conference on Empirical Methods in Natural Language Processing, EMNLP 2011, Edinburgh, Uk, A Meeting of Sigdat, A Special Interest Group of the ACL. DBLP, 2011: 151−161.
[9] He H, Gimpel K, Lin J. Multi-perspective sentence similarity modeling with convolutional neural networks [C]// Conference on Empirical Methods in Natural Language Processing, 2015: 1576−1586.
[10] 李心蕾, 王昊, 刘小敏, 等. 面向微博短文本分类的文本向量化方法比较研究[J]. 数据分析与知识发现, 2018, 2(8): 41−50. LI Xinlei, WANG Hao, LIU Xiaomin, et al. A Comparative study of text vectorization methods for microblog short text classification[J]. Data Analysis and Knowledge Discovery, 2018, 2(8): 41−50.
[11] 孙璇. 基于卷积神经网络的文本分类方法研究[D]. 上海: 上海师范大学, 2018. SUN Xuan. Research on text classification method based on convolutional neural network[D]. Shanghai: Shanghai Normal University, 2018.
[12] 周顺先, 蒋励, 林霜巧, 等. 基于Word2vector的文本特征化表示方法[J]. 重庆邮电大学学报(自然科学版), 2018, 30(2): 272−279. ZHOU Shunxian, JIANG Li, LIN Shuangqiao, et al. Text characterization representation based on Word2vector[J]. Journal of Chongqing University of Posts and Telecommunications (Natural Science Edition), 2018, 30(2): 272−279.
[13] 卢玲, 杨武, 杨有俊, 等. 结合语义扩展和卷积神经网络的中文短文本分类方法[J]. 计算机应用, 2017, 37(12): 3498−3503. LU Ling, YANG Wu, YANG Youjun, et al. A Chinese short text classification method based on semantic extension and convolutional neural network[J]. Journal of Computer Applications, 2017, 37(12): 3498−3503.
[14] 石逸轩. 基于深度学习的文本分类技术研究[D]. 北京:北京邮电大学, 2018. SHI Yixuan. Research on text classification technology based on deep learning[D]. Beijing: Beijing University of Posts and Telecommunications, 2018.
[15] 陈珂, 梁斌, 柯文德, 等. 基于多通道卷积神经网络的中文微博情感分析[J]. 计算机研究与发展, 2018, 55(5): 945−957. CHEN Ke, LIANG Bin, KE Wende, et al. Sentiment analysis of Chinese weibo based on multi-channel convolutional neural network[J]. Journal of Computer Research and Development, 2018, 55(5): 945−957.
Research on short text classification method of railway signalequipment fault based on MCNN
ZHOU Qinghua, LI Xiaoli
(School of Electronic and Information Engineering, Lanzhou Jiaotong University, Lanzhou 730070, China)
There are a lot of unstructured text data in railway operation and maintenance. For this text information, this article proposes a text mining classification method based on Word2Vec+MCNN. Firstly, the Word2Vec was used to train the fault word vector. Secondly, the word vector matrix information was enriched to enable the network model to learn the fault information of input sentences from the multi-dimensional feature representation. Finally, the multi-pooling convolutional neural network model was used as a fault classification method to acquire more comprehensive hidden information. Compared with the traditional classifiers and other types of multi-pooling convolutional neural network model experiments, it is concluded that the model can achieve better classification effect and higher classification accuracy.
fault classification; signal equipment;Word2Vec; convolution neural network
U284.92
A
1672 − 7029(2019)11− 2859 − 07
10.19713/j.cnki.43−1423/u.2019.11.027
2019−02−21
国家自然科学基金资助项目(61763025)
周庆华(1971−),女,辽宁沈阳人,副教授,从事机器学习研究;E−mail:kzlll@foxmail.com
(编辑 阳丽霞)