徐 蕙,及洪泉,姚曉明,李香龍,陸斯悅
(國家電網北京市電力公司,北京 100075)
電力配網通信具有覆蓋范圍廣、設備種類多、結構復雜等特點,這些特點給電力配電網通信的管理帶來了更大的難度[1]。配網存儲了大量設備數據,例如,設備文檔、設備維修記錄。如何對這些數據實施快速查詢,挖掘數據價值,對電網設備的管理具有重要意義[2]。
通過知識圖譜表述真實世界中存在的各種實體或概念以及它們之間的關聯關系。知識圖譜的出現為大數據的搜索提供了新思路。基于知識圖譜的搜索系統增強了數據的語義信息,提高了搜索準度[3-4]。知識圖譜成為語義搜索、智能問答、決策支持等智能服務的基礎技術之一。
相比于傳統的網頁搜索,知識圖譜是從網絡中提取知識,并轉化成圖形結構。圖中的節點表示實體;圖中邊表示兩個實體間的關系。采用圖形結構的知識圖譜支持語義搜索,即通過關系搜索實體。例如,搜索“2008 年奧運會城市”,搜索結果:北京。這種支持語義搜索結果準確,在電網調度中可以發揮重要作用[5]。
配電網的現存搜索技術難以滿足語義搜索需求。現存的自然語言處理技術在眾多搜索引擎產品中廣泛使用,但針對配電網的自然語言處理技術較少[6]。目前仍缺乏相關詞庫。
作為語義搜索的核心技術,在配電網中構建本體和知識庫仍消耗了大量時間和精力。目前采用的自動化構建本體的質量不高。特別是中文本體嚴重缺乏。
基于知識圖譜的語義搜索算法(Knowledge Graphbased Semantic Search,KGSS)。通過語義標注方法對結構化、半結構化和非結構化數據進行知識抽取,捕獲知識實體間關系。利用知識融合技術,構建知識圖譜。利用相似類搜索和分類搜索。仿真結果表明,KGSS搜索算法提高了查準率和召回率。
構建知識圖譜是KGSS 算法的核心。用3 元組模型

式中:E={e1,e2,…,en}為實體集合;R={r1,r2,…,rm}為實體間的關系集合;S為三元組集合S?E×R×E。
采用如圖1 所示的系統架構。將配電網中知識抽取出來,利用封裝器(Wrapper)對數據進行封裝。例如將電力行業標準、設備使用說明,設備維護記錄,人員信息等知識進行抽取[7-8],進行數據封裝;再獲取知識,即通過數據清洗、實體識別、實體清岐以及實體關聯操作,形成知識圖譜。

圖1 系統架框
依據知識圖譜,通過知識訪問、知識管理,利用SPARQL 協議實施語義查詢。圖1 中的SPARQL endpoint是SPARQL協議一部分。通過endpoint 處理客戶端請求。同樣,利用endpoint將數據發布網上,以供用戶查詢。
KGSS 算法主要由知識抽取、知識融合和語義搜索3 個階段構成。
依據數據格式的不同,將數據劃分結構化、半結構化和非結構化數據。針對這些不同格式的數據,KGSS算法采用不同策略對這些數據進行知識抽取[9],如圖2 所示。

圖2 基于電網數據的知識抽取框架
2.1.1 結構化數據的知識抽取
電網公司的物資以及各部門的運檢等數據屬于結構化數據。這些數據以關系數據表為主。通過大規模并行處理(Massively Parallel Processing,MPP)采集數據。實質上,MPP是將任務并行分散到多個服務器和節點上。每個節點完成了計算后,各節點再將計算結果匯總到一起。
采用OWL語言將采集到的數據轉化為統一的實體形式。具體而言,利用OWL表述數據的類和屬性。
(1)類的定義。類表述了實體間的屬于和繼承關系。先定義各基本類,并通過父類和子類描述類間的層次關系,再將各子類進行歸類。圖3 給出一個類的片段,圖中變壓器是升壓變壓器的父類,而變壓器又是變電站設備的子類。

圖3 基于OWL類定義
(2)屬定義。屬性形式有對象(ObjectProperty)和數據類型(DatatypeProperty)兩種形式。前者規定了實體類別以及功能,而數據類型屬性將數據與對象類型關聯。圖4 給出“變壓器”和“地址”的實例。

圖4 屬定義示例
2.1.2 半結構化數據的知識抽取
針對半結構化數據,采用Hadoop技術進行數據處理。這些半結構化數據一般是時序的規則數據,如一些指標信息,如電壓、頻率、最大值等,圖5 給出了半結構化數據處理的示例。

圖5 半結構化數據描述示例
2.1.3 非結構化數據的知識抽取
除了結構化和半結構化數據外,配電網中還存在一些文本圖像等非結構化數據。為此,采用帶詞性的連續詞袋模型(POS-CBOW)對非結構化數據進行抽取。POS-CBOW的語言模型如圖6 所示,主要由輸入層,過濾層,投影層,標注層和輸出層組成。

圖6 POS-CBOW語言模型
POS-CBOW以CBOW語言模型為基礎,執行的步驟如下:
步驟1先從窗口按順序讀取M 個詞序列C(t-M),C (t-M+1),…,C (t+M);再利用哈希表計算這些詞序列的相應位置W (t-M),W (t-M+1),…,W (t+M)。再讀取W(t)詞的上、下M 個詞內容Context (W(t));
步驟2對W(t)的上、下文內容進行累加:

步驟3計算詞W(t)的向量值:

式中:f [V(t)θ ]=1/ {1 +exp [-V(t)θx ]}為詞向量回歸函數。
獲取了知識實體后,需計算各實體間關系,構建配網知識3 元組。引用嵌入投影模型(Projection Embedding Model,PEM)預測[10]3 元組中的第3 個實體。
令{E,R},?為一個待定的3 元組。E,R為2 個已知元素;“?”為未知元素。先對E和R進行關聯操作:

式中:De,Dr均為k ×k 維的對角矩陣,分別為實體和關系的權重系數;bc為關聯操作的偏差;⊕為異或操作
依據關聯操作,定義嵌入投影函數:

式中:bp為投影偏差;f()·、g()·均為激活函數;Wc為候補實體矩陣;h (E,)R 為Wc和E ⊕R構成3 元組的概率。
采用自頂向下的知識圖譜構建方法[11],如圖7所示。

圖7 自頂向下的知識圖譜構建流程
先從數據源提取本體,進行本體學習,包括術語提取、本體概念學習、本體關系學習。再進入實體學習,即實體鏈接和實體填充,最后,構建知識圖譜。
語義搜索以傳統搜索引擎為基礎,先對搜索進行語義分析,并將其映射到知識圖譜中的實體。再依據知識圖譜的結構,返回搜索結果。
KGSS算法采用相似性策略[12-13]將搜索請求映射到知識圖譜中的實體。即先對搜索請求的語義進行分析,再計算搜索請求中實體權重,最終,將與知識圖譜中權重最大、距離最近的實體作為搜索的最終結果。
基于相似性的語義搜索步驟如下
步驟1利用識別模型識別所搜索的配網實體;
步驟2計算所搜索的實體與知識圖譜中實體間的相似度:

式中,ai為第i實體的n維向量。
步驟3在知識圖譜中,實體關聯到其他實體越多,該實體越重要,權重越高。計算每個實體的權重:

式中:A={a1,a2,…,an}為提取的n 個實體集合;d(ai,aj)為在知識圖譜中實體ai與實體aj間的距離。
以某電網公司為測試點,收集公民營銷、運檢、用電量、電網站點故障記錄和電網臺賬等信息,數據量達到4.2 TB。在構建圖譜時,對于結構化數據,以字段為數據索引;對于半結構化數據,以時間字段提取數據指標,并將時間和指標作為數據索引;對于非結構化數據,以分詞為數據索引。
引用Protégé5.2 版軟件進行本體建模。Protégé軟件是語義網絡中本體的核心開發工具,屬于開源軟件,可實現概念類、關系、屬性和實例的構建。
查準率和召回率是衡量語義搜索算法的重要性能。查準率為搜索的正確結果占總搜索結果的比例;召回率為搜索的正確結果與實際存在的正確結果的比。查準率和召回率的值越大,搜索算法的性能越好。
選擇如表1 所示的搜索條件。選擇傳統的關鍵詞搜索(簡稱關鍵詞搜索)作為參照,并對比分析KGSS算法和關鍵詞搜索的查準率和召回率。關鍵詞搜索利用SQL 語句查詢;KGSS 算法依據知識圖譜,采用SPARQL語句查詢。

表1 搜索條件
針對表1 所示的8 個搜索條件,圖8、9 分別給出查準率和召回率。
由圖8、9 可知,KGSS 算法的查準率和召回率整體上優于關鍵詞搜索算法。在不同的搜索條件下,KGSS算法的查準率和召回率變化較穩定。如圖8 所示,KGSS算法的查準率在90%上下變化,且查準率在80%以上。這歸功于:KGSS算法通過實體屬性以及與其他實體間關系進行搜索,提高了搜索結果的準確性。

圖8 查準率
由圖8 可知,KGSS算法和關鍵詞搜索在搜索條件5 時的查詢率差別最大。主要因為搜索條件5(雷擊出現故障的設備)充分體現了這兩個算法的搜索策略的差異。在關鍵詞搜索系統中,“雷擊”與“故障”并沒有建立關系。而在KGSS 算法通過知識圖譜建立“雷擊”與“故障”的關系結構。
此外,注意圖9,關鍵詞搜索在搜索條件7(具有豐富故障恢復經驗的工程師)的召回率為0,而對應的查準率達到100%。原因在于:關鍵詞搜索不能獲取“經驗豐富”的語義,搜索結果為空。因此,查準率為達到100%(見圖8),召回率為0%(見圖9)。

圖9 召回率
為了挖掘電網企業的數據資源價值,提出基于知識圖譜的語義搜索KGSS算法。采用智能領域分詞技術對電網企業中的結構化、半結構化和非結構化數據進行知識提取,并建立相應的知識圖譜。再采用基于相似性策略進行語義搜索。KGSS 算法依據知識圖譜技術,實現了支持語義搜索的智能分析。
電網企業存在海量數據,利用這些海量數據構建知識圖譜是一項復雜工程。本文將知識圖譜應用于電網的語義搜索還處于初始階段。后期,將進一步優化算法,提高搜索的時效性和準確性。