胡小溪,牛 儒,唐 濤
(北京交通大學 軌道交通控制與安全國家重點實驗室, 北京 100044)
在大數據和人工智能的推動下,基于數據驅動的故障診斷[1-2]得到了較快發展,文本數據驅動是其重要分支之一。文本故障數據大量存在于工業界中,是一種以自然語言描述方式存在的非結構化數據,蘊含大量的故障信息,基于文本數據驅動的故障診斷在近年逐漸發展起來[3-4]。但工業界的故障文本記錄仍采取人工記錄方式,大量故障記錄存在模糊性和不規范性,使故障診斷網絡的節點數目造成不必要的增多,網絡復雜性增大,直接進行故障診斷可能丟失重要信息,造成正確率下降。因此實現故障的文本預處理具有重要意義。
故障文本預處理包括分詞與特征提取[5]。在分詞方面,文獻[6-7]采用基于詞庫匹配的分詞方法實現了對故障記錄的識別,該方法實現相對簡單、效率較高,但文本識別過程受詞庫約束較大,需要耗費大量人力維護詞庫,且無法徹底解決多詞同義現象。在特征提取方面,常見的方法包括詞頻-逆文檔頻率[8](Term Frequency-Inverse Document Frequency, TF-IDF)、Chi-square分布檢驗[9]、信息增益、互信息等,其中TF-IDF和Chi-square分布檢驗簡單有效,應用較為廣泛。
針對某線路信號設備故障記錄的特點,本文提出了一種基于詞項和語義融合的軌道交通信號故障文本自動預處理方法。針對各軌道交通線路設備故障記錄的獨特性、既有的軌道交通詞庫的不全面性,采用統計學習方法Viterbi-HMM模型[10-11]學習詞語的切分規律,用字與字間的共現概率識別新詞,形成線路專用信號故障詞庫,以簡化線路專用詞庫的人工維護量。針對自然語言的模糊性問題,分別采用K-means算法和LDA算法在詞項空間和語義空間上聚類,在保留完整語義信息的前提下將故障記錄按照關鍵詞聚合成類。針對故障記錄的不規范、冗余信息問題,進一步基于Chi-square分布檢驗和主題-詞項分布分別獲取故障記錄在詞項空間和語義空間的特征信息,去除特征噪聲。最后,利用K最近鄰算法[12]將故障的詞袋形式映射到統一專家模板,實現故障記錄的糾錯和統一化。以某地鐵線信號設備故障記錄為例,展示了該方法的處理過程,并基于試驗結果討論本方法的有效性與精度。
地鐵信號系統復雜,子系統間耦合緊密,服務于司機、綜控、調度等多個專業。信號設備的工作狀態主要通過這些設備進行反饋并人工記錄。通常,需記錄下故障現象內容、故障原因和處置措施。但是,不同工種、不同資質的人員對故障的理解和描述習慣不同、故障管理未落實,導致大量記錄歸類混亂、描述不規范。在故障情況下,由于地鐵運營壓力較大,設備使用人員需要第一時間先行恢復系統,記錄故障的時間有限甚至需要事后補錄。因此,故障記錄中“故障內容”字段往往偏短、特征信息較少。如表1中展示的某地鐵線信號設備部分故障記錄(未列出的字段對本研究沒有意義),很多“故障內容”明顯短于“故障原因”。

表1 某地鐵線信號設備故障記錄(部分)
在故障處理過程中,信號人員需要根據現象進行故障定位,因此在“故障原因/處理措施”字段也會包含部分調查過程中的故障現象。例如,表1中的記錄3,相比于“故障內容”字段,“故障原因”字段包含更為詳細的故障現象。其次,由于存在記錄人員的個體差別,“故障原因”字段的文本長度、詳細程度、涵蓋內容都可能存在較大差異。例如,表1中記錄1和記錄3屬于同一類故障模式,即軌道電路的接收盤故障導致紅光帶,但“故障原因”字段的文本差異顯著。另外,“故障原因”與“處理措施”記錄在同一段文本中,而某些處置信息對于故障診斷價值不大。例如,表1中記錄2包含晚間復查工作內容及參數數值,規定工序與正常參數值對故障診斷沒有作用,需要過濾這些冗余信息。
此外,地鐵信號系統采取先進技術設備,其供應商來自不同的國家、不同的廠商,設備命名方式和英文縮寫不統一。因此,不同線路的故障記錄存在一定的線間差異,包含大量的線路專有信息。再加上自然語言不可避免地存在模糊性、歧義性問題,使得歷史故障記錄無法直接使用,必須經過預處理,但人工處理不僅工作量巨大而且極易出錯。
基于詞項和語義融合的地鐵信號設備故障記錄自動預處理見圖1,共分為4部分。

圖1 基于詞項和語義融合的地鐵信號設備故障記錄自動預處理流程
(1) 構建線路信號專用詞庫。在軌道交通信號通用詞庫的基礎上,以原始故障文本為輸入,識別特定線路設備故障描述的專有詞匯,其作為新詞與通用詞庫融合,形成面向線路的信號專用詞庫。
(2) 詞項空間的聚類和特征提取。基于線路信號專用詞庫完成故障記錄的分詞,統計得到文檔-詞項矩陣(Document-Term Matrix, DTM)。再對DTM進行聚類和特征提取,從而形成故障記錄的詞項類和特征降噪。
(3) 語義空間的聚類和特征提取。為了避免丟失語義上的關鍵詞,采用LDA對DTM進行語義聚類與特征提取。通過在詞項層和語義層的聚類和特征提取,融合兩個空間,獲取融合特征作為故障記錄的關鍵詞,得到故障記錄關鍵詞的詞袋形式。
(4) 融合特征與專家模板的匹配。用詞項、語義融合關鍵詞代表故障記錄,基于KNN算法,匹配專家模板的DTM,對故障記錄進行分類,得到故障記錄的標準化描述,實現自動化預處理。
HMM是一種特殊的馬爾可夫鏈,它的狀態是隱含的(不能直接觀測),需要通過觀測量序列推測其隱含狀態。觀測向量在狀態變量的影響下表現出某種概率密度分布,因此HMM是一個雙重隨機過程,被大量應用在模式識別、語音識別等領域。本文將HMM用于新詞識別,即識別出句子中的詞,并且是既有詞庫中不存在的詞。
故障記錄由句子組成,句子由詞組成,詞由字組成。句子要分割成詞,則組成詞的字隱含著一個表示其自身在詞中位置的不可觀測參數,該隱含參數的取值為Begin(起始字),End(結束字),Middle(中間字),Single(單字成詞)。可觀測值為已知的故障記錄(字序列)。因此,可以將句子的生成過程看作是一個隱含參數序列產生的一個可觀測參數序列。
HMM在新詞識別中被表示成為一個五元組λ={S,W,T,E,π},其狀態遷移圖見圖2。其中,S為狀態值集合,內有四個元素S={Begin,End,Middle,Single},分別表示故障記錄中的每個字i(1≤i≤M)在詞語中的位置si,M為故障記錄總字數。W={wj|wj∈W,1≤j≤N}為觀測值集合(字集合),wj為記錄形成的字集合中的第j個字,字集合的總字數為N。T=(tm,n)4×4為轉移概率矩陣,每個元素tm,n=P(si=n|si-1=m)表示狀態值由m轉移至n的概率。E=(em,j)4×N為混淆矩陣,每個元素em,j=P(wj|si=m)表示由狀態值m輸出字wj的概率。π=(πm)1×4為初始狀態概率分布,每個元素πm=P(s1=m)表示文本記錄中首字的狀態值為m的概率,以上的m,n=1,2,3,4。

圖2 HMM的狀態遷移圖
基于HMM的新詞識別可以看作HMM解碼問題:給定W,T,E,π,利用Viterbi算法求解求解S,生成最有可能的狀態值序列。再將文本從字狀態值為Begin和End處斷開,則文本分裂成詞。統計詞項,去除無意義詞項,不存在于既有通用信號詞庫中的詞項為新詞,作為線路信號專有詞庫。
故障記錄的聚類可將相似的記錄聚集在同一個簇中,生成類標記,使整個文本集的數量降至簇的個數進行處理。故障記錄的聚類流程見圖3。其中,類1、類2分別表示故障記錄在詞項空間、語義空間的類別。詞項層的聚類采用基于向量空間模型[13](Vector Space Model,VSM)的K-means,語義層的聚類采用Gibbs-LDA。由于故障記錄的故障類別不確定,故障類別總數未知,需確定故障類別數目的大致范圍,即聚類數目K。

圖3 故障記錄的聚類
2.2.1 詞項空間的聚類和特征提取
K-means是基于距離的硬聚類,采用距離作為基于向量空間的文檔-詞項向量的相似性評價指標,將相似度高的故障記錄聚在一個類中。輪廓系數[14]結合了聚類的內聚度和分離度,因此選取輪廓系數評估聚類的效果,以判斷K-means的聚類數目K1。該值處于[-1,1]之間,值越大表示聚類效果越好,計算公式為
(1)
式中:a(k)為第k條故障記錄的VSM向量到其他同類別故障記錄的VSM向量的距離平均值,反映了故障記錄k的類內的內聚度;b(k)為第k條故障記錄的VSM向量與任意一個非同類別的類中所有故障記錄的VSM向量的距離平均值的最小值,反映了故障記錄k的類間分離度;Q為故障記錄總數。
在文本處理中,通常利用Chi-square統計判斷一個詞是否與既定的類別獨立[15]。若獨立,則說明該詞不屬于該類;若不獨立,則說明該詞屬于該類。Chi-square值表示各類文檔與詞庫中的每個詞的相關程度,計算公式為
(2)
式中:v為特定線路設備詞庫中的任意詞;c為類標記1中類的任意編號;A為類標記1為c且包含詞v的故障記錄的數量;B為類標記1不為c且包含詞v的故障記錄的數量;C為類標記1為c且不包含詞v的故障記錄的數量;D為類標記1不為c且不包含詞v的故障記錄的數量。
故障記錄向量空間模型表示的維度較高,其中含有一些非重要信息。特征提取可以提取表征故障記錄類的特征詞,以降低故障記錄在詞項空間上的向量維度,去除次要信息。為了提取故障記錄在詞項空間上的特征詞,采用Chi-square分布檢驗確定特征詞。
由于文檔-詞項向量是故障記錄在詞項空間上的表示,維度高,所以K-means聚類粒度較細,但無法表示語義。因此在詞項空間聚類的基礎上,結合語義聚類,采取LDA進行語義聚類,識別故障記錄的語義。
2.2.2 語義空間的聚類和特征提取
LDA是在潛在語義索引[16](Probabilistic Latent Semantic Indexing, PLSI)中引入貝葉斯先驗概率形成的主題模型,可用于語義識別。基于Gibbs采樣求解的LDA能解決基于EM算法求解的PLSI的過擬合問題。本文采用Gibbs-LDA訓練故障記錄集,得到文檔-主題矩陣與主題-詞項矩陣。從輸入輸出形式上,LDA可以看作是一種矩陣分解,輸入DTM,輸出文檔-主題矩陣與主題-詞項矩陣,識別隱含的主題變量,見圖4,其中T為詞庫詞項總數,文檔-主題分布可以看作是故障記錄的軟聚類,主題-詞項矩陣能給出文檔在語義空間上的特征詞,其作為詞項空間的特征詞在語義上的補充。

圖4 LDA的矩陣分解形式
在LDA主題模型中,主題數K2需要確定重要輸入參數,Rajkumar Arun等[17]提出了基于SVD與KL-Divergence的LDA最優主題數確定方法,文獻[18]提出了最大化P(Q|K2)最優主題數確定方法,均可以進行主題數的確定。其中,需要最大化Griffiths2004指標[18],最小化Arun2010的指標[17]。
在語義空間中,主題-詞項矩陣反映了故障記錄集主題的詞項概率分布,詞項的概率值表征了詞項在主題內的重要程度。清除主題內詞項概率與主題內最大詞項概率相差10倍及以上的詞項,得到清除次要特征詞項的主題-詞項矩陣,其作為語義層上的特征詞,完成語義空間的特征值提取。
類標記1反映了故障記錄在詞項空間上相似記錄的集群,類標記2反映故障記錄在語義空間上相似記錄的集群。融合兩個空間上的類標記和特征詞,得到故障記錄在詞項-語義融合空間上相似記錄的集群(類標記3)和詞袋形式的特征詞。當且僅當兩個故障記錄的兩個類標記相等,這兩個故障記錄在融合空間上才屬于同一個集群。將專家給出的故障描述模板進行分詞,作為KNN的既有鄰近數據,進行故障記錄的分類,得到致因的統一化描述,流程見圖5。

圖5 特征詞融合及KNN流程
本文采用某地鐵線2015—2017年的地面信號設備365條故障記錄為例,對所提出方法進行驗證試驗。
Step1生成該線路的信號專用詞庫并結構化故障記錄。圖6展示了新詞識別、該線路信號專用詞庫的生成和故障記錄分詞結構化的流程。例如,信號通用詞庫中對軌道電路的發送、接收設備僅有“發送器”“接收器”的表述名詞,對車站級的列車自動監控系統僅有“車站ATS分機”這些通用的術語表述。通過HMM可以識別出該線路的故障記錄中專有名詞術語“發送盤”“接收盤”“RPU”等。利用得到該線路的信號專用詞庫進行分詞,統計每條記錄中詞庫各詞出現的頻數,形成DTM矩陣,并進行TF-IDF權重加權。其中,需要過濾的冗余信息不加入詞庫。

圖6 新詞識別、該線路信號專用詞庫的生成和故障記錄分詞結構化的流程
Step2詞項空間的聚類和特征提取。按照式(1),計算輪廓系數與詞項空間聚類數目K1的關系,見圖7。輪廓系數越大表示聚類效果越好,因此取輪廓系數最大值對應的聚類數目K1=159。以表1展示的故障記錄為例,使用Chi-square分布檢驗提取故障記錄的詞項層的特征。表2展示了由詞項層K-means聚類獲取的類標記1和通過Chi-square檢驗提取的詞項層特征詞項(按Chi-square值降序排列,未列出的詞的Chi-square值過小)。其中,詞項層的第3類和第68類故障記錄與接收盤故障導致的紅光帶相關,詞項層的第37類故障記錄與信號機燈絲轉換繼電器故障相關。

表2 詞項層聚類的文本類別及特征詞

圖7 輪廓系數與聚類數目的曲線
Step3語義空間的聚類和特征提取。語義空間的聚類數目K2(主題數)與兩種優化判斷指標的關系如見圖8,G-A為Griffith2004指標與Arun2010的差值。為了使Griffiths2004指標最大化且Arun2010的指標最小化,取G-A最大值時的K2作為最優主題個數,故K2=96。

圖8 主題個數K2與2種優化方法的判斷指標關系
文檔-主題矩陣將故障記錄轉換至主題空間,取文檔-主題矩陣各行的最大值對應的主題為相應的故障記錄在語義空間的類別。將清除次要特征詞項的主題-詞項矩陣作為語義層上的特征詞,表3展示了表1中故障記錄的語義層類別及特征詞項。由表3可知,語義層的第21類故障記錄與接收盤故障導致的紅光帶相關,語義層的第19類故障記錄與信號機紅燈故障相關。

表3 語義層聚類的文本類別及特征詞
Step4融合特征與專家模板的匹配。結合表2和表3,融合詞項和語義空間上的特征詞,得到表1中的故障記錄在融合空間上的關鍵詞的詞袋形式。結合專家模板進行KNN分類,得到致因的統一化描述如表4所示。
表1中故障記錄的試驗過程和結果展示見表2~表4。其中,故障記錄1和記錄3被統一成相同的致因描述,去除了致因描述中的冗余信息,解決了致因記錄的不規范和模糊性問題。對于,故障記錄5和記錄6,其融合空間上的關鍵詞僅相差“全部”詞項,導致故障5和故障6被統一精確地歸類成不同的致因描述。

表4 故障文本的詞項空間、語義空間、融合空間上的類編號、關鍵詞及統一的故障原因描述
對于故障記錄7,在提取詞項空間的特征時,“大屏”的Chi-square值較低,被認為無法表征該故障記錄所在的類。若僅用詞項空間的特征詞作為新的觀測進行KNN分類,則由于丟失了“大屏”一詞,進行分類后,被歸類成“中心調度員工作站軟件卡滯”,錯誤地表達了故障記錄的原意。在語義空間上提取特征時,LDA產生的主題-詞項分布內“大屏”一詞概率較高,“大屏”詞項被認為可以表征該故障記錄所在的類。融合兩個空間的特征詞,獲取更為全面的特征詞,可以不丟失故障記錄的原意,得到融合空間中關鍵詞的詞袋形式“卡滯、軟件、大屏、全部、工作站、脫機、調度員、顯示”。在自動化預處理中,只要故障記錄在融合空間的關鍵詞的詞袋形式相同,即被認為是相同的故障記錄,具有相同的故障原因。結合專家模板進行分詞,作KNN分類,詞袋形式被統一為“中心大屏軟件卡滯/死機”。
文本預處理的效果通常采用精確率P(查準率,Precision)、召回率R(查全率,Recall)、綜合分類率F1(F1測試值,F1-score)指標[19-21]進行衡量,計算公式為
(3)
(4)
(5)
式中:ρ=P/R為精確率和召回率的重要性加權系數。在本試驗中,精確率和召回率同等重要,即ρ=1。
由于F1是P和R的綜合反映,本文通過F1值說明該方法的有效性和準確性,F1值越大表明效果越好。按照式(3)~式(5)計算相應指標,同時,為了驗證所提出方法的有效性,利用AN-BP計算在3種特征空間下的預處理F1,見圖9。

圖9 預處理F1指標統計
由圖9可知,第一,針對相同的分類器,單獨采用詞項空間的特征作預處理的效果比單獨采用語義空間的特征效果好,采用融合空間作預處理的效果比僅使用一種空間的特征效果好。原因可以從圖7、圖8和表2、表3中得出:K-means的聚類粒度比LDA的聚類粒度細。由于K-means是基于詞項向量的聚類,詞項向量的每個維度均為詞項屬性。信號領域內同義詞較多,如同種設備名稱的術語、縮寫、別稱。再加上故障記錄描述的模糊性,相同含義的詞項占據多個維度,使故障記錄類別數K1無意義地增大。因此詞項空間中每個簇的故障記錄數目較少,使得詞項空間的Chi-square特征提取較全面。但詞項空間特征無法描述故障記錄的語義,在一些故障記錄中無法較好地提取特征。LDA是語義空間的聚類,通過評估詞項間的共現,將共現頻率高的詞項聚合,以識別故障記錄集的主題和主題的詞項,同時可以識別多義詞和同義詞。導致LDA的聚類粒度粗于K-means,從而使故障記錄集進行更有效的降維。這使得在提取語義空間每個類的特征時,主題-詞項分布中故障現象詞項的概率偏高、致因詞項的概率偏低,因此僅以語義空間特征的效果不如詞項空間特征的效果好。但是由于LDA的語義識別優勢,LDA彌補了故障記錄在詞項空間上部分簇不能很好地提取特征詞項的缺點。第二,相比BP,KNN略微提高了車站ATS相關故障和中心ATS相關故障的診斷準確率。以上兩點反映了在分類問題中,通常采用更好的算法提高特征提取的性能,使特征提取的信息更能表征原始數據,而非通過使用更優的分類器去提高分類準確率。因此采取融合特征可以更好地進行故障記錄預處理。
本文以某地鐵線信號設備故障記錄為數據,提出了基于詞項和語義融合的地鐵信號設備故障記錄處理方法。本文采用HMM識別特定線路設備故障描述的專有詞匯,以解決基于字符串匹配的分詞的缺陷。針對故障原因描述的模糊性,通過細粒度聚類K-means與Chi-square分布提取詞項層的特征詞。結合粗粒度聚類LDA提取語義層的特征詞,以獲得融合層的故障記錄的詞袋描述。結合專家模板和KNN分類,將故障記錄進行歸類,以獲取故障致因的統一描述,實現故障記錄的自動化預處理。應用該方法對該某地鐵線路地面信號故障記錄進行了預處理,宏平均F1值達95.56%,說明了該方法的有效性與準確性。