鄧玉婧,武志昊,林友芳
(北京交通大學 計算機與信息技術學院 交通數據分析與挖掘北京市重點實驗室,北京 100044)
21世紀以來,我國民航客運業務得到迅速發展。中國民用航空局發布的《2017年民航行業發展統計公報》[1]顯示,2013年—2017年,我國民航旅客運輸量從3.54億人次增加到5.52億人次,提高了55.93%,年均增長率達到11.5%。隨著民航旅客量的迅速增長,航空客運需求預測越來越受到航空公司、機票代理商、飛機制造商等相關企業的關注。航空客運量需求預測包括航線客運量需求預測、機場客運量需求預測、航空公司市場份額預測和航班客運量需求預測等[2],其中,航班客運量需求預測是較細粒度上的需求預測,是航空座位優化控制和差別定價的基礎。
對航空客運市場而言,航班客座率是衡量航班客運量需求的一個重要指標。航空公司通過航班客座率來衡量運力與運量是否匹配,并處理一系列衍生問題,包括溢出、虛耗、超售等。飛機制造商也需要關注客座率,它是判斷航空公司是否需要增加運力,是否需要引進飛機的一個重要指標[3]。
民航航班客座率預測是一項極具挑戰性的工作,其受諸多復雜因素的影響,例如多粒度時間相關性、航班自身屬性相關性和外部因素相關性等。多粒度時間相關性包括起飛時刻相關性和起飛日相關性。其中,起飛時刻相關性是指給定某一航線,其某一起飛日中不同起飛時刻的航班客座率之間相互影響,且起飛時刻越接近的航班,客座率也越接近,起飛日相關性是指航班自身的客座率數據在時間維度上呈現趨勢性和周期性。航班自身屬性相關性是指航班客座率會受到機型、航空公司、座位數等自身屬性的影響。外部因素相關性是指節假日、天氣、突發事件和高鐵的開設等因素對航班客座率產生的影響。航班客座率預測的關鍵是全面合理地考慮各種因素的影響。
本文通過構建基于多粒度時間注意力機制的循環神經網絡模型(Multi-Time level Attention Recurrent Neural Network,MTA-RNN),提高航班客座率預測準確性。依據時間粒度構建多級注意力機制,利用基于航班起飛時刻的注意力機制捕獲預測航班與其所在航線上其他航班的客座率時間序列之間的相關性,同時應用起飛日注意力機制捕獲預測航班客座率時間序列自身的趨勢性及周期性。在此基礎上,設計一個通用的外部因素融合模塊,對航班自身屬性和節假日等其他因素進行整合,并將其引入多粒度時間注意力機制網絡模型中,以提高航班客座率預測的準確性。
民航航班客座率預測在本質上是一個時間序列預測問題。在早期,交通領域的預測問題多采用傳統的時間序列預測方法,其基本模型是自回歸滑動平均(Auto-Regressive Moving Average,ARMA)模型[4]。基于該模型的各種變體,如向量自回歸(Vector Auto-Regression,VAR)模型[5]、自回歸積分滑動平均模型(Auto-Regressive Integrated Moving Average,ARIMA)模型[6]、季節ARIMA[7]等被廣泛應用于不同的研究領域。上述方法能夠較好地捕獲時間序列數據的時間相關性,但不能捕捉非線性關系以及外生時間序列對目標時間序列的影響。
為解決以上問題,各種非線性自回歸(Nonlinear Auto-Regressive exogenous,NARX)模型[8]得到快速發展,其中許多方法被應用于交通領域的預測問題,如人工神經網絡(Artificial Neural Network,ANNs)法[9]和基于徑向基函數(Radial Basis Function,RBF)的支持向量回歸算法[10]等。盡管這些方法在交通領域預測問題上已取得實質性進展,但其大多數使用一個預定義的非線性形式導致無法適當地捕捉潛在的非線性關系。
近年來,由于深度神經網絡強大的表示能力,基于深度學習的方法被廣泛應用于交通預測問題中。其中,循環神經網絡(Recurrent Neural Network,RNN)[11]是一種專為序列建模而設計的深度神經網絡,由于其能夠靈活地捕獲非線性關系,該模型受到廣泛關注,尤其在NARX時間序列預測上表現出色[12]。然而,傳統的RNN存在梯度消失問題[13],不能很好地捕獲長時間的依賴。為解決此問題,之后又相繼提出長短期記憶網絡(Long Short-Term Memory,LSTM)和門控循環單元(Gated Recurrent Unit,GRU)[14],這兩種方法被廣泛應用于機器翻譯、語音識別、圖像處理等領域[15-17]。近兩年,RNN方法被大量應用于時間序列的研究中,例如編解碼網絡[14]和基于注意力機制的編碼器網絡[15]等。
基于LSTM或GRU單元的編解碼網絡因其在機器翻譯上的成功應用受到廣泛關注,其主要思想是通過固定長度的向量編碼原句,然后使用解碼器生成對應翻譯。但是,隨著輸入序列長度的增加,編解碼網絡的性能會迅速下降[18],而時間序列預測問題通常基于目標及相關時間序列中相對較長的部分進行預測。為解決這一問題,研究人員提出基于注意力的編解碼網絡,通過注意力機制選擇編碼器所有時間步上的部分隱藏狀態。文獻[19]提出雙階段注意力循環神經網絡模型DA-RNN,以解決具有多個外生序列的目標時間序列預測問題,且該模型的性能優于很多傳統時間序列預測方法和基于深度學習的基本方法,DA-RNN模型不僅可以自適應地選擇最相關的外生序列輸入特征,還可以適當捕獲時間序列的長期依賴性。文獻[20]基于DA-RNN的思想,結合地理傳感器數據的時空相關性,提出針對地理傳感器數據的多階段注意力網絡模型GeoMAN,以解決城市空氣質量預測問題。盡管DA-RNN模型能夠有效預測具有多個外生序列的目標時間序列,但該模型并不完全適用于航班客座率預測。這是因為DA-RNN模型雖然考慮了多個外生序列對目標時間序列的影響,但這些外生序列是平鋪并列的關系,而在航班客座率預測問題中,多個外生序列(即同一航線中的所有起飛時刻的航班客座率構成的時間序列)之間存在時序關系,DA-RNN模型不能捕獲其時序依賴性。為解決上述問題,本文利用MTA-RNN模型進行航班客座率預測。該模型通過多級注意力機制獲取航班客座率在不同時間粒度下的時序相關性,在編碼器中加入一個LSTM單元,以捕獲航班所在航線中不同航班的客座率間的時序依賴性,并通過外部因素融合模塊同時考慮航班自身屬性和節假日等其他因素對預測航班客座率的影響。



1)多粒度時間注意力機制。它由分別結合起飛時刻注意力機制和起飛日注意力機制的2個編碼器組成。在編碼器中,采用2個獨立的LSTM單元,其中,編碼器部分的第2個LSTM單元用來捕獲預測航班所在航線中不同航班客座率的時序依賴性。在此基礎上,引入起飛時刻的注意力機制,通過參考第1個LSTM單元先前隱藏層的狀態值和第2個LSTM單元在各起飛時刻的狀態輸出值,自適應地捕獲每個起飛日其他起飛時刻的航班客座率對預測航班客座率的影響。在解碼器中引入起飛日注意力機制,以自適應地選擇預測航班起飛日級別的狀態輸出值,從而捕獲預測航班客座率時間序列的自身趨勢性和周期性。
2)融合外部因素的模塊。該模塊用于處理航班自身屬性和節假日等其他因素對預測航班客座率的影響,其輸出作為部分輸入提供給解碼器。

圖1 MTA-RNN模型架構Fig.1 Architecture of the MTA-RNN model

3.1.1 結合起飛時刻注意力機制的編碼器

由航班客座率的起飛時刻相關性可知,不同起飛時刻的航班每日的客座率構成的時間序列存在復雜的相關性。與20:00的航班相比,起飛時刻為8:00的航班與9:00的航班客座率曲線的變化趨勢更接近 。為了能夠自適應地捕獲目標序列和其他起飛時刻航班每日客座率構成的時間序列相關性,針對編碼器第2個LSTM單元在t起飛時刻輸出的隱藏層狀態值ht,采用如下的起飛時刻注意力機制進行運算:
(1)
(2)

(3)
編碼器中第1個LSTM單元在起飛日d的隱藏層狀態值輸出如下:
qd=fea(qd-1,zd)
(4)
其中,fea是編碼器第1個LSTM單元的更新函數。通過本文的起飛時刻注意力機制,編碼器第1個LSTM單元可以選擇性地關注編碼器第2個LSTM單元在某些起飛時刻的隱藏層狀態值,而不是平等地處理所有起飛時刻的隱藏層狀態值。
3.1.2 結合起飛日注意力機制的解碼器

(5)
(6)
(7)


(8)
其中,fd表示解碼器中LSTM單元的更新函數。將上下文向量cd′與隱藏層狀態gd′進行向量拼接,得到的新隱藏層狀態用于最終預測,計算過程如下:
(9)

航班客座率受航班自身屬性和節假日等其他因素的影響,文獻[20]針對這些外部因素的影響進行研究。本文設計了一個簡單有效的模塊對外部因素進行融合,提出MTA-RNN模型。


表1 外部因素信息Table 1 Information of external factors


(10)
其中,θ表示MTA-RNN模型中所有需要學習的參數,即第3.1節中提到的We、Wl、Ue和Ul等。
MTA-RNN模型的訓練過程如算法1所示。其中,第1行~第11行介紹了將原始數據轉換成模型所需輸入樣本的過程,第12行初始化模型參數,第13行~第16行根據訓練集迭代訓練模型,直至滿足停止條件。
算法1MTA-RNN訓練算法

輸出MTA-RNN模型合適的參數
//構造訓練實例
1.?→S;
2.for 待預測航班起飛時刻i(1≤i≤K) do{
3.for 可預測的起飛日h(D 4.//xh表示在起飛日h航線上所有起飛時刻航班的客座率構成的向量 5.x=[xh-D,…,xh-2,xh-1]; 7.//Vi表示需要預測的目標航班未來τ天的客座率構成的向量 9.將樣本({x,ei},yi)加入訓練集S 10.} 11.} //模型訓練 12.初始化MTA-RNN中所有可學習的參數θ 藝術繪畫中的肌理是一種特殊的語言表達形式,是藝術家在藝術作品的創新中所使用的一種表達途徑。藝術家認為肌理已經不單單只是在藝術作品中簡單浮現出的一種紋路,它也可以表達作者的內心感情。因此他們將肌理效果廣泛運用到繪畫作品當中,通過繪畫作品中的肌理制作來體現藝術家內心深處的思想感情。 13.repeat 14.從S中隨機選擇一批訓練實例Sbatch 15.用Sbatch尋找最優參數θ并最小化式(10) 16.Until 滿足停止條件 本文在中國航信提供的真實歷史航班客座率數據集上進行實驗,將MTA-RNN模型與其他3種基準方法進行對比,以證明該模型在航班客座率預測問題上的有效性。 本文使用的是民航2010年—2011年的歷史航班客座率數據,通過對數據進行預處理,獲得實驗所需屬性,主要包括航班(即航空公司、航班號、出發地、到達地)、起飛日期、起飛時間、機型、座位數、起落地GDP、各艙位等級航班客座率,選取北京-上海航線在兩年內起飛日達584(730×89%)天以上的航班數據作為實驗數據集,時間窗口長度D=28、預測天數τ=7,則統計信息如表2所示。 表2 數據集統計信息Table 2 Statistics of the dataset 本文按照時間順序將數據集劃分為非重疊的訓練集、驗證集和測試集,劃分比例為8∶1∶1,在實驗數據集中選取27個航班,將預測時段為2010-01-29—2011-08-09(共557天)的經濟艙客座率數據作為訓練集,將預測時段為2011-08-10—2011-10-18(共70天)的數據作為驗證集,其余數據作為測試集。假定h代表需要預測的目標航班未來τ天中的第1天,則預測時段為[h,h+τ-1],該航線上所有起飛時刻航班的歷史客座率數據時段為[h-D,h-1],依據以上時段劃分構造單個數據樣本,按照每天一次滑動構建新的預測時段,通過上述操作,每一個航班可以構建696個樣本,總樣本數為27×696=18 792。 在進行模型訓練之前,對數據進行預處理是非常必要的,由于航班客座率取值范圍為[0,1],因此無需對其進行歸一化。對于外部輸入數據,本文采用One-Hot編碼方式分別對起飛日期的星期屬性,是否工作日、節假日,航空公司機型,起落機場,所在航線是否開設高鐵等離散特征進行編碼,對于起落地GDP、起飛時刻、經濟艙座位數等連續特征本文采用min-max歸一化方法歸一到[0,1]之間,歸一化的具體過程如下: (11) 其中,x表示原數據,x′表示數據在[0,1]之間新的表示,minx、maxx分別表示原數據中的最小值和最大值。 本文將MTA-RNN模型與以下3種基準模型進行對比: 1)ARIMA模型:是一個著名的時間序列預測方法,常用于預測現實生活中的非平穩時間序列。 2)LSTM模型:LSTM是一種循環神經網絡,通過改進神經元結構,在訓練長時間序列時緩解反向傳播過程中的梯度消失問題。本文使用7個不同的LSTM單元分別預測航班未來7天的客座率。 3)Seq2seq模型:使用一個RNN將輸入序列編碼為特征表示,并通過另一個RNN迭代進行預測。 本文實驗平臺如下:GPU選用TITAN Xp,CPU選用Intel Xeon,模型框架選用TensorFlow。對于ARIMA模型,本文選取前28天的航班客座率作為輸入,模型參數調至最優,LSTM模型、Seq2seq模型與MTA-RNN模型類似,選用預測航班歷史D={7,14,28,42,56}天的經濟艙客座率信息作為模型輸入,通過驗證不同的超參選擇每種基準模型的最優超參。 本文采用平均絕對誤差(MAE)和均方根誤差(RMSE)作為模型預測效果的評價指標,計算公式如下: (12) (13) 在模型訓練階段,批大小(Batch Size)設為256,學習率為0.000 1,訓練輪數為500,并采用早停策略防止過擬合。在MTA-RNN模型中,有4個需要調節的超參,分別是時間窗口長度D,編碼器中2個LSTM單元的隱藏層維度n、m,解碼器隱藏層維度p。本文令D={7,14,28,42,56},在其上進行網格搜索以得到最優取值。為了簡便起見,本文在編解碼器LSTM單元中使用相同的隱藏層維度,在該參數上進行網格搜索n=m=p∈{32,64,128,256},此外,本文采用堆疊LSTM(層數記為f)作為編解碼器的單元來提高模型性能。實驗表明,D=28,n=m=p=64,f=2的超參設置會得到較好的預測效果。 為了進一步研究每個模型組件的有效性,本文將MTA-RNN模型與以下3種變體進行比較: 1)MTA-RNN-nExternal模型:此變體不考慮外部因素對航班客座率的影響,即無外部因子融合模塊。 2)MTA-RNN-nFTAttention模型:此變體不包含起飛時刻注意力機制。 3)MTA-RNN-nFDAttention模型:此變體不包含起飛日注意力機制。 本文涉及的實驗均是預測航班未來7天的航班客座率。 4.5.1 外部因子融合模塊評估 外部因子融合模塊作為模型的一個實用組件可提供額外的信息,以提高預測性能。MTA-RNN模型與其3種變體預測未來7天航班經濟艙客座率的結果對比如圖2所示,可以看出,MTA-RNN模型的預測效果明顯優于去除外部因素融合模塊的MTA-RNN-nExternal模型,這是因為外部因素融合模塊能使MTA-RNN模型在未來的時間步中考慮到航班自身屬性及其他因素對預測航班經濟艙客座率的影響。 圖2 4種模型對未來7天航班客座率的預測性能對比Fig.2 Comparison of passenger load factor prediction performance in the next 7 days between 4 models 4.5.2 起飛時刻注意力機制評估 圖3給出3種模型在預測未來7天航班客座率時每天的預測效果對比。由圖3可以看出,MTA-RNN模型優于去除起飛時刻注意力機制的MTA-RNN-nFTAttention模型,由此可見,考慮不同起飛時刻航班客座率對預測航班客座率的影響可有效提高預測準確率。 4.5.3 起飛日注意力機制評估 本文在解碼器中結合起飛日注意力機制,選擇編碼器第1個LSTM單元中不同時間步的隱藏層狀態值來對目標航班客座率進行預測,通過嘗試不同的時間窗口D驗證起飛日注意力機制的有效性。圖4給出4種模型的預測性能隨時間窗口的變化情況。由圖4可以看出, 當D=28時,MTA-RNN模型及其3種變體都達到最小誤差值,當D很大時,4種模型的性能均會迅速下降,這是因為某起飛時刻的航班自身經濟艙客座率時間序列沒有這么長的時序依賴性。同時,由圖4可知,MTA-RNN模型比MTA-RNN-nFDAttention模型表現更優,因為起飛日注意力機制增強了長期預測性能。 圖4 4種模型預測性能隨時間窗口的變化曲線Fig.4 Curve of prediction performance of 4 models varying with time window 將本文的MTA-RNN模型與其他3種基準模型進行對比。為公平起見,每種模型均將其參數調至最優以便呈現其最佳性能,預測效果對比如表3所示。由表3可知,MTA-RNN模型在RMSE、MAE兩個評價指標上均明顯優于其他3種方法。 表3 4種模型未來7天總體預測性能對比Table 3 Comparison of overall prediction performance in the next 7 days between 4 models 圖5 MTA-RNN模型與3種基準模型每天的預測性能對比Fig.5 Comparison of daily prediction performance between the MTA-RNN model and 3 benchmark models 本文構建了一種基于多粒度時間注意力機制的循環神經網絡模型MTA-RNN,用以提高民航領域航班客座率預測的準確性。依據時間粒度構建起飛時刻注意力機制和起飛日注意力機制,通過兩級注意力機制的結合,獲取航班客座率在不同時間粒度下的時序相關性,并通過外部因素融合模塊考慮航班自身屬性及節假日等外部因素的影響。在中國航信提供的真實歷史航班客座率數據集上的實驗結果表明,MTA-RNN模型的預測準確率高于ARIMA模型、LSTM模型和Seq2seq模型。下一步將把該模型應用于時間跨度更大的航班客座率預測問題中,并通過獲取更多維度的數據,如天氣、機票價格等來改善模型的預測性能。4 實驗結果與分析
4.1 數據集

4.2 數據預處理
4.3 基準模型與評價指標

4.4 超參選取
4.5 MTA-RNN模型與其變體的對比


4.6 MTA-RNN模型與其他3種基準模型的對比



5 結束語