譚 雪,張小強,2,3
(1.西南交通大學 交通運輸與物流學院,四川 成都 611756;2.綜合交通大數據應用技術國家工程實驗室,四川 成都 611756;3.綜合交通運輸智能化國家地方聯(lián)合工程實驗室,四川 成都 611756)
運輸市場不同方式間競爭越加激烈,鐵路運輸企業(yè)若要進一步提高貨運市場的占有率,就必須制定并開展靈活有效的貨運營銷及制定高效的運輸計劃。這離不開準確預測計劃期內的貨運需求量。
目前許多學者已經在運量預測領域進行研究,但大多以年貨運量作為時間粒度,對月/日貨運量預測研究較少。然而短期需求量是鐵路運輸企業(yè)合理調配貨運資源、制定運輸生產計劃、衡量鐵路貨運市場體系的重要指標。其受多種復雜因素共同作用,如政策、季節(jié)、競爭、運價、國民經濟指標等,上下浮動性和季節(jié)波動性顯著,具有高度非線性和深度不確定性的特點。建立精確恰當的參數化預測函數模型較為困難。本文借助深度網絡對時序性數據強大的學習能力,研究結構簡單且具有高效記憶功能的GRU深度網絡,在充分考慮短期特征向量的選取、預處理階段原始數據中異常清洗、模型參數設置等基礎上,建立鐵路短期貨運量的預測模型,使月/日貨運量預測更加精準。
現階段時間序列問題的需求預測方法包括定性分析和定量分析。定性分析包括德爾菲法、專家會議法;定量分析又包括參數模型和非參數模型,其中參數化時間序列方法包括ARIMA、灰度模型,非參數化方法包括卡爾曼濾波器、支持向量機回歸(Supported Vector Regression,SVR)、神經網絡(Neural Network,NN)[1-5]等。
自然語言處理(Natural Language Processing,NLP)中的長短時記憶網絡(Long Short Term Memory,LSTM)廣泛用于非語言類時間序列問題。文獻[6]指出LSTM NN模型既可學習長距離依賴關系又能確定最佳時間步長。在交通流預測中,LSTM NN比Elman NN、時延神經網絡(Time-Delay Neural Network,TDNN)、支持向量機等有更高的預測準確率和泛化能力。文獻[7]同樣利用LSTM模型的記憶功能,根據城市當前各區(qū)域內的出租車出行量和出行行為信息預測后一階段各區(qū)域的出租車需求量。文獻[8]精簡了LSTM單元結構,提出了門控復雜度更低的GRU結構。文獻[9]將GRU應用到城市交通流多步預測中,挖掘交通流前后時間序列間的依存關系。GRU深度網絡在短時間序列預測領域,原始時序數據中異常值處理對提高模型精度和魯棒性至關重要,常規(guī)的處理辦法是憑人工經驗發(fā)現異常值并刪除,但是該方法效率低下并且無理論依據,不適合鐵路貨運的大數據處理。
鐵路貨運需求量預測的研究中,多使用BP神經網絡、廣義回歸神經網絡(Generalized Regression Neural Network,GRNN)和徑向基網絡(Radial Basis Function,RBF)預測年貨運量。文獻[10]將AdaBoost與BP神經網絡相結合,通過訓練8個年貨運量樣本外推2個年貨運量,預測精度理想,但未闡述特征向量和目標值間的相關性關系。文獻[11]首先利用相關性系數篩選出最優(yōu)的特征子集,又利用模糊聚類方法解決樣本數據自身矛盾問題、強化高度相關指標在神經網絡中的作用,最后引入GRNN進行貨運量預測,但是使用該模型每個測試樣本和全部訓練樣本都要參與計算,空間復雜度高。文獻[12]采用徑向基神經網絡對年貨運量進行預測。這三種模型預測時間粒度太大,在特征向量選擇上均弱化了月份、季節(jié)等日常因素對目標值的影響,預測成果只對鐵路相關部門制定年計劃有借鑒作用。但就鐵路運輸而言,運輸企業(yè)更看重短期貨運需求量,用以制定月計劃、靈活調整日班計劃和優(yōu)化貨運營銷辦法。
因此,建立結構簡單、高效的鐵路短期貨運量預測模型并提高精度是鐵路貨運部門亟待解決的問題。本文將NLP領域中的GRU深度網絡與高度非線性且前后時間段相似性不強的日貨運量數據結合,引入機器學習(Machine Learning,ML)中的隔離森林算法降噪,構建短期貨運量預測模型。
循環(huán)門單元是LSTM的變體,也是一種特殊類型的循環(huán)神經網絡(Recurrent Neutral Network,RNN)。
傳統(tǒng)的RNN擁有輸入層-隱藏層-輸出層3種結構。其基本思想是:時刻i輸入為Xi,輸出Yi由該時刻隱藏層節(jié)點狀態(tài)Si決定,而Si由Xi和i-1時刻的Si-1共同決定。這意味著RNN網絡對前時刻的記憶能力可以影響當前時刻的輸出,所以廣泛應用在時間序列問題建模上。
當RNN單元發(fā)展為標準的LSTM模型,隱藏層結構發(fā)生顯著變化,包含1個單元和3個門:輸入門、輸出門和遺忘門。通過這樣的模型結構設計增強了隱藏層功能,消除傳統(tǒng)RNN網絡反向傳播時梯度消失或梯度爆炸的問題,可以學習長距離依賴關系。
圖1 LSTM隱藏層單元結構
GRU是LSTM的結構變體,隱藏層單元結構由重置門r和更新門z組成。取消了LSTM中細胞狀態(tài)和輸出門,將LSTM的輸入門和遺忘門組合為一個單獨的更新門。由于直接通過隱藏層狀態(tài)ht進行信息傳遞,簡化了LSTM的模型結構,網絡復雜度較低。GRU隱藏層單元結構見圖2。
圖2 GRU隱藏層單元結構
其時刻t的前向計算方法為[8]
zt=σ(Wz·[ht-1,xt]+bz)
(1)
rt=σ(Wr·[ht-1,xt]+br)
(2)
(3)
(4)
yt=σ(Wo·ht+bo)
(5)
本文針對短期貨運量預測問題,分別建立基于GRU的單步和多步預測模型。前者側重挖掘外部影響因素及歷史貨運量對鐵路短期貨運量大小的影響,后者是在前者的基礎上,可以挖掘貨運量自身時序依賴關系的序列對序列(端對端)模型。為了提高輸入模型的樣本質量、獲得更好的預測精度,在數據預處理階段引入隔離森林進行異常值清洗。
兩種模型均包含輸入層、隱含層和輸出層3層基本結構。
(1)輸入層
運價、競爭、日期、天氣等因素對鐵路貨運量的影響存在滯后性,體現為貨主會根據運輸市場運價水平、天氣狀況調整發(fā)貨方式;同樣鐵路運輸企業(yè),也會考慮自身的近期運量水平和經濟情況,改變經營決策。因此,t時刻的貨運量大小yt不僅與當前時刻外部影響因素指標有關,而且與前sstep外部影響因素及歷史貨運量大小有聯(lián)系,這里認為sstep之前的所有特征均為無關信息。
(2)隱含層
隱含層采用多層GRU單元。通過網格搜索法(Grid Search,CV)[14-15]調整超參數,如GRU中隱藏神經元的數量(hidden_dim)、堆疊循環(huán)單元的數量(隱含層數)(layers_num)、訓練樣本批大小(batch_size)和sstep值、學習率、訓練次數等。
(3)輸出層
輸出層輸出預測值,這里采用MSE損失函數獲得預測值結果的誤差大小,計算方法為
(6)
在反向傳播階段,從損失函數開始,逐層對各參數求偏導,求得所有參數梯度,再根據學習率和梯度采用梯度下降算法調整權值。
深度網絡預測效果的優(yōu)劣取決于訓練樣本的數量和質量。預處理階段識別并清洗掉與預期對象行為差異較大的異常樣本,可提高模型的預測精度。
機器學習里面的異常檢測算法廣泛應用在分類領域中。通常采用各種統(tǒng)計方法、距離、密度聚類等量化指標描述樣本間的疏離程度,將遠離所有族中心的樣本或密度極低處的樣本劃分異常點,即少和不同的樣本點。這里我們采用隔離森林異常檢測方法[16],該方法較ORCA或隨機森林等在大量高維數據集異常點識別上效率、性能更優(yōu)。
隔離森林進行異常檢測分為兩個階段:訓練階段和檢測評估階段。
針對有n個樣本的數據集X={x1,x2,…,xn},訓練階段是對X進行子抽樣生成t棵隨機二叉樹(稱隔離樹,iTree)組成一個隔離森林(iForest)。
在檢測評估階段,將測試樣本點x輸入iForest中的每一棵iTree中,獲得該樣本在iTree上劃入葉子節(jié)點到根節(jié)點的路徑長度h(x),得到期望路徑長度E(h(x))。
引入c(n)作為修正值,則x在由n個樣本數據集構成的iTrees的異常分數s(x,n)為
(7)
如果樣本的s(x,n)非常接近1,則該樣本一定為異常值;若s(x,n)遠小于0.5,可視為正常樣本;如果所有樣本的s(x,n)近似為0.5,那所有的樣本無明顯異常值。
案例應用某鐵路局2011—2017年7年間貨票系統(tǒng)原始數據,部分數據見圖3。為了使輸入深度網絡的貨票數據具有準確性、完整性和一致性的特點,對原始數據做以下預處理:
(1)去重去廢票
每一張貨票有唯一的貨票id和廢票標志。對原始數據查證后發(fā)現,存在大量重復貨票記錄和廢票,因此在貨票id及屬性值均相同的多條貨票中僅保留一條,同時去掉未進行實際運輸產生貨運效益的廢票。
(2)貨票信息提取與按日期聚合
去除與貨運量預測問題相關性不強的貨票屬性,僅保留日期、運價、計費重量三種屬性,按照日期聚合獲得路局當日貨運總量(稱日貨運量,百萬t),平均獲得當日平均運價水平,分/t·km。
(3)隔離森林算法降噪
使用隔離森林對第二階段按日期聚合后的日貨運量數據進行異常樣本檢測,并剔除部分對后續(xù)深度網絡訓練有干擾的實際數據,最終獲得2 429條能夠用于模型訓練的日貨運量數據。
圖3 2016年4月14日至2017年11月30日部分日貨運量
(4)外部影響因素選取
現實中,鐵路貨運量受國民生產總值、產業(yè)增加值、物價指數、競爭環(huán)境、政策等經濟指標和運輸能力、運價水平、營運里程等路局生產指標影響,這些指標通常以月、季度和年時間段進行統(tǒng)計。
為保證輸入深度網絡參與訓練的數據量,我們在選取粒度為日的外部影響因素指標時,綜合考慮所選的影響因素:對短期貨運量預測問題的重要度、合理性和獲取難易程度;從深度網絡過擬合的角度思考,也不宜選取過多因素。借鑒文獻[17-20],我們確定了對鐵路短期貨運量預測3個非常重要且應用較多的外部影響因素:日期、當日平均運價水平和天氣。
這里天氣是選取該鐵路局7個主要貨運站所在5個城市的每日天氣狀況(數據來源:天氣預測網),理由如下:
在對7年間貨票原始數據做聚合時發(fā)現,這7個貨運站點年貨運發(fā)送總量穩(wěn)居該鐵路局前9,并且占可進行貨物到發(fā)業(yè)務的全部248個站點全年發(fā)送總量的份額,從2011年的25%逐年增長至2017年的43%。
以年發(fā)貨量占比衡量站點的重要程度,將這7個站確定為主要貨運站,選擇他們所在城市天氣狀況(晴、雨、雪、霾等)作為短期貨運量預測的外部影響因素之一是合理的。
最終獲得2 429條數據記錄,每條記錄間隔時間為1 d,包含當日平均運價水平、日期、天氣狀況和日貨運量。
(5)Max-min歸一化
未經標準化的連續(xù)型變量往往會導致神經網絡訓練失敗。對輸入數據集的連續(xù)型變量的數據項進行Max-min歸一化,加快神經網絡訓練時的梯度下降速度,在測試階段再對預測值做反歸一化處理。
(10)
式中:X為原時間序列;X′為歸一化后的時間序列;Xmax、Xmin分別為時間序列的最大值和最小值。
我們搭建兩種GRU模型,一種是將日期、當日平均運價水平和7個主要貨運站所在5個城市天氣狀況3種外部影響因素和歷史幾日貨運量數據,共同作為特征向量預測模型/實驗中將外部影響因素和歷史日貨運量數據統(tǒng)稱特征向量預測短期貨運量的基于GRU的單步預測模型;另一種為既考慮所有特征向量,又可挖掘貨運量時間序列關系的基于GRU的多步預測模型,以下簡稱GRU單步和GRU多步。
實驗中所有預測模型按照2 429條數據記錄的80%、20%分別劃分訓練集和測試集。
(1)單步預測模型參數
在Python3.7、TensorFlow1.12、Keras環(huán)境下編寫GRU單步算法程序??刂破渌瑓挡蛔?,sstep在{3,5,8,10,15}范圍內搜索,按照單步模型在歸一化后的測試集上擬合MSE最小,選擇對應sstep值,見圖4(a),設為5 d,即用前4天歷史日貨運量和5天的日期、當日平均運價水平和天氣狀況其他3種外部影響因素一起,預測第5天的日貨運量;保持sstep=5不變,堆疊GRU層數在{1,2,3,4,7}范圍內搜索,見圖4(b)。其他超參數確定方法類似,最后搭建2層GRU單元和2層全連接層,隱藏神經元數量分別設為20、10、10、1;學習率設為0.01;批大小設為32;優(yōu)化算法采用Adam;epochs為30時模型效果最優(yōu)。
圖4 網格搜索法
圖5 測試集效果對比
(2)多步預測模型參數
針對預測回歸類模型性能通常采用均方誤差(MSE)、均方根誤差(RMSE)、相對誤差(MAPE)和準確率(ACC)等衡量,分別為
(11)
(12)
(13)
εACC=1-εMAPE
(14)
單步模型和多步模型在測試集上預測結果指標見表1。
表1 模型指標對比表
由表1可知,在測試集上GRU單步模型預測鐵路月貨運量εACC高達98.87%,對比GRU多步模型高出1.13%;日貨運量預測εACC達到94.56%,εRMSE僅為19.06,對比GRU多步模型εACC高出0.28%,εRMSE降低0.54。
現實中,農歷春節(jié)一般正值2月,工礦制造企業(yè)停工,鐵路貨源減少,月貨運量基本處于全年最低水平。圖5(a)發(fā)現,2017年2月預測月貨運量驟降,兩種模型結果都相對精準且符合生產實際,這也檢驗了模型的有效性。
為了比較GRU方法和其他經典模型在預測鐵路短期貨運量的性能,分別利用LSTM單步(模型結構與GRU單步類似)、SVR、XGBoost和BP神經網絡對同一數據集進行大量反復試驗,各模型特征向量選擇及參數設置見表2。
表2 對比模型特征向量選擇及參數設置表
選擇對比模型在測試集上最優(yōu)指標結果記錄,見表3。
表3 模型指標對比表
由表3和圖6可知,在鐵路短期貨運量預測問題上,即便是GRU多步深度網絡模型也總體比LSTM、SVR、XGBoost和BP神經網絡性能要優(yōu)。
從測試集日貨運量預測指標上看,SVR可以和GRU多步模型相媲美,RMSE和MAPE僅高了0.72和0.22%。從測試集月貨運量預測指標和效果圖上看,XGBoost和LSTM單步的對于測試集的預測趨勢和效果很接近;XGBoost模型的ACC僅低于GRU多步模型1.09%。
由此可見,GRU深度網絡不但能提升模型復雜度去擬合高度非線性的短期貨運量數據,并且能自適應考慮自身時序數據間的依賴性關系,所以能夠有效預測鐵路短期貨運量。
圖6 測試集月貨運量預測效果對比
本文結合某鐵路局實際貨運生產情況,基于Tensorflow框架建立了基于GRU的單步和多步的短期貨運量預測模型。前者側重挖掘日期、當日平均運價水平、天氣狀況和歷史貨運量對鐵路短期貨運量的影響;后者在單步模型的基礎上,又能挖掘貨運量本身時間序列間的依賴性關系。然后與ML和DL領域主流的時間序列算法模型做比較。實驗結果表明:GRU單步模型的準確率在4組對比試驗中最高,RMSE最小,泛化能力最強,用其預測鐵路短期貨運量、制定科學合理的貨運月計劃和日班計劃、加強運輸組織是可行的。
在接下來的研究中,我們會結合統(tǒng)計學習知識,進一步探索研究外部經濟指標與鐵路短期貨運量之間的關系。