姚新文,侯 通,郑启明,王小敏,3
(1. 西南交通大学 信息科学与技术学院,成都 611756;2. 中国铁道科学研究院集团有限公司 运输及经济研究所,北京 100081;3. 四川省列车运行控制技术工程研究中心,成都 611756)
在铁路运营过程中,现场站段积累了大量人工记录的轨道电路故障日志,这些故障日志是对现场故障情况的真实反映,其中故障描述信息及处置经验等内容蕴含着许多有价值的故障信息。目前,轨道电路历史故障日志主要依赖人工分析获取经验知识。由于人工分析易受主观因素影响,且轨道电路故障日志数据量大、故障因素繁杂,存在对故障日志信息挖掘不足,人工分析效率较低等问题,导致大量有价值故障文本数据资源未能得到充分利用。
文本聚类分析是文本挖掘领域的重要方法之一,是从非结构化或半结构化文本数据中发现有价值知识或模式的过程[1],其目的主要是根据特定文本的特征相似度将文本聚为合适的簇,进而有效挖掘文本中蕴含的信息及模式。Deng等[2]应用K-Means聚类分析从大量事故文本信息中获取危险化学品事故类型及规律,并根据聚类挖掘结果制定相应措施,预防事故发生。胡小溪等[3]针对地铁信号设备故障文本,融合词项空间K-Means聚类算法和语义空间LDA(latent dirichlet allocation)算法,基于关键词特征实现信号设备故障文本自动聚类处理。传统K-Means算法具有聚类效果好,结果可解释性强等优点[4],但K-Means要求数据集具有凸数据分布,当数据集非凸时,易陷入局部最优。而谱聚类算法具有识别非凸数据分布、收敛于全局最优解等特点[5],且将聚类过程与谱图划分过程对应,最终转换为数据间相似矩阵的谱分解问题,对于处理高维稀疏数据聚类非常有效[6]。Zhang等[7]应用谱聚类算法对Word2vec语义空间表示的相似关键词进行聚类,实现高效的同义词提取。吴银昊等[8]针对在线评论中负向评论数据,利用主题模型实现负向评论的主题向量化表示,通过谱聚类算法实现负向评论的主题聚类,获取的代表性负向评论主题类型具有较高的可区分度。
轨道电路故障日志是由铁路现场电务专业人员以自然语言形式记录的设备维护管理台账。轨道电路故障专业领域性较强,对于繁杂轨道电路故障因素中相似故障因素导致的故障,现场电务人员的故障日志描述在语义表达上具有共性特征,而目前对轨道电路故障日志在语义空间上挖掘分析研究较少。通常在文本聚类分析中高维的文本特征表示向量会导致运算消耗的增加,而轨道电路故障文本数据量较大,经特征表示后文本特征向量维度较高;因此在文本聚类分析中通常采用先降维后聚类的方式,但降维过程会导致部分文本特征的丢失,影响文本聚类效果。
对于以上问题,本文采用谱聚类算法对轨道电路故障日志进行故障主题聚类挖掘分析:针对人工记录的轨道电路故障文本数据,在语义空间上分析现场人员对于轨道电路故障描述的共性特征,通过谱聚类算法实现在特征空间上对轨道电路故障主题类型的高效聚类分析,以提高轨道电路故障文本数据利用率,并将有价值故障信息反馈至现场轨道电路设备维护过程中,以形成良性循环,为现场工作人员开展轨道电路维护及制定相应预防性维护措施提供辅助决策。
轨道电路设备结构复杂,其工作状态易受多部门作业维修、设备器材质量及天气环境等因素影响[9]。依据轨道电路故障性质及故障归属,导致轨道电路故障的因素可分为电务、工务、供电、厂家设备质量、外界干扰及自然灾害等。随着对我国铁路综合维修体系运行机制的不断研究,综合维修参与主体主要涉及电务、工务及供电等部门,综合维修体系的构建对各部门协同合作,提高综合维修质量及效率具有重要意义[10]。轨道电路与电务、工务及供电等部门设备维护管理密切相关,因此本文选取电务、工务及供电因素故障文本数据为研究对象,对其中包含的故障主题信息进行聚类挖掘。
通过对轨道电路故障文本数据的分析可知,故障文本记录中通常包含故障现象、故障原因、处置过程、设备信息等内容。作为专业领域文本数据,轨道电路故障文本有以下特征:
1) 故障文本含有噪声信息。故障文本中包含的时间、车次号、区段名称、器材编号等噪声数据,不利于提取有效文本特征,因此需要对故障文本数据进行清洗。
2) 故障文本记录不规范。人工记录的故障文本具有口语化、不规范化的特点,不同人员对故障日志的自然语言表述方式因人而异,存在多词一义的现象,但对相似故障记录的描述存在共性语义结构,可归纳出语义主题信息。
3) 故障文本数据不均衡。现场易发、高发性轨道电路故障记录数据较多,且特征词汇在不同故障类型文本中的分布情况具有差异性,存在一些特征词在特定类别中出现频次较高,而在其他类别中出现频次较低,反映出了轨道电路在实际工作运行中的薄弱环节。
文本预处理是实现高效文本聚类的重要过程,预处理后的故障文本数据质量直接影响后续文本特征表示效果。文本预处理过程主要包含分词、去停用词、词性标注及过滤等。与英文文本由空格自然分隔不同,中文文本数据增加了分词步骤。本文针对轨道电路故障文本特点,首先对故障文本中包含的时间、车次号、区段名称及数字编号等噪声数据进行清理;其次考虑到故障文本包含大量铁路专业词汇,为实现对专业词汇的准确切分,减小文本噪声项对后续文本特征提取的干扰,利用Jieba分词工具结合铁路专业词库进行分词处理,并过滤文本中标点符号和无实际意义的词汇。
依据轨道电路故障文本特征,采用谱聚类算法对轨道电路故障文本进行故障主题聚类挖掘,从语义层面实现对轨道电路电务、工务及供电3种故障因素文本数据的聚类分析,获取各故障因素下的故障主题类型及规律。聚类模型流程如图1所示。
图1 轨道电路故障文本主题聚类模型
首先,采用Word2vec对预处理后的不同故障因素文本数据在语义空间上进行特征向量表示;然后,通过文本表示向量相似矩阵计算其图Laplacian矩阵,并采用谱聚类算法进行故障主题聚类,获取3种故障因素下的故障文本数据在语义空间上的相似特征,实现对不同故障主题类型的表征。
Word2vec基于分布式表示将数据集中每个词映射成向量,通过对大量语料库的训练学习,依据相似位置的词具有相似含义的分布假设推断词的含义,最终实现根据目标词预测上下文中的词或根据上下文预测目标词。Word2vec模型可将文本数据处理过程转化为向量空间中的向量运算,通过向量相似度表征不同文本间的语义相似度。因此,在故障文本聚类中采用基于Word2vec的文本分布式表示方法挖掘文本语义特征信息,并利用Word2vec向量表示的故障文本特征矩阵计算图Laplacian矩阵。
为更直观地表明语义相似性,利用主成分分析(principal component analysis,PCA)方法,将经过Word2vec模型获得的词向量降至二维,并在平面中展示。图2中选取“绝缘节”“电缆”“发送器”为目标词,可以看出:与目标词语义相近或相关的词,在二维平面中距离较近,形成比较明显的簇,而语义相差较大的词距离较远,说明Word2vec模型对轨道电路故障文本中语义相似及相关的特征词汇具有较好学习效果。
图2 在二维平面中Word2vec语义相似度降维效果
对于每条故障文本数据,将文本j中所有词的平均词向量vj作为此条文本的向量表示,即:
(1)
式中:ωij为模型训练后文本j中第i个词的词向量。
为衡量文本间的语义相似度,采用欧式距离[8](见式(2))作为故障文本间相似性的度量,以此获得故障文本间相似矩阵。
dist(v1,v2)=|v1-v2|
(2)
式中:v1、v2为某两条故障文本的多维向量表示。
为减少故障文本人工记录不规范及多词一义现象对文本语义特征学习的影响,本文对故障文本进行字符级分词,并作为Word2vec模型的输入获取字向量表示,以提高对此类噪声干扰的鲁棒性。
Laplacian矩阵是一种带权无向图的矩阵。Laplacian矩阵L定义公式为[11]:
L=D-W
(3)
式中:D为度矩阵,W为图的邻接矩阵。
从图论角度分析,可将聚类问题转换为图的切分问题,因此,基于无向图的聚类等价于寻找最优切图算法:将图分割成若干子图(对应聚类结果中的簇),使不同子图间的权重和最小,而子图内部的权重和尽量大,即可实现聚类目标。
定义切图后的簇间距离lcut为[12]:
(4)
对图的切分目标是使lcut(A1,A2,…,Ak)最小,但为了避免出现最小切图并非最优切图的情况,需要限定子图的规模。依据不同限定方式,目前常用切图方式的损失函数有RatioCut和Ncut两种,其中:RatioCut考虑使每个子图中样本点个数最大化,但仍存在子图样本点最多时权重值非最大值情况;而Ncut切图用子图权重来代替子图点个数。因此,一般来说,Ncut切图优于RatioCut。Ncut定义如下:
(5)
式中:ωvol(Ai)为子图内所有连接边的权重和。
当子图数量k>2,即聚类簇数为2个以上时,定义k个指示向量hj(hj=(h1j,h2j,…,hnj)T)如下:
(6)
其中:i=1,2,…,n;j=1,2,…,k。
(HTLH)ii
(7)
结合式(7),可将Ncut问题转化为:
tr(HTLH)
(8)
式中:tr(HTLH)表示矩阵的迹。因此,最小化Ncut问题可表示为:
(9)
令F=D1/2H,最终将最小化Ncut问题转化为[13]:
(10)
其中:D-1/2LD-1/2相当于对拉普拉斯矩阵L进行规范化。
之后计算D-1/2LD-1/2从小到大排列的前K个特征值对应的特征向量,并组成特征矩阵F,最后对F进行传统的K-Means聚类。计算流程见图3。
图3 图Laplacian矩阵聚类计算流程
本文采用Ncut损失函数切图的谱聚类算法对轨道电路电务、工务及供电3种故障因素文本数据进行故障主题聚类分析。邻接矩阵W基于全连接法构建时,相似矩阵等同于邻接矩阵,因此在语义空间上采用Word2vec向量表示的故障文本相似矩阵作为邻接矩阵,然后计算规范化Laplacian矩阵并进行特征值求解,选取从小到大排列的前K个特征值的特征向量组成特征矩阵F,其中K值选取与最优聚类个数相关。相对于Word2vec向量表示的文本向量维度,特征矩阵F维度更低。最后对特征矩阵F进行K-Means聚类,直到算法收敛。聚类算法主要过程如下:
数据:电务、工务及供电等因素的轨道电路的故障文本数据
输入:字符级分词处理后3种故障因素的故障文本数据
输出:聚成的不同故障主题簇
1) Word2vec模型训练、学习语义特征;
2) 依据Word2vec训练后向量表示的文本特征矩阵计算相似度矩阵,即为邻接矩阵W;
3) 根据式(3)计算Laplacian矩阵L并规范化;
4) 利用式(11)轮廓系数计算最优聚类个数K;
5) 计算规范化后Laplacian矩阵L从小到大前K个特征值及对应的K个特征向量,组成特征矩阵F;
“啊,海峰没跟你说?谁都知道,紫藤是蒋家的。”夏梓桑故作惊诧,掏出一个上海的户口本,接着说道:“紫藤绝对不是林志的孩子,可以到医院去鉴定。他不姓林,跟着妈妈姓紫,道理就在这里。紫藤的户口,从一出生就在上海注册了,还是海峰托我办的,你看这户口簿。”
6) 将矩阵F作为输入进行K-Means聚类;
7) 直至算法收敛。
本文实验数据选取某铁路局2015-2018年轨道电路的故障日志,其中:电务因素故障文本数据566条,工务因素故障文本数据268条,供电因素故障文本数据352条。由于电务、工务及供电等因素的轨道电路故障文本数据内容差异,本文将其作为不同的数据集进行实验分析,分别记为D0、D1及D2。实验算法模型采用Python3.6语言及Scikit-learn库实现。
(11)
式中:a(k)为样本k在类内与其他点的距离平均值,反映类内的紧密性;b(k)为样本k与不同类间样本的最小平均距离,反映类间的分离程度;Q为样本总数。
对字符级分词后的3种故障因素轨道电路故障文本数据采用Word2vec模型训练并获取其语义特征的向量表示。训练模型参数中Word2vec文本字向量维度为128,窗口长度为12。通过式(11)对D0、D1及D2故障文本数据集分别计算轮廓系数与聚类数目K的关系(见图4),以确定最优聚类个数。选取轮廓系数最大值时的聚类数目K0=5,K1=4及K2=3,作为D0、D1及D2故障文本数据集的最优聚类个数。
图4 D0、D1及D2故障文本数据集不同K值时的轮廓系数
为评估聚类模型效果,结合最优K值由专家对D0、D1及D2故障文本数据集中故障主题类别标签进行人工标注,采用SFMI(fowlkes-mallows index)、准确率(SAcc)[15]及纯度(Spurity)作为故障主题聚类效果的评估标准,其中SAcc反映聚类结果簇与真实类别间的一对一关系,衡量一个簇包含相应真实类别样本的程度。SAcc越高意味着聚类性能越好,其计算公式如下:
(12)
式中:map为将每个簇索引、映射到一个类标签的函数,基于Hungarian算法[16]实现;li为xi的真实类别标签;ri为聚类索引;δ(a,b)为一函数,当a等于b时其值为1,否则其值为0。
SFMI为精确率和召回率的几何平均值,其计算公式如下:
(13)
式中:TP为真实正类被预测为正类的数量;FP为真实负类被预测为正类的数量;FN为真实正类被预测为负类的数量。
纯度为聚类正确的样本数与总样本数的比值,其值越接近1聚类效果越好,其计算公式如下:
(14)
式中:N为总样本数,Ω={ω1,ω2,…,ωk}为聚类结果簇,C={c1,c2,…,cj}为正确的类别标签,ωk为聚类结果第k个簇中的所有样本,cj为第j个类别中的真实样本。
为验证谱聚类算法在D0、D1及D2故障文本数据集上的聚类效果,分别采用Word2vec特征向量表示矩阵基于K-Means聚类方法(W-KM)、Word2vec特征向量表示矩阵经过非负矩阵分解(non-negative matrix factorization,NMF)算法得到的特征矩阵基于K-Means聚类方法(W-NMF-KM)与本文W-SC(Word2vec-spectral clustering)谱聚类方法进行对比实验。NMF和K-Means利用原始空间中的欧几里得距离来度量数据点之间的相似性,而谱聚类方法利用变换空间中的欧几里得距离来定义相似性,因此可能会揭示数据集中的一些隐藏结构[17]。
由于采用全连接方法计算邻接矩阵时需选择合适的核函数及相应参数,因此本文通过网格搜索方法分别获取了相应核函数及核函数参数γ。对于电务因素故障文本数据,采用Sigmoid核函数且γ为4.5;对于工务因素故障文本数据,采用RBF核函数且γ为10;对于D2供电因素故障文本数据,采用RBF核函数且γ为5。表1列举了不同故障因素文本数据集下轨道电路故障主题的聚类结果,表中数值为经过10次聚类实验后所得的平均值。
表1 不同故障因素数据集下3种故障主题聚类模型的结果
由表1可知:对于电务、工务因素轨道电路故障文本数据,采用W-SC算法聚类效果最优,其中准确率较W-KM聚类模型提高约0.01;对于供电因素故障文本数据,采用非负矩阵分解聚类算法效果最好;谱聚类算法对低维特征矩阵聚类效果与原始文本特征矩阵基于K-Means聚类算法聚类结果接近,说明了图Laplacian算子对高维文本数据特征提取的有效性。
为评估各故障主题聚类模型算法性能,在聚类收敛性能方面采用迭代次数作为评估指标,并在3个故障文本数据集中随机抽取不同规模的实验样本数据,对3种故障主题聚类模型进行对比分析,以评估不同聚类算法在不同数据规模下的收敛性能。其中:在D0数据集中随机抽取的实验样本数据子集的规模范围为[100,500],数据递增间隔为100条;在D1及D2数据集中随机抽取的实验样本数据子集的规模范围分别为[50,250]及[50,350],数据递增间隔为50条。图5为在D0、D1及D2故障文本数据集中随机抽取的不同规模实验样本数据子集分别进行10次聚类实验所获取的迭代次数的平均值。
图5 3种聚类算法在不同规模故障因素文本实验数据子集下收敛性能对比
由图5可知:不同聚类算法运行的迭代次数随着实验数据子集规模增加而增大;对比3种聚类算法,在D0、D1及D2不同规模实验数据子集的故障主题聚类过程中,谱聚类算法收敛速度均较快,表明谱聚类算法在收敛性能上具有一定优势。
综上所述,基于图Laplacian矩阵聚类特性的谱聚类算法,利用Word2vec向量表示的故障文本语义空间特征矩阵计算Laplacian矩阵,并求解特征值及特征向量,有效处理了传统文本聚类过程中文本特征向量维度高的问题,并在保证聚类准确率的条件下,其收敛性能更优。
针对聚类结果,结合专家人工标注的信息,人工归纳故障主题类型描述,并统计3种故障文本数据集聚类结果中不同故障主题类型样本数据出现的频率。表2给出了D0、D1及D2故障文本数据集聚类结果中不同故障主题类型描述及其出现频率的平均值。
表2 不同故障文本数据集聚类结果中故障主题描述及平均频率
由表2可知,3个数据集聚类结果均具有不平衡特征:电务因素D0数据集中器材不良相关故障主题类型占比最高,工务因素D1数据集中钢轨绝缘处相关故障主题类型占比最高,供电因素D2数据集中电源停电转换相关故障主题类型占比最高。
电务因素及工务因素故障文本数据中包含的故障主题类型,可以表征出轨道电路现场运行中实际发生故障的故障区域位置或类型;供电因素故障文本数据中包含的故障主题类型,可反映出容易影响轨道电路正常工作的与供电相关的因素,如不平衡牵引电流冲击干扰等[18]。通过统计不同故障主题类型的出现频率,可以获取现场轨道电路易发、多发性故障主题类型,并作为现场轨道电路综合维护检修及制定相应预防性维护措施的重点方向。
为更加直观地展示故障主题聚类过程及结果,采用t分布随机邻域嵌入(t-distributed stochastic neighbor embedding,t-SNE)算法进行降维。在3种故障文本数据集下,不同聚类算法在二维平面上的聚类可视化效果见图6~8。t-SNE作为一种非线性降维算法[19],对于高维数据降维效果较好,有助于可视化分析。
图6 在3种故障文本数据集下W-SC算法的聚类降维可视化结果
图7 在3种故障文本数据集下W-KM算法的聚类降维可视化结果
图8 在3种故障文本数据集下W-NMF-KM算法的聚类降维可视化结果
在图6~8中,不同颜色样本数据簇代表了不同的轨道电路故障主题类型,展示出3种故障因素文本数据采用不同聚类算法后,故障主题类型在二维空间的可视化映射。由图6可以看出:聚类后不同故障主题类型簇之间具有较为明显的划分,表明各故障因素文本数据集在语义空间所包含的故障主题类型间具有一定的区分度;与其他2种聚类算法相比,采用W-SC算法聚类后的簇内样本数据点分布更加紧凑,说明故障主题类型特征更为明显,而簇内样本数据点距离分散,反映相应故障主题类型故障文本数据在语义表达上的多样性及复杂性。
根据语义空间上故障主题聚类结果可知:基于Word2vec的文本表示对相似词汇以及故障文本语义特征有较好的学习效果,谱聚类算法在轨道电路故障文本主题聚类模型中准确率较高且收敛性能优于传统聚类算法,适用于大规模的文本聚类。通过对电务、工务及供电等因素轨道电路故障文本数据聚类的挖掘,获取了与3种轨道电路故障因素相关联的故障主题,且故障主题类型间具有较高的语义区分度。结合轨道电路故障主题类型发生频率,将易发、多发性故障主题作为有效信息,可为现场轨道电路故障处置分析及各部门制定维修决策提供很好的辅助指导。