李海玲1,董廣然**,黨 琦
(1.西安航空學(xué)院 計(jì)算機(jī)學(xué)院,西安 710077;2.航天器在軌故障診斷與維修重點(diǎn)實(shí)驗(yàn)室,西安 710043)
航天器異常檢測(cè)系統(tǒng)是一個(gè)典型的基于規(guī)則推理的專家系統(tǒng),主要對(duì)在軌運(yùn)行的航天器運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)或事后的異常檢測(cè),給出故障檢測(cè)結(jié)果。航天器異常檢測(cè)的過程是根據(jù)其運(yùn)行特征信息,探查導(dǎo)致系統(tǒng)發(fā)生故障的部件或故障間的相互聯(lián)系,并查明引發(fā)這些故障的初始原因的過程。由于航天器特殊的運(yùn)行環(huán)境,故障特征與相應(yīng)故障映射關(guān)系非常復(fù)雜,所以故障案例在航天器故障識(shí)別定位中可發(fā)揮重要的作用。文獻(xiàn)[1-5]均是基于故障案例推理的應(yīng)用,其中案例結(jié)構(gòu)化表示作為案例推理的基礎(chǔ),直接影響案例推理的性能,工程實(shí)現(xiàn)中推理方法和案例結(jié)構(gòu)呈緊耦合關(guān)系且檢索效率低。目前,航天器異常檢測(cè)系統(tǒng)中案例推理作用發(fā)揮不明顯,主要集中在基于圖結(jié)構(gòu)的案例表示和基于圖的案例相似性度量方法存在可能漏掉最優(yōu)解、目標(biāo)與相關(guān)案例相似性評(píng)價(jià)困難、修訂案例的二義性和一致性檢查難以處理、關(guān)鍵特征權(quán)重難以確定等問題[6],案例檢索復(fù)雜度比較高。
本文以充分發(fā)揮故障案例在航天器異常檢測(cè)系統(tǒng)中故障識(shí)別、故障定位的作用為目標(biāo),給出了基于關(guān)鍵詞的故障案例關(guān)聯(lián)方法,針對(duì)異常檢測(cè)規(guī)則知識(shí)和故障案例特點(diǎn),設(shè)計(jì)了關(guān)鍵詞提取模式和關(guān)聯(lián)引擎,在衛(wèi)星狀態(tài)異常后,利用異常檢測(cè)知識(shí)與案例的相似性來關(guān)聯(lián)故障案例。通過工程實(shí)例對(duì)本方法進(jìn)行了分析驗(yàn)證,結(jié)果表明,本文所設(shè)計(jì)的方法故障案例關(guān)聯(lián)全面,數(shù)據(jù)處理運(yùn)行高效,與案例結(jié)構(gòu)松耦合,工程實(shí)踐快捷。
航天器異常檢測(cè)系統(tǒng)是一個(gè)典型的基于規(guī)則推理的專家系統(tǒng),總體結(jié)構(gòu)如圖1所示。其核心是異常檢測(cè)規(guī)則知識(shí)的維護(hù),知識(shí)表示基于專家系統(tǒng)開發(fā)工具(C Language Integrated Production System,CLIPS)進(jìn)行構(gòu)建,以可擴(kuò)展標(biāo)記語言(Extensible Markup Language,XML)組織文檔結(jié)構(gòu),存儲(chǔ)在信息管理系統(tǒng)。
圖1 基于規(guī)則推理專家系統(tǒng)Fig.1 Rule-based reasoning expert system
以某衛(wèi)星的診斷知識(shí)為例,其診斷規(guī)則有3 000余條,字符數(shù)為370 545 Byte。隨著在軌航天器數(shù)量的不斷增加和結(jié)構(gòu)的日趨復(fù)雜,異常檢測(cè)知識(shí)逐漸呈指數(shù)級(jí)增長(zhǎng)。
我國(guó)航天器信息管理系統(tǒng)積累了豐富的故障案例,但其結(jié)構(gòu)相對(duì)簡(jiǎn)單,主要應(yīng)用于案例記錄和查詢,如圖2所示。
圖2 案例結(jié)構(gòu)示意圖Fig.2 Schematic diagram of case structure
故障案例記錄主要包括異常名稱、異常影響、異常描述、異常部件、處置方法等內(nèi)容。
基于現(xiàn)有案例庫(kù)實(shí)現(xiàn)異常檢測(cè)結(jié)果和故障案例的關(guān)聯(lián),實(shí)質(zhì)上是異常檢測(cè)系統(tǒng)規(guī)則知識(shí)和故障案例的關(guān)聯(lián),即文本的相似性度量。
詞頻-逆文件頻率(Term Frequency- Inverse Document Frequency,TF-IDF[7])是一種在信息檢索和文本挖掘領(lǐng)域廣泛應(yīng)用的加權(quán)算法,其核心是經(jīng)典的空間向量余弦算法。本文基于TF-IDF,實(shí)現(xiàn)對(duì)異常檢測(cè)規(guī)則知識(shí)和案例的匹配。
本文所研究的問題域中元素相互之間是線性無關(guān)的,滿足TF-IDF算法的前提條件。本文以關(guān)鍵詞的權(quán)重為元素構(gòu)建N維向量,對(duì)文檔(規(guī)則知識(shí)、案例)進(jìn)行化簡(jiǎn)表示。文檔用D表示,關(guān)鍵詞用K表示,文檔用關(guān)鍵詞集表示為D(K1,K2,…,Kn),其中Kj是關(guān)鍵詞,1≤j≤n。對(duì)每個(gè)關(guān)鍵詞給予不同的權(quán)重表征其不同的重要性,即D=D(K1,W1;K2,W2;…;Kn,Wn),簡(jiǎn)寫為D=D(W1,W2,…,Wn),成為文檔D的向量表示,其中Wj是Kj的權(quán)重,1≤j≤n。假如文檔中有Key1、Key2、Key3、Key4 4個(gè)關(guān)鍵詞,那么這篇文檔就表示為D(Key1,Key2,Key3,Key4)。假設(shè)Key1、Key2、Key3、Key4的權(quán)重分別為40、30、30、20,那么該文檔的向量表示為D(40,30,30,20)。在向量空間的模型中,用空間向量間夾角的余弦值表示文檔D1與D2間的相關(guān)性Sim(D1,D2),公式為
(1)
式中:W1j、W2j分別表示兩個(gè)文檔D1、D2第j個(gè)關(guān)鍵詞的權(quán)值,1≤j≤n。
例如異常檢測(cè)知識(shí)規(guī)則A的關(guān)鍵詞為Key1、Key2、Key3、Key4,權(quán)值分別為40、30、30、20,案例記錄B的關(guān)鍵詞為Key1、Key3、Key4、Key5,權(quán)值分別為 50、40、30、20,則A的向量表示為A(40,30,30,20,0),B的向量表示為B(50,0,40,30,20),則根據(jù)式(1)計(jì)算出來的異常檢測(cè)知識(shí)規(guī)則A與案例記錄B相關(guān)度是0.84。
自然語言處理與信息檢索[8](Natural Language Processing & Information Retrieval,NLPIR)系統(tǒng)是被廣泛使用的中文分詞軟件系統(tǒng)?;贜LPIR分詞系統(tǒng)可以獲得異常檢測(cè)系統(tǒng)規(guī)則知識(shí)和案例記錄的關(guān)鍵詞及其權(quán)重,但是針對(duì)關(guān)鍵詞之間語義相關(guān)性關(guān)系,需要增加語義線性無關(guān)的復(fù)雜處理流程。本文設(shè)計(jì)了基于用戶詞典的關(guān)鍵詞提取模式,實(shí)現(xiàn)了用戶詞典和關(guān)鍵詞權(quán)重計(jì)算方法,且化簡(jiǎn)了語義線性無關(guān)處理過程。
(1) 用戶字典構(gòu)成
用戶詞典針對(duì)的是航天器異常檢測(cè)知識(shí)和故障案例,面對(duì)的是專業(yè)領(lǐng)域,關(guān)鍵詞數(shù)量有限。本文設(shè)計(jì)了具有同義詞的關(guān)鍵詞用戶字典,關(guān)鍵詞之間互不相關(guān),用戶字典格式如表1所示。
表1 用戶字典格式Tab.1 User dictionary format
本文設(shè)計(jì)的用戶詞典中,逆向文件頻率(Inverse Document Frequency,IDF)i的值,對(duì)應(yīng)關(guān)鍵詞Ki的統(tǒng)計(jì)計(jì)算結(jié)果,由文檔集合總文獻(xiàn)數(shù)量除以包含該關(guān)鍵詞Ki的文件數(shù)量,把統(tǒng)計(jì)到的商計(jì)算對(duì)數(shù)得到,即
IDFi=lg(D/Di) 。
(2)
式中:D為文件集合中的文件總數(shù),Di為關(guān)鍵詞出現(xiàn)過的文件數(shù)。在實(shí)際操作過程中,也可根據(jù)經(jīng)驗(yàn)對(duì)逆向文件頻率值進(jìn)行預(yù)設(shè)。
(2)關(guān)鍵詞權(quán)重計(jì)算
代表一篇文檔的關(guān)鍵詞,其重要程度(權(quán)重)應(yīng)該與它在該文檔中出現(xiàn)的次數(shù)成正比上升,同時(shí)應(yīng)與它所在整個(gè)文獻(xiàn)集合中出現(xiàn)的次數(shù)成反比降低[9]。關(guān)鍵詞權(quán)重計(jì)算流程示意圖如圖3所示。
圖3 關(guān)鍵詞權(quán)重計(jì)算流程圖Fig.3 Flow chart of key word weight calculation
在給定診斷知識(shí)或案例記錄的文本中,計(jì)算用戶字典中的關(guān)鍵詞詞頻時(shí),同義詞的詞頻全部統(tǒng)計(jì)為對(duì)應(yīng)關(guān)鍵詞的詞頻,對(duì)于在某文本里的詞語Ki來說,其詞頻重要性可表示為
(3)
式中:ni,j是詞語Ki在文件Dj中的出現(xiàn)次數(shù),Si,j是Ki對(duì)應(yīng)同義詞在文件Dj中的出現(xiàn)次數(shù),分母是文件Dj中所有出現(xiàn)的詞數(shù)[10]。
最后關(guān)鍵詞Ki的權(quán)重為
Wi=IDFi·TFi,j。
(4)
基于關(guān)鍵詞的關(guān)聯(lián)引擎包含關(guān)聯(lián)系統(tǒng)層和關(guān)鍵詞系統(tǒng)層兩部分。將關(guān)鍵詞提取和關(guān)鍵詞關(guān)聯(lián)分開處理,將縮短整個(gè)關(guān)聯(lián)引擎的運(yùn)算時(shí)間,提高實(shí)時(shí)診斷結(jié)果的關(guān)聯(lián)效率。
引擎運(yùn)行分關(guān)鍵詞維護(hù)和關(guān)聯(lián)兩種模式。在關(guān)鍵詞維護(hù)模式下,首先調(diào)用關(guān)鍵詞系統(tǒng)層,按衛(wèi)星代號(hào)提取故障診斷庫(kù)的知識(shí),生成對(duì)應(yīng)知識(shí)規(guī)則ID的關(guān)鍵詞,存入綜合管理信息庫(kù);其次按衛(wèi)星代號(hào)提取綜合管理信息庫(kù)的案例記錄,生成對(duì)應(yīng)案例記錄ID的關(guān)鍵詞,存入綜合管理信息庫(kù)。在關(guān)聯(lián)模式下,調(diào)用關(guān)聯(lián)系統(tǒng)層,根據(jù)異常檢測(cè)的知識(shí)規(guī)則ID關(guān)聯(lián)到案例記錄?;陉P(guān)鍵詞的關(guān)聯(lián)引擎組件結(jié)構(gòu)如圖4所示。
圖4 基于關(guān)鍵詞的關(guān)聯(lián)引擎結(jié)構(gòu)Fig.4 Key word based association engine structure
關(guān)聯(lián)系統(tǒng)層包括關(guān)鍵字?jǐn)?shù)據(jù)預(yù)處理、關(guān)聯(lián)計(jì)算、關(guān)聯(lián)結(jié)果3個(gè)組件,各組件具體功能描述如下:
(1)關(guān)鍵字?jǐn)?shù)據(jù)預(yù)處理組件把信息庫(kù)內(nèi)容讀入遠(yuǎn)程字典服務(wù)器[11](REmote DIctionary Server,Redis)進(jìn)行內(nèi)存數(shù)據(jù)緩沖,中間結(jié)果也存入Redis,另外對(duì)提取的異常檢測(cè)知識(shí)關(guān)鍵字和案例記錄關(guān)鍵字進(jìn)行關(guān)鍵字向量空間維度的一致化處理。
(2)關(guān)聯(lián)計(jì)算組件構(gòu)建數(shù)據(jù)模型和相似度計(jì)算處理。
(3)關(guān)聯(lián)結(jié)果生成組件根據(jù)相似度計(jì)算結(jié)果及預(yù)設(shè)的閾值生成衛(wèi)星同一平臺(tái)和不同平臺(tái)的關(guān)聯(lián)結(jié)果。
關(guān)聯(lián)系統(tǒng)層的數(shù)據(jù)處理過程基于Redis進(jìn)行數(shù)據(jù)模型計(jì)算處理,具體實(shí)現(xiàn)中增加多線程并行處理,完全可以保證處理效率。
關(guān)鍵詞系統(tǒng)層包括案例記錄預(yù)處理、規(guī)則知識(shí)預(yù)處理、關(guān)鍵詞計(jì)算、關(guān)鍵詞生成4個(gè)組件:
(1)案例記錄預(yù)處理組件對(duì)案例記錄的異常名稱、異常影響、異常描述、異常部件進(jìn)行合成處理。
(2)規(guī)則知識(shí)預(yù)處理組件對(duì)CLIPS知識(shí)文本按照知識(shí)標(biāo)識(shí)ID進(jìn)行分段處理。
(3)關(guān)鍵詞計(jì)算組件根據(jù)用戶字典對(duì)需要處理的知識(shí)、案例進(jìn)行分詞、權(quán)重計(jì)算及關(guān)鍵詞排序。
(4)關(guān)鍵詞生成組件根據(jù)關(guān)鍵詞的排序結(jié)果和關(guān)鍵詞預(yù)設(shè)數(shù)量,生成關(guān)鍵詞并將結(jié)果存入綜合管理信息庫(kù)。
上述設(shè)計(jì)綜合考慮了工程實(shí)現(xiàn)的難易程度和運(yùn)行效率,對(duì)各個(gè)關(guān)鍵模塊的合理規(guī)劃分層,能夠有效降低工程實(shí)現(xiàn)的復(fù)雜性,提升關(guān)聯(lián)引擎的運(yùn)行效率。
在異常檢測(cè)系統(tǒng)故障關(guān)聯(lián)改進(jìn)中,基于本文的設(shè)計(jì)思想實(shí)現(xiàn)了一個(gè)簡(jiǎn)化版本的關(guān)聯(lián)引擎原型系統(tǒng)。測(cè)試過程中,將50顆衛(wèi)星的異常檢測(cè)知識(shí)和故障案例導(dǎo)入測(cè)試數(shù)據(jù)庫(kù),對(duì)某航天器XX0001的遙測(cè)數(shù)據(jù)進(jìn)行回放,設(shè)定關(guān)鍵字詞典如表2所示。
表2 關(guān)鍵詞字典Tab.2 Keyword dictionary
關(guān)鍵詞逆向文件頻率由于選取的語料庫(kù)有限,僅作為本文測(cè)試使用。編號(hào)為Rule_278_TK19的異常檢測(cè)知識(shí)含有關(guān)鍵詞“電源、電流、陀螺、紅外”,中文分詞20個(gè),向量表示為A(0.015,0.015,0.09,0.09)。輸出規(guī)則Rule_278_TK19的案例關(guān)聯(lián)結(jié)果僅用了300 ms,關(guān)聯(lián)結(jié)果如表3所示,其中異常檢測(cè)目標(biāo)標(biāo)識(shí)為XX0001,異常檢測(cè)知識(shí)ID為Rule_278_TK19。
表3 異常檢測(cè)故障關(guān)聯(lián)結(jié)果Tab.3 Fault correlation results of anomaly detection
規(guī)則Rule_278_TK19的案例關(guān)聯(lián)結(jié)果包含了本衛(wèi)星、同平臺(tái)其他衛(wèi)星、不同平臺(tái)衛(wèi)星的歷史故障案例情況。通過表中案例索引,可以進(jìn)一步獲取關(guān)聯(lián)案例的詳細(xì)信息,根據(jù)本星關(guān)聯(lián)案例結(jié)合相似度可以確定相應(yīng)的應(yīng)急操作,根據(jù)同平臺(tái)其他衛(wèi)星關(guān)聯(lián)案例結(jié)合相似度可以對(duì)相同器件工作狀態(tài)做出預(yù)判。在整個(gè)工作過程中,能夠根據(jù)其他平臺(tái)衛(wèi)星的關(guān)聯(lián)案例作為故障處理的參考。故障關(guān)聯(lián)結(jié)果在航天器的日常管理工作中發(fā)揮了積極的作用。
本文設(shè)計(jì)的用戶詞典解決了關(guān)鍵詞語義相似性的復(fù)雜處理過程,基于關(guān)鍵詞的關(guān)聯(lián)引擎,實(shí)現(xiàn)了文本相似度的快速計(jì)算功能。通過分層設(shè)計(jì),提高了關(guān)聯(lián)引擎的運(yùn)行效率,在航天器異常檢測(cè)系統(tǒng)的運(yùn)行過程中發(fā)揮了顯著的作用,提高了衛(wèi)星管控精細(xì)化水平和綜合指揮、快速響應(yīng)能力。
目前的工作僅僅立足于關(guān)鍵詞組織用戶詞典,后續(xù)還應(yīng)針對(duì)用戶字典的自動(dòng)生成、故障案例的智能匹配開展進(jìn)一步的研究工作。