歐一鳴,蘇雍賀,鄒孝付+,靳 健,張長志,陶 飛
(1.北京航空航天大學 自動化科學與電氣工程學院,北京 100191;2.北京師范大學 政府管理學院,北京 100875;3.國網(wǎng)天津市電力公司 電力科學研究院,天津 300384)
近年來,分布式光伏產(chǎn)業(yè)呈現(xiàn)爆發(fā)式增長,但行業(yè)飛速發(fā)展的同時也對分布式光伏電站的運維能力提出了新的要求。分布式電站距離過遠、信息無法精準傳遞,因此無法像大規(guī)模集中式電站一樣組建一支隨時待命的高專業(yè)度運維團隊。同時,目前的分布式光伏運維工作通常由第三方公司或個人承擔,人員的專業(yè)度很不穩(wěn)定,運維模式又很依賴經(jīng)驗,往往會誤判電站的故障,造成人員在故障電站與運維站點間重復往返,降低運維效率。因此,亟需一種智慧運維系統(tǒng),根據(jù)電站業(yè)主的運維訴求,提供精準的電站狀態(tài)判斷和方案支持,以節(jié)省運維人員的精力、避免重復往返浪費時間,進而改善當前的運維現(xiàn)狀。
要實現(xiàn)這樣的智慧運維系統(tǒng),首先需要建立適用于分布式光伏運維領(lǐng)域的相關(guān)知識庫。這種知識庫有利于智慧運維系統(tǒng)從更加專業(yè)的角度分析問題,并利用分布式光伏領(lǐng)域知識為運維人員提供更專業(yè)的技術(shù)方案支持,因此建立分布式光伏領(lǐng)域的知識庫是智慧運維的關(guān)鍵步驟。
對計算機系統(tǒng)來說,傳統(tǒng)的文本形式知識庫在檢索速度、邏輯推理、知識結(jié)構(gòu)表示等方面都存在一定的短板,因此建立一種細粒度的、圖譜化的知識庫已成為新型智能運維系統(tǒng)的新需求。知識圖譜(knowledge graph)是Google公司在2012年提出的概念,它包含現(xiàn)實中的各種實體以及實體之間的關(guān)系,實體按照關(guān)系相互連接,表示為語義網(wǎng)絡(luò)的形式。在知識表示方面,它的基本單元為[頭實體(Head),實體關(guān)系(Relation),尾實體(Tail)]形式的三元組,有利于計算機進行推理、存儲和表示。對分布式光伏領(lǐng)域而言,構(gòu)建這樣的知識庫則是要將領(lǐng)域中的設(shè)備部件和技術(shù)故障等相關(guān)概念作為實體,并按照關(guān)系相互連接形成圖譜。有了這種圖譜化的知識庫,智慧運維系統(tǒng)可以更加標準化、有邏輯地為運維工作提供服務(wù),如雷兵[1]使用Web本體語言(Web Ontology Language, OWL)構(gòu)建了一個商務(wù)需求領(lǐng)域的圖譜化知識庫,可以有效地對客戶需求進行提取,這與分布式光伏運維領(lǐng)域利用知識庫從運維訴求中提取信息是相通的。
在預想的應用場景中,為了充分利用圖譜形式知識庫的細粒度、可推理等特性,智慧運維系統(tǒng)應能夠?qū)⑦\維訴求描述與圖譜中的實體元素對應,并通過實體之間的關(guān)系,將訴求映射到圖譜中的一個子圖中,再利用圖搜索技術(shù)獲取方案。為支持該預想應用場景的實現(xiàn),知識庫對分布式光伏領(lǐng)域的實體與實體關(guān)系的提取步驟提出了更高的要求。為實現(xiàn)專業(yè)領(lǐng)域的訴求理解,需要進行更細粒度的實體提取,并對準確度提出更高的要求。為更好地發(fā)揮圖譜化知識庫支持推理的特性,需要更全面、更準確地提取實體之間的關(guān)系。對于當前的數(shù)據(jù)情況,基于無監(jiān)督學習的實體提取和基于遠程監(jiān)督學習的實體關(guān)系提取方法是較為合適的方法,但現(xiàn)有算法模型與分布式光伏領(lǐng)域的數(shù)據(jù)特點不太契合,需要進行改進。
針對以上問題,本文在實體提取步驟上,將其轉(zhuǎn)化為領(lǐng)域關(guān)鍵詞發(fā)現(xiàn)問題,利用基于word2vec生成的詞匯相似度,改良TextRank算法,實現(xiàn)分布式光伏領(lǐng)域的實體提取。在實體關(guān)系提取步驟上,對于領(lǐng)域中同一對實體可能同時有多種關(guān)系的情況,改良了分段卷積神經(jīng)網(wǎng)絡(luò)分段卷積神經(jīng)網(wǎng)絡(luò)(Piecewise Convolutional Neural Network, PCNN)的分類器層,使其更契合分布式光伏領(lǐng)域的數(shù)據(jù)情況。本文改良的知識庫構(gòu)建方法,自動化程度較高,可以有效減少構(gòu)建所需的人工成本,并能夠以現(xiàn)有數(shù)據(jù)填補面向分布式光伏智慧運維知識庫的空白,同時提高準確性。
目前,知識庫在智慧運維中主要分為文本知識庫和圖譜化知識庫兩種形式,構(gòu)建的主要數(shù)據(jù)來源包括維修工單和用戶手冊中的文本[2-4]。文本形式的知識庫在應用中主要通過語義分析等手段與輸入的訴求進行文本匹配。如鞠冬彬[5]將用戶的業(yè)務(wù)查詢信息與文本知識庫中的文檔進行比對,提高了運維客服的處理速度。但這種知識庫的應用通常僅從文本分析的角度出發(fā),在限定領(lǐng)域中缺乏專業(yè)的分析能力,容易誤判訴求信息。而圖譜化知識庫由領(lǐng)域內(nèi)的實體名詞與實體關(guān)系構(gòu)成,能夠描述實體之間的關(guān)系,可以用于設(shè)備狀態(tài)評估和運維預案生成。邱劍[6]利用圖譜化的知識庫構(gòu)建了一種面向電網(wǎng)運維的自然語言處理引擎NLP4PG,可以從歷史工單的文本數(shù)據(jù)中提取專業(yè)信息、評估設(shè)備的狀態(tài)。許鑫[7]設(shè)計了一種自然語言預案生成系統(tǒng),通過建立電力領(lǐng)域的圖譜化知識庫來提取和利用電力領(lǐng)域的知識,為運維人員的檢修工作提供一定的指導。萬姍等[8]將數(shù)控機床的結(jié)構(gòu)化本體庫作為一種圖譜化知識庫,根據(jù)維修需求的案例適應度匹配歷史方案作為預案。這種知識庫支持推理,在專業(yè)領(lǐng)域中能夠更好地分析問題,在運維中提升訴求理解的準確性。
目前,在實踐中圖譜化知識庫的構(gòu)建主要有自頂向下和自底向上兩種流程[9]:
(1)自頂向下構(gòu)建 通常是半人工半自動構(gòu)建,該方法先人工確定好數(shù)據(jù)模式與知識庫結(jié)構(gòu),再往其中填入實體等知識,七步法[10-11]就是典型的專業(yè)領(lǐng)域圖譜化知識庫自頂向下構(gòu)建方法。由于領(lǐng)域?qū)嶓w數(shù)量較多、實體之間關(guān)系復雜,這種自頂向下的構(gòu)建方法比較耗費人力,而且對人員的專業(yè)度要求高,準確度容易受到人員主觀影響。
(2)自底向上構(gòu)建 該方法需要利用無監(jiān)督或遠程監(jiān)督學習等技術(shù)手段,從文本中自動抽取知識構(gòu)建圖譜化知識庫。如IBM Watson[12]平臺使用了一種實體連接算法來自動構(gòu)建圖譜。這種自動構(gòu)建方法可以節(jié)省人工成本,構(gòu)建速度也較快,同時也能保證準確度。
目前,圖譜化知識庫的自動構(gòu)建分為自動映射和非結(jié)構(gòu)化數(shù)據(jù)提取兩種。自動映射主要有結(jié)構(gòu)化數(shù)據(jù)映射[13]和基于模板抽取[14]兩種方法。非結(jié)構(gòu)化數(shù)據(jù)提取一般是指從文本中提取所需知識,提取目標為實體和實體關(guān)系,再將實體通過實體關(guān)系相連接形成知識圖譜,因此流程分為實體提取和實體關(guān)系提取兩步,典型的有DeepDive[15]提取框架。本文構(gòu)建分布式光伏領(lǐng)域知識庫的數(shù)據(jù)都來源于文本,因此要從非結(jié)構(gòu)化數(shù)據(jù)中提取相應領(lǐng)域的知識,包括實體提取和實體關(guān)系提取兩步。
1.2.1 領(lǐng)域?qū)嶓w提取研究現(xiàn)狀
實體提取步驟又稱為命名實體識別,分為有監(jiān)督學習和無監(jiān)督學習兩類方法。在有足夠標注數(shù)據(jù)的情況下,監(jiān)督學習方法中的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)、條件隨機場(Conditional Random Field, CRF)結(jié)合BiLSTM模型[16]等方法可以得到較好的效果,但若沒有現(xiàn)成的標注數(shù)據(jù),則要消耗很多人力物力來獲取。目前,由于分布式光伏領(lǐng)域還比較缺乏有標注數(shù)據(jù),本文采用無監(jiān)督的領(lǐng)域?qū)嶓w提取方法。對于無監(jiān)督的實體提取任務(wù),常用手段包括基于半結(jié)構(gòu)化數(shù)據(jù)庫、基于規(guī)則模板和匹配基于統(tǒng)計特征的方法。
(1)基于半結(jié)構(gòu)化數(shù)據(jù)庫的方法 是利用網(wǎng)絡(luò)百科等有一定書寫規(guī)律的數(shù)據(jù)來提取實體,建立詞典后,借助詞法和句法分析手段,提取出數(shù)據(jù)中蘊含的實體名詞。Guo等[17]設(shè)計了一種基于維基百科的實體提取流程,通過建立字典并設(shè)計一套流程,提取出句子中蘊含的實體。
(2)基于規(guī)則模板匹配 是由人工制定一套規(guī)則來進行直接匹配。這種規(guī)則可以是基于詞典的字符串匹配等,由人工進行測試,然后不斷改進,最終達到較好的效果[18]。
(3)基于統(tǒng)計特征的方法 是根據(jù)詞匯在領(lǐng)域文本中的統(tǒng)計信息所提取的特征,通過賦予詞匯權(quán)重或者與開放領(lǐng)域語料庫進行比較,來提取領(lǐng)域?qū)嶓w名詞,該過程也用于解決關(guān)鍵詞提取問題。趙志濱等[19]采用詞頻—逆文檔頻率值(Term Frequency-Inverse Document Frequency, TF-IDF)值結(jié)合詞向量作為特征來發(fā)現(xiàn)領(lǐng)域詞匯,Lee等[20]使用基于PageRank的算法來判斷一個詞是否屬于關(guān)鍵詞。
對于本文來說,由于分布式光伏運維是一個新興領(lǐng)域,相關(guān)的百科數(shù)據(jù)庫尚不完善,缺乏難以直接使用基于網(wǎng)絡(luò)數(shù)據(jù)庫的方法?;谝?guī)則模板匹配的方法對人力的依賴程度非常高,需要高度專業(yè)的領(lǐng)域和語言專家進行大量的工作才能完成?;诮y(tǒng)計特征的方法對人力成本的消耗很低,通用性較強,常用方法有TF-IDF和TextRank等,但容易受到固定句式等因素影響,需要引入外部信息來進行改進。
1.2.2 實體關(guān)系提取研究現(xiàn)狀
實體關(guān)系提取的主要任務(wù)是給定一對實體,從已有的文本數(shù)據(jù)中提取出這兩個實體之間的關(guān)系,通常以三元組的形式表示,主要分為有監(jiān)督學習、無監(jiān)督學習、半監(jiān)督學習和遠程監(jiān)督學習4種方法。在有標注數(shù)據(jù)充足的情況下,TextCNN等卷積神經(jīng)網(wǎng)絡(luò)是一種行之有效的文本分類有監(jiān)督學習模型[21],但由于目前分布式光伏領(lǐng)域缺乏已標注數(shù)據(jù),無法使用有監(jiān)督方式進行。無監(jiān)督方法主要應用于開放領(lǐng)域,對于限定領(lǐng)域的關(guān)系提取不夠細致,無法滿足面向智慧運維的知識庫要求。半監(jiān)督方法能夠只利用少量的有標注樣本,讓模型根據(jù)一定的模式自我訓練,如Hakami等[22]基于自監(jiān)督方法進行關(guān)系提取,倪維健等[23]通過轉(zhuǎn)導支持向量機(Transductive Support Vector Machine, TSVM)轉(zhuǎn)導支持向量機進行半監(jiān)督學習。半監(jiān)督方法雖然對人工標注的需求較低,但容易出現(xiàn)“語義漂移”的問題,準確度不足。遠程監(jiān)督方法可以利用公共領(lǐng)域知識庫,通過學習其他知識庫中表示同樣實體關(guān)系的文本特征,來判斷分布式光伏領(lǐng)域文本中的實體關(guān)系,這種方法不需要領(lǐng)域內(nèi)的有標注數(shù)據(jù),準確度也較高。
遠程監(jiān)督關(guān)系提取主要包括基于語法特征的方法、基于隱變量概率分布的方法和基于神經(jīng)網(wǎng)絡(luò)的方法?;谡Z法特征的方法是指分析兩種實體之間的語法特征作為實體關(guān)系的分類依據(jù)。Mintz等[24]利用依存句法分析了維基百科中的文本,在使用這種方法時首次采用了遠程監(jiān)督手段,同時還作出了“遠程監(jiān)督假設(shè)”,認為所有同時提到兩個實體的句子都有可能蘊含兩個實體的關(guān)系信息。基于隱變量概率分布的方法采用隱含狄利克雷分布的模型對句子的統(tǒng)計信息進行建模。如周娜等[25]通過構(gòu)建隱含狄利克雷分布(Latent Dirichlet Allocation, LDA)主題模型,提取核心期刊的“作者—內(nèi)容—方法”之間的關(guān)系。基于神經(jīng)網(wǎng)絡(luò)的方法將深度學習模型用于實體關(guān)系提取,常用的深度學習模型包括卷積神經(jīng)網(wǎng)絡(luò)等,在實體關(guān)系提取任務(wù)上的準確度已顯著高于傳統(tǒng)的機器學習方法[26]。
目前,基于CNN的方法性能較優(yōu),該方法可以減少對現(xiàn)有詞法、句法分析等自然語言處理工具的依賴,避免錯誤率疊加,從而提高準確度和可用性。同時,在網(wǎng)絡(luò)的池化層使用分段池化方法,可以將實體的上下文與位置關(guān)系等信息也提取出來,提升模型效果。在當前的CNN模型中,分類器層多使用Softmax分類器,這種分類器適合多分類問題,并能夠得到每個類的相應概率。但由于分布式光伏領(lǐng)域中,同一對實體的多種關(guān)系之間并不互斥,如果使用CNN模型,可以對分類器層進行相應的修改,使提取結(jié)果更加全面,提高準確度。
當前分布式光伏領(lǐng)域可利用的文本數(shù)據(jù)主要包括維修工單和運維手冊,數(shù)據(jù)量較大,均為沒有標注的文本數(shù)據(jù)。本文將利用分布式光伏領(lǐng)域無標注文本,采用無監(jiān)督的方法,進行基于統(tǒng)計特征的實體提取,構(gòu)成領(lǐng)域?qū)嶓w庫;利用開放領(lǐng)域的知識庫數(shù)據(jù),采用遠程監(jiān)督的方法,進行實體關(guān)系提取,構(gòu)成實體關(guān)系庫。
具體構(gòu)建流程如圖1所示,包括實體提取步驟和實體關(guān)系提取步驟。
(1)實體提取步驟 因為分布式光伏領(lǐng)域可利用的數(shù)據(jù)中多為無標注的陳述性文本,所以可以轉(zhuǎn)化為關(guān)鍵詞提取問題。在該問題上,基于圖模型的TextRank算法是一種廣泛使用的方法[27-29],該方法通用性較強,不需要額外的訓練數(shù)據(jù)。但是在單一領(lǐng)域的文本數(shù)據(jù)中,存在固定句式導致非領(lǐng)域詞匯權(quán)重相互抬升的現(xiàn)象。因此,本文根據(jù)李俊等[30]引入外部語義信息改善權(quán)重傳遞過程的方法,針對分布式光伏領(lǐng)域,通過引入外部詞向量來改進TextRank算法。該步驟利用運維手冊中的無標注文本數(shù)據(jù),獲取光伏領(lǐng)域的實體詞匯,以降低人工篩查的工作量,并提高提取性能。
(2)實體關(guān)系提取步驟 本文利用公共領(lǐng)域的百科數(shù)據(jù)庫,通過遠程監(jiān)督學習的方法建立神經(jīng)網(wǎng)絡(luò)模型,從分布式光伏領(lǐng)域的無標注文本中提取實體關(guān)系。本文采用PCNN模型,更加注重實體之間的位置、距離和上下文關(guān)系;又根據(jù)分布式光伏領(lǐng)域?qū)嶓w之間可能有多種關(guān)系的特點,對模型的分類器層進行修改,形成了更適用于該領(lǐng)域的分段卷積神經(jīng)網(wǎng)絡(luò)—光伏(Piecewise Convolutional Neural Network-Photovoltaic, PCNN-PV)模型;又由于遠程監(jiān)督學習面臨較大的數(shù)據(jù)噪聲問題,使用多示例學習的方式來回避錯誤樣本對模型訓練過程的影響。最后,利用該模型處理分布式光伏領(lǐng)域文本,獲得領(lǐng)域內(nèi)的三元組信息,完成圖譜化知識庫的構(gòu)建。
TextRank[31]是一種經(jīng)典的無監(jiān)督關(guān)鍵詞提取算法,具有良好的通用性。其輸入是需要提取關(guān)鍵詞的全部文本,通過給輸入文本中的所有詞賦予權(quán)重,得到所有詞匯的權(quán)重列表作為輸出。該算法的核心思想是:每個詞將權(quán)重轉(zhuǎn)移給它連接到的詞,并獲得其他詞轉(zhuǎn)移來的權(quán)重,經(jīng)過多輪迭代后逐漸收斂,得到穩(wěn)定的詞匯權(quán)重。
令語料庫中所有詞匯的集合為M,向量M的長度為m,建立權(quán)重轉(zhuǎn)移矩陣A,則A∈Rm。詞匯wi從wj獲得的權(quán)重轉(zhuǎn)移量表示為aij,因此,對于A中的元素aij有:
(1)
式中:ωij表示權(quán)重在轉(zhuǎn)移過程中wi在wj的共現(xiàn)窗口中出現(xiàn)過的次數(shù);O(wj)表示wj為中心的共現(xiàn)窗口中出現(xiàn)除自己外所有詞的數(shù)量。按這種方式對所有詞匯組合生成aij,直到權(quán)重轉(zhuǎn)移矩陣A建立完畢。初始化權(quán)重向量內(nèi)所有的詞的權(quán)重R(vi)=1,所有詞匯的TextRank權(quán)重組成詞匯權(quán)重向量S,則有S0=[1,…,1]T。將狀態(tài)轉(zhuǎn)移矩陣A作用于權(quán)重向量,k為迭代次數(shù),得到Sk+1=ATSk。為保證權(quán)重達到收斂,定義阻尼參數(shù)d,此時有Sk+1=(1-d)Sk+dASk。按如此過程反復迭代,直到權(quán)重向量S收斂。求出所有詞匯權(quán)重后,可以按照權(quán)重大小排序,提取出分布式光伏領(lǐng)域的關(guān)鍵詞。最后,根據(jù)關(guān)鍵詞的詞性進行篩選,提取出名詞關(guān)鍵詞作為光伏領(lǐng)域的實體名詞。
在當前TextRank算法的假設(shè)中,在每一輪的權(quán)重迭代時,每個詞應該只以共現(xiàn)窗口中的出現(xiàn)次數(shù)為依據(jù),將權(quán)重傳遞給相鄰的詞。但是光伏運維手冊中含有大量的固定組合句式如“……檢查原因”,使得這些固定組合中的詞匯存在相互抬升權(quán)重的現(xiàn)象,從而導致分布式光伏領(lǐng)域?qū)嶓w名詞的權(quán)重排序受到干擾。
針對這種情況,本文對權(quán)重轉(zhuǎn)移過程進行了改良。受無監(jiān)督的聚類算法啟發(fā),本文認為,在以尋找光伏領(lǐng)域關(guān)鍵詞為目的時,可以引入詞向量影響權(quán)重轉(zhuǎn)移的過程,減小無關(guān)詞匯權(quán)重相互抬升。設(shè)定數(shù)個分布式光伏領(lǐng)域詞匯作為“核心詞匯”,在詞向量空間中距離“核心詞匯”越近的詞將擁有更高的“質(zhì)量”,在權(quán)重轉(zhuǎn)移的過程中將獲取更高的權(quán)重。
本文中TextRank算法的主要任務(wù)是獲取分布式光伏領(lǐng)域的實體名詞,因此可設(shè)置“光伏”、“設(shè)備”等詞為核心詞匯,如果核心詞匯不止一個,在判斷詞匯質(zhì)量時分別計算與核心詞匯的詞向量距離,取最小值。假設(shè)有核心詞匯{wc1,wc2,wc3},核心詞匯的詞向量分別為{Vc1,Vc2,Vc3},待判斷詞匯wi的詞向量為Vi,兩詞向量之間的距離取歐氏距離,記為:
dic=‖Vi-Vc‖。
(2)
根據(jù)詞向量之間的距離,定義該詞與核心詞匯的相似度函數(shù),使得越靠近核心詞匯相似度越大,并用一個非線性函數(shù)將相似度限定在(0,1)之間,避免權(quán)重都向某幾個詞集中,本文使用如下雙曲正切函數(shù):
(3)
aij為詞匯wi從wj獲得的權(quán)重轉(zhuǎn)移量,則進一步處理式(3):
(4)
為了保證在迭代過程中,權(quán)重總量不過分膨脹或縮水,對所有從wj轉(zhuǎn)移出去的權(quán)重進行歸一化操作,并使單個詞匯的權(quán)重轉(zhuǎn)移向量元素之和為1:
(5)
歸一化之后可得新的權(quán)重轉(zhuǎn)移矩陣,在詞向量空間距離的影響下,分布式光伏領(lǐng)域詞匯的權(quán)重在轉(zhuǎn)移迭代中提升更快,更容易與其他無關(guān)詞匯相互區(qū)分。
遠程監(jiān)督的實體關(guān)系提取主要任務(wù)是從公共領(lǐng)域的百科數(shù)據(jù)中訓練出一個模型,使得該模型在分布式光伏領(lǐng)域的文本中也能較好地進行實體關(guān)系提取,本文根據(jù)Zeng等[32]的遠程監(jiān)督學習研究構(gòu)建了PCNN模型。由前文的TextCNN可知,以詞的向量表示作為輸入,并用卷積神經(jīng)網(wǎng)絡(luò)進行文本處理可以更好地捕捉上下文的相關(guān)信息。在池化層將句子根據(jù)實體詞匯位置分割進行分段池化,可以為模型提供更豐富的信息。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
首先,將要處理的句子中每一個詞都表示為詞向量,從而生成一個相應的矩陣,該矩陣將作為初始數(shù)據(jù)輸入到神經(jīng)網(wǎng)絡(luò)中。輸入的矩陣經(jīng)過一維卷積的處理后進入池化層,根據(jù)文獻[32],使用分段最大池化(piecewise max pooling)進行操作,對于含有2個實體名詞的句子來說,天然地可以按照實體位置將句子分割為3個部分。按照這種分割方式,將3個部分分別進行最大池化操作,可以捕捉到更細致的文本特征,從而更好地進行實體關(guān)系提取。最后,池化層的輸出進入分類器層,通過Softmax等函數(shù)進行判斷,得出關(guān)系提取的結(jié)果。
盡管PCNN在開放領(lǐng)域是一種較為有效的關(guān)系提取模型,但其在光伏領(lǐng)域內(nèi)需要一定的改進以提高性能。在開放領(lǐng)域中PCNN模型會假設(shè)實體關(guān)系提取是一個多分類(multi-class)問題,即認為兩個實體之間只存在一種關(guān)系,只需要從候選關(guān)系中找到最可能的一種。但對本文要構(gòu)建的光伏領(lǐng)域知識庫來說,兩種實體之間可能存在不止一種關(guān)系,例如實體“空氣斷路器”對于實體“電路”來說,前者既是從屬于后者的一種部件,也對后者起到了保護作用。因此,在光伏領(lǐng)域中,實體提取是一個多標簽(multi-label)問題,廣泛使用的Softmax多分類器并不直接適用于該領(lǐng)域。對此,可以使用多個2分類器來替代多分類器處理多標簽問題,改良后得到針對分布式光伏領(lǐng)域優(yōu)化的PCNN-PV模型。本文中模型使用多個Logistic分類器來輸出結(jié)果。
池化層輸出為g,W1是長度與g相等的權(quán)重向量,b為常數(shù)。Y為分類器的輸出,由于該分類器為2分類,輸出可能有Y=0或Y=1,將其表達為條件概率分布,有
(6)
(7)
(8)
為了減輕遠程監(jiān)督附帶的噪聲對實體關(guān)系提取效果的影響,在訓練網(wǎng)絡(luò)時需要使用多示例學習(Multi Instance Learning, MIL)策略,該策略由PAuer[33]首次提出。多示例學習的策略是將訓練數(shù)據(jù)分為許多組,構(gòu)成一個個“樣本包(bag)”,每個“包”中包含多個“示例(instance)”。在訓練時,不考慮任何單個樣本的正或負類標注,而是關(guān)注“樣本包”整體的標注情況。多示例學習作出如下假設(shè):對于一個“樣本包”,只要其含有的任何一個樣本被認為是正類,則該“樣本包”的整體就被標注為正;而當且僅當該“樣本包”中所有樣本都不是正類時,該樣本才被認為是負類。而多示例學習的最終目標是訓練出針對某一種實體關(guān)系、單個樣本的分類器,以對單個樣本進行單個實體關(guān)系的正負標注預測。通過這種訓練策略,可以有效回避遠程監(jiān)督學習中的噪聲問題。整體算法流程如算法1所示。
算法1多示例學習流程。
步驟1初始化神經(jīng)網(wǎng)絡(luò)的參數(shù),將樣本劃分成許多個樣本包。
步驟2隨機將一個樣本包M中的樣本依次輸入PCNN-PV模型中。
步驟3根據(jù)當前模型參數(shù)的預測,找到在當前樣本包M中與目標分類最接近的樣本m。
步驟4根據(jù)對m數(shù)據(jù)的最優(yōu)化結(jié)果,對神經(jīng)網(wǎng)絡(luò)的參數(shù)進行更新。
步驟5重復步驟2~步驟4,直到收斂或達到預定循環(huán)次數(shù)。
由于多示例學習是作用于“樣本包”而不是單個樣本上的,需要針對整個“樣本包”進行條件概率計算。在所有的T組“包”中的樣本都根據(jù)當前分類器得出判斷結(jié)果后,才可以對模型進行參數(shù)更新。由于本文的實體關(guān)系提取是二分類問題,目標概率分布只有0和1,因此根據(jù)交叉熵(cross entropy)公式,可定義損失函數(shù):
(9)
利用該損失函數(shù),可以找到每個“樣本包”中與目標分類最符合的樣本。假設(shè)第j*個樣本最接近目標,則有
(10)
接下來利用隨機梯度下降(Stochastic Gradient Descent, SGD)、自適應矩估計(Adaptive moment estimation, Adam)等參數(shù)優(yōu)化手段使得函數(shù)J(θ)最小化,以此實現(xiàn)分類器的訓練過程。
5.1.1 知識庫設(shè)計
圖譜化知識庫關(guān)系設(shè)計如圖3所示,由領(lǐng)域?qū)嶓w庫和實體關(guān)系庫兩部分組成。領(lǐng)域?qū)嶓w庫包含“設(shè)備部件”和“故障概念”兩類,“設(shè)備部件”指組成光伏電站的設(shè)備及部件名稱,“故障概念”包含“熱斑”、“短路”等設(shè)備部件可能發(fā)生的故障名稱。實體關(guān)系庫分為“因果關(guān)系”、“作用關(guān)系”等8類:“因果關(guān)系”指故障造成現(xiàn)象的因果,如“過熱”會導致“報警”等;“作用關(guān)系”指某部件起到某種作用,如“蓄電池”是用來“蓄電”的;“發(fā)生關(guān)系”表示部件會發(fā)生的故障,如只有“光伏板”才會出現(xiàn)“熱斑”、“隱裂”等;“包含關(guān)系”是概念上的包含,如“短路”是一種“故障”;“位于關(guān)系”表示位置上的聯(lián)系,如“光伏板”位于“支架”上;“從屬關(guān)系”代表設(shè)備由哪些部件組成,如“配電柜”由“柜體”、“斷路器”、“互感器”等部件構(gòu)成;“同義詞關(guān)系”如“空開”、“空氣開關(guān)”與“空氣斷路器”是同義詞;“其他關(guān)系”則是其他不能直接概括的關(guān)系。
5.1.2 驗證數(shù)據(jù)來源
根據(jù)目的不同,本文驗證流程分為實體提取驗證和實體關(guān)系提取驗證兩部分。其中:實體提取驗證部分使用分布式光伏運維手冊中的所有文本數(shù)據(jù),利用基于詞向量距離改良的TextRank算法進行實體提取,使用人工抽驗的方法與其他算法進行準確度對比;實體關(guān)系提取驗證部分使用CN-DBpedia[34]中包含的相關(guān)數(shù)據(jù)進行PCNN-PV模型訓練,再利用該模型從分布式光伏運維手冊的文本數(shù)據(jù)中進行實體關(guān)系提取。詞向量表示部分均使用北京師范大學和人民大學共同開發(fā)的中文領(lǐng)域大規(guī)模預訓練詞向量Chinese-Word-Vectors[35]。
本文采用國家電網(wǎng)提供的《分布式光伏電站系列操作手冊—運行維護》和書籍[36]作為該領(lǐng)域的文本數(shù)據(jù)集,數(shù)據(jù)量約6 000條句子、共40萬字。用于遠程監(jiān)督的數(shù)據(jù)集CN-DBpedia格式如表1所示。
表1 CN-DBpedia數(shù)據(jù)格式
5.1.3 參數(shù)設(shè)置及實現(xiàn)
實體提取過程中,詞表長度約22 000,初始權(quán)重向量為相應長度的全1向量,設(shè)置核心詞匯為“光伏”、“設(shè)備”、“故障”,構(gòu)建權(quán)重轉(zhuǎn)移矩陣的共現(xiàn)窗口設(shè)置為w=5,迭代平滑參數(shù)d=0.85。
實體關(guān)系提取中,設(shè)定實體關(guān)系8種,分別為:“因果”、“作用”、“發(fā)生”、“包含”、“位于”、“從屬”、“同義詞”、“其他”,按以上設(shè)定從CN-DBpedia中獲取訓練樣本。獲取樣本后,將所有詞匯替換為詞向量,每條文本對應為一個矩陣,作為模型的輸入。該部分實驗的主要超參數(shù)包括以下7種:詞向量維數(shù)dw、位置特征向量維數(shù)dp、卷積核窗口長度w、卷積核個數(shù)k、單個樣本包的大小n、學習率λ,以及防止發(fā)生過擬合設(shè)置的Dropout率。根據(jù)卷積層結(jié)構(gòu)相近的多組實驗結(jié)果[32,37-38],超參數(shù)設(shè)置如表2所示時,模型的性能較好。
表2 實驗超參數(shù)設(shè)置
5.1.4 評價指標設(shè)置
在實體提取步驟,以準確率(Accuracy)作為評價指標,采用小批次人工抽驗的方式,重復多次求平均值。準確率A的計算公式如下:
(11)
式中:T為正確的樣本數(shù),F(xiàn)為錯誤的樣本數(shù)。
在實體關(guān)系提取步驟,根據(jù)前文遠程監(jiān)督學習的提出者Mintz[24]的實驗,模型的評估應分為自動評估和人工評估兩部分。評估分為兩部分的原因在于可以用于評估的知識庫本身是不完備的,也是因此才需要使用遠程監(jiān)督的方法。自動評估部分使用精度(P)與召回率(R)作為衡量性能的評價指標。人工評估部分采用小批次抽驗,以準確率作為評價指標。精度P、召回率R和準確率A的計算公式如下:
(12)
(13)
(14)
其中:Tp為真正例,F(xiàn)P為假正例,F(xiàn)N為假反例。
5.2.1 實體提取結(jié)果
在實體提取步驟,改良TextRank、TextRank和TF-IDF三種方法的準確率對比結(jié)果如表3所示。
表3 實體提取結(jié)果對比
由該結(jié)果可知,本文采用的改良TextRank算法與經(jīng)典TextRank算法,以及基于統(tǒng)計的TF-IDF算法相比,平均準確率更高。引入核心詞匯機制和詞向量作為外部信息后,在權(quán)重轉(zhuǎn)移的過程中,在向量空間中與核心詞匯相近的詞匯可以獲得更多優(yōu)勢,減少固定句式對實體提取效果的影響。TF-IDF算法雖然有IDF值作為外部信息,但該算法僅考慮詞頻,忽略了詞與詞之間的聯(lián)系,用于實體提取時效果不如TextRank。因此,改良TextRank算法可以更準確地提取出目標領(lǐng)域范圍內(nèi)的實體名詞,也能夠有效地減少實體提取步驟的人工工作量。
5.2.2 實體關(guān)系提取結(jié)果
使用MIL的PCNN-PV模型、使用多示例學習的TextCNN模型,以及不使用學習策略的PCNN-PV模型準確率、召回率曲線對比如圖4所示。人工評估部分實驗結(jié)果如表4所示。
表4 實體關(guān)系提取人工評估準確率對比
由圖4可知,在遠程監(jiān)督學習中,噪聲問題較為明顯,可以使用多示例學習等策略有效緩解。在使用多示例學習的情況下,PCNN-PV方法對比TextCNN方法,產(chǎn)生的結(jié)果準確率更高。當召回率高于0.3時,PCNN-PV的準確率比經(jīng)典TextCNN模型準確率高約0.05,從而證明該模型的提取性能在一定程度上優(yōu)于經(jīng)典模型。分段池化的操作利用兩個實體的位置將句子分割成3部分,分別池化之后可以將更多上下文信息納入分析中。對分類器的修改讓同一對實體可以同時屬于多個分類,使模型適配了分布式光伏領(lǐng)域的特點,提高了準確度。由表4可知,本文所采用的PCNN-PV在光伏領(lǐng)域的實體關(guān)系提取上效果略優(yōu)于經(jīng)典的TextCNN??紤]到實際建立的圖譜化知識庫中,一些實體對可以通過其他實體跳轉(zhuǎn)聯(lián)系起來,例如“光伏組件”與“光伏板”是同義詞,“光伏板”會產(chǎn)生“熱斑”,這樣通過跳轉(zhuǎn)可以將“光伏組件”與“熱斑”相聯(lián)系,這提高了在實際使用中的容錯性能。因此,本文構(gòu)建的分布式光伏圖譜化知識庫對于智慧運維應用場景具有實踐意義。
隨著近年來分布式光伏產(chǎn)業(yè)的發(fā)展,該行業(yè)對于智慧運維的需求也隨之增長。因此,構(gòu)建一種面向智慧運維的分布式光伏知識庫,在提升運維工作的智能化程度、標準化規(guī)范化運維流程、降低從業(yè)人員門檻等方面都具有重要作用。本文從實體提取和實體關(guān)系提取兩方面出發(fā),改良了分布式光伏知識庫構(gòu)建流程。該流程減小了對標注樣本的依賴,緩解了傳統(tǒng)專業(yè)知識庫構(gòu)建方式耗時耗力的問題,填補了分布式光伏智能運維系統(tǒng)中缺乏特定知識庫的空白,準確性也得到了一定提升。但這套流程仍有不足,通常來說實體提取還應有“實體發(fā)現(xiàn)”的步驟,但受限于樣本數(shù)據(jù),難以有較好的效果,遂使用光伏術(shù)語詞表作為替代。實體提取和關(guān)系提取這兩部分的輸入都受限于中文分詞工具的性能,難以有效發(fā)現(xiàn)一些較長的詞(如“離網(wǎng)發(fā)電系統(tǒng)”),從而不可避免地發(fā)生了錯誤率疊加的現(xiàn)象,然而類似長度的詞在專業(yè)領(lǐng)域術(shù)語中比較常見。因此,對于該流程,未來還有許多可以改進的方面,如實體提取中調(diào)整模型,減少對分詞工具的依賴;目前的實體提取模型還是從比較簡單的單層CNN模型改進而來,未來可以應用深度學習和強化學習手段,更好地利用詞向量等文本特征,提升模型效果。