謝 澤,朱建生,李 雯
(1.中國鐵道科學研究院,北京 100081; 2.中國鐵道科學研究院電子計算技術研究所,北京 100081)
中國鐵路客票系統作為國內唯一的官方火車票銷售渠道,自2011年應用互聯網售票模式以來,用戶數已達5.4億。在節假日旅客出行高峰期,中國鐵路客票系統日售票量可達1 000萬張。當系統運行出現異常時不僅會影響乘客的出行體驗,還會給社會造成巨大損失。因此,對國內鐵路客票系統的異常狀態監測顯得尤為重要。當前鐵路客票系統已實現了全鏈路監控,其中關鍵指標閾值監測是最常用的方法。如周期時間內互聯網用戶登錄人數的閾值監控,周期時間內用戶支付購票數的閾值監控,以及服務器集群關鍵性能指標的閾值監控等。但是,在一些異常情況下,如某些服務器響應超時導致的集群崩潰、網絡流量激增等,以上獨立的關鍵指標監控可能產生滯后效應,導致預警監測不及時。鐵路客票系統業務流量數據能夠較為實時地反映系統整體運行狀態,為了從整體上對鐵路客票系統進行監控,業務流量數據的時間序列預測和趨勢預測成為加強異常預警的主要手段。
中國鐵路客票系統的業務流量數據主要由用戶登錄服務數據、車次余票信息查詢服務數據、購票服務數據等組成,不同的業務在實現方案中具有一定的串行和并行關系。除此之外,由于售票規則規定小時整點或半點開始售票,業務流量數據在時間維度上具有長短相關性和自相似性。因此,鐵路客票系統業務流量數據的預測不同于傳統的流量數據預測,如何通過挖掘具有特殊相關性的網絡流量數據來提高預測精度成為一個亟待解決的問題。
流量數據擬合算法已在交通行業[1-2]、互聯網金融[3-4]以及臨床醫學[5-6]等領域廣泛使用。基于回歸方程的傳統統計算法在以上領域很難通過復雜模型實現時序數據的高精度擬合,雖然機器學習算法通過反復訓練可以得到比傳統統計模型更加精確的預測結果[7-9],但是當其被用于分析輸入變量之間具備強序列依賴關系數據時,性能下降[10]。而具備特殊“重置門”和更新門的GRU神經網絡可以通過設定不同的時間步長挖掘滑動窗口內的序列依賴,且該算法易于解構,可依據不同條件改良為適于實際的預測模型,并有高擬合準確度[11-13]。與以上領域建模任務不同,由于鐵路客票在售票時刻上存在整點、半點等起售的業務特點,流量數據呈現出歷史規律性及突變性。因此選擇一個適用于具有復雜、隨機特點的鐵路客票業務流量數據預測模型,充分解析序列間依賴關系是至關重要的。
文中針對鐵路售票時刻特點,選用GRU對鐵路客票業務流量數據進行擬合,當該算法時間步長在1至100范圍內,步長值分別為1、30、60、90時,對應流量數據擬合結果為局部最優。局部最優的規律與客票售票時間規則形成數據依賴規律相一致,證明GRU適于解析鐵路客票業務流量數據。
鐵路客票業務流量數據主要由余票查詢、用戶登錄、購票等業務形成的網絡流量構成,其中余票查詢業務量占全部業務量的60%以上,在單日內其余業務在風控層請求總數都具備明顯且規律的凹凸性。如圖1所示,該規律與在鐵路售票時刻前后有大量用戶進行登錄、購票等操作的社會行為一致。由于余票查詢不需要用戶登錄,因此余票查詢業務在鐵路客運業務每日的服務時間內都被用戶大量訪問,圖中展現出余票查詢業務對于流量數據總量的變化會有減弱規律特征的作用。

圖1 風控層客票業務請求次數統計
圖2為多日流量數據統計,從中可以看出售票規則導致流量數據在數理結構上具有直觀的長短相關性、自相似性,短相關性取決于鐵路售票時刻規則,長相關性取決于售票規則在長時間段內保持不變。文中選用的GRU神經網絡可以通過設定不同的時間步長挖掘滑動窗口內的序列依賴,適于挖掘鐵路客票業務流量數據內含的長短相關性及自相似性。

圖2 流量數據長短相關性
GRU基于循環神經網絡模型(RNN),解決了RNN求導過程鏈中連乘導致的梯度消失問題,并且該模型由長短時記憶神經網絡進化。圖3所示為GRU隱藏層細胞單元的具體展開,Rt、Zt、Ut、Xt、ht分別為重置門、更新門、候選隱藏狀態、輸入以及隱藏狀態,虛線邊框GRU重置門模塊的結構特性決定該算法適于解決長跨度依賴。由于鐵路客票起售規則,所以每30分鐘整數倍時間內統計的流量數據之間存在較強依賴關系,GRU時間步長的調節可以改變解析數據間依賴跨度的大小[14]。

圖3 GRU隱藏層細胞單元
GRU隱藏層細胞單元模型的前向計算如下,W和b分別為相應的權重系數矩陣和偏置項,σ為sigmod激活函數,在重置門模塊中決定了對之前序列數據的記憶程度,g為tanh雙曲正切函數:
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模型訓練步驟如下:
Step1 處理樣本集:假設經過小波前置分析后得到近似信號的時間序列為F={f1,f2,…,fn},那么可以將該序列劃分為GRU模型訓練集與測試集,分別用Ftr={f1,f2,…,fv},Fte={fv+1,fv+2,…,fn}表示,其中v Step2 設定GRU參數進行訓練:通過設定時間步長L對序列進行窗口分割,分割后模型輸入為X={X1,X2,…,Xv-L},Xq={fq',fq'+1,…,fv-L+q'}。該輸入經過隱藏層后形成的輸出為P={P1,P2,…,Pv-L},對應的理論輸出為Y={Y1,Y2,…,YL}。選擇公式(6)損失函數最小化作為優化目標,遍歷學習率及訓練步數范圍,使用adam作為優化算法不斷更新網絡權重,得到在訓練集范圍及相關參數范圍內最優神經網絡。 (6) 平均絕對誤差mean absolute error (MAE)、平均絕對百分誤差mean absolute percentage error (MAPE)和均方根誤差root mean square error (RMSE)是最常用的數據擬合準確度預測評價指標。MAE主要用于測量實驗數據集的預測值與實際值之間的平均絕對誤差。MAE定義為: (7) MAPE主要用于測量擬合數據與真實數據的百分比誤差,MAPE數學定義為: (8) RMSE主要用于衡量擬合數據與真實數據的均方根差,RMSE數學定義為: (9) 式(7)、(8)、(9)中,a(t)表示第t個時間序列真實數據,f(t)表示第t個時間序列擬合數據,n為時間序列總數。從數理角度分析,MAE和MAPE在數學形式上都屬于L1范數,而RMSE在數學形式上屬于L2范數,數學表達式的冪級數約高,那么這個表達式的輸出結果則對異常值越敏感。這也代表當擬合數據集合中出現一個異常大或異常小的數據值時,RMSE的計算結果將比MAE和MAPE大。假設有如下兩個數據集合: 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的區別為末尾數據分別是10和1 000,集合set2的末尾數據1 000可以看作為擬合數據的異常大值。將set1集合作為真實數據,set2集合作為擬合數據,由此計算MAE為58.2,RMSE為240.1,MAPE作為MAE的數學變換,敏感幅度低于MAE。由此可證明,對于時間序列擬合結果的異常值,RMSE比MAE和MAPE更加敏感,因此選擇RMSE作為擬合準確度的定義表達。 圖4 流量數據與擬合結果對比 對2017年7月10日流量數據進行GRU擬合,GRU優化算法為adam函數,時間步長為30,學習率η=0.05。使用7月8、9日兩天數據作為訓練集,擬合結果與測試集數據對比如圖4所示,數據擬合準確度定義為RMSE,擬合結果與測試集數據基本一致,擬合準確度的值為88.23。 GRU模型中的時間步長L決定了在流量數據擬合中使用L個序列來預測第L+1個序列值。圖5展示了L為1至100時,GRU模型對2017年8月8日流量數據的擬合準確度變化,黑色標點代表L為5的整倍數擬合均方根誤差,當L分別為1、30、60、90時均方根誤差處于局部極小,該結果證明GRU在解析流量數據過程中,對1分鐘、30分鐘、60分鐘以及90分鐘內流量數據間依賴敏感,驗證了由鐵路整點或半點售票時刻規則所決定的數據結構特性適于使用GRU算法解析。 流量數據趨勢預測也是異常預警的常用手段,文中采取的趨勢預測基于GRU算法擬合數據。假設擬合數據長度為L,通過設定窗口大小U,滾動遍歷L,并且對窗口范圍內擬合數據P使用最小二乘法得到線性擬合,P={Pn+1,Pn+2,…,Pn+U},n∈(1,L-U)。 圖5 不同時間步長RMSE擬合統計 對2018年6月18日去除服務開啟與關閉時刻前后的流量數據進行GRU分析,如圖6所示,在GRU擬合結果的基礎上,實施滑動窗口大小為100的趨勢預測,其他任意的窗口大小的預測趨勢都與擬合結果基本吻合。 圖6 流量數據趨勢預測 為了驗證GRU算法的有效性,文中將GRU算法與以下3種時間序列預測模型進行對比。 (1)多元線性回歸。 多元線性回歸MLR是傳統的統計學方法用于對多變量、多影響因素進行分析從而實現預測[15]。該模型函數如下: yt=a0+a1yt-1+a2yt-2+…+akyt-k+b (10) 其中,yt為t時序點預測目標,yt-1,yt-2,…,yt-k為t時刻前k個歷史數據,a為模型系數,b為固定偏差。多元線性回歸將不同時刻的歷史數據作為不同的自變量,k也稱為數據窗口長度,在對比模型中選取k與測試集樣本個數相同。 (2)自回歸移動平均。 ARIMA差分整合移動平均回歸模型是自回歸模型的經典算法,利用歷史時序數據對當前時刻進行預測,模型本身采用不同時刻數據差分的原理解決對樣本數據平穩性要求高的問題[16]。該模型函數可用ARIMA(p,d,q)表示,p,d,q分別為自回歸項數、差分階數及移動平均項數。差分1階或2階即可滿足模型需求,p,q需要自相關函數及偏自相關函數來確定。 (3)LSTM長短時記憶神經網絡模型。 LSTM長短時記憶神經網絡模型利用“遺忘門”結構實現了序列數據間依賴解析,并通過遺忘門決定歷史時刻狀態信息保留至當前狀態的信息量大小[17-18]。GRU作為LSTM神經網絡模型的改進,在保證高擬合精度的情況下,降低了模型訓練耗時。文中使用相同時間步長及訓練批次對LSTM與GRU算法進行對比。 使用以上四種算法分別對2017年12月5日至12月9日5天流量數據進行擬合,10月23日至10月27日流量數據作為訓練集。文中所有計算結果使用計算機的配置相同:處理器為Intel i5-7300;內存為8 GB;顯卡為GTX 1050Ti;操作系統為Windows 10( 64位);實現計算機開發環境為PyCharm 2018.2.4;實現語言為Python 3.6.9;程序開發GRU框架使用Python Tensorflow程序包。圖7為5天流量數據擬合準確度變化,GRU的平均擬合準確度最優91.8,雖然LSTM擬合準確度與GRU接近,但是在時間步長與訓練批次相同的訓練過程中,GRU耗時相對于LSTM具備極大優勢。 圖7 多種算法擬合對比統計 表1 算法擬合對比RMSE數值統計 為了進一步驗證GRU在鐵路客票業務中異常預警的可行性,選取了2018年1月7日、2月11日的流量數據進行驗證,該2日內的流量數據分別在當天有大范圍波動,與實際部分業務故障相符。選取以上測試集前2天流量數據作為訓練集樣本,故障點附近范圍的趨勢預測及流量數據擬合結果如圖8所示。兩日流量數據擬合RMSE分別為114.5和99.3,GRU擬合結果與實際流量數據的近似且線性趨勢預測的準確。 (a)1月7日流量數據 (b)2月11日流量數據 文中提出了基于GRU神經網絡的流量數據時間序列預測方法,不同時間步長的擬合結果與鐵路售票規則形成的數據依賴規律相一致,體現了GRU在長跨度客票業務流量數據依賴解析方面的優勢。通過3種不同時間序列預測模型與GRU流量數據擬合對比,GRU的最優擬合準確度證明了該算法具備較高的準確性。經過GRU對異常流量數據分析,在故障點處的擬合近似以及趨勢預測準確,使得預測差值與趨勢線性擬合斜率具備成為鐵路客票業務流量數據預警監控指標的可能。3.2 數據擬合準確度選擇

3.3 不同時間步長擬合結果對比及趨勢預測


4 算法驗證
4.1 對比模型
4.2 對比結果


4.3 異常數據檢測


5 結束語