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