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

式中:E={e1,e2,…,en}為實(shí)體集合;R={r1,r2,…,rm}為實(shí)體間的關(guān)系集合;S為三元組集合S?E×R×E。
采用如圖1 所示的系統(tǒng)架構(gòu)。將配電網(wǎng)中知識(shí)抽取出來,利用封裝器(Wrapper)對(duì)數(shù)據(jù)進(jìn)行封裝。例如將電力行業(yè)標(biāo)準(zhǔn)、設(shè)備使用說明,設(shè)備維護(hù)記錄,人員信息等知識(shí)進(jìn)行抽?。?-8],進(jìn)行數(shù)據(jù)封裝;再獲取知識(shí),即通過數(shù)據(jù)清洗、實(shí)體識(shí)別、實(shí)體清岐以及實(shí)體關(guān)聯(lián)操作,形成知識(shí)圖譜。

圖1 系統(tǒng)架框
依據(jù)知識(shí)圖譜,通過知識(shí)訪問、知識(shí)管理,利用SPARQL 協(xié)議實(shí)施語義查詢。圖1 中的SPARQL endpoint是SPARQL協(xié)議一部分。通過endpoint 處理客戶端請(qǐng)求。同樣,利用endpoint將數(shù)據(jù)發(fā)布網(wǎng)上,以供用戶查詢。
KGSS 算法主要由知識(shí)抽取、知識(shí)融合和語義搜索3 個(gè)階段構(gòu)成。
依據(jù)數(shù)據(jù)格式的不同,將數(shù)據(jù)劃分結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。針對(duì)這些不同格式的數(shù)據(jù),KGSS算法采用不同策略對(duì)這些數(shù)據(jù)進(jìn)行知識(shí)抽?。?],如圖2 所示。

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

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

圖4 屬定義示例
2.1.2 半結(jié)構(gòu)化數(shù)據(jù)的知識(shí)抽取
針對(duì)半結(jié)構(gòu)化數(shù)據(jù),采用Hadoop技術(shù)進(jìn)行數(shù)據(jù)處理。這些半結(jié)構(gòu)化數(shù)據(jù)一般是時(shí)序的規(guī)則數(shù)據(jù),如一些指標(biāo)信息,如電壓、頻率、最大值等,圖5 給出了半結(jié)構(gòu)化數(shù)據(jù)處理的示例。

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

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

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

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

式中:De,Dr均為k ×k 維的對(duì)角矩陣,分別為實(shí)體和關(guān)系的權(quán)重系數(shù);bc為關(guān)聯(lián)操作的偏差;⊕為異或操作
依據(jù)關(guān)聯(lián)操作,定義嵌入投影函數(shù):

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

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

式中,ai為第i實(shí)體的n維向量。
步驟3在知識(shí)圖譜中,實(shí)體關(guān)聯(lián)到其他實(shí)體越多,該實(shí)體越重要,權(quán)重越高。計(jì)算每個(gè)實(shí)體的權(quán)重:

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

表1 搜索條件
針對(duì)表1 所示的8 個(gè)搜索條件,圖8、9 分別給出查準(zhǔn)率和召回率。
由圖8、9 可知,KGSS 算法的查準(zhǔn)率和召回率整體上優(yōu)于關(guān)鍵詞搜索算法。在不同的搜索條件下,KGSS算法的查準(zhǔn)率和召回率變化較穩(wěn)定。如圖8 所示,KGSS算法的查準(zhǔn)率在90%上下變化,且查準(zhǔn)率在80%以上。這歸功于:KGSS算法通過實(shí)體屬性以及與其他實(shí)體間關(guān)系進(jìn)行搜索,提高了搜索結(jié)果的準(zhǔn)確性。

圖8 查準(zhǔn)率
由圖8 可知,KGSS算法和關(guān)鍵詞搜索在搜索條件5 時(shí)的查詢率差別最大。主要因?yàn)樗阉鳁l件5(雷擊出現(xiàn)故障的設(shè)備)充分體現(xiàn)了這兩個(gè)算法的搜索策略的差異。在關(guān)鍵詞搜索系統(tǒng)中,“雷擊”與“故障”并沒有建立關(guān)系。而在KGSS 算法通過知識(shí)圖譜建立“雷擊”與“故障”的關(guān)系結(jié)構(gòu)。
此外,注意圖9,關(guān)鍵詞搜索在搜索條件7(具有豐富故障恢復(fù)經(jīng)驗(yàn)的工程師)的召回率為0,而對(duì)應(yīng)的查準(zhǔn)率達(dá)到100%。原因在于:關(guān)鍵詞搜索不能獲取“經(jīng)驗(yàn)豐富”的語義,搜索結(jié)果為空。因此,查準(zhǔn)率為達(dá)到100%(見圖8),召回率為0%(見圖9)。

圖9 召回率
為了挖掘電網(wǎng)企業(yè)的數(shù)據(jù)資源價(jià)值,提出基于知識(shí)圖譜的語義搜索KGSS算法。采用智能領(lǐng)域分詞技術(shù)對(duì)電網(wǎng)企業(yè)中的結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行知識(shí)提取,并建立相應(yīng)的知識(shí)圖譜。再采用基于相似性策略進(jìn)行語義搜索。KGSS 算法依據(jù)知識(shí)圖譜技術(shù),實(shí)現(xiàn)了支持語義搜索的智能分析。
電網(wǎng)企業(yè)存在海量數(shù)據(jù),利用這些海量數(shù)據(jù)構(gòu)建知識(shí)圖譜是一項(xiàng)復(fù)雜工程。本文將知識(shí)圖譜應(yīng)用于電網(wǎng)的語義搜索還處于初始階段。后期,將進(jìn)一步優(yōu)化算法,提高搜索的時(shí)效性和準(zhǔn)確性。