于碧輝,孫 思,2,李 岳,2
1(中國科學院 沈陽計算技術研究所,沈陽 110004)
2(中國科學院大學,北京 100049)
本體原本是一個哲學概念,隨著人工智能領域的發展,被賦予了新的定義,領域內學者對此進行了深入的研究,對本體的定義也在不斷發展變化,目前被廣泛認可的是1998年Studer 對本體的定義:“本體是共享概念模型的明確的形式化規范說明”.本體主要依靠概念、概念之間的關系以及公理來發揮作用,其中關系又包括層次關系以及非層次關系[1,2].
關于本體的研究與應用主要圍繞3 個方面:(1)對本體概念以及分類等等理論上的研究.(2)應用在信息系統中,包括信息組織、信息檢索以及異構系統互操作問題.(3)應用在語義網中,在知識層提供知識重用和共享的依據.本體可以分為3 個層次:上位本體、領域本體和面向應用的本體.上位本體是可跨領域復用的本體,為不同本體之間的邏輯組織提供保證.領域本體針對某一個特定的學科、專業或領域,表述適用于這一范圍內廣泛使用的概念和關系.面向應用的本體是為了特定應用構建的本體知識庫.
如今,本體構建主要有3 種方法,由領域專家和本體專家參與的手動構建方法;使用機器學習、深度學習或者自然語言處理的自動構建方法;融合了上述兩種方法的半自動本體構建方法.然而,手動構建本體方法中本體概念的抽取以及概念之間的關系均通過人工來定義,依賴于本體專家的意見耗費大量人力,時間,而且依賴于人的主觀性,具有高度局限性.因此,手工構建方法逐漸被半自動化、自動化構建方法取代,自動構建本體方法可以方便的和其他機器學習、自然語言處理領域相結合,可以使用不同的數據源來進行構建,文本數據具有數據來源廣泛、便于獲取等特點[3].鑒于此,本文采用電力安全相關文本作為數據源進行領域本體的自動構建并對構建出來的本體進行評估.
文獻[4] 采用形式概念分析FCA 來進行本體構建,基于概念格的相關理論,但是構造過程中計算代價大,適用于小規模本體的構建研究.文獻[5]以敘詞表為依據,針對敘詞表等級結構及其包含的概念間關系開展基于敘詞表的本體構建方法研究,但是僅適合應用于醫學領域.文獻[6]提出基于模板識別的SSE_CMM領域本體自動構建技術.文獻[7]基于維基百科等開放知識庫進行本體構建,但由于這些開放知識庫的異構性,關于此類本體構建方法還處于初級階段.在概念抽取方面,文獻[8]采用TF-IDF 公式進行相關性的判斷,得到術語在領域的相關程度,篩選出相關性高的作為領域內概念.文獻[9]采用LDA (Latent Dirichlet Allocation)主題模型將語料中最核心的概念提取出來.
依據電力行業相關規定,結合電力監控系統的實際需求,本文采用了電力監控系統網絡安全管理平臺基礎支撐功能規范以及中國知網中電力監控系統網絡安全相關論文作為數據集.通過以下步驟對輸入的文本數據進行處理,從而實現領域本體文件的自動構建:
第1 步.文本數據預處理,該過程將成段的文本進行分詞并去除停用詞;
第2 步.本體概念抽取,該過程將中文詞匯轉換為本體的基本元素——本體概念;
第3 步.本體概念間關系抽取,該過程抽取并建立本體概念間的相互關系以完成本體網絡的構建.
圖1為本文所建立的領域本體自動構建流程圖,圖解本文自動構建領域本體的整體過程.

圖1 領域本體自動構建流程圖
下文將對各步驟中所涉及的設計細節進行詳盡的介紹.
主要有3 種常用的概念抽取方法:基于規則的方法、基于統計的方法和規則與統計的混合方法[10].本文采用基于統計的方法,因為該方法易于擴展、不受具體領域語言學限制,易于實現.
首先,對文本數據進行預處理,采用開源的Jieba中文分詞工具對文本進行分詞,本文使用Jieba 分詞時加載自行定義的電網安全監控詞典來提高分詞的效果.自定義的電網安全監控詞典由搜狗細胞詞庫中電力詞匯表、計算機詞匯表以及網絡工程詞匯表等組成.
使用百度停用詞表、哈工大停用詞表、四川大學停用詞表等中文停用詞表組成的停用詞表進行過濾.
目前,已有多種成熟的統計學方法可實現從文本數據中抽取本體概念.TF-IDF (Term Frequency-Inverse Document Frequency)是一種基于統計的方法,衡量一個詞語在文檔中的重要程度,詞語的重要性與出現在文檔中的次數成正比,與出現在語料庫里的其他文檔中的頻率成反比.TextRank 算法是一種用于文本的基于圖的排序算法,它的思想來源于PageRank 算法,把文本分為若干部分,建立圖模型,使用投票機制對文本中的重要詞匯進行排序.不同于TF-IDF、LDA 等方法,該算法是一種無監督的學習算法,不強烈依賴語料庫,不需要對多篇文檔進行學習訓練,能夠有效地處理本文所使用的文本資源.因此,本文采用TextRank 算法實現本體概念的抽取.在該算法中,單詞的TextRank權重計算公式如下:

其中,d是一個人為設置的可調整參數,經過實驗調整,本文將上式中的d設置為0.85.In(Vi)為每個單詞i在單句內成線性關系排列的單詞的集合,單詞i的權重WS(Vi)取決于在i之前的各點j組成的(j,i)邊的權重,以及j點到其他各邊的權重之和.形如wji的權重值由計算兩個不同的文本單元同時出現在同一個文本窗口中的比率而得,該權重的取值通常為2.初始化時,每個單詞的權重統一初始為1,經過多次計算后所有權重整體達到一致性,分別以單個文檔、單句為單位進行權重排名,取權重排名最高的單詞為關鍵詞.
現有的TextRank 算法主要基于統計學獲取權重排名,在部分情況下,對文本資源中出現頻次低卻包含領域內關鍵概念的詞匯抽取效果較差.實驗表明,在應用中時常造成關鍵概念的遺漏,從而導致抽取準確度存在較大的提升空間.針對上述問題,改進TextRank算法將原本單一的權重排名隊列擴大為3 個隊列組成的多重權重排名隊列.通過計算權重得到原始隊列后,基于電網安全監控詞典以及上下文語義關系,統計各詞語與領域內的關鍵詞匯的關聯度.直接在詞典中出現的關鍵詞關聯度置1,與詞典中關鍵詞產生語義關系的依照關系強弱置為[0.2,0.9)區間內的值.從隊尾反向搜索,設定關聯度閾值,將高關聯的詞匯認定為領域關鍵詞升至上位隊列.從隊首正向搜索,將低關聯詞匯認定為高頻次的非關鍵詞匯降入下位隊列.通過添加上述過程,能夠有效地提升概念抽取的準確率,并在關系抽取過程之前過濾非關鍵詞,從而提高了算法整體的運行效率.
本體概念間關系主要劃分為兩種:層次關系與非層次關系.層次關系主要是概念之間的父子關系[11];非層次關系是指除了層次關系之外的關系,包括整體與部分之間的關系、屬性關系等.所以先進行層次關系的抽取,再此基礎上對非層次關系進行抽取.例如USB 是設備的子類,USB 和設備之間具有層次關系;設備的名稱和設備的編號是設備的數據屬性,設備與設備名稱和設備編號具有非層次關系.
2.2.1 層次關系抽取
本體概念之間關系的抽取方法主要包括:基于模板的方法、基于關聯規則的方法、基于詞典的方法以及層次聚類的方法.聚類方法的思想在于根據事物的屬性最小化類內距離,最大化類間距離,將一組具有異同特征的對象數據集依據特征的相似性分類為相似的對象類,同一分類下的對象具有相對的高度相似性,這一思想適用于本文中對本體概念進行層次關系的抽取過程.層次聚類根據不同的聚類策略又分為自頂向下的分裂方式和自底向上的凝聚方式,凝聚方式將每個概念作為一個簇,計算概念之間的相似度不斷的進行合并,將簇不斷擴大直到所有概念都合并為一個簇;而分裂的方式和他相反,初始情況將所有概念作為一簇,依據相似度將概念細分,不停迭代直到概念各成一簇為止.兩種不同方式如下圖所示.本文采用凝聚的層次聚類方法將1.1 小節得到的領域內概念向量化,根據向量之間的相似度對概念進行聚類,抽取它們之間的層次關系,方法的核心思路如圖2所示意.

圖2 基于凝聚的自底向上層次聚類方法示意圖
使用空間向量模型,定義概念-文檔矩陣,領域本體概念用W表示,特征項用t表示,其中t使用tf-idf權值表示.公式如下:

其中,表示第i個概念tij:

tfij表示抽取出的概念出現在文檔集中的頻率,n表示數據集中文檔總數,ni表示出現概念i的文檔數.按照上述公式構建向量空間模型,建立相似度矩陣步驟如下:
Step 2.計算兩兩概念之間的相似度:

Step 3.構建概念相似度矩陣Sij,其定義如下:

簇間平均距離的定義如下:

其中,X,Y表示兩個簇,|X|和|Y|表示兩個簇內元素的個數.
概念層次關系抽取步驟如下:
Step 1.將抽取出的每個概念單獨作為一簇.
Step 2.計算兩個簇之間的相似度即davg(X,Y).
Step 3.取相似度最大的兩簇進行合并,若所有對象合并成一簇則跳轉到Step 4,否則跳轉至Step 2.
Step 4.結束.
在初始階段,將每個領域本體概念作為一簇,根據相似度矩陣,逐一將相似度大于規定閾值threshold 的兩簇合成一簇,直到簇內平均距離小于給定閾值為止.
聚類的方法可以將本體概念分為多個簇,但是簇內父概念和子概念的劃分需要進一步定義,使用簇內平均相似度來劃分.計算簇內概念兩兩之間的相似度,若某一個概念的簇內平均相似度越大,則說明此概念與其他概念聯系廣泛,更有可能為簇內的父概念.簇內平均相似度定義如下:

通過上述方法抽取的部分層次關系如圖3所示.

圖3 部分層次關系示意圖
2.2.2 本體概念非層次關系抽取
本體概念之間的非層次關系主要包括:部分與整體之間的關系、概念與屬性之間的關系如對象屬性和數據屬性等.本文基于統計學方法進行構建,具有可移植性強,對語言依賴性低等優點.采用關聯規則方法,該方法可發現事物之間的相互依存性和關聯性.普通的關聯規則方法只能得出概念之間確實存在非層次關系,但無法得出具體的關系名稱,而概念之間的非層次關系可以用(主語,謂語,賓語)三元組表示,所以用動詞可以作為概念之間的非層次關系改進關聯規則.概念Wi和Wj之間具有關系Rt的關聯強度可以用支持度和置信度來衡量.支持度Support表示兩個概念出現在同一個句子里的概率,置信度Confidence表示在Wi出現的情況下Wj出現的概率,定義如下:

使用以下改進的關聯規則進行非層次關系抽取的步驟如下:
Step 1.從抽取到的本體概念中選取概念Wi和Wj.
Step 2.根據上述公式計算Support(Wi→Wj)和Con fidence(Wi→Wj).
Step 3.給定支持度和置信度閾值min_Support和min_Confidence,如果S upport(Wi→Wj)>min_Support且Con fidence(Wi→Wj)>min_Confidence則概念Wi和Wj具有非層次關系,進行Step 4,否則轉到Step 1.
Step 4.統計出現在Wi和Wj中的所有動詞及其共現頻率.如果概念與該動詞的共現頻率大于給定閾值,則把該動詞定義為概念之間的非層次關系.
Step 5.驗證所有動詞之后結束.
以上方法抽取的部分非層次關系如表1所示.

表1 部分非層次關系
通過上述兩種本體概念間關系的抽取,完成概念間的分類關系、分層關系,以及跨層次的歸屬關系等關系的羅列,歸納得到本體構建所需的連接方式.根據領域概念和概念間的關系,可在Protégé工具軟件中構建樹狀的領域本體.Protégé是由斯坦福大學開發的本體開發工具,該軟件提供圖形化界面可用于模擬概念類之間的關系以及屬性.本文對于層次關系的抽取結果可以在Classes 選項卡定義,并且可以生成樹狀關系圖,如圖4所示.非層次關系抽取的結果主要包括對象屬性和數據屬性[12],可以在Protégé中的object properties選項卡和data properties 選項卡中完成定義.

圖4 本體概念抽取對比實驗結果
基于上文中提出的自動化構建方法,本文針對性地搭建了完整的實驗環境以驗證本文所提出方法的有效性.數據方面,采取了電力監控系統網絡安全監測裝置技術規范以及電力監控相關論文作為實驗的文本數據源,與之相配套的開發環境及使用到的工具軟件列舉如表2所示.
本體的評價一般可以從兩個角度來進行:從應用的角度和從本體自身的角度.基于應用的角度是比較是否使用本體對應用效果的影響,依賴于具體的應用,不夠直觀,所以本文采用基于本體自身的評價.使用搜狗細胞詞庫中電力行業與計算機行業專業詞匯表作為數據源,手工構建本體作為參照本體,其中包括87 個概念類,64 條數據屬性以及49 條對象屬性.為了提高實驗評價的客觀性在手工構建本體時使用《知網》(HowNet)詞匯相似度計算工具進行概念以及概念之間關系的建立,并且增加適當的人工修正,提高評價的可信度.

表2 實驗環境
(1) 本體概念抽取實驗
在實驗的本體概念抽取環節中,本文基于相同的文本數據源開展了多種本體概念抽取方法的對比實驗,包括現有的TF-IDF 算法、TextRank 算法、LDA 主題模型,與本文提出的TextRank 改進算法進行橫向對比,實驗結果如圖4所示.
通過實驗對比可以看出,本文所提出的TextRank改進算法能夠在相同的文本數據源中正確地抽取到更多的概念,本體概念的抽取能力有顯著的提升.LDA 主題模型在短文本數據上進行概念抽取的效果不佳,而TF-IDF 算法以及一般的TextRank 算法本質上是依據詞頻,當領域核心概念出現頻次較低時,容易產生遺漏,效果一般.
(2) 概念間層次關系抽取實驗
在層次關系抽取過程中,采用了準確率Precision、召回率Recall以及F1 值等3 種衡量指標來多角度地衡量關系抽取結果.準確率為正確抽取出的關系與實際抽取出的關系總數的比值,召回率為正確抽取出的關系與數據集中抽取出的所有關系總數的比值,F1 值為準確率與召回率的調和平均值.上述3 個衡量指標具體的計算方式如下:

在層次關系抽取過程中,選取不同的相似度閾值threshold 對上述衡量指標的影響如表3所示.

表3 Threshold 對實驗結果的影響
將本文使用的層次聚類算法與文獻[1]中使用的形式概念分析法FCA,以及一種基于Beta 分布的聚類算法BRT (Bayesian Rose Tree)進行對比,如圖5所示.

圖5 層次關系抽取對比實驗結果
使用形式概念分析法得到的準確率、召回率和F值分別是0.65、0.61 和0.63;BRT 聚類算法的準確率、召回率和F值分別是0.62、0.57、0.59;本文采用的層次聚類算法的準確率、召回率和F值分別是0.74、0.69 和0.71.可以看出本文使用的方法具有較好的抽取效果.原因如下:當句子中的概念存在并列關系時,層次聚類方法可以將這些概念歸并到一個簇中,有效防止簇內概念被分開,而BRT 算法需要計算概念之間的合并概率,容易產生誤差.
(3) 概念間非層次關系抽取實驗
在非層次關系抽取中,使用式(8)和式(9)計算概念之間支持度和置信度,當支持度和置信度的閾值min_Support和min_Confidence取不同值時,對非層次關系結果的影響如表4所示,根據結果進行閾值選取.
使用詞典的方法進行非關系抽取得到的非層次關系種類少,而傳統的關聯規則方法無法得到非層次關系的名稱,所以上述方法無法進行實驗對比.本文采用基于模板的方法,定義主語、謂語、賓語形式作為非層次關系的獲取模板,與本文提出的改進關聯規則方法進行實驗對比,結果如圖6所示.

表4 不同支持度與置信度閾值情況下的準確度(%)

圖6 非層次關系抽取對比實驗結果
可以看出隨著使用的文檔數量的增加,兩種方法的準確率均有所提高.基于模板的方法由于篩選條件簡單,抽取到的非層次關系數量較多,但是準確率較低;本文提出的改進關聯規則方法準確率較高.
通過統計結果可以看出,本文所提出的領域本體構建方法準確率、召回率達到實際應用中的可用性要求,能夠為本體的自動化構建提供可靠的本體概念數據.自動化抽取得到本體概念后,依次進行了本體概念間層次關系、非層次關系的抽取.最終,依據概念、概念間的關系,在Protégé中構建了SafeAgent 本體.構建的本體(部分)如圖7所示.
本文基于上述自動構建的電力監控安全本體開展進一步的實際應用,開發一套電網網絡安全智能監控系統軟件.該系統以SafeAgent 本體作為后臺的邏輯內核,對電網監測設備采集的監測數據進行實時語義標注,后續處理中依據數據語義特征實施不同操作.在實際運行過程中,對比于早期由開發人員手動構建的領域本體,采用本文提出的方法進行自動化構建的本體具有可觀的準確率、可靠性,可以實現對人工構建本體的初步替代應用.實驗證明,在確保替代不影響系統整體性能的前提下,自動化構建本體方法可以切實有效地節省開發過程中的人力、物力,并且在大規模、多領域的語義網建設中保持高度的可擴展特性.

圖7 電力監控安全本體(部分)
本文針對電力監控系統網絡安全方面的實際需求,開展了領域本體的自動化構建研究,在現有的本體自動化構建方法基礎之上,針對文本數據到領域本體概念的轉化、本體概念間層次關系的抽取、非層次關系的抽取等多個必要步驟進行了改進,并初步實現了該領域本體的自動化構建過程.經實驗驗證,本文能夠以較高的效率、準確率完成領域本體的自動化構建,避免了耗費大量人力、物力的領域本體的人工構建過程,從而實現對電力監控系統的網絡安全行為進行快速的語義標注,為未來的電力監控系統中的物聯網設備標準化、智能化奠定了基礎.