鄧玉婧,武志昊,林友芳
(北京交通大學(xué) 計算機(jī)與信息技術(shù)學(xué)院 交通數(shù)據(jù)分析與挖掘北京市重點實驗室,北京 100044)
21世紀(jì)以來,我國民航客運(yùn)業(yè)務(wù)得到迅速發(fā)展。中國民用航空局發(fā)布的《2017年民航行業(yè)發(fā)展統(tǒng)計公報》[1]顯示,2013年—2017年,我國民航旅客運(yùn)輸量從3.54億人次增加到5.52億人次,提高了55.93%,年均增長率達(dá)到11.5%。隨著民航旅客量的迅速增長,航空客運(yùn)需求預(yù)測越來越受到航空公司、機(jī)票代理商、飛機(jī)制造商等相關(guān)企業(yè)的關(guān)注。航空客運(yùn)量需求預(yù)測包括航線客運(yùn)量需求預(yù)測、機(jī)場客運(yùn)量需求預(yù)測、航空公司市場份額預(yù)測和航班客運(yùn)量需求預(yù)測等[2],其中,航班客運(yùn)量需求預(yù)測是較細(xì)粒度上的需求預(yù)測,是航空座位優(yōu)化控制和差別定價的基礎(chǔ)。
對航空客運(yùn)市場而言,航班客座率是衡量航班客運(yùn)量需求的一個重要指標(biāo)。航空公司通過航班客座率來衡量運(yùn)力與運(yùn)量是否匹配,并處理一系列衍生問題,包括溢出、虛耗、超售等。飛機(jī)制造商也需要關(guān)注客座率,它是判斷航空公司是否需要增加運(yùn)力,是否需要引進(jìn)飛機(jī)的一個重要指標(biāo)[3]。
民航航班客座率預(yù)測是一項極具挑戰(zhàn)性的工作,其受諸多復(fù)雜因素的影響,例如多粒度時間相關(guān)性、航班自身屬性相關(guān)性和外部因素相關(guān)性等。多粒度時間相關(guān)性包括起飛時刻相關(guān)性和起飛日相關(guān)性。其中,起飛時刻相關(guān)性是指給定某一航線,其某一起飛日中不同起飛時刻的航班客座率之間相互影響,且起飛時刻越接近的航班,客座率也越接近,起飛日相關(guān)性是指航班自身的客座率數(shù)據(jù)在時間維度上呈現(xiàn)趨勢性和周期性。航班自身屬性相關(guān)性是指航班客座率會受到機(jī)型、航空公司、座位數(shù)等自身屬性的影響。外部因素相關(guān)性是指節(jié)假日、天氣、突發(fā)事件和高鐵的開設(shè)等因素對航班客座率產(chǎn)生的影響。航班客座率預(yù)測的關(guān)鍵是全面合理地考慮各種因素的影響。
本文通過構(gòu)建基于多粒度時間注意力機(jī)制的循環(huán)神經(jīng)網(wǎng)絡(luò)模型(Multi-Time level Attention Recurrent Neural Network,MTA-RNN),提高航班客座率預(yù)測準(zhǔn)確性。依據(jù)時間粒度構(gòu)建多級注意力機(jī)制,利用基于航班起飛時刻的注意力機(jī)制捕獲預(yù)測航班與其所在航線上其他航班的客座率時間序列之間的相關(guān)性,同時應(yīng)用起飛日注意力機(jī)制捕獲預(yù)測航班客座率時間序列自身的趨勢性及周期性。在此基礎(chǔ)上,設(shè)計一個通用的外部因素融合模塊,對航班自身屬性和節(jié)假日等其他因素進(jìn)行整合,并將其引入多粒度時間注意力機(jī)制網(wǎng)絡(luò)模型中,以提高航班客座率預(yù)測的準(zhǔn)確性。
民航航班客座率預(yù)測在本質(zhì)上是一個時間序列預(yù)測問題。在早期,交通領(lǐng)域的預(yù)測問題多采用傳統(tǒng)的時間序列預(yù)測方法,其基本模型是自回歸滑動平均(Auto-Regressive Moving Average,ARMA)模型[4]?;谠撃P偷母鞣N變體,如向量自回歸(Vector Auto-Regression,VAR)模型[5]、自回歸積分滑動平均模型(Auto-Regressive Integrated Moving Average,ARIMA)模型[6]、季節(jié)ARIMA[7]等被廣泛應(yīng)用于不同的研究領(lǐng)域。上述方法能夠較好地捕獲時間序列數(shù)據(jù)的時間相關(guān)性,但不能捕捉非線性關(guān)系以及外生時間序列對目標(biāo)時間序列的影響。
為解決以上問題,各種非線性自回歸(Nonlinear Auto-Regressive exogenous,NARX)模型[8]得到快速發(fā)展,其中許多方法被應(yīng)用于交通領(lǐng)域的預(yù)測問題,如人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANNs)法[9]和基于徑向基函數(shù)(Radial Basis Function,RBF)的支持向量回歸算法[10]等。盡管這些方法在交通領(lǐng)域預(yù)測問題上已取得實質(zhì)性進(jìn)展,但其大多數(shù)使用一個預(yù)定義的非線性形式導(dǎo)致無法適當(dāng)?shù)夭蹲綕撛诘姆蔷€性關(guān)系。
近年來,由于深度神經(jīng)網(wǎng)絡(luò)強(qiáng)大的表示能力,基于深度學(xué)習(xí)的方法被廣泛應(yīng)用于交通預(yù)測問題中。其中,循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[11]是一種專為序列建模而設(shè)計的深度神經(jīng)網(wǎng)絡(luò),由于其能夠靈活地捕獲非線性關(guān)系,該模型受到廣泛關(guān)注,尤其在NARX時間序列預(yù)測上表現(xiàn)出色[12]。然而,傳統(tǒng)的RNN存在梯度消失問題[13],不能很好地捕獲長時間的依賴。為解決此問題,之后又相繼提出長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)和門控循環(huán)單元(Gated Recurrent Unit,GRU)[14],這兩種方法被廣泛應(yīng)用于機(jī)器翻譯、語音識別、圖像處理等領(lǐng)域[15-17]。近兩年,RNN方法被大量應(yīng)用于時間序列的研究中,例如編解碼網(wǎng)絡(luò)[14]和基于注意力機(jī)制的編碼器網(wǎng)絡(luò)[15]等。
基于LSTM或GRU單元的編解碼網(wǎng)絡(luò)因其在機(jī)器翻譯上的成功應(yīng)用受到廣泛關(guān)注,其主要思想是通過固定長度的向量編碼原句,然后使用解碼器生成對應(yīng)翻譯。但是,隨著輸入序列長度的增加,編解碼網(wǎng)絡(luò)的性能會迅速下降[18],而時間序列預(yù)測問題通?;谀繕?biāo)及相關(guān)時間序列中相對較長的部分進(jìn)行預(yù)測。為解決這一問題,研究人員提出基于注意力的編解碼網(wǎng)絡(luò),通過注意力機(jī)制選擇編碼器所有時間步上的部分隱藏狀態(tài)。文獻(xiàn)[19]提出雙階段注意力循環(huán)神經(jīng)網(wǎng)絡(luò)模型DA-RNN,以解決具有多個外生序列的目標(biāo)時間序列預(yù)測問題,且該模型的性能優(yōu)于很多傳統(tǒng)時間序列預(yù)測方法和基于深度學(xué)習(xí)的基本方法,DA-RNN模型不僅可以自適應(yīng)地選擇最相關(guān)的外生序列輸入特征,還可以適當(dāng)捕獲時間序列的長期依賴性。文獻(xiàn)[20]基于DA-RNN的思想,結(jié)合地理傳感器數(shù)據(jù)的時空相關(guān)性,提出針對地理傳感器數(shù)據(jù)的多階段注意力網(wǎng)絡(luò)模型GeoMAN,以解決城市空氣質(zhì)量預(yù)測問題。盡管DA-RNN模型能夠有效預(yù)測具有多個外生序列的目標(biāo)時間序列,但該模型并不完全適用于航班客座率預(yù)測。這是因為DA-RNN模型雖然考慮了多個外生序列對目標(biāo)時間序列的影響,但這些外生序列是平鋪并列的關(guān)系,而在航班客座率預(yù)測問題中,多個外生序列(即同一航線中的所有起飛時刻的航班客座率構(gòu)成的時間序列)之間存在時序關(guān)系,DA-RNN模型不能捕獲其時序依賴性。為解決上述問題,本文利用MTA-RNN模型進(jìn)行航班客座率預(yù)測。該模型通過多級注意力機(jī)制獲取航班客座率在不同時間粒度下的時序相關(guān)性,在編碼器中加入一個LSTM單元,以捕獲航班所在航線中不同航班的客座率間的時序依賴性,并通過外部因素融合模塊同時考慮航班自身屬性和節(jié)假日等其他因素對預(yù)測航班客座率的影響。
1)多粒度時間注意力機(jī)制。它由分別結(jié)合起飛時刻注意力機(jī)制和起飛日注意力機(jī)制的2個編碼器組成。在編碼器中,采用2個獨(dú)立的LSTM單元,其中,編碼器部分的第2個LSTM單元用來捕獲預(yù)測航班所在航線中不同航班客座率的時序依賴性。在此基礎(chǔ)上,引入起飛時刻的注意力機(jī)制,通過參考第1個LSTM單元先前隱藏層的狀態(tài)值和第2個LSTM單元在各起飛時刻的狀態(tài)輸出值,自適應(yīng)地捕獲每個起飛日其他起飛時刻的航班客座率對預(yù)測航班客座率的影響。在解碼器中引入起飛日注意力機(jī)制,以自適應(yīng)地選擇預(yù)測航班起飛日級別的狀態(tài)輸出值,從而捕獲預(yù)測航班客座率時間序列的自身趨勢性和周期性。
2)融合外部因素的模塊。該模塊用于處理航班自身屬性和節(jié)假日等其他因素對預(yù)測航班客座率的影響,其輸出作為部分輸入提供給解碼器。
圖1 MTA-RNN模型架構(gòu)Fig.1 Architecture of the MTA-RNN model
3.1.1 結(jié)合起飛時刻注意力機(jī)制的編碼器
由航班客座率的起飛時刻相關(guān)性可知,不同起飛時刻的航班每日的客座率構(gòu)成的時間序列存在復(fù)雜的相關(guān)性。與20:00的航班相比,起飛時刻為8:00的航班與9:00的航班客座率曲線的變化趨勢更接近 。為了能夠自適應(yīng)地捕獲目標(biāo)序列和其他起飛時刻航班每日客座率構(gòu)成的時間序列相關(guān)性,針對編碼器第2個LSTM單元在t起飛時刻輸出的隱藏層狀態(tài)值ht,采用如下的起飛時刻注意力機(jī)制進(jìn)行運(yùn)算:
(1)
(2)
(3)
編碼器中第1個LSTM單元在起飛日d的隱藏層狀態(tài)值輸出如下:
qd=fea(qd-1,zd)
(4)
其中,fea是編碼器第1個LSTM單元的更新函數(shù)。通過本文的起飛時刻注意力機(jī)制,編碼器第1個LSTM單元可以選擇性地關(guān)注編碼器第2個LSTM單元在某些起飛時刻的隱藏層狀態(tài)值,而不是平等地處理所有起飛時刻的隱藏層狀態(tài)值。
3.1.2 結(jié)合起飛日注意力機(jī)制的解碼器
(5)
(6)
(7)
(8)
其中,fd表示解碼器中LSTM單元的更新函數(shù)。將上下文向量cd′與隱藏層狀態(tài)gd′進(jìn)行向量拼接,得到的新隱藏層狀態(tài)用于最終預(yù)測,計算過程如下:
(9)
航班客座率受航班自身屬性和節(jié)假日等其他因素的影響,文獻(xiàn)[20]針對這些外部因素的影響進(jìn)行研究。本文設(shè)計了一個簡單有效的模塊對外部因素進(jìn)行融合,提出MTA-RNN模型。
表1 外部因素信息Table 1 Information of external factors
(10)
其中,θ表示MTA-RNN模型中所有需要學(xué)習(xí)的參數(shù),即第3.1節(jié)中提到的We、Wl、Ue和Ul等。
MTA-RNN模型的訓(xùn)練過程如算法1所示。其中,第1行~第11行介紹了將原始數(shù)據(jù)轉(zhuǎn)換成模型所需輸入樣本的過程,第12行初始化模型參數(shù),第13行~第16行根據(jù)訓(xùn)練集迭代訓(xùn)練模型,直至滿足停止條件。
算法1MTA-RNN訓(xùn)練算法
輸出MTA-RNN模型合適的參數(shù)
//構(gòu)造訓(xùn)練實例
1.?→S;
2.for 待預(yù)測航班起飛時刻i(1≤i≤K) do{
3.for 可預(yù)測的起飛日h(D 4.//xh表示在起飛日h航線上所有起飛時刻航班的客座率構(gòu)成的向量 5.x=[xh-D,…,xh-2,xh-1]; 7.//Vi表示需要預(yù)測的目標(biāo)航班未來τ天的客座率構(gòu)成的向量 9.將樣本({x,ei},yi)加入訓(xùn)練集S 10.} 11.} //模型訓(xùn)練 12.初始化MTA-RNN中所有可學(xué)習(xí)的參數(shù)θ 藝術(shù)繪畫中的肌理是一種特殊的語言表達(dá)形式,是藝術(shù)家在藝術(shù)作品的創(chuàng)新中所使用的一種表達(dá)途徑。藝術(shù)家認(rèn)為肌理已經(jīng)不單單只是在藝術(shù)作品中簡單浮現(xiàn)出的一種紋路,它也可以表達(dá)作者的內(nèi)心感情。因此他們將肌理效果廣泛運(yùn)用到繪畫作品當(dāng)中,通過繪畫作品中的肌理制作來體現(xiàn)藝術(shù)家內(nèi)心深處的思想感情。 13.repeat 14.從S中隨機(jī)選擇一批訓(xùn)練實例Sbatch 15.用Sbatch尋找最優(yōu)參數(shù)θ并最小化式(10) 16.Until 滿足停止條件 本文在中國航信提供的真實歷史航班客座率數(shù)據(jù)集上進(jìn)行實驗,將MTA-RNN模型與其他3種基準(zhǔn)方法進(jìn)行對比,以證明該模型在航班客座率預(yù)測問題上的有效性。 本文使用的是民航2010年—2011年的歷史航班客座率數(shù)據(jù),通過對數(shù)據(jù)進(jìn)行預(yù)處理,獲得實驗所需屬性,主要包括航班(即航空公司、航班號、出發(fā)地、到達(dá)地)、起飛日期、起飛時間、機(jī)型、座位數(shù)、起落地GDP、各艙位等級航班客座率,選取北京-上海航線在兩年內(nèi)起飛日達(dá)584(730×89%)天以上的航班數(shù)據(jù)作為實驗數(shù)據(jù)集,時間窗口長度D=28、預(yù)測天數(shù)τ=7,則統(tǒng)計信息如表2所示。 表2 數(shù)據(jù)集統(tǒng)計信息Table 2 Statistics of the dataset 本文按照時間順序?qū)?shù)據(jù)集劃分為非重疊的訓(xùn)練集、驗證集和測試集,劃分比例為8∶1∶1,在實驗數(shù)據(jù)集中選取27個航班,將預(yù)測時段為2010-01-29—2011-08-09(共557天)的經(jīng)濟(jì)艙客座率數(shù)據(jù)作為訓(xùn)練集,將預(yù)測時段為2011-08-10—2011-10-18(共70天)的數(shù)據(jù)作為驗證集,其余數(shù)據(jù)作為測試集。假定h代表需要預(yù)測的目標(biāo)航班未來τ天中的第1天,則預(yù)測時段為[h,h+τ-1],該航線上所有起飛時刻航班的歷史客座率數(shù)據(jù)時段為[h-D,h-1],依據(jù)以上時段劃分構(gòu)造單個數(shù)據(jù)樣本,按照每天一次滑動構(gòu)建新的預(yù)測時段,通過上述操作,每一個航班可以構(gòu)建696個樣本,總樣本數(shù)為27×696=18 792。 在進(jìn)行模型訓(xùn)練之前,對數(shù)據(jù)進(jìn)行預(yù)處理是非常必要的,由于航班客座率取值范圍為[0,1],因此無需對其進(jìn)行歸一化。對于外部輸入數(shù)據(jù),本文采用One-Hot編碼方式分別對起飛日期的星期屬性,是否工作日、節(jié)假日,航空公司機(jī)型,起落機(jī)場,所在航線是否開設(shè)高鐵等離散特征進(jìn)行編碼,對于起落地GDP、起飛時刻、經(jīng)濟(jì)艙座位數(shù)等連續(xù)特征本文采用min-max歸一化方法歸一到[0,1]之間,歸一化的具體過程如下: (11) 其中,x表示原數(shù)據(jù),x′表示數(shù)據(jù)在[0,1]之間新的表示,minx、maxx分別表示原數(shù)據(jù)中的最小值和最大值。 本文將MTA-RNN模型與以下3種基準(zhǔn)模型進(jìn)行對比: 1)ARIMA模型:是一個著名的時間序列預(yù)測方法,常用于預(yù)測現(xiàn)實生活中的非平穩(wěn)時間序列。 2)LSTM模型:LSTM是一種循環(huán)神經(jīng)網(wǎng)絡(luò),通過改進(jìn)神經(jīng)元結(jié)構(gòu),在訓(xùn)練長時間序列時緩解反向傳播過程中的梯度消失問題。本文使用7個不同的LSTM單元分別預(yù)測航班未來7天的客座率。 3)Seq2seq模型:使用一個RNN將輸入序列編碼為特征表示,并通過另一個RNN迭代進(jìn)行預(yù)測。 本文實驗平臺如下:GPU選用TITAN Xp,CPU選用Intel Xeon,模型框架選用TensorFlow。對于ARIMA模型,本文選取前28天的航班客座率作為輸入,模型參數(shù)調(diào)至最優(yōu),LSTM模型、Seq2seq模型與MTA-RNN模型類似,選用預(yù)測航班歷史D={7,14,28,42,56}天的經(jīng)濟(jì)艙客座率信息作為模型輸入,通過驗證不同的超參選擇每種基準(zhǔn)模型的最優(yōu)超參。 本文采用平均絕對誤差(MAE)和均方根誤差(RMSE)作為模型預(yù)測效果的評價指標(biāo),計算公式如下: (12) (13) 在模型訓(xùn)練階段,批大小(Batch Size)設(shè)為256,學(xué)習(xí)率為0.000 1,訓(xùn)練輪數(shù)為500,并采用早停策略防止過擬合。在MTA-RNN模型中,有4個需要調(diào)節(jié)的超參,分別是時間窗口長度D,編碼器中2個LSTM單元的隱藏層維度n、m,解碼器隱藏層維度p。本文令D={7,14,28,42,56},在其上進(jìn)行網(wǎng)格搜索以得到最優(yōu)取值。為了簡便起見,本文在編解碼器LSTM單元中使用相同的隱藏層維度,在該參數(shù)上進(jìn)行網(wǎng)格搜索n=m=p∈{32,64,128,256},此外,本文采用堆疊LSTM(層數(shù)記為f)作為編解碼器的單元來提高模型性能。實驗表明,D=28,n=m=p=64,f=2的超參設(shè)置會得到較好的預(yù)測效果。 為了進(jìn)一步研究每個模型組件的有效性,本文將MTA-RNN模型與以下3種變體進(jìn)行比較: 1)MTA-RNN-nExternal模型:此變體不考慮外部因素對航班客座率的影響,即無外部因子融合模塊。 2)MTA-RNN-nFTAttention模型:此變體不包含起飛時刻注意力機(jī)制。 3)MTA-RNN-nFDAttention模型:此變體不包含起飛日注意力機(jī)制。 本文涉及的實驗均是預(yù)測航班未來7天的航班客座率。 4.5.1 外部因子融合模塊評估 外部因子融合模塊作為模型的一個實用組件可提供額外的信息,以提高預(yù)測性能。MTA-RNN模型與其3種變體預(yù)測未來7天航班經(jīng)濟(jì)艙客座率的結(jié)果對比如圖2所示,可以看出,MTA-RNN模型的預(yù)測效果明顯優(yōu)于去除外部因素融合模塊的MTA-RNN-nExternal模型,這是因為外部因素融合模塊能使MTA-RNN模型在未來的時間步中考慮到航班自身屬性及其他因素對預(yù)測航班經(jīng)濟(jì)艙客座率的影響。 圖2 4種模型對未來7天航班客座率的預(yù)測性能對比Fig.2 Comparison of passenger load factor prediction performance in the next 7 days between 4 models 4.5.2 起飛時刻注意力機(jī)制評估 圖3給出3種模型在預(yù)測未來7天航班客座率時每天的預(yù)測效果對比。由圖3可以看出,MTA-RNN模型優(yōu)于去除起飛時刻注意力機(jī)制的MTA-RNN-nFTAttention模型,由此可見,考慮不同起飛時刻航班客座率對預(yù)測航班客座率的影響可有效提高預(yù)測準(zhǔn)確率。 4.5.3 起飛日注意力機(jī)制評估 本文在解碼器中結(jié)合起飛日注意力機(jī)制,選擇編碼器第1個LSTM單元中不同時間步的隱藏層狀態(tài)值來對目標(biāo)航班客座率進(jìn)行預(yù)測,通過嘗試不同的時間窗口D驗證起飛日注意力機(jī)制的有效性。圖4給出4種模型的預(yù)測性能隨時間窗口的變化情況。由圖4可以看出, 當(dāng)D=28時,MTA-RNN模型及其3種變體都達(dá)到最小誤差值,當(dāng)D很大時,4種模型的性能均會迅速下降,這是因為某起飛時刻的航班自身經(jīng)濟(jì)艙客座率時間序列沒有這么長的時序依賴性。同時,由圖4可知,MTA-RNN模型比MTA-RNN-nFDAttention模型表現(xiàn)更優(yōu),因為起飛日注意力機(jī)制增強(qiáng)了長期預(yù)測性能。 圖4 4種模型預(yù)測性能隨時間窗口的變化曲線Fig.4 Curve of prediction performance of 4 models varying with time window 將本文的MTA-RNN模型與其他3種基準(zhǔn)模型進(jìn)行對比。為公平起見,每種模型均將其參數(shù)調(diào)至最優(yōu)以便呈現(xiàn)其最佳性能,預(yù)測效果對比如表3所示。由表3可知,MTA-RNN模型在RMSE、MAE兩個評價指標(biāo)上均明顯優(yōu)于其他3種方法。 表3 4種模型未來7天總體預(yù)測性能對比Table 3 Comparison of overall prediction performance in the next 7 days between 4 models 圖5 MTA-RNN模型與3種基準(zhǔn)模型每天的預(yù)測性能對比Fig.5 Comparison of daily prediction performance between the MTA-RNN model and 3 benchmark models 本文構(gòu)建了一種基于多粒度時間注意力機(jī)制的循環(huán)神經(jīng)網(wǎng)絡(luò)模型MTA-RNN,用以提高民航領(lǐng)域航班客座率預(yù)測的準(zhǔn)確性。依據(jù)時間粒度構(gòu)建起飛時刻注意力機(jī)制和起飛日注意力機(jī)制,通過兩級注意力機(jī)制的結(jié)合,獲取航班客座率在不同時間粒度下的時序相關(guān)性,并通過外部因素融合模塊考慮航班自身屬性及節(jié)假日等外部因素的影響。在中國航信提供的真實歷史航班客座率數(shù)據(jù)集上的實驗結(jié)果表明,MTA-RNN模型的預(yù)測準(zhǔn)確率高于ARIMA模型、LSTM模型和Seq2seq模型。下一步將把該模型應(yīng)用于時間跨度更大的航班客座率預(yù)測問題中,并通過獲取更多維度的數(shù)據(jù),如天氣、機(jī)票價格等來改善模型的預(yù)測性能。4 實驗結(jié)果與分析
4.1 數(shù)據(jù)集
4.2 數(shù)據(jù)預(yù)處理
4.3 基準(zhǔn)模型與評價指標(biāo)
4.4 超參選取
4.5 MTA-RNN模型與其變體的對比
4.6 MTA-RNN模型與其他3種基準(zhǔn)模型的對比
5 結(jié)束語