朱月皓,孟令云,廖正文,王先樞,田海寧
(1.北京交通大學(xué) 交通運(yùn)輸學(xué)院,北京 100044;2.中國鐵路沈陽局集團(tuán)有限公司,沈陽 110001)
鐵路運(yùn)輸調(diào)度系統(tǒng)應(yīng)對各類風(fēng)險(xiǎn)和事故的能力一直是鐵路運(yùn)營部門關(guān)注的重點(diǎn)。快速準(zhǔn)確地預(yù)測故障持續(xù)時(shí)間,可為調(diào)度指揮提供參考,是提升風(fēng)險(xiǎn)應(yīng)對能力的關(guān)鍵。當(dāng)前,發(fā)生故障或擾動(dòng)時(shí),列車調(diào)度員只能憑借自己的經(jīng)驗(yàn),判斷故障的持續(xù)時(shí)間,這使得判斷的結(jié)果誤差大、穩(wěn)定性低、主觀性強(qiáng)。為此,鐵路運(yùn)營部門迫切需要運(yùn)用一種快速、高效的鐵路故障持續(xù)時(shí)間預(yù)測方法,以滿足日常列車運(yùn)行調(diào)整的需求。
目前,一種逐漸成熟的計(jì)算機(jī)技術(shù)——自然語言處理,已經(jīng)成為計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域的一個(gè)重要研究方向,研究人與計(jì)算機(jī)間通過自然語言進(jìn)行有效通信的各種理論和方法。深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)領(lǐng)域中的一個(gè)重要分支,最早應(yīng)用于計(jì)算機(jī)視覺領(lǐng)域,近些年來,也開始在自然語言處理領(lǐng)域得到運(yùn)用,使得自然語言處理的語言建模、語義解析和文本分類等多項(xiàng)工作取得了突破。Mikolov等人[1-2]提出了用CBOW 和Skip-gram 模型對文本分布進(jìn)行表示,能夠在不丟失詞語間相關(guān)性的情況下,將詞語映射到低緯度的向量空間中,降低計(jì)算量,提高模型的計(jì)算效率;Kalchbrenner 等人[3]構(gòu)建了一個(gè)動(dòng)態(tài)卷積神經(jīng)網(wǎng)絡(luò)(CNN,Convolutional Neural Network)模型,從而處理不同長度的文本;吳龍峰[4]針對短文本的文本分類中出現(xiàn)的特征維度高和數(shù)據(jù)稀疏的問題,提出了一種結(jié)合Word2vec 詞向量模型和LDA(Latent Dirichlet Allocation)主題模型的文本特征表示模型,增強(qiáng)了模型的特征表達(dá)能力;牛雪瑩[5]結(jié)合Word2vec 詞向量模型和LDA 主題模型,構(gòu)建CNN 模型進(jìn)行文本分類,并利用實(shí)際數(shù)據(jù)驗(yàn)證了方法的有效性。
由于鐵路行業(yè)內(nèi)存在大量的非結(jié)構(gòu)化文本數(shù)據(jù),自然語言處理技術(shù)在鐵路行業(yè)具有一定的應(yīng)用前景[6]。已有學(xué)者開始應(yīng)用自然語言處理技術(shù)解決鐵路異物侵限、故障診斷、軌道形變檢測和事故致因分類等問題。Rosadini 等人[7]提出利用自然語言處理技術(shù)處理鐵路信號(hào)制造商的文件,從中挖掘出鐵路需求中存在的缺陷;樊夢琳[8]在事故報(bào)告文本挖掘和事故特征選擇的基礎(chǔ)上,根據(jù)鐵路事故持續(xù)時(shí)間的分布特點(diǎn)設(shè)計(jì)了結(jié)合分類和回歸的雙層預(yù)測模型,并利用XGBoost 算法構(gòu)建模型預(yù)測鐵路事故的持續(xù)時(shí)間;張世同[9]構(gòu)建了基于BERT 與BiLSTM 的文本分類模型,通過分析安監(jiān)報(bào)文本數(shù)據(jù)來確定隱患分類。目前,直接利用鐵路事故文本報(bào)告,對故障持續(xù)時(shí)間進(jìn)行預(yù)測的相關(guān)研究尚少。
本文利用自然語言處理技術(shù)處理“安監(jiān)報(bào)1”文本數(shù)據(jù),建立基于CNN 的鐵路故障持續(xù)時(shí)間預(yù)測模型,快速、高效地得出故障的持續(xù)時(shí)間及其概率分布,從而為列車調(diào)度員的實(shí)時(shí)列車運(yùn)行計(jì)劃調(diào)整決策提供參考。
鐵路交通事故(設(shè)備故障)概況表又稱為“安監(jiān)報(bào)1”,描述的內(nèi)容包括鐵路故障發(fā)生的時(shí)間、地點(diǎn)、事故詳情、處理方式和持續(xù)時(shí)間等信息。由于故障的持續(xù)時(shí)間存在一定的規(guī)律性,即相同類型故障的處理流程是一致的,持續(xù)時(shí)間差別不大,從而為利用“安監(jiān)報(bào)1”文本數(shù)據(jù)進(jìn)行鐵路故障持續(xù)時(shí)間預(yù)測提供了理論前提。然而“安監(jiān)報(bào)1”作為一種非結(jié)構(gòu)化文本數(shù)據(jù),將其作為CNN 模型的輸入?yún)?shù)前,需要先對其進(jìn)行數(shù)據(jù)預(yù)處理。
“安監(jiān)報(bào)1”文本數(shù)據(jù)的預(yù)處理過程包括人工篩選數(shù)據(jù)、數(shù)據(jù)條打標(biāo)簽、利用Jieba 分詞工具切分文本、構(gòu)建停用詞表并去除停用詞,如圖1 所示。
圖1 “安監(jiān)報(bào)1”文本數(shù)據(jù)預(yù)處理流程
(1)由于“安監(jiān)報(bào)1”的記錄還包含未造成運(yùn)營影響的故障情況和故障情況不明的數(shù)據(jù)條,需要對這些數(shù)據(jù)進(jìn)行人工篩選,并刪去這些對鐵路故障持續(xù)時(shí)間預(yù)測無實(shí)際作用的數(shù)據(jù)條;
(2)根據(jù)實(shí)際需求將故障持續(xù)時(shí)間劃分為若干個(gè)類別,并給每條可用的數(shù)據(jù)條打上標(biāo)簽;
(3)利用Jieba 分詞工具對每條數(shù)據(jù)文本進(jìn)行切分,文本切分是自然語言處理的基礎(chǔ),切分的準(zhǔn)確度直接決定了詞向量的質(zhì)量。Jieba 分詞工具支持3 種分詞模式,包括精確模式、全模式和搜索引擎模式。本文采用精確模式,此模式可將句子進(jìn)行精確切分,更適合文本分析任務(wù)。此外,為防止“安監(jiān)報(bào)1”文本數(shù)據(jù)中的一些特有名詞被誤切分,可在Jieba 分詞工具中嵌入一個(gè)鐵路常用詞字典,其包含常用的鐵路術(shù)語、地點(diǎn)術(shù)語和故障術(shù)語等,例如“客專線”“撞鳥”“制動(dòng)軸”等。
(4)構(gòu)建適用于鐵路領(lǐng)域的停用詞表,去除切分后的數(shù)據(jù)中包含的標(biāo)點(diǎn)符號(hào)、數(shù)字、干擾詞和無用詞等,例如:“檢查”“于”“運(yùn)行”等。
本文基于CNN 構(gòu)建鐵路故障持續(xù)時(shí)間預(yù)測模型,將CNN 多分類的結(jié)果設(shè)置為預(yù)測的時(shí)間范圍。在預(yù)測模型實(shí)際運(yùn)用時(shí),列車調(diào)度員輸入描述故障的文本信息后,經(jīng)過數(shù)據(jù)預(yù)處理和該預(yù)測模型的計(jì)算,即可得到鐵路故障的持續(xù)時(shí)間及概率分布。該預(yù)測模型由輸入層、卷積層、最大池化層和全連接層組成,模型架構(gòu)如圖2 所示。
圖2 基于CNN 的鐵路故障持續(xù)時(shí)間預(yù)測模型架構(gòu)
1.2.1 輸入層
將預(yù)處理后的數(shù)據(jù)輸入至輸入層,為使得文本數(shù)據(jù)能夠被計(jì)算機(jī)所理解,需要將非結(jié)構(gòu)化、不可計(jì)算的文本數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化、可計(jì)算的向量,即數(shù)字信息。本文利用Word2vec 詞向量模型計(jì)算得到低維度的稠密矩陣。該模型是一種基于神經(jīng)網(wǎng)絡(luò)的詞向量生產(chǎn)模型,利用深度學(xué)習(xí)網(wǎng)絡(luò)對語料數(shù)據(jù)的詞語及其上下文的語義關(guān)系進(jìn)行建模,從而得到低維度的詞向量,即稠密矩陣,可在保留詞與詞間關(guān)系的同時(shí),顯著提高求解效率,已廣泛應(yīng)用于自然語言處理領(lǐng)域。
1.2.2 卷積層
將輸入層處理后的低維度的稠密矩陣輸入至卷積層,進(jìn)行卷積操作。本文通過設(shè)置不同大小的卷積核,對輸入的稠密矩陣進(jìn)行多次卷積操作,提取文本的關(guān)鍵特征。每一次卷積操作相當(dāng)于一次特征向量的提取,通過定義不同的卷積窗,提取不同的特征向量,構(gòu)成卷積層的輸出,即圖中的特征映射結(jié)果。
1.2.3 池化層
將卷積操作后的特征映射結(jié)果輸入至池化層,進(jìn)行池化操作。在池化層中,不同維度的特征映射結(jié)果經(jīng)過池化層后都能變成定長的向量。本文采用最大池化的方式,取特征映射結(jié)果的最大值。最大池化既可保留文本的突出特征,又對特征映射結(jié)果進(jìn)行了降維,從而降低了預(yù)測模型的數(shù)據(jù)運(yùn)算量,以便更好地捕捉文本數(shù)據(jù)中描述故障的關(guān)鍵信息。圖2 中特征映射結(jié)果經(jīng)過最大池化由三維向量降為一維向量。然而,最大池化不可避免地會(huì)損失一些有效信息,一般可通過增加特征映射數(shù)量的方式進(jìn)行彌補(bǔ),本文設(shè)計(jì)的卷積層包含200 個(gè)特征映射,可在一定程度上彌補(bǔ)信息的損失。
1.2.4 全連接層
將最大池化層處理后的數(shù)據(jù)輸入全連接層。全連接層在CNN 中起到分類器的作用。數(shù)據(jù)通過全連接的方式接入到全連接層后連接到多維的時(shí)間類別向量上,該向量就是安監(jiān)報(bào)文本數(shù)據(jù)在設(shè)定的故障持續(xù)時(shí)間范圍上的概率分布情況,其中,最大概率值為預(yù)測的故障持續(xù)時(shí)間類別。
本文的實(shí)驗(yàn)數(shù)據(jù)來源于中國鐵路沈陽局集團(tuán)有限公司,選取其2017 年至2021 年“安監(jiān)報(bào)1”的文本數(shù)據(jù),總計(jì)9000 條。選取該數(shù)據(jù)集的80%作為訓(xùn)練集、20%作為測試集。展示出的數(shù)據(jù)已經(jīng)過脫敏處理,實(shí)驗(yàn)數(shù)據(jù)樣例如表1 所示。
表1 “安監(jiān)報(bào)1”實(shí)驗(yàn)數(shù)據(jù)樣例
本實(shí)驗(yàn)基于Keras 框架,搭建鐵路故障持續(xù)時(shí)間預(yù)測模型。Keras 是建立在TensorFlow 和Theano 上的神經(jīng)網(wǎng)絡(luò)框架,采用類似搭積木的方式來構(gòu)建神經(jīng)網(wǎng)絡(luò)。實(shí)驗(yàn)具體環(huán)境為:CPU AMD 5800H,內(nèi)存16 G,編程語言為Python3.6,開發(fā)工具為Visual Code,深度學(xué)習(xí)框架為TensorFlow 1.0.0。
本文中的數(shù)據(jù)統(tǒng)一設(shè)置為UTF-8 格式,利用Python 調(diào)用Jieba 分詞組件對數(shù)據(jù)進(jìn)行分詞,并利用構(gòu)建的停用詞表來去除干擾詞。本實(shí)驗(yàn)的故障持續(xù)時(shí)間類別設(shè)置如表2 所示,卷積神經(jīng)網(wǎng)絡(luò)的具體參數(shù)配置如表3 所示。
表2 故障持續(xù)時(shí)間類別
表3 卷積神經(jīng)網(wǎng)絡(luò)參數(shù)配置表
訓(xùn)練集數(shù)據(jù)共7200 條,模型的訓(xùn)練時(shí)間約為274 s。測試集數(shù)據(jù)共1800 條,測試時(shí)間約為16.3 s,平均每條數(shù)據(jù)花費(fèi)的時(shí)間約為0.009 s,能夠滿足調(diào)度現(xiàn)場的實(shí)時(shí)性需求。模型的輸出結(jié)果為各類別的概率,即故障持續(xù)時(shí)間的概率,預(yù)測結(jié)果樣例如表4 所示。測試集的準(zhǔn)確率為72%,損失值為2.3789。
表4 預(yù)測結(jié)果樣例
本模型的輸出結(jié)果能夠較為直觀地展現(xiàn)故障持續(xù)時(shí)間在各時(shí)間范圍內(nèi)的概率,具有良好的可讀性。從實(shí)驗(yàn)結(jié)果來看,測試集準(zhǔn)確率約為72%,能夠?yàn)榱熊囌{(diào)度員在鐵路故障突發(fā)時(shí)預(yù)測故障持續(xù)時(shí)間提供參考,具有一定的實(shí)際應(yīng)用價(jià)值。
本文利用自然語言處理技術(shù),將Word2vec 詞向量模型與基于CNN 的分類模型相結(jié)合,設(shè)計(jì)了鐵路故障持續(xù)時(shí)間預(yù)測模型。該預(yù)測模型能夠快速、準(zhǔn)確地得出故障持續(xù)時(shí)間的概率分布,從而為列車運(yùn)行調(diào)整提供參考。
同類型故障的持續(xù)時(shí)間橫跨多個(gè)時(shí)間范圍、“安監(jiān)報(bào)1”數(shù)據(jù)不夠規(guī)范且無法全面描述故障詳情、持續(xù)時(shí)間較長的數(shù)據(jù)樣本較少等原因制約了本文模型的準(zhǔn)確率。下一步,應(yīng)針對“安監(jiān)報(bào)1”數(shù)據(jù)不夠規(guī)范的問題,引入更為規(guī)范化和描述更為細(xì)致的數(shù)據(jù)。