徐 蕙,及洪泉,姚曉明,李香龍,陸斯悅
(國家電網(wǎng)北京市電力公司,北京 100075)
電力配網(wǎng)通信具有覆蓋范圍廣、設(shè)備種類多、結(jié)構(gòu)復雜等特點,這些特點給電力配電網(wǎng)通信的管理帶來了更大的難度[1]。配網(wǎng)存儲了大量設(shè)備數(shù)據(jù),例如,設(shè)備文檔、設(shè)備維修記錄。如何對這些數(shù)據(jù)實施快速查詢,挖掘數(shù)據(jù)價值,對電網(wǎng)設(shè)備的管理具有重要意義[2]。
通過知識圖譜表述真實世界中存在的各種實體或概念以及它們之間的關(guān)聯(lián)關(guān)系。知識圖譜的出現(xiàn)為大數(shù)據(jù)的搜索提供了新思路?;谥R圖譜的搜索系統(tǒng)增強了數(shù)據(jù)的語義信息,提高了搜索準度[3-4]。知識圖譜成為語義搜索、智能問答、決策支持等智能服務(wù)的基礎(chǔ)技術(shù)之一。
相比于傳統(tǒng)的網(wǎng)頁搜索,知識圖譜是從網(wǎng)絡(luò)中提取知識,并轉(zhuǎn)化成圖形結(jié)構(gòu)。圖中的節(jié)點表示實體;圖中邊表示兩個實體間的關(guān)系。采用圖形結(jié)構(gòu)的知識圖譜支持語義搜索,即通過關(guān)系搜索實體。例如,搜索“2008 年奧運會城市”,搜索結(jié)果:北京。這種支持語義搜索結(jié)果準確,在電網(wǎng)調(diào)度中可以發(fā)揮重要作用[5]。
配電網(wǎng)的現(xiàn)存搜索技術(shù)難以滿足語義搜索需求?,F(xiàn)存的自然語言處理技術(shù)在眾多搜索引擎產(chǎn)品中廣泛使用,但針對配電網(wǎng)的自然語言處理技術(shù)較少[6]。目前仍缺乏相關(guān)詞庫。
作為語義搜索的核心技術(shù),在配電網(wǎng)中構(gòu)建本體和知識庫仍消耗了大量時間和精力。目前采用的自動化構(gòu)建本體的質(zhì)量不高。特別是中文本體嚴重缺乏。
基于知識圖譜的語義搜索算法(Knowledge Graphbased Semantic Search,KGSS)。通過語義標注方法對結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進行知識抽取,捕獲知識實體間關(guān)系。利用知識融合技術(shù),構(gòu)建知識圖譜。利用相似類搜索和分類搜索。仿真結(jié)果表明,KGSS搜索算法提高了查準率和召回率。
構(gòu)建知識圖譜是KGSS 算法的核心。用3 元組模型
式中:E={e1,e2,…,en}為實體集合;R={r1,r2,…,rm}為實體間的關(guān)系集合;S為三元組集合S?E×R×E。
采用如圖1 所示的系統(tǒng)架構(gòu)。將配電網(wǎng)中知識抽取出來,利用封裝器(Wrapper)對數(shù)據(jù)進行封裝。例如將電力行業(yè)標準、設(shè)備使用說明,設(shè)備維護記錄,人員信息等知識進行抽?。?-8],進行數(shù)據(jù)封裝;再獲取知識,即通過數(shù)據(jù)清洗、實體識別、實體清岐以及實體關(guān)聯(lián)操作,形成知識圖譜。
圖1 系統(tǒng)架框
依據(jù)知識圖譜,通過知識訪問、知識管理,利用SPARQL 協(xié)議實施語義查詢。圖1 中的SPARQL endpoint是SPARQL協(xié)議一部分。通過endpoint 處理客戶端請求。同樣,利用endpoint將數(shù)據(jù)發(fā)布網(wǎng)上,以供用戶查詢。
KGSS 算法主要由知識抽取、知識融合和語義搜索3 個階段構(gòu)成。
依據(jù)數(shù)據(jù)格式的不同,將數(shù)據(jù)劃分結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。針對這些不同格式的數(shù)據(jù),KGSS算法采用不同策略對這些數(shù)據(jù)進行知識抽取[9],如圖2 所示。
圖2 基于電網(wǎng)數(shù)據(jù)的知識抽取框架
2.1.1 結(jié)構(gòu)化數(shù)據(jù)的知識抽取
電網(wǎng)公司的物資以及各部門的運檢等數(shù)據(jù)屬于結(jié)構(gòu)化數(shù)據(jù)。這些數(shù)據(jù)以關(guān)系數(shù)據(jù)表為主。通過大規(guī)模并行處理(Massively Parallel Processing,MPP)采集數(shù)據(jù)。實質(zhì)上,MPP是將任務(wù)并行分散到多個服務(wù)器和節(jié)點上。每個節(jié)點完成了計算后,各節(jié)點再將計算結(jié)果匯總到一起。
采用OWL語言將采集到的數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一的實體形式。具體而言,利用OWL表述數(shù)據(jù)的類和屬性。
(1)類的定義。類表述了實體間的屬于和繼承關(guān)系。先定義各基本類,并通過父類和子類描述類間的層次關(guān)系,再將各子類進行歸類。圖3 給出一個類的片段,圖中變壓器是升壓變壓器的父類,而變壓器又是變電站設(shè)備的子類。
圖3 基于OWL類定義
(2)屬定義。屬性形式有對象(ObjectProperty)和數(shù)據(jù)類型(DatatypeProperty)兩種形式。前者規(guī)定了實體類別以及功能,而數(shù)據(jù)類型屬性將數(shù)據(jù)與對象類型關(guān)聯(lián)。圖4 給出“變壓器”和“地址”的實例。
圖4 屬定義示例
2.1.2 半結(jié)構(gòu)化數(shù)據(jù)的知識抽取
針對半結(jié)構(gòu)化數(shù)據(jù),采用Hadoop技術(shù)進行數(shù)據(jù)處理。這些半結(jié)構(gòu)化數(shù)據(jù)一般是時序的規(guī)則數(shù)據(jù),如一些指標信息,如電壓、頻率、最大值等,圖5 給出了半結(jié)構(gòu)化數(shù)據(jù)處理的示例。
圖5 半結(jié)構(gòu)化數(shù)據(jù)描述示例
2.1.3 非結(jié)構(gòu)化數(shù)據(jù)的知識抽取
除了結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)外,配電網(wǎng)中還存在一些文本圖像等非結(jié)構(gòu)化數(shù)據(jù)。為此,采用帶詞性的連續(xù)詞袋模型(POS-CBOW)對非結(jié)構(gòu)化數(shù)據(jù)進行抽取。POS-CBOW的語言模型如圖6 所示,主要由輸入層,過濾層,投影層,標注層和輸出層組成。
圖6 POS-CBOW語言模型
POS-CBOW以CBOW語言模型為基礎(chǔ),執(zhí)行的步驟如下:
步驟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 個詞內(nèi)容Context (W(t));
步驟2對W(t)的上、下文內(nèi)容進行累加:
步驟3計算詞W(t)的向量值:
式中:f [V(t)θ ]=1/ {1 +exp [-V(t)θx ]}為詞向量回歸函數(shù)。
獲取了知識實體后,需計算各實體間關(guān)系,構(gòu)建配網(wǎng)知識3 元組。引用嵌入投影模型(Projection Embedding Model,PEM)預測[10]3 元組中的第3 個實體。
令{E,R},?為一個待定的3 元組。E,R為2 個已知元素;“?”為未知元素。先對E和R進行關(guān)聯(lián)操作:
式中:De,Dr均為k ×k 維的對角矩陣,分別為實體和關(guān)系的權(quán)重系數(shù);bc為關(guān)聯(lián)操作的偏差;⊕為異或操作
依據(jù)關(guān)聯(lián)操作,定義嵌入投影函數(shù):
式中:bp為投影偏差;f()·、g()·均為激活函數(shù);Wc為候補實體矩陣;h (E,)R 為Wc和E ⊕R構(gòu)成3 元組的概率。
采用自頂向下的知識圖譜構(gòu)建方法[11],如圖7所示。
圖7 自頂向下的知識圖譜構(gòu)建流程
先從數(shù)據(jù)源提取本體,進行本體學習,包括術(shù)語提取、本體概念學習、本體關(guān)系學習。再進入實體學習,即實體鏈接和實體填充,最后,構(gòu)建知識圖譜。
語義搜索以傳統(tǒng)搜索引擎為基礎(chǔ),先對搜索進行語義分析,并將其映射到知識圖譜中的實體。再依據(jù)知識圖譜的結(jié)構(gòu),返回搜索結(jié)果。
KGSS算法采用相似性策略[12-13]將搜索請求映射到知識圖譜中的實體。即先對搜索請求的語義進行分析,再計算搜索請求中實體權(quán)重,最終,將與知識圖譜中權(quán)重最大、距離最近的實體作為搜索的最終結(jié)果。
基于相似性的語義搜索步驟如下
步驟1利用識別模型識別所搜索的配網(wǎng)實體;
步驟2計算所搜索的實體與知識圖譜中實體間的相似度:
式中,ai為第i實體的n維向量。
步驟3在知識圖譜中,實體關(guān)聯(lián)到其他實體越多,該實體越重要,權(quán)重越高。計算每個實體的權(quán)重:
式中:A={a1,a2,…,an}為提取的n 個實體集合;d(ai,aj)為在知識圖譜中實體ai與實體aj間的距離。
以某電網(wǎng)公司為測試點,收集公民營銷、運檢、用電量、電網(wǎng)站點故障記錄和電網(wǎng)臺賬等信息,數(shù)據(jù)量達到4.2 TB。在構(gòu)建圖譜時,對于結(jié)構(gòu)化數(shù)據(jù),以字段為數(shù)據(jù)索引;對于半結(jié)構(gòu)化數(shù)據(jù),以時間字段提取數(shù)據(jù)指標,并將時間和指標作為數(shù)據(jù)索引;對于非結(jié)構(gòu)化數(shù)據(jù),以分詞為數(shù)據(jù)索引。
引用Protégé5.2 版軟件進行本體建模。Protégé軟件是語義網(wǎng)絡(luò)中本體的核心開發(fā)工具,屬于開源軟件,可實現(xiàn)概念類、關(guān)系、屬性和實例的構(gòu)建。
查準率和召回率是衡量語義搜索算法的重要性能。查準率為搜索的正確結(jié)果占總搜索結(jié)果的比例;召回率為搜索的正確結(jié)果與實際存在的正確結(jié)果的比。查準率和召回率的值越大,搜索算法的性能越好。
選擇如表1 所示的搜索條件。選擇傳統(tǒng)的關(guān)鍵詞搜索(簡稱關(guān)鍵詞搜索)作為參照,并對比分析KGSS算法和關(guān)鍵詞搜索的查準率和召回率。關(guān)鍵詞搜索利用SQL 語句查詢;KGSS 算法依據(jù)知識圖譜,采用SPARQL語句查詢。
表1 搜索條件
針對表1 所示的8 個搜索條件,圖8、9 分別給出查準率和召回率。
由圖8、9 可知,KGSS 算法的查準率和召回率整體上優(yōu)于關(guān)鍵詞搜索算法。在不同的搜索條件下,KGSS算法的查準率和召回率變化較穩(wěn)定。如圖8 所示,KGSS算法的查準率在90%上下變化,且查準率在80%以上。這歸功于:KGSS算法通過實體屬性以及與其他實體間關(guān)系進行搜索,提高了搜索結(jié)果的準確性。
圖8 查準率
由圖8 可知,KGSS算法和關(guān)鍵詞搜索在搜索條件5 時的查詢率差別最大。主要因為搜索條件5(雷擊出現(xiàn)故障的設(shè)備)充分體現(xiàn)了這兩個算法的搜索策略的差異。在關(guān)鍵詞搜索系統(tǒng)中,“雷擊”與“故障”并沒有建立關(guān)系。而在KGSS 算法通過知識圖譜建立“雷擊”與“故障”的關(guān)系結(jié)構(gòu)。
此外,注意圖9,關(guān)鍵詞搜索在搜索條件7(具有豐富故障恢復經(jīng)驗的工程師)的召回率為0,而對應的查準率達到100%。原因在于:關(guān)鍵詞搜索不能獲取“經(jīng)驗豐富”的語義,搜索結(jié)果為空。因此,查準率為達到100%(見圖8),召回率為0%(見圖9)。
圖9 召回率
為了挖掘電網(wǎng)企業(yè)的數(shù)據(jù)資源價值,提出基于知識圖譜的語義搜索KGSS算法。采用智能領(lǐng)域分詞技術(shù)對電網(wǎng)企業(yè)中的結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進行知識提取,并建立相應的知識圖譜。再采用基于相似性策略進行語義搜索。KGSS 算法依據(jù)知識圖譜技術(shù),實現(xiàn)了支持語義搜索的智能分析。
電網(wǎng)企業(yè)存在海量數(shù)據(jù),利用這些海量數(shù)據(jù)構(gòu)建知識圖譜是一項復雜工程。本文將知識圖譜應用于電網(wǎng)的語義搜索還處于初始階段。后期,將進一步優(yōu)化算法,提高搜索的時效性和準確性。