謝 澤,朱建生,李 雯
(1.中國(guó)鐵道科學(xué)研究院,北京 100081; 2.中國(guó)鐵道科學(xué)研究院電子計(jì)算技術(shù)研究所,北京 100081)
中國(guó)鐵路客票系統(tǒng)作為國(guó)內(nèi)唯一的官方火車票銷售渠道,自2011年應(yīng)用互聯(lián)網(wǎng)售票模式以來(lái),用戶數(shù)已達(dá)5.4億。在節(jié)假日旅客出行高峰期,中國(guó)鐵路客票系統(tǒng)日售票量可達(dá)1 000萬(wàn)張。當(dāng)系統(tǒng)運(yùn)行出現(xiàn)異常時(shí)不僅會(huì)影響乘客的出行體驗(yàn),還會(huì)給社會(huì)造成巨大損失。因此,對(duì)國(guó)內(nèi)鐵路客票系統(tǒng)的異常狀態(tài)監(jiān)測(cè)顯得尤為重要。當(dāng)前鐵路客票系統(tǒng)已實(shí)現(xiàn)了全鏈路監(jiān)控,其中關(guān)鍵指標(biāo)閾值監(jiān)測(cè)是最常用的方法。如周期時(shí)間內(nèi)互聯(lián)網(wǎng)用戶登錄人數(shù)的閾值監(jiān)控,周期時(shí)間內(nèi)用戶支付購(gòu)票數(shù)的閾值監(jiān)控,以及服務(wù)器集群關(guān)鍵性能指標(biāo)的閾值監(jiān)控等。但是,在一些異常情況下,如某些服務(wù)器響應(yīng)超時(shí)導(dǎo)致的集群崩潰、網(wǎng)絡(luò)流量激增等,以上獨(dú)立的關(guān)鍵指標(biāo)監(jiān)控可能產(chǎn)生滯后效應(yīng),導(dǎo)致預(yù)警監(jiān)測(cè)不及時(shí)。鐵路客票系統(tǒng)業(yè)務(wù)流量數(shù)據(jù)能夠較為實(shí)時(shí)地反映系統(tǒng)整體運(yùn)行狀態(tài),為了從整體上對(duì)鐵路客票系統(tǒng)進(jìn)行監(jiān)控,業(yè)務(wù)流量數(shù)據(jù)的時(shí)間序列預(yù)測(cè)和趨勢(shì)預(yù)測(cè)成為加強(qiáng)異常預(yù)警的主要手段。
中國(guó)鐵路客票系統(tǒng)的業(yè)務(wù)流量數(shù)據(jù)主要由用戶登錄服務(wù)數(shù)據(jù)、車次余票信息查詢服務(wù)數(shù)據(jù)、購(gòu)票服務(wù)數(shù)據(jù)等組成,不同的業(yè)務(wù)在實(shí)現(xiàn)方案中具有一定的串行和并行關(guān)系。除此之外,由于售票規(guī)則規(guī)定小時(shí)整點(diǎn)或半點(diǎn)開始售票,業(yè)務(wù)流量數(shù)據(jù)在時(shí)間維度上具有長(zhǎng)短相關(guān)性和自相似性。因此,鐵路客票系統(tǒng)業(yè)務(wù)流量數(shù)據(jù)的預(yù)測(cè)不同于傳統(tǒng)的流量數(shù)據(jù)預(yù)測(cè),如何通過(guò)挖掘具有特殊相關(guān)性的網(wǎng)絡(luò)流量數(shù)據(jù)來(lái)提高預(yù)測(cè)精度成為一個(gè)亟待解決的問(wèn)題。
流量數(shù)據(jù)擬合算法已在交通行業(yè)[1-2]、互聯(lián)網(wǎng)金融[3-4]以及臨床醫(yī)學(xué)[5-6]等領(lǐng)域廣泛使用?;诨貧w方程的傳統(tǒng)統(tǒng)計(jì)算法在以上領(lǐng)域很難通過(guò)復(fù)雜模型實(shí)現(xiàn)時(shí)序數(shù)據(jù)的高精度擬合,雖然機(jī)器學(xué)習(xí)算法通過(guò)反復(fù)訓(xùn)練可以得到比傳統(tǒng)統(tǒng)計(jì)模型更加精確的預(yù)測(cè)結(jié)果[7-9],但是當(dāng)其被用于分析輸入變量之間具備強(qiáng)序列依賴關(guān)系數(shù)據(jù)時(shí),性能下降[10]。而具備特殊“重置門”和更新門的GRU神經(jīng)網(wǎng)絡(luò)可以通過(guò)設(shè)定不同的時(shí)間步長(zhǎng)挖掘滑動(dòng)窗口內(nèi)的序列依賴,且該算法易于解構(gòu),可依據(jù)不同條件改良為適于實(shí)際的預(yù)測(cè)模型,并有高擬合準(zhǔn)確度[11-13]。與以上領(lǐng)域建模任務(wù)不同,由于鐵路客票在售票時(shí)刻上存在整點(diǎn)、半點(diǎn)等起售的業(yè)務(wù)特點(diǎn),流量數(shù)據(jù)呈現(xiàn)出歷史規(guī)律性及突變性。因此選擇一個(gè)適用于具有復(fù)雜、隨機(jī)特點(diǎn)的鐵路客票業(yè)務(wù)流量數(shù)據(jù)預(yù)測(cè)模型,充分解析序列間依賴關(guān)系是至關(guān)重要的。
文中針對(duì)鐵路售票時(shí)刻特點(diǎn),選用GRU對(duì)鐵路客票業(yè)務(wù)流量數(shù)據(jù)進(jìn)行擬合,當(dāng)該算法時(shí)間步長(zhǎng)在1至100范圍內(nèi),步長(zhǎng)值分別為1、30、60、90時(shí),對(duì)應(yīng)流量數(shù)據(jù)擬合結(jié)果為局部最優(yōu)。局部最優(yōu)的規(guī)律與客票售票時(shí)間規(guī)則形成數(shù)據(jù)依賴規(guī)律相一致,證明GRU適于解析鐵路客票業(yè)務(wù)流量數(shù)據(jù)。
鐵路客票業(yè)務(wù)流量數(shù)據(jù)主要由余票查詢、用戶登錄、購(gòu)票等業(yè)務(wù)形成的網(wǎng)絡(luò)流量構(gòu)成,其中余票查詢業(yè)務(wù)量占全部業(yè)務(wù)量的60%以上,在單日內(nèi)其余業(yè)務(wù)在風(fēng)控層請(qǐng)求總數(shù)都具備明顯且規(guī)律的凹凸性。如圖1所示,該規(guī)律與在鐵路售票時(shí)刻前后有大量用戶進(jìn)行登錄、購(gòu)票等操作的社會(huì)行為一致。由于余票查詢不需要用戶登錄,因此余票查詢業(yè)務(wù)在鐵路客運(yùn)業(yè)務(wù)每日的服務(wù)時(shí)間內(nèi)都被用戶大量訪問(wèn),圖中展現(xiàn)出余票查詢業(yè)務(wù)對(duì)于流量數(shù)據(jù)總量的變化會(huì)有減弱規(guī)律特征的作用。
圖1 風(fēng)控層客票業(yè)務(wù)請(qǐng)求次數(shù)統(tǒng)計(jì)
圖2為多日流量數(shù)據(jù)統(tǒng)計(jì),從中可以看出售票規(guī)則導(dǎo)致流量數(shù)據(jù)在數(shù)理結(jié)構(gòu)上具有直觀的長(zhǎng)短相關(guān)性、自相似性,短相關(guān)性取決于鐵路售票時(shí)刻規(guī)則,長(zhǎng)相關(guān)性取決于售票規(guī)則在長(zhǎng)時(shí)間段內(nèi)保持不變。文中選用的GRU神經(jīng)網(wǎng)絡(luò)可以通過(guò)設(shè)定不同的時(shí)間步長(zhǎng)挖掘滑動(dòng)窗口內(nèi)的序列依賴,適于挖掘鐵路客票業(yè)務(wù)流量數(shù)據(jù)內(nèi)含的長(zhǎng)短相關(guān)性及自相似性。
圖2 流量數(shù)據(jù)長(zhǎng)短相關(guān)性
GRU基于循環(huán)神經(jīng)網(wǎng)絡(luò)模型(RNN),解決了RNN求導(dǎo)過(guò)程鏈中連乘導(dǎo)致的梯度消失問(wèn)題,并且該模型由長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)進(jìn)化。圖3所示為GRU隱藏層細(xì)胞單元的具體展開,Rt、Zt、Ut、Xt、ht分別為重置門、更新門、候選隱藏狀態(tài)、輸入以及隱藏狀態(tài),虛線邊框GRU重置門模塊的結(jié)構(gòu)特性決定該算法適于解決長(zhǎng)跨度依賴。由于鐵路客票起售規(guī)則,所以每30分鐘整數(shù)倍時(shí)間內(nèi)統(tǒng)計(jì)的流量數(shù)據(jù)之間存在較強(qiáng)依賴關(guān)系,GRU時(shí)間步長(zhǎng)的調(diào)節(jié)可以改變解析數(shù)據(jù)間依賴跨度的大小[14]。
圖3 GRU隱藏層細(xì)胞單元
GRU隱藏層細(xì)胞單元模型的前向計(jì)算如下,W和b分別為相應(yīng)的權(quán)重系數(shù)矩陣和偏置項(xiàng),σ為sigmod激活函數(shù),在重置門模塊中決定了對(duì)之前序列數(shù)據(jù)的記憶程度,g為tanh雙曲正切函數(shù):
Rt=σ(WxiXt+Whiht-1+bi)
(1)
zt=σ(WxfXt+Whiht-1+bf)
(2)
dt=σ(WxcXt+Whc(ht-1⊙Rt)+bc)
(3)
Ut=g(dt)
(4)
ht=zt⊙ht-1+(1-zt)⊙Ut
(5)
GRU模型訓(xùn)練步驟如下:
Step1 處理樣本集:假設(shè)經(jīng)過(guò)小波前置分析后得到近似信號(hào)的時(shí)間序列為F={f1,f2,…,fn},那么可以將該序列劃分為GRU模型訓(xùn)練集與測(cè)試集,分別用Ftr={f1,f2,…,fv},F(xiàn)te={fv+1,fv+2,…,fn}表示,其中v Step2 設(shè)定GRU參數(shù)進(jìn)行訓(xùn)練:通過(guò)設(shè)定時(shí)間步長(zhǎng)L對(duì)序列進(jìn)行窗口分割,分割后模型輸入為X={X1,X2,…,Xv-L},Xq={fq',fq'+1,…,fv-L+q'}。該輸入經(jīng)過(guò)隱藏層后形成的輸出為P={P1,P2,…,Pv-L},對(duì)應(yīng)的理論輸出為Y={Y1,Y2,…,YL}。選擇公式(6)損失函數(shù)最小化作為優(yōu)化目標(biāo),遍歷學(xué)習(xí)率及訓(xùn)練步數(shù)范圍,使用adam作為優(yōu)化算法不斷更新網(wǎng)絡(luò)權(quán)重,得到在訓(xùn)練集范圍及相關(guān)參數(shù)范圍內(nèi)最優(yōu)神經(jīng)網(wǎng)絡(luò)。 (6) 平均絕對(duì)誤差mean absolute error (MAE)、平均絕對(duì)百分誤差mean absolute percentage error (MAPE)和均方根誤差root mean square error (RMSE)是最常用的數(shù)據(jù)擬合準(zhǔn)確度預(yù)測(cè)評(píng)價(jià)指標(biāo)。MAE主要用于測(cè)量實(shí)驗(yàn)數(shù)據(jù)集的預(yù)測(cè)值與實(shí)際值之間的平均絕對(duì)誤差。MAE定義為: (7) MAPE主要用于測(cè)量擬合數(shù)據(jù)與真實(shí)數(shù)據(jù)的百分比誤差,MAPE數(shù)學(xué)定義為: (8) RMSE主要用于衡量擬合數(shù)據(jù)與真實(shí)數(shù)據(jù)的均方根差,RMSE數(shù)學(xué)定義為: (9) 式(7)、(8)、(9)中,a(t)表示第t個(gè)時(shí)間序列真實(shí)數(shù)據(jù),f(t)表示第t個(gè)時(shí)間序列擬合數(shù)據(jù),n為時(shí)間序列總數(shù)。從數(shù)理角度分析,MAE和MAPE在數(shù)學(xué)形式上都屬于L1范數(shù),而RMSE在數(shù)學(xué)形式上屬于L2范數(shù),數(shù)學(xué)表達(dá)式的冪級(jí)數(shù)約高,那么這個(gè)表達(dá)式的輸出結(jié)果則對(duì)異常值越敏感。這也代表當(dāng)擬合數(shù)據(jù)集合中出現(xiàn)一個(gè)異常大或異常小的數(shù)據(jù)值時(shí),RMSE的計(jì)算結(jié)果將比MAE和MAPE大。假設(shè)有如下兩個(gè)數(shù)據(jù)集合: set1=[5,10,5,10,5,10,5,10,5,10, 5,10,5,10,5,10,10] set2=[5,10,5,10,5,10,5,10,5,10,5,10,5,10,5,10,1 000] 集合set1和set2的區(qū)別為末尾數(shù)據(jù)分別是10和1 000,集合set2的末尾數(shù)據(jù)1 000可以看作為擬合數(shù)據(jù)的異常大值。將set1集合作為真實(shí)數(shù)據(jù),set2集合作為擬合數(shù)據(jù),由此計(jì)算MAE為58.2,RMSE為240.1,MAPE作為MAE的數(shù)學(xué)變換,敏感幅度低于MAE。由此可證明,對(duì)于時(shí)間序列擬合結(jié)果的異常值,RMSE比MAE和MAPE更加敏感,因此選擇RMSE作為擬合準(zhǔn)確度的定義表達(dá)。 圖4 流量數(shù)據(jù)與擬合結(jié)果對(duì)比 對(duì)2017年7月10日流量數(shù)據(jù)進(jìn)行GRU擬合,GRU優(yōu)化算法為adam函數(shù),時(shí)間步長(zhǎng)為30,學(xué)習(xí)率η=0.05。使用7月8、9日兩天數(shù)據(jù)作為訓(xùn)練集,擬合結(jié)果與測(cè)試集數(shù)據(jù)對(duì)比如圖4所示,數(shù)據(jù)擬合準(zhǔn)確度定義為RMSE,擬合結(jié)果與測(cè)試集數(shù)據(jù)基本一致,擬合準(zhǔn)確度的值為88.23。 GRU模型中的時(shí)間步長(zhǎng)L決定了在流量數(shù)據(jù)擬合中使用L個(gè)序列來(lái)預(yù)測(cè)第L+1個(gè)序列值。圖5展示了L為1至100時(shí),GRU模型對(duì)2017年8月8日流量數(shù)據(jù)的擬合準(zhǔn)確度變化,黑色標(biāo)點(diǎn)代表L為5的整倍數(shù)擬合均方根誤差,當(dāng)L分別為1、30、60、90時(shí)均方根誤差處于局部極小,該結(jié)果證明GRU在解析流量數(shù)據(jù)過(guò)程中,對(duì)1分鐘、30分鐘、60分鐘以及90分鐘內(nèi)流量數(shù)據(jù)間依賴敏感,驗(yàn)證了由鐵路整點(diǎn)或半點(diǎn)售票時(shí)刻規(guī)則所決定的數(shù)據(jù)結(jié)構(gòu)特性適于使用GRU算法解析。 流量數(shù)據(jù)趨勢(shì)預(yù)測(cè)也是異常預(yù)警的常用手段,文中采取的趨勢(shì)預(yù)測(cè)基于GRU算法擬合數(shù)據(jù)。假設(shè)擬合數(shù)據(jù)長(zhǎng)度為L(zhǎng),通過(guò)設(shè)定窗口大小U,滾動(dòng)遍歷L,并且對(duì)窗口范圍內(nèi)擬合數(shù)據(jù)P使用最小二乘法得到線性擬合,P={Pn+1,Pn+2,…,Pn+U},n∈(1,L-U)。 圖5 不同時(shí)間步長(zhǎng)RMSE擬合統(tǒng)計(jì) 對(duì)2018年6月18日去除服務(wù)開啟與關(guān)閉時(shí)刻前后的流量數(shù)據(jù)進(jìn)行GRU分析,如圖6所示,在GRU擬合結(jié)果的基礎(chǔ)上,實(shí)施滑動(dòng)窗口大小為100的趨勢(shì)預(yù)測(cè),其他任意的窗口大小的預(yù)測(cè)趨勢(shì)都與擬合結(jié)果基本吻合。 圖6 流量數(shù)據(jù)趨勢(shì)預(yù)測(cè) 為了驗(yàn)證GRU算法的有效性,文中將GRU算法與以下3種時(shí)間序列預(yù)測(cè)模型進(jìn)行對(duì)比。 (1)多元線性回歸。 多元線性回歸MLR是傳統(tǒng)的統(tǒng)計(jì)學(xué)方法用于對(duì)多變量、多影響因素進(jìn)行分析從而實(shí)現(xiàn)預(yù)測(cè)[15]。該模型函數(shù)如下: yt=a0+a1yt-1+a2yt-2+…+akyt-k+b (10) 其中,yt為t時(shí)序點(diǎn)預(yù)測(cè)目標(biāo),yt-1,yt-2,…,yt-k為t時(shí)刻前k個(gè)歷史數(shù)據(jù),a為模型系數(shù),b為固定偏差。多元線性回歸將不同時(shí)刻的歷史數(shù)據(jù)作為不同的自變量,k也稱為數(shù)據(jù)窗口長(zhǎng)度,在對(duì)比模型中選取k與測(cè)試集樣本個(gè)數(shù)相同。 (2)自回歸移動(dòng)平均。 ARIMA差分整合移動(dòng)平均回歸模型是自回歸模型的經(jīng)典算法,利用歷史時(shí)序數(shù)據(jù)對(duì)當(dāng)前時(shí)刻進(jìn)行預(yù)測(cè),模型本身采用不同時(shí)刻數(shù)據(jù)差分的原理解決對(duì)樣本數(shù)據(jù)平穩(wěn)性要求高的問(wèn)題[16]。該模型函數(shù)可用ARIMA(p,d,q)表示,p,d,q分別為自回歸項(xiàng)數(shù)、差分階數(shù)及移動(dòng)平均項(xiàng)數(shù)。差分1階或2階即可滿足模型需求,p,q需要自相關(guān)函數(shù)及偏自相關(guān)函數(shù)來(lái)確定。 (3)LSTM長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)模型。 LSTM長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)模型利用“遺忘門”結(jié)構(gòu)實(shí)現(xiàn)了序列數(shù)據(jù)間依賴解析,并通過(guò)遺忘門決定歷史時(shí)刻狀態(tài)信息保留至當(dāng)前狀態(tài)的信息量大小[17-18]。GRU作為L(zhǎng)STM神經(jīng)網(wǎng)絡(luò)模型的改進(jìn),在保證高擬合精度的情況下,降低了模型訓(xùn)練耗時(shí)。文中使用相同時(shí)間步長(zhǎng)及訓(xùn)練批次對(duì)LSTM與GRU算法進(jìn)行對(duì)比。 使用以上四種算法分別對(duì)2017年12月5日至12月9日5天流量數(shù)據(jù)進(jìn)行擬合,10月23日至10月27日流量數(shù)據(jù)作為訓(xùn)練集。文中所有計(jì)算結(jié)果使用計(jì)算機(jī)的配置相同:處理器為Intel i5-7300;內(nèi)存為8 GB;顯卡為GTX 1050Ti;操作系統(tǒng)為Windows 10( 64位);實(shí)現(xiàn)計(jì)算機(jī)開發(fā)環(huán)境為PyCharm 2018.2.4;實(shí)現(xiàn)語(yǔ)言為Python 3.6.9;程序開發(fā)GRU框架使用Python Tensorflow程序包。圖7為5天流量數(shù)據(jù)擬合準(zhǔn)確度變化,GRU的平均擬合準(zhǔn)確度最優(yōu)91.8,雖然LSTM擬合準(zhǔn)確度與GRU接近,但是在時(shí)間步長(zhǎng)與訓(xùn)練批次相同的訓(xùn)練過(guò)程中,GRU耗時(shí)相對(duì)于LSTM具備極大優(yōu)勢(shì)。 圖7 多種算法擬合對(duì)比統(tǒng)計(jì) 表1 算法擬合對(duì)比RMSE數(shù)值統(tǒng)計(jì) 為了進(jìn)一步驗(yàn)證GRU在鐵路客票業(yè)務(wù)中異常預(yù)警的可行性,選取了2018年1月7日、2月11日的流量數(shù)據(jù)進(jìn)行驗(yàn)證,該2日內(nèi)的流量數(shù)據(jù)分別在當(dāng)天有大范圍波動(dòng),與實(shí)際部分業(yè)務(wù)故障相符。選取以上測(cè)試集前2天流量數(shù)據(jù)作為訓(xùn)練集樣本,故障點(diǎn)附近范圍的趨勢(shì)預(yù)測(cè)及流量數(shù)據(jù)擬合結(jié)果如圖8所示。兩日流量數(shù)據(jù)擬合RMSE分別為114.5和99.3,GRU擬合結(jié)果與實(shí)際流量數(shù)據(jù)的近似且線性趨勢(shì)預(yù)測(cè)的準(zhǔn)確。 (a)1月7日流量數(shù)據(jù) (b)2月11日流量數(shù)據(jù) 文中提出了基于GRU神經(jīng)網(wǎng)絡(luò)的流量數(shù)據(jù)時(shí)間序列預(yù)測(cè)方法,不同時(shí)間步長(zhǎng)的擬合結(jié)果與鐵路售票規(guī)則形成的數(shù)據(jù)依賴規(guī)律相一致,體現(xiàn)了GRU在長(zhǎng)跨度客票業(yè)務(wù)流量數(shù)據(jù)依賴解析方面的優(yōu)勢(shì)。通過(guò)3種不同時(shí)間序列預(yù)測(cè)模型與GRU流量數(shù)據(jù)擬合對(duì)比,GRU的最優(yōu)擬合準(zhǔn)確度證明了該算法具備較高的準(zhǔn)確性。經(jīng)過(guò)GRU對(duì)異常流量數(shù)據(jù)分析,在故障點(diǎn)處的擬合近似以及趨勢(shì)預(yù)測(cè)準(zhǔn)確,使得預(yù)測(cè)差值與趨勢(shì)線性擬合斜率具備成為鐵路客票業(yè)務(wù)流量數(shù)據(jù)預(yù)警監(jiān)控指標(biāo)的可能。3.2 數(shù)據(jù)擬合準(zhǔn)確度選擇
3.3 不同時(shí)間步長(zhǎng)擬合結(jié)果對(duì)比及趨勢(shì)預(yù)測(cè)
4 算法驗(yàn)證
4.1 對(duì)比模型
4.2 對(duì)比結(jié)果
4.3 異常數(shù)據(jù)檢測(cè)
5 結(jié)束語(yǔ)