吳麗娜 馮 迪 李忠虎
(中國民航信息網絡股份有限公司 北京 101318 (民航旅客服務智能化應用技術重點實驗室 北京 101318)
未來民航旅客量的變化趨勢一直是民航業最受關注的課題,對未來民航旅客量預測的準確與否直接決定了民航業的收益。精準的近期旅客量的預測是民航收益管理員操作的開放艙位的基礎,而中遠期的民航旅客量預測為航空公司調整運力及航線網絡提供有力的支持。本文旨在解決航線粒度的民航旅客量的中長期的預測。
受經濟、政策、天氣、季節、運力投放等多種因素的影響,民航旅客量預測的準確性受到限制,其預測難度也隨之增加?,F有旅客量預測常采用以下幾類方法,一類是傳統的時間序列預測方法,考慮了數據的時間特性,對時間序列曲線進行分析,綜合考慮其趨勢性和周期性特征,這些模型就被廣泛地應用于各種時序預測問題中,并作了很多的改進[1-4],文獻[5-6]采用三次指數平滑模型對鐵路旅客量,城市交通流量進行了預測,這類時序方法考慮了時間序列的時序特點并對其建模預測。另一類是機器學習方法[7-10],如BP神經網絡[7-8]和深度學習[9-10],這些方法對影響未來目標的數據進行特征提取,多角度描述對未來趨勢變化的影響,并建立合理的模型。另外還有一些組合方法[11-13],對不同的問題,采用多個模型進行組合,并綜合使用,能夠獲得不錯的預測效果。以上方法都只考慮了數據的時間特性,而文獻[14-16]將城市劃分為區域網絡,對深度卷積神經網絡(DCNN)進行了改進,有效捕獲了交通數據之間的空間依賴關系,并預測城市區域交通流量的變化趨勢。
基于時間序列的方法能夠捕捉數據的時間信息,而缺少數據的空間信息,而基于機器學習的方法,尤其是采用卷積神經網絡的方法能夠捕捉數據的空間信息。在民航旅客量預測的問題上,城市(機場)間的空間位置會影響民航旅客的出行路線,進而影響相關城市的旅客量,其空間連通信息會影響民航旅客量預測的準確性。因此本文采用卷積神經網絡捕捉城市間的空間信息和近期時序信息,采用三次指數平滑模型建立民航旅客量時間序列的時間信息,獲取時間序列的長期趨勢和周期信息,最后采用全連接網絡將上述兩個模型的結果與外部因素進行融合,提高民航旅客量預測的準確性。
本文旨在解決在當前時間點下,利用已知的歷史旅客量序列預測未來的旅客量值。問題定義如下,(Xk+1,Xk+2,…,Xk+n)=f(Xt|t=k,k-1,…,0),已知某航線t=0至t=k時刻的旅客量,預測t=k+1至k+n時刻的旅客量。在民航領域,某航線在一段時間內的旅客量構成一個時間序列的曲線,如圖1所示。以2個航線在2019年1月至3月內按天的旅客量曲線為例,圖1中橫坐標為天,縱坐標為旅客量,可見不同航線的時間序列曲線其特點并不相同,趨勢性和周期性表現也不一致。民航航線的旅客量序列不僅和時間有關,還和航線的起始到達城市的空間位置相關,一個航線的旅客量的增減會與和該航線相關的其他航線。以圖2為例,對到達城市B的旅客量,由A到B的旅客量、A到C城市中轉再到B的旅客量、D到B的旅客量組成,這三條航線的旅客量會相互影響,而對于從城市A出發的旅客量,由A到C、A經C中轉到B、A直達到B、A到E的旅客量組成,城市A的旅客的出行計劃會直接影響這幾條航線的旅客量,其中一條航線的旅客量增加會導致其他航線的旅客量減少。因此,要提高航線級旅客量預測的準確性,時序關系和空間關系是建立模型的必要因素。

(a) 航線示例AA

(b) 航線示例BB圖1 民航航線旅客量時序曲線圖示例

圖2 民航航線旅客流空間關系圖

(1)


圖3 算法總體框架
模型由三部分組成,圖3所示的上面部分為所有航線在每個歷史時刻的旅客量形成的該時刻的旅客量矩陣,每個歷史時刻的旅客量矩陣按時間順序組成了一個矩陣序列。算法構建兩個卷積神經網絡結構,一個以預測時刻最近鄰的若干個旅客量矩陣為輸入,建立鄰近性信息的模型;一個以歷史上相同周期的旅客量矩陣作為輸入,建立周期性信息的模型。圖3所示的中間部分為對各個航線分別建立旅客量的時間序列,采用三次指數平滑模型,對各個時間序列進行預測,所有航線的預測結果,仍是一個旅客量矩陣。圖3所示的下面部分表示外部因素,包含日期特征和對應城市的天氣特征,以上三部分的輸出融合在一起進行訓練。
本文算法設立兩個多層卷積殘差網絡結構,和多個三次指數平滑模型,并將兩個模型的結果與外部因素融合在一起,采用最小化預測值矩陣和真實值矩陣的均方誤差來訓練模型。
低層卷積網絡可以獲取航線網絡的相鄰的空間相關關系,多層卷積可以獲取更遠距離的空間關系。因此,為了對航線網絡的空間關系建模,以不同時刻航線網絡的旅客量矩陣作為輸入,設計了多層卷積網絡,如圖3所示。假設當前時刻為t,預測未來t+k時刻的旅客量,本文設計了兩組神經網絡,一組以鄰近預測時刻的旅客量序列(Xc)(0)=[Xt-m,…,Xt-1,Xt]為初始輸入,建立鄰近時間性質的卷積網絡結構,時間跨度為m,一組截取相同周期的旅客量序列(Xp)(0)=[Xt+k-nT,…,Xt+k-2T,Xt+k-T],周期為T,跨度為n。
以鄰近性質的卷積網絡為例,其過程為(Xc)(c0)∈Rm×N×N為初始輸入,通過卷積C1將(Xc)(c0)轉換為(Xc)(c1)∈Rm×N×N,其計算過程如下,
(Xc)(c1)=f((Wc)(c1)*(Xc)(c0)+(bc)(c1))
(2)
式中:*表示卷積;(Wc)(c1)和(bc)(c1)是第一層卷積的參數,f(·)是激活函數,在這里使用線性修正單元ReLU函數,即f(x)=max(x,0)。為了保持卷積后的矩陣與輸入矩陣大小相同,在下一層卷積的輸入矩陣周圍填補上零值。為了能夠高效學習,并且保證模型預測的準確率不會隨著神經網絡學習的深度結構而降低,本算法的網絡結在第一層卷積之后加入了L個殘差單元,殘差單元定義如下:
(Xc)(Rl+1)=(Xc)(Rl)+F((Xc)(Rl);(θc)(Rl))
l=1,2,…,L
(3)
式中:(Xc)(Rl)和(Xc)(Rl+1)分別表示第l個殘差單元的輸入和輸出;F(·)表示殘差映射;(θc)(Rl)表示第l個殘差單元的參數。這里殘差單元采用2個(ReLU+卷積)的組合結構。在殘差單元之后,加入1個卷積單元,獲得該部分的最終輸出(Xc)(c2)。
同樣方法可獲得表示周期性質的卷積網絡輸出(Xp)(c2)。
將上述兩個卷積結構的輸出(Xc)(c2)和(Xp)(c2)進行融合,融合的計算公式如下:
(Xcp)(c2)=(Wc)° (Xc)(c2)+(Wp)° (Xp)(c2)
(4)
式中:° 表示哈馬達乘積;Wc和Wp是學習參數。
時間序列數據一般有以下兩個特點:一是趨勢性,二是季節性。三次指數平滑算方法基于一次指數平滑和二次指數平滑算法,可以對同時含有趨勢和季節性的時間序列進行預測。已知時間序列(X1,X2,…,Xt,…),一次指數平滑算法計算如下:
(5)

二次指數平滑計算公式如下:
(6)
預測第T期的數值的計算公式為:
(7)
三次指數平滑是在二次指數平滑的基礎上再進行一次平滑,其計算公式如下:
(8)
預測第T期的數值的計算公式為:
(9)
三次指數平滑算法可以很好地保存時間序列數據的趨勢和季節性信息,因此得到了廣泛的研究。



(10)
本文算法定義損失函數為:
(11)
式中:θ表示上述模型中所有的學習參數;λ是正則化項系數。本文采用最小化上述損失函數來訓練模型,獲得所有學習參數的值。
本文采用的實驗數據來源于中國航信2011年至2018年共8年的旅客量數據,本實驗選取30個開通機場的城市,構成900個城市對,預測未來14天的旅客量,即預測時間長度k=14。實驗中鄰近性旅客量的天數m=14,周期T=7天,歷史周期數量n=12。實驗選取其中80%的數據作為訓練數據集,20%的數據作為測試數據集。
本文算法中,卷積神經網絡中第一個卷積和殘差單元均采用32個卷積核,卷積核大小的范圍為{2×2,3×3,4×4},殘差單元的個數L的取值范圍為(2,4,6,8)。實驗中對上述參數組合分別進行訓練,選取在測試集上性能最優的模型作為最終模型。實驗中最終參數為卷積核大小是3×3,L=6。實驗結果采用平均準確率Pavg來評估算法的準確性,定義如下:
(12)

實驗對2019年的旅客量進行預測,比較了ARIMA方法、單獨使用卷積神經網絡、單獨使用三次指數平滑,及本文算法的實驗效果。圖4所示為幾個航線的不同預測天的平均預測誤差率結果,圖中橫標是預測的未來14天,縱坐標是對應平均誤差率結果,ARIMA表示ARIMA方法的預測結果,CNN表示卷積神經網絡結構的預測結果,ES3表示三次指數平滑算法預測的結果??梢钥闯觯珹RIMA和三次指數平滑算法隨著預測時間的增大,平均相對誤差也隨之增大,卷積神經網絡結構的預測效果并不穩定,而本文提出的算法明顯優于前兩者,有效地提高了民航旅客量預測的準確性。

(a) 航線1 (b) 航線2

(c) 航線3 (d) 航線4圖4 部分航線實驗結果
本文針對民航旅客量預測問題,提出了基于空間關系的預測模型,采用卷積神經網絡結構對民航航線網絡的城市間的空間相關性進行建模,采用三次指數平滑模型對民航旅客量時間序列的趨勢性和周期性進行建模,并加入天氣特征和日期特征作為外部因素。實驗結果表明,本文算法有效地提升了預測準確性。
但是影響民航旅客量變化的因素還有很多,比如突發事件、重大活動等,因此如何量化這些因素對旅客量的影響,并建立新的民航旅客量預測模型,是下一步的研究重點。