楊冠群,劉 蔭,鄭海杰,張聞彬,湯琳琳,王高洲
(國網山東省電力公司信息通信公司,山東濟南 250021)
隨著電力系統信息化水平的提高,電力行業積累了豐富的用戶用電數據。然而,由于輸變電設備故障、網絡波動、用戶竊電等原因,用電數據中存在大量異常數據。異常用電數據識別是指利用相關方法從海量數據中識別出異常數據,幫助電力系統工程師快速定位故障原因、發現可疑的用電異常行為,進而提高電力系統的穩定性,避免異常用電行為對企業和社會造成更大損失。
異常用電數據識別是一種典型的二分類任務,即基于給定的用戶用電輸入數據預測該用戶是否為異常用電用戶。數據驅動下的異常用電識別已成為當前主流的研究方法,其中包括基于機器學習的識別方法和基于深度學習的識別方法。基于機器學習的識別方法首先從用戶用電數據中提取相關特征,然后基于提取的特征構建異常識別模型[1-2]。盡管基于特征分析和機器學習的異常用電數據識別已取得成功,但是特征構建需要專業的知識背景,且手工構建的特征質量對檢測結果會造成較大擾動。目前,深度學習技術已成功應用于各個領域,基于深度學習的異常用電數據識別已成為電力行業數據分析的主要手段。與基于機器學習識別方法不同的是,基于深度學習的異常用電數據識別方法從原始的用戶用電數據中挖掘潛在的用電模式及其變化規律,不需要額外提取特征,減小了特征提取質量對識別結果的擾動[3]。常用于用戶異常識別的深度學習算法包括卷積神經網絡[4]、圖神經網絡[5]、自注意力機制[6]等。
現有基于深度學習的異常用電數據識別方法要求將存儲在各個供電公司的用戶用電數據匯集起來,進行模型的統一訓練。然而,這種方式存在數據隱私泄露、數據傳輸困難等問題。為了解決該問題,本文提出一種基于信息熵的聯邦學習異常用電識別模型。該模型將聯邦學習引入到異常用電數據識別模型訓練過程中,用于解決分公司之間存在的“數據孤島”問題。聯邦學習模型在訓練過程中不需要將各客戶端中分散的原始數據收集起來,而是直接在各個客戶端進行模型本地訓練,只需匯集各個客戶端所產生的中間參數,避免了因原始數據傳輸而出現數據泄露等問題。此外,由于經濟發展水平不同,作為聯邦學習客戶端的各個供電公司中的用戶用電數據分布存在差異,可能會給模型性能帶來潛在影響。具體來說,在參數聚合過程中,數據質量較高的客戶端中間參數對最終聚合參數的貢獻較大,反之亦然。為此,本文提出通過k-近鄰評估算法計算各個客戶端數據集的信息熵。信息熵作為數據集的一種統計量,能夠反映該數據集的分布質量,用于表示各個客戶端中間參數在聚合過程中對模型最終參數的貢獻。
基于機器學習的異常用電數據識別方法主要包括聚類分析[7-8]、回歸分析、特征分解[9]等。文獻[10]提出一種基于回歸方法的用電數據異常檢測方法,該方法依據完整性、唯一性、一致性、準確性等評價指標對用電數據進行回歸分析,實現對停上電數據缺陷進行辨別與處理。文獻[11]提出一種基于線性判別分析和密度峰值聚類的雙判據無監督異常用電檢測模型,該模型遵循“特征構造—維度規約—聚類—異常檢測”的流程,借助聚類算法對用電模式不同的用戶分類后再進行檢測,在維度規約模塊使用線性判別分析將用戶的臺區號輸入檢測模型,提升了模型的檢出率和精確率;在異常檢測模塊設置雙判據檢測標準,減小了模型對參數攝動的敏感程度。文獻[12]針對無大量已知異常用電用戶樣本的情況,提出一種基于改進模糊C 均值聚類的竊電行為檢測模型,該模型首先通過因子分析對用戶用電特征(包括用電負荷數據和電能表異常事件)進行維度規約,提升模型檢測效率,再利用遺傳模擬退火算法對模糊C 均值聚類算法進行改進,進而實現對用戶用電特征進行檢測。文獻[13]針對異常用電行為的時頻特性往往具有強隨機不確定性的情況,提出一種基于經驗模式分解的異常用電檢測方法,該方法首先進行相關特征篩選,然后對用戶用電量和線損電量序列進行自適應分解,提取高頻分量,通過對其變化趨勢和相關性進行分析,實現對異常用電行為的檢測與識別。
隨著神經網絡的發展,深度學習技術在眾多領域得到了廣泛應用,例如自然語言處理[14-15]、推薦系統[16-17]、計算機視覺[18-19]等。對于異常用電數據識別任務,深度學習方法逐漸得到重視。例如,文獻[20]針對電網中的用電異常行為,提出一種基于時間卷積網絡的端到端用戶用電異常檢測模型,該模型主要包括數據預處理、卷積操作、殘差連接等模塊。通過在真實數據集上對模型性能進行驗證,結果表明該模型表現優于支持向量機、邏輯回歸等傳統檢測方法。文獻[21]提出一種基于強化學習的異常用電判決方法,該方法首先獲取分類器輸出的數個用戶短期行為的異常概率,然后輸入到強化學習模型深度遞歸Q網絡中,實驗結果表明,該模型具有較好的泛化性能。文獻[22]提出基于實值深度置信網絡的用戶側竊電行為檢測模型,該模型首先利用因子分析進行數據降維,利用隨機欠采樣和套索算法應對數據不平衡問題。同時該模型為了優化實值深度置信網絡因隨機初始化產生的局部最優化問題,通過螢火蟲算法對網絡參數進行全局尋優。文獻[23]提出基于數據內在特性和長短期記憶神經網絡(Long Short-Term Memory,LSTM)的用戶用電數據異常檢測算法,該算法使用多層LSTM神經網絡實現高維數據特征提取,從而提高了異常用電數據識別的準確率。文獻[24]提出一種基于主成分分析和深度循環神經網絡的異常用電行為檢測方法,該方法首先利用核主成分分析方法對電力負荷數據進行降維,生成主成分特征子集,然后基于LSTM和門控循環單元構建深度循環神經網絡模型,用于檢測異常用電行為。
然而,以上方法在構建模型時,都未考慮對用戶用電數據隱私進行保護。本文通過引入聯邦學習方法,進行基于信息熵的聯邦學習異常用電識別研究,彌補了現有方法存在的隱私性問題,同時提出利用信息熵估算算法改進聯邦學習中的梯度聚合,以提高模型準確性。
如圖1所示,該模型主要包括以下3個模塊:
(1)基于Transformer 的客戶端模型訓練模塊。基于各個客戶端分布式存儲的私有數據,分別在各個客戶端訓練Transformer 異常識別神經網絡模型,并且不同客戶端中的Transformer 神經網絡具有相同的拓撲結構。
(2)基于差分隱私算法的客戶端梯度上傳模塊。利用局部差分隱私算法,將各個客戶端的Transformer 異常識別神經網絡參數的梯度進行加密,并上傳到服務器端中。與上傳模型參數不同的是,上傳參數梯度需要傳輸的數據量少,具有更高的通信效率。
(3)基于信息熵加權平均的服務器端梯度聚合模塊。在服務器端對來自不同客戶端的模型參數梯度進行基于信息熵的加權平均聚合,得到包含各個客戶端訓練信息的聚合梯度。基于得到的聚合梯度對模型參數進行更新,隨后將服務器端更新后的模型分發到各個客戶端中,替換原有的神經網絡模型。
重復以上步驟(1)-(3),直至模型收斂,完成最終的異常用電識別模型構建。

Fig.1 Information entropy-based federal learning model for identifying abnormal electricity consumption圖1 基于信息熵的聯邦學習異常用電識別模型
Transformer[25]神經網絡模型以其強大的序列建模能力在眾多任務上得到了廣泛應用。在客戶端模型訓練過程中,選擇Transformer 作為異常用電識別神經網絡,用于建模用戶用電序列。Transformer 神經網絡拓撲結構如圖2所示。
在第n個客戶端中,用戶u的用電序列記為X=[x1,x2,…,xl,…,xL]∈RL×D,其中L表示用電序列長度,D表示特征維度。Transformer 中的注意力機制采用查詢—鍵—值(Query-Key-Value,QKV)模式進行注意力得分計算。對于輸入序列X,首先對其進行線性變化,將其映射到不同的向量空間中,即:

式中,Wq∈RD×Dq,Wk∈RD×Dk,Wv∈RD×Dv分別為查詢—鍵—值的線性映射參數矩陣,且Dq=Dk=Dv;Q、K、V分別為查詢矩陣、鍵矩陣、值矩陣。采用縮放點積的形式進行注意力計算,即:

式中,Softmax(·)表示歸一化函數,H 表示注意力機制的輸出矩陣。在多頭注意力機制中,假設有H 個頭,則多頭注意力機制的輸出如下所示:

式中,Concat(·)表示向量拼接操作,Hh表示第h個注意力頭的輸出向量,Wm表示訓練參數,M 表示多頭注意力機制的輸出矩陣。為避免模型在訓練過程中出現梯度消失的情況,將殘差連接和層歸一化作用于M,即:

Fig.2 Transformer neural networks圖2 Transformer神經網絡

式中,LayerNorm(·)表示層歸一化操作,Mt表示中間向量。如圖2 所示,前饋神經網絡用于解決層數加深所帶來的信息損失問題,即:

式中,Wt、Wr、bt、br表示可訓練參數,F 表示前饋神經網絡輸出矩陣。之后再次進行殘差連接和層歸一化操作,即:

式中,O 表示經過殘差連接和層歸一化之后的輸出矩陣。將其輸入到輸出層為1 的單層感知機中,對用戶用電序列輸出矩陣進行壓縮,得到用戶表示向量如下:

式中,Wp、bp表示可訓練參數表示輸入用戶用電序列所對應的異常概率值。在模型訓練過程中,給定預測的異常概率值和真實值y,本文采用交叉熵損失構建以下優化目標函數,即:

式中,B表示客戶端訓練批大小,L 表示損失值。
客戶端梯度上傳是指將各個客戶端中的模型參數梯度通過加密后上傳到服務器端,用于梯度聚合和模型更新。與傳統方法所要求的數據集中式存儲不同的是,基于聯邦學習的方法只需要服務器端收集加密之后的模型參數梯度,原始數據依舊分布式地存儲在各個客戶端,不進行原始數據傳輸,從而大大提升了通信效率與安全性。以客戶端n為例,根據公式(10)計算其損失值Ln,客戶端中Transformer 神經網絡模型的參數集合記為Φn=,則客戶端n的模型參數梯度gn可通過以下方式計算:

對于梯度gn,本模型采用局部差分隱私(Local Differential Privacy,LDP)[26]方法進行梯度加密,以保證上傳梯度的安全性。局部差分隱私方法通過在模型參數上添加滿足差分隱私的噪聲數據,以實現聯邦學習中的隱私保護目的。局部差分隱私是建立在嚴格數學理論基礎上的強隱私保護模型,目前已成為聯邦學習研究工作中一種主流的參數加密手段,其有效性得到了廣泛認可[27]。LDP 加密方式可表示成以下形式:

式中,clip(gn,δ)利用縮放系數δ限制梯度gn的大小,以避免出現梯度爆炸的情況;Laplace(0,λ)表示均值為0的拉普拉斯噪聲,其中λ用于控制所施加噪聲的強度。聯邦學習中的差分隱私算法通過向梯度添加噪聲,不僅可保證梯度在傳遞過程中不被逆向破解,保證梯度的安全性,而且可將其看作一種梯度噪聲注入正則化手段,防止模型出現過擬合現象[28]。之后將客戶端n中加密后的梯度上傳到服務器端用于梯度聚合。
服務器端梯度聚合是指將客戶端上傳到服務器端的加密梯度按照某種方式聚合起來,以獲取包含全局梯度信息的聚合梯度,用來進行梯度更新。聯邦學習的性能很大程度上取決于聚合策略。目前,研究者大多使用FedAvg[29]模型中的梯度聚合策略,即:

式中,wn表示第n個客戶端上傳的參數,|Dn|表示第n個客戶端中數據塊n的數據量,|D|表示全局數據量,w表示聚合之后的全局模型參數。
由于氣候差異、消費水平及用電習慣的不同,作為聯邦學習客戶端的各個供電公司中的數據質量存在差異,呈現出非獨立同分布的特點(Non-Independently and Identically Distributed,Non-IID),導致各個客戶端訓練出來的模型性能也有所差異。如式(13)所示FedAvg 模型中的聚合策略僅根據各個客戶端上的數據量與全局數據量之間的比值確定其參數在聚合過程中的權重,即數據量越大,該客戶端貢獻越大。然而,客戶端的數據量無法反映該客戶端中的模型性能,依據數據量比值確定其聚合權重,存在一定的不合理性。通常情況下,數據集的樣本分布情況往往反映出數據質量,樣本分布規律性越強,數據質量越高,進而訓練出的模型性能越好[30]。
為解決上述問題,提出利用信息熵估算算法量化各個客戶端中的數據分布情況。信息熵是一種常用的衡量給定變量分布規律的統計量。如圖1 所示,本模型采用Kozachenko-Leonenko k 近鄰算法[31]估算數據集的信息熵,具體計算公式如下:

式中,εi是客戶端n中樣本ti到其第k個鄰居的歐式距離,本模型中k取為1;樣本ti為客戶端n中第i個用戶(樣本)用電序列的向量均值;D為樣本特征維度;M為樣本數量;cD=πD/2Γ(1 +D/2),其中Γ(·)為Gamma 函數;ψ(·)為Digamma 函數;Hn為估算得到的客戶端n數據集的信息熵。Γ(·)和ψ(·)函數定義如下:

信息熵越小的數據集,數據混亂程度越低,樣本分布規律性越強[32],進而訓練出來的模型性能越好,其模型參數聚合權重越高。因此,利用信息熵的倒數對相應客戶端的梯度進行加權聚合,聚合公式如下:

在服務器端中維護一個與各客戶端具有相同網絡拓撲結構的Transformer 模型,該模型中的可訓練參數集合為Φs。服務器端參數更新是指利用聚合梯度對可訓練參數集合Φs進行更新,更新方式如下:

式中,η表示學習率。將更新后的模型參數Φs更新到服務器端的模型中,并將更新后的模型分發到各個客戶端。客戶端中更新后的模型會基于本地數據進行新一輪迭代訓練。重復上述步驟直至模型收斂,完成模型訓練。訓練完成后,基于服務器端中更新的模型進行異常用電數據識別與模型性能測試。
本文在真實數據集上進行實驗,以驗證所提出方法的有效性。數據集來自于某電力總部的用戶用電信息采集系統,數據統計如表1所示。

Table 1 Dataset description表1 數據集介紹
從系統中抽取來源于3 個不同供電公司共計996 個用戶(包括126 個異常用戶,870 個正常用戶)的用電數據,采集頻率為24 次/天,采集范圍為2019 年9 月1 日-2019 年9月14 日,因此用戶序列長度為336。序列數據特征包含溫度、風速、人口數、用電功率、電壓等信息,共計32 個特征維度。訓練集和測試集的比例設置為3:1,即將各個客戶端中的數據按照3:1 的比例劃分為訓練集和測試集。隨后匯總各個客戶端中的測試數據,將其輸入到服務器端訓練好的模型中進行模型性能測試。
為驗證本文方法的有效性,本實驗選擇7 個常用的異常用電用戶識別模型作為基線模型與本文方法進行對比。基線模型包括LDA+DPeaks[11]、FCM[12]、EMD[13]、TCN[20]、DRQN[21]、RDBN[22]、LSTM[23]。其中,LDA+DPeaks、FCM、EMD 為基于機器學習的異常數據檢測模型,TCN、DRQN、RDBN、LSTM 為基于深度學習的異常數據檢測模型。為全面評價模型性能,本實驗選用5 個評價指標對模型性能進行驗證,分別為:正確率(Accuracy)、召回率(Recall)、F1值、受試者工作特征曲線下面積(AUROC)與精確率—召回率曲線(AUPRC)。為保證實驗結果的準確性,本文在測試數據集上對每個模型進行了5 次實驗,實驗結果取平均值。
實驗運行環境如下:操作系統為Ubuntu 18.04.3 LTS,隨機存儲器(RAM)為128 GB DDR4@3200MHz,中央處理器(CPU)為Intel(R)Core(TM)i9-9980XE CPU @ 3.00 GHz,圖形處理器(GPU)為2*NVIDIA TITAN RTX,主要環境庫為Scikit-learn 0.22、Python 3.7.0、Pytorch 1.10.1、Numpy 1.21.2、Pandas 1.1.5。
實驗超參數設置如下:序列長度為336,迭代次數為1 000,訓練批大小為100,學習率為0.000 1,特征維度D、Dq、Dk、Dv為32,多頭注意力機制頭個數為4,縮放系數為0.005,噪聲強度為0.015。部分超參數采用網格搜索方式確定。
實驗結果如圖3、表2 所示。圖3 展示了各個客戶端中模型訓練損失值變化曲線及其平均值曲線,表2 展示了本文模型與多種基線模型在5 種不同評價指標下的異常用電用戶識別性能。
從圖3 可看出,當更新次數達到200 次時,模型趨于收斂,此時模型在訓練集上達到最優性能。從表2 可看出,本文模型在5 個指標上均達到最優性能,其中Accuracy 為0.958 2,Recall 為0.454 3,F1 為0.535 4,AUROC 為0.692 6,AUPRC 為0.358 1。具體來說,以LDA+DPeaks、FCM、EMD為代表的機器學習異常用電檢測模型相對于TCN、DRQN、RDBN、LSTM 深度學習模型而言,缺乏挖掘序列數據中上下文關系的能力,因此基于機器學習算法的檢測模型整體表現不如深度學習模型。相比于TCN、DRQN、RDBN 等神經網絡模型,LSTM 中的門控機制能夠捕獲用戶用電序列中的長程依賴信息,提高對序列數據的建模能力。以上實驗結果表明,本文提出的模型不僅在性能上優于基線模型,同時能夠以聯邦學習的方式進行模型構建,保護數據隱私。

Fig.3 Model training loss curves圖3 模型訓練損失曲線

Table 2 Comparison of experimental results表2 實驗結果對比
為驗證所提出的基于信息熵加權平均的服務器端梯度聚合方法的有效性,進行以下消融實驗。在保證其他模塊不變的情況下,將本文提出的梯度聚合方法與FedAvg算法中的梯度聚合方法進行對比,通過實驗驗證本文提出的基于信息熵加權平均梯度聚合方法的有效性。從表3的實驗結果可知,本文提出的基于信息熵加權平均的梯度聚合方法優于FedAvg 中基于客戶端數據量比值的梯度聚合方法。

Table 3 Ablation for gradient aggregation method表3 梯度聚合方法消融實驗
為研究本文提出的基于信息熵的聯邦學習異常用電識別方法中參數的敏感性,分析模型在不同超參數設置下的異常識別性能,本文進行了模型超參數分析實驗。本實驗對注意力機制參數矩陣的隱層特征維度Dk(Dk=Dq=Dv)和多頭注意力機制頭個數H進行分析,實驗結果如圖4、圖5所示。

Fig.4 Sensitivity analysis for hidden feature dimension圖4 隱層特征維度敏感性分析

Fig.5 Sensitivity analysis for multi-head attention mechanism圖5 多頭注意力機制頭個數敏感性分析
由圖4 可知,隨著隱層特征維度的變化,異常識別性能會有不同程度的波動,當維度為32 時,模型取得最佳性能。當維度過小時,輸入數據包含的特征有限,因此性能出現衰退;當維度增大時,容易導致模型出現過擬合的情況,使模型過度訓練,無法獲得最佳異常用電用戶識別性能。由圖5 可知,設置不同的多頭注意力機制頭個數,模型具有不同的性能表現,表明本文提出的模型對多頭注意力機制頭個數具有一定程度的敏感性。具體地,當H=4時,模型表現最佳;當H>4 時,模型性能出現衰退。出現這種現象的一個潛在原因在于,當多頭注意力機制頭個數增加時,模型參數增加,導致模型訓練不夠充分。
為識別出異常用電數據,同時保證用戶用電數據的隱私性,本文提出一種基于信息熵的聯邦學習異常用電識別模型。該模型引入聯邦學習到異常用電數據識別中,避免了集中式模型訓練所帶來的潛在數據泄露的風險。同時,為提高基于聯邦學習的服務器端梯度聚合效果,引入Kozachenko-Leonenko k 近鄰算法估算數據集的信息熵,根據信息熵進行服務器端梯度加權聚合。實驗結果表明,本文提出的基于信息熵的聯邦學習異常用電識別模型能夠在保證數據隱私的情況下,取得比現有方法更優異的異常用電用戶識別效果。
本文研究重點在于如何解決聯邦學習實際面臨的客戶端不均衡數據在服務器端參數梯度聚合過程中的貢獻評估問題。然而,在現實應用中,客戶端數據所具有的不均衡特點可能會導致各個客戶端在本地模型訓練時存在效率差異,進而導致時延問題,影響總體模型訓練效率,該問題是實現高效聯邦學習所面臨的重要挑戰。本文將在下一步研究中對該問題進行研究,目前已形成初步的研究思路,即對各個客戶端的數據特點、計算能力、網絡通信等資源進行全面量化,根據客戶端資源量化指標對模型訓練過程進行反饋控制,以實現模型訓練超參數的差異性配置,解決分布式客戶端所面臨的“木桶效應”,提高聯邦學習模型的訓練效率。