羅 欣,張 爽,景偉強(qiáng),朱蕊倩,魏驍雄,陳 博,葛岳軍
(1.國網(wǎng)浙江省電力有限公司電力科學(xué)研究院,杭州 310014;2.浙江華云信息科技有限公司,杭州 310008)
如何預(yù)測短期話務(wù)工單異動(dòng)已成為95598日常分析工作的重點(diǎn)和難點(diǎn)[1]。歷來依靠人工檢閱、手工清理數(shù)據(jù)進(jìn)行指標(biāo)預(yù)測的方式已嚴(yán)重跟不上發(fā)展需求(分析模式單一、效率低下、及時(shí)性差且浪費(fèi)人力資源)。目前,人為通過同比、環(huán)比數(shù)值和增幅數(shù)值來確定異動(dòng)閥值,不能實(shí)時(shí)、準(zhǔn)確、科學(xué)地設(shè)定閥值,導(dǎo)致監(jiān)控預(yù)警、問題定位和趨勢預(yù)測能力不足[2]。
本文基于深度學(xué)習(xí)技術(shù),通過建立科學(xué)的指標(biāo)異動(dòng)預(yù)測模型,研究各項(xiàng)指標(biāo)的數(shù)理關(guān)系,實(shí)現(xiàn)短期話務(wù)工單置信異動(dòng)預(yù)測與智能預(yù)警應(yīng)用,從而提高95598指標(biāo)分析與質(zhì)量管控的工作效率,發(fā)揮輔助決策作用。
LSTM(長短期記憶)神經(jīng)網(wǎng)絡(luò)是一種改進(jìn)的時(shí)間序列RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))[3],由Sepp Hochreiter和Juergen Schmidhuber提出,是循環(huán)網(wǎng)絡(luò)的一種變體,帶有所謂長短期記憶單元,可以解決梯度消失的問題。LSTM可以學(xué)習(xí)時(shí)間序列長短期依賴信息,適用于處理和預(yù)測時(shí)間序列中的間隔和延遲事件[4]。
LSTM將信息存放在循環(huán)網(wǎng)絡(luò)正常信息流之外的門控單元中,這些單元可以存儲(chǔ)、寫入或讀取信息,就像計(jì)算機(jī)內(nèi)存中的數(shù)據(jù)一樣[5]。單元通過門的開關(guān)判定存儲(chǔ)哪些信息,以及何時(shí)允許讀取、寫入或清除信息。LSTM神經(jīng)網(wǎng)絡(luò)的記憶功能就是由各層的閥門節(jié)點(diǎn)實(shí)現(xiàn)的,閥門有3類:遺忘門、輸入門和輸出門。遺忘門決定何時(shí)忘記輸出結(jié)果,從而為輸入序列選擇最佳的時(shí)間延遲;輸入門從外部接受新的輸入并處理新來的數(shù)據(jù);輸出門將計(jì)算所有結(jié)果并為LSTM神經(jīng)網(wǎng)絡(luò)單元生成輸出。這些閥門可以打開或關(guān)閉,用于判斷模型網(wǎng)絡(luò)的記憶態(tài)(之前網(wǎng)絡(luò)的狀態(tài))在該層輸出的結(jié)果是否達(dá)到閾值從而加入到當(dāng)前該層的計(jì)算中[6]。如圖1所示,閥門節(jié)點(diǎn)利用sigmoid函數(shù)將網(wǎng)絡(luò)的記憶態(tài)作為輸入計(jì)算;如果輸出結(jié)果達(dá)到閾值,則將該閥門輸出與當(dāng)前層的計(jì)算結(jié)果相乘作為下一層的輸入;如果沒有達(dá)到閾值,則將該輸出結(jié)果遺忘掉。每一層(包括閥門節(jié)點(diǎn))的權(quán)重都會(huì)在每一次模型反向傳播訓(xùn)練過程中更新。
圖1 LSTM神經(jīng)網(wǎng)絡(luò)細(xì)胞的結(jié)構(gòu)原理
這些門依據(jù)接收到的信號(hào)而開關(guān),并且與神經(jīng)網(wǎng)絡(luò)的節(jié)點(diǎn)類似,它們會(huì)用自有的權(quán)重集對(duì)信息進(jìn)行篩選,根據(jù)其強(qiáng)度和導(dǎo)入內(nèi)容決定是否允許信息通過。這些權(quán)重就像調(diào)制輸入和隱藏狀態(tài)的權(quán)重一樣,會(huì)通過循環(huán)網(wǎng)絡(luò)的學(xué)習(xí)過程進(jìn)行調(diào)整。也就是說,記憶單元會(huì)通過猜測、誤差反向傳播和用梯度下降調(diào)整權(quán)重的迭代過程學(xué)習(xí)何時(shí)允許數(shù)據(jù)進(jìn)入、離開或被刪除。
如圖1所示,將輸入時(shí)間序列表示為X=(x1,x2, …,xn),存儲(chǔ)單元的隱藏狀態(tài)為 H=(h1,h2,…, hn), 輸出時(shí)間序列為 Y=(y1, y2, …, yn),LSTM神經(jīng)網(wǎng)絡(luò)的計(jì)算如下[7]:
式中:ht表示t時(shí)刻隱藏單元狀態(tài)的輸出;xt-1表示t-1時(shí)刻輸入時(shí)間序列;Whx表示時(shí)間序列輸入xt到隱藏單元狀態(tài)ht之間的權(quán)重向量;Whh表示隱藏單元狀態(tài)ht與ht-1之間的權(quán)重向量;ht-1表示t前一時(shí)刻的隱藏單元狀態(tài)輸出;bh表示隱藏單元狀態(tài)輸出ht的偏差。
式中:pt表示t時(shí)刻目標(biāo)預(yù)測輸出;Why表示隱藏單元狀態(tài)ht到輸出時(shí)間序列yt-1之間的權(quán)重向量;yt-1表示t前一時(shí)刻輸出時(shí)序數(shù)據(jù);by表示目標(biāo)預(yù)測輸出pt的偏差。
進(jìn)一步分解,其中隱藏單元狀態(tài)計(jì)算公式為:
式中:it為輸入閥門;Wix表示時(shí)間序列輸入xt到輸入閥門it之間的權(quán)重向量;Wic表示輸入閥門it到cell狀態(tài)輸出ct-1之間的權(quán)重向量;bi表示輸入閥門it的偏差;σ表示sigmoid函數(shù)。
式中:ft表示遺忘閥門;Wfx表示時(shí)間序列輸入xt到遺忘閥門ft之間的權(quán)重向量;Wfc表示遺忘閥門ft到cell狀態(tài)輸出ct-1之間的權(quán)重向量;bf表示遺忘閥門ft的偏差。
式中:ct表示cell狀態(tài)輸出;Wcx表示時(shí)間序列輸入xt到前一時(shí)刻cell狀態(tài)輸出ct-1之間的權(quán)重向量;Wcc表示cell狀態(tài)輸出ct到前一時(shí)刻cell狀態(tài)輸出ct-1之間的權(quán)重向量;bc表示cell狀態(tài)輸出ct的偏差;g為sigmoid函數(shù),范圍為[-2,2]。
式中:ot表示輸出閥門;Wox表示時(shí)間序列輸入xt到輸出閥門ot之間的權(quán)重向量;Wox表示輸出閥門ot之間的權(quán)重向量到cell狀態(tài)輸出ct的權(quán)重向量;bo表示輸出閥門ot的偏差。
式中:h為sigmoid函數(shù),范圍為[-1,1]。
對(duì)于目標(biāo)函數(shù),采用式(9)表示平方損失函數(shù):
2.1.1 話務(wù)工單預(yù)測總體設(shè)計(jì)
由于在深度學(xué)習(xí)訓(xùn)練過程中涉及成千上萬的神經(jīng)元經(jīng)過數(shù)億次權(quán)重與偏向最優(yōu)計(jì)算,因此在訓(xùn)練過程中占用計(jì)算資源較高。如圖2所示,本文提出在線預(yù)測與離線學(xué)習(xí)分離模式的預(yù)測模型,在一定周期內(nèi)對(duì)樣本數(shù)據(jù)與增量數(shù)據(jù)進(jìn)行模型記憶學(xué)習(xí),保證預(yù)測模型的適應(yīng)性與時(shí)效性,有利于提升系統(tǒng)整體性能與資源利用率。
2.1.2 基于LSTM深度學(xué)習(xí)的話務(wù)工單預(yù)測算法模型結(jié)構(gòu)
在LTSM深度學(xué)習(xí)算法結(jié)構(gòu)設(shè)置方面[8],本文設(shè)置6層網(wǎng)絡(luò)結(jié)構(gòu),輸入層神經(jīng)元數(shù)為10,隱藏層神經(jīng)元數(shù)分別為200,100,200,100,輸出目標(biāo)為1,并選用tanh非線性函數(shù)作為隱含層的激活函數(shù),以identity函數(shù)作為輸出層的激活函數(shù)。
如圖3所示,{d,y}表示輸入變量和輸出變量,其中 d[d0,d2,…,d9],d0, …,d9分別表示 t,t-1,…,t-9時(shí)的話務(wù)量;y為t+1時(shí)輸出話務(wù)量或者 t, t-1,…,t-9 日工單量, mi,fi和 wi分別表示第i層神經(jīng)元的數(shù)量、激活函數(shù)和權(quán)重;li表示第i層神經(jīng)元的輸出,也是li層神經(jīng)元的輸入;l0表示預(yù)測模型的輸入l0[d0,d2,…,d9],預(yù)測模型的輸出是末層神經(jīng)元的輸出l5的y。每一層的輸出 li與輸入 li-1, fi, wi和 bi的關(guān)系見式(10):
2.2.1 樣本數(shù)據(jù)分類及歸一處理
95598話務(wù)數(shù)據(jù)受單位地域差異、24 h制及工作日與非工作日等客觀因素影響,差異明顯,同時(shí)工單數(shù)據(jù)還需考慮各業(yè)務(wù)子類間的差異。因此,話務(wù)數(shù)據(jù)按照供電單位、24 h制和日類型(工作日、周末和節(jié)假日)多種維度進(jìn)行樣本數(shù)據(jù)分類,工單數(shù)據(jù)則按照供電單位、業(yè)務(wù)分類和日類型(工作日、周末和節(jié)假日)多種維度進(jìn)行樣本數(shù)據(jù)分類。
圖2 話務(wù)工單預(yù)測總體設(shè)計(jì)
圖3 基于LSTM深度學(xué)習(xí)算法的話務(wù)工單預(yù)測模型
充分考慮到學(xué)習(xí)訓(xùn)練過程中激活函數(shù)sigmoid和tanh函數(shù)的特性,減少數(shù)據(jù)訓(xùn)練過程中的時(shí)間消耗和資源占用,則在機(jī)器學(xué)習(xí)訓(xùn)練過程對(duì)各維度的時(shí)間序列樣本輸入數(shù)據(jù)進(jìn)行歸一化[9-10]處理,將樣本數(shù)據(jù)規(guī)范化至[0,1]范圍,當(dāng)在數(shù)據(jù)預(yù)測過程中對(duì)目標(biāo)輸出進(jìn)行反歸一化時(shí),則計(jì)算公式為:
式中:xi表示時(shí)間序列第i時(shí)刻的輸入;x表示所有時(shí)間序列輸入;yi表示歸一化目標(biāo)值。
2.2.2 隨機(jī)梯度下降學(xué)習(xí)訓(xùn)練策略
基于深度學(xué)習(xí)的話務(wù)工單預(yù)測模型的機(jī)器學(xué)習(xí)訓(xùn)練主要應(yīng)用隨機(jī)梯度下降算法對(duì)所有參數(shù)進(jìn)行統(tǒng)一訓(xùn)練,以調(diào)整隱含層參數(shù)并最終獲得輸出層參數(shù)[11]。
話務(wù)工單預(yù)測模型學(xué)習(xí)訓(xùn)練的目的是找到能最小化二次損失函數(shù)C(w,b)的權(quán)重和偏向。其中權(quán)重w和偏向b的更新規(guī)則方程為:
式中:Xk為所有話務(wù)工單學(xué)習(xí)訓(xùn)練樣本中取第k個(gè)輸入最小采樣塊;m為所有話務(wù)工單學(xué)習(xí)訓(xùn)練樣本分割最小采樣塊總數(shù);η為學(xué)習(xí)步長;l為所在網(wǎng)絡(luò)層;為損失函數(shù)C(w,b)基于權(quán)重w的微積分偏導(dǎo);為損失函數(shù) C(w, b)基于偏向b的微積分偏導(dǎo)。
通過機(jī)器學(xué)習(xí)訓(xùn)練的話務(wù)工單預(yù)測模型[12],可實(shí)現(xiàn)話務(wù)工單隨著時(shí)間自適應(yīng)學(xué)習(xí)進(jìn)行動(dòng)態(tài)智能預(yù)測,但目標(biāo)輸出的話務(wù)工單數(shù)據(jù)只能作為理論預(yù)測值,將預(yù)測值上限與下限作為合理置信區(qū)間,根據(jù)實(shí)際業(yè)務(wù)需求設(shè)置異動(dòng)預(yù)警系數(shù),則異動(dòng)預(yù)警閥值公式為:
式中:ywarn表示公式中定義的話務(wù)工單置信異動(dòng)區(qū)間;ytheory表示話務(wù)工單理論預(yù)測值;δwarn表示置信異動(dòng)系數(shù),默認(rèn)取20%。
在基于時(shí)間序列不斷學(xué)習(xí)預(yù)測過程中,為避免非正常異動(dòng)突增話務(wù)工單數(shù)據(jù)干擾模型進(jìn)而導(dǎo)致預(yù)測趨勢變形,需要對(duì)樣本預(yù)測數(shù)據(jù)進(jìn)行自動(dòng)修正處理。
如圖 4 所示, 某單位某日 11:00—18:00 出現(xiàn)話務(wù)明顯突增的情況,如果在機(jī)器學(xué)習(xí)預(yù)測過程中依據(jù)話務(wù)突增數(shù)據(jù)作為輸入樣本數(shù)據(jù),則會(huì)出現(xiàn)如圖4所示13:00—17:00的理論預(yù)測值與預(yù)警閥值的曲線明顯變形,從而影響話務(wù)異動(dòng)自動(dòng)預(yù)警診斷。通過對(duì)話務(wù)突增明顯的數(shù)據(jù)進(jìn)行理論值自動(dòng)修正,可采取昨日同時(shí)段同單位的理論預(yù)測值作為該異動(dòng)修正值,如圖 5所示,13:00—17:00的理論預(yù)測值與預(yù)警閥值曲線顯示正常。
圖4 未經(jīng)修正的話務(wù)學(xué)習(xí)預(yù)測異動(dòng)預(yù)警
圖5 經(jīng)修正的話務(wù)學(xué)習(xí)預(yù)測異動(dòng)預(yù)警
系統(tǒng)應(yīng)用數(shù)據(jù)來源于浙江電網(wǎng)某地區(qū)采集的95598分時(shí)話務(wù)量數(shù)據(jù)和每日各業(yè)務(wù)工單量數(shù)據(jù)。其中95598的話務(wù)工單量是一種受多種因素影響的非線性時(shí)間序列數(shù)據(jù),這些因素可能包含用電負(fù)荷、氣象等外部主觀因素,同時(shí)也包含分時(shí)類型(22:00—7:00 低峰時(shí)段、 8:00—11:00 高峰時(shí)段、 14:00—17:00 高峰時(shí)段)、 日類型(工作日、 周末和節(jié)假日)和單位差異等客觀因素[13]。這些客觀因素在一定時(shí)間序列下存在動(dòng)態(tài)非線性關(guān)系,通過機(jī)器學(xué)習(xí)各類因素?cái)?shù)理關(guān)系,對(duì)話務(wù)工單預(yù)測與異動(dòng)預(yù)警精確度具有重要意義。
涉及業(yè)務(wù)工單數(shù)據(jù),根據(jù)國家電網(wǎng)95598業(yè)務(wù)類型分類,包括故障報(bào)修、業(yè)務(wù)咨詢、投訴、舉報(bào)、建議、意見、服務(wù)申請和表揚(yáng)。同時(shí)這些業(yè)務(wù)細(xì)分有448種,如表1所示。
表1 95598業(yè)務(wù)細(xì)分種類對(duì)應(yīng)種
對(duì)于話務(wù)工單預(yù)測準(zhǔn)確度的評(píng)價(jià)[14-15],本文選取準(zhǔn)確率P和平均絕對(duì)百分比誤差EMAPE作為評(píng)價(jià)標(biāo)準(zhǔn):
式中:yk和fk分別為k時(shí)刻的實(shí)際話務(wù)工單量和理論預(yù)測值。
在模型訓(xùn)練與預(yù)測過程中,通過觀察比對(duì)損失函數(shù)下降趨勢和準(zhǔn)確率來權(quán)衡模型參數(shù)設(shè)置。
本文所采用的LSTM神經(jīng)網(wǎng)絡(luò)模型參數(shù)如表2所示。為更好地適應(yīng)實(shí)際應(yīng)用,進(jìn)行了多次實(shí)驗(yàn)測試以獲得更好的性能參數(shù)。經(jīng)實(shí)驗(yàn)反復(fù)驗(yàn)證,批量大小設(shè)置為30個(gè),準(zhǔn)確率相對(duì)穩(wěn)定。其中1個(gè)Epoch(迭代次數(shù))表示所有的訓(xùn)練樣本數(shù)據(jù)全部通過網(wǎng)絡(luò)訓(xùn)練1次。
表2 LSTM深度學(xué)習(xí)模型訓(xùn)練參數(shù)
由圖6、圖7可知,不同的學(xué)習(xí)速率對(duì)損失函數(shù)和準(zhǔn)確率影響明顯,Epoch(1個(gè)Epoch等于全部樣本集中訓(xùn)練一次)值達(dá)到108次左右損失函數(shù)趨于穩(wěn)定,則迭代次數(shù)iterations(1個(gè)iteration等于使用1個(gè)Batch大小樣本訓(xùn)練一次)取值108;同時(shí)結(jié)合圖中損失函數(shù)與準(zhǔn)確率趨勢,則學(xué)習(xí)速率設(shè)置為0.01。
圖6 訓(xùn)練過程中不同學(xué)習(xí)速率與損失函數(shù)對(duì)比結(jié)果
圖7 訓(xùn)練過程中不同學(xué)習(xí)速率與準(zhǔn)確率對(duì)比結(jié)果
由圖8、圖9可知,不同L2正則參數(shù)對(duì)損失函數(shù)影響相對(duì)明顯,但對(duì)準(zhǔn)確率影響相對(duì)較少,則正則參數(shù)(L2)設(shè)置為 0.001。
如圖10所示,不同的激活函數(shù)對(duì)準(zhǔn)確率影響明顯,由圖10趨勢可以看出隱藏層的激活函數(shù)應(yīng)該選擇tanh函數(shù)。
如圖11所示,不同動(dòng)量系數(shù)對(duì)準(zhǔn)確率影響相對(duì)較少,則動(dòng)量系數(shù)采用默認(rèn)設(shè)置為0.95,有利于更快的性能來遞歸神經(jīng)網(wǎng)絡(luò)模型。
圖8 訓(xùn)練過程中不同正則參數(shù)(L2)與損失函數(shù)對(duì)比結(jié)果
圖9 訓(xùn)練過程中不同正則參數(shù)(L2)與準(zhǔn)確率對(duì)比結(jié)果
圖10 訓(xùn)練過程中不同激活函數(shù)與準(zhǔn)確率對(duì)比結(jié)果
圖11 訓(xùn)練過程中不同動(dòng)量系數(shù)與準(zhǔn)確率對(duì)比結(jié)果
在對(duì)某地市公司7:00近150天話務(wù)樣本機(jī)器學(xué)習(xí)訓(xùn)練過程研究發(fā)現(xiàn),損失函數(shù)得分與訓(xùn)練準(zhǔn)確率之間關(guān)聯(lián)緊密[16-18],如圖12所示。損失函數(shù)得分隨著迭代次數(shù)的增加而趨于穩(wěn)定,訓(xùn)練的準(zhǔn)確率會(huì)隨著訓(xùn)練迭代次數(shù)的增加而逐步增加,最終穩(wěn)定的訓(xùn)練準(zhǔn)確性預(yù)測結(jié)果為91.08%左右。
圖12 訓(xùn)練過程中損失函數(shù)與準(zhǔn)確率關(guān)系
使用準(zhǔn)確率P和平均絕對(duì)百分比誤差EMAPE分析評(píng)價(jià)指標(biāo)對(duì)某地市公司工作日與非工作日話務(wù)預(yù)測結(jié)果進(jìn)行評(píng)價(jià),由表3可知:總體預(yù)測結(jié)果符合預(yù)期,預(yù)測準(zhǔn)確率在90.19%以上,這其中并未排除不可預(yù)見人為因素引起的話務(wù)波動(dòng)導(dǎo)致模型預(yù)測結(jié)果發(fā)生偏移。
表3 話務(wù)工作日與非工作預(yù)測結(jié)果對(duì)比
由圖13可知,預(yù)測的日話務(wù)曲線與理論預(yù)測曲線的吻合度比較高[19-21]。其中每月5日左右為話務(wù)規(guī)律性突增,圖13中話務(wù)低谷2月14—22日為春節(jié)放假期間,由于春節(jié)期間話務(wù)屬于非典型節(jié)假日話務(wù)變化,需要結(jié)合歷年春節(jié)這段時(shí)間單獨(dú)建模學(xué)習(xí)與預(yù)測,這樣才能保證良好的預(yù)測結(jié)果。
針對(duì)某縣公司的服務(wù)申請業(yè)務(wù)用電異常來核實(shí)這一類工單預(yù)測異動(dòng)情況,圖14直觀顯示1月11日、2月2日—7日這幾天發(fā)生工單量明顯異動(dòng),超出理論預(yù)測值和預(yù)警異動(dòng)閥值,從而可快速引導(dǎo)業(yè)務(wù)分析人員定位問題。
圖13 近100天話務(wù)預(yù)測趨勢
圖14 用電異常核實(shí)工單預(yù)測異動(dòng)趨勢
本文提出了一種基于LSTM神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)建模的短期95598話務(wù)工單預(yù)測異動(dòng)預(yù)警方法,這是第一次將深度學(xué)習(xí)建模應(yīng)用于95598話務(wù)工單預(yù)測的異動(dòng)預(yù)警中。與以往的話務(wù)工單異動(dòng)分析方法只關(guān)注于話務(wù)工單淺層結(jié)構(gòu)的梳理關(guān)系不同,通過基于LSTM深度學(xué)習(xí)的話務(wù)工單預(yù)測方法,構(gòu)建面向95598的時(shí)間序列預(yù)測與智能異動(dòng)預(yù)警相結(jié)合的綜合輔助支撐技術(shù),實(shí)現(xiàn)技術(shù)創(chuàng)新改變工作方式,用數(shù)據(jù)說話,更高效、更精益、更智能地從大量指標(biāo)中取得指標(biāo)分析預(yù)警,提高了95598指標(biāo)分析與質(zhì)量管控的工作效率。