陳思杰,傅仰耿
(福州大學計算機與大數據學院,福建 福州 350108)
需求預測作為收益管理實施過程中的核心問題,多年以來一直受到國內外學者們高度的關注,預測的準確程度直接影響到了收益管理系統的可行性與價值,也直接影響著各個航空公司的票價結果與整體收益[1].在航空收益管理的需求預測方法之中,主要有三個方法:定量分析法、定性分析法、決策分析法.除了傳統的需求預測方法外,近年來有不少學者也應用了許多新興的智能預測算法和新興技術,例如機器學習方法、大數據平臺技術等.根據國內外研究現狀可知,基于傳統算法的需求預測模型依賴于精確的實驗數據,并且算法工作量較大,模型的預測結果穩定性差,無法保證預測精度[2-4];基于智能算法的預測模型與之相比實用性較強,相較于傳統算法精度和穩定性都有一定的提高.但是,航線訂座需求預測受到各方面因素的互相影響,當下基于智能算法的航線訂座需求預測研究較少,并且現有模型的預測精度仍然有待提高[5-7].為了提高航線訂座需求的預測精度,提出基于注意力機制的長短時記憶神經網絡(long short-term memory neural network,LSTM) 航線訂座需求預測模型,首先對航線訂座數據進行清洗與指標計算,然后利用注意力機制進行參數權重分配,最后通過長短時記憶神經網絡算法對航線訂座指標數據進行建模預測,對預測模型參數進行調整優化,得到航線預測模型后代入數據計算結果作為航線訂座需求的最終預測值,以此構建航線訂座需求的預測模型,實現對航線訂座變化情況的預測.
本研究數據為國內某航空公司2017—2019年期間的航線飛行歷史數據,包含該航空公司國內直飛航線在這三年當中共571 959條的訂座離港數據.歷史與預售數據的采集主要通過數據接口從中航信的離港控制系統(departure control system,DCS)與訂座控制系統(inventory control system,ICS)中采集得到.DCS系統具備旅客值機、航班控制、登記控制等信息服務功能,ICS系統具備的功能是能夠提供包含航班信息、座位控制、運價管理、銷售控制等訂座數據.針對采集數據的異常情況,總共做了以下幾方面的處理:1) 對于航線日期數據存在異常的情況,統一進行了判斷修正,并以‘YYYYMMDD’的格式進行存儲;2) 對于存在旅客人數為0或者NULL的采集異常數據,將此類數據從數據集中進行剔除;3) 對于航班總布局數存在異常的情況,通過參考歷史同航班數據的航班總布局數目進行修正補充;4) 對于存在的數據缺失,航班數目不全的情況,通過利用離港系統不同數據接口所得到的數據進行相互補充,盡可能地保證數據集合的完整性.
在航線需求預測實驗中,對于源數據總共處理得到包括訂座數、客座率、月份、星期、分配座位數、折扣率、節假日標識、預售數1、預售數2、預售數3共10個特征指標,每條航線共包括了2017,2018,2019年的實驗數據,以廈門-上海航線在2017年1月份第一周的數據作為示例,數據預處理后得到的結果如表1所示.

表1 實驗中使用的廈門-上海航線數據集Tab.1 Xiamen-Shanghai route dataset used in the experiment
為了使10個不同維度的特征數據在數據上具備一定的比較性,在構建預測模型之前,首先對10個不同維度的特征數據進行標準化與歸一化操作,按一定比例將數據進行縮放,使數據值全部都落入一個小的特定區間.由于節假日標識特征屬于類別數據,因此,在做歸一化操作之前,需要對該類別數據進行數據化操作.數據化操作的方式是通過對類別數據進行標簽編碼將其轉換成連續的數值型變量,把不是連續的文本或數字通過標簽各做一個編號.經過標簽編碼處理后,節假日特征指標編碼關系如下:N標簽記為0,中秋編碼為1,五一編碼為2,元旦編碼為3,國慶編碼為4,春節編碼為5,清明編碼為6,端午編碼為7,詳見表2所示.

表2 實驗中使用的節假日標簽數據集Tab.2 Holiday label dataset used in the experiment
航線訂座需求預測問題與問題前序預測結果存在著較為緊密的關聯,航線需求數在時序上呈現一定的周期性波動,隨著時序的長期移動,預測值與前序預測結果整體上具備相同的變化趨勢.此外,考慮到航司收益管理的定價政策,前序預測值與航線預售結果往往對航司票價折扣的波動有著關鍵的影響,因此,將LSTM神經網絡算法應用在該具備時間序列特征的場景中是可行且具備一定優勢的.
本研究算法的基本實現過程如圖1所示,整體可以劃分為:歷史數據與預售數據的采集,對采集數據的清洗與過濾,根據采集數據計算特征指標數據,對數據進行標準化,由數據構建LSTM航線需求預測模型這幾大步驟.

圖1 算法實現過程圖Fig.1 Algorithm implementation process diagram
注意力機制的原理可以概括為以下三個步驟,首先是通過query和key進行相似度的計算,從而獲得權重值;然后需要對獲得的權重值進行歸一化處理,使其直接可用;最后將處理后的權重值與Value進行加權求和.
注意力(Attention)機制的本質思想如圖2所示,由一系列的鍵值組合〈Key,Value〉數據對元素共同構成了Source.Target中的元素Query通過Source,計算與各個Key的相關性或者相似性,得到每個Key映射到相應Value的權重系數.再對Value做一個加權求和操作,便獲得了Attention的最終結果數值.

圖2 Attention機制Fig.2 Attention mechanism
長短時記憶神經網絡是具備反饋結構的一種神經網絡,其為循環神經網絡(recurrent neural network,RNN)的變種,該神經網絡巧妙地解決了RNN的長期依賴問題[8-9].由圖3所示,LSTM的循環結構體中被設計成了由三個門結構組成,即輸入門、遺忘門以及輸出門[10].其中,輸入門用于處理當前時刻下的輸入,其輸出是由兩部門內容組成.一部分是ht-1和xt經過激活函數sigmoid得到的輸出結果it,另外一個部分則是通過了激活函數tanh后得到的輸出結果at,輸出結果it和輸出結果at兩者進行相乘后再對細胞狀態進行更新,其數學表達式為:

圖3 LSTM示意圖Fig.3 LSTM schematic
it=σ(Wiht-1+Uixt+bi)
(1)
at=tanh(Waht-1+Uaxt+ba)
(2)
其中:Wi,Ui,bi,Wa,Ua,ba代表線性關系的系數和偏倚,σ代表激活函數sigmoid.輸出門負責計算并輸出隱藏狀態ht,隱藏狀態ht由兩個部分組成;第一個部分是由上一個時刻的隱藏狀態ht-1與本時刻的輸入xt通過激活函數sigmoid后得到的at;第二個部分則是由本時刻新的隱藏細胞狀態Ct通過激活函數tanh后得到.其數學表達式為:
ot=σ(Woht-1+Uoxt+bo)
(3)
ht=ot⊙tanh(Ct)
(4)
遺忘門是用來控制是否遺忘,以一定概率控制是否遺忘上一層的細胞狀態,其輸入包括上一時刻的隱藏狀態ht-1和本時刻的輸入xt,兩個輸入通過激活函數(一般為sigmoid函數)后得到遺忘門的輸出
ft.因為經過sigmoid激活函數后的輸出范圍在[0,1],所以遺忘門的輸出ft代表的含義是對于上一時刻隱藏狀態的遺忘概率,其數學表達式為:
ft=σ(Wfht-1+Ufxt+bf)
(5)
其中:Wf,Uf,bf代表線性關系的系數和偏倚,σ代表激活函數sigmoid.LSTM除了和RNN一樣會在每個序列索引位置向前傳播隱藏狀態ht之外,另外還多了一個隱藏狀態Ct,這個隱藏狀態通常稱為細胞狀態[11],Ct在LSTM的結構如圖4所示.Ct只與少量的線交互,像傳送帶一樣,將數據直接運行在整個鏈上,并受到各個控制門的影響.

圖4 LSTM示意圖Fig.4 LSTM schematic
本研究實驗數據采集存儲于oracle 11g數據庫中,實驗環境基于python 3.7.0,基于python的keras人工神經網絡庫處理數據并建立預測方程.采用LSTM神經網絡算法對標準化和歸一化后的實驗數據進行訓練和預測,訓練過程首先以7∶3的比例將數據集合劃分為訓練數據和測試數據.以廈門-上海航線為例,包含2017—2019年期間經過加工處理后共1 095條航線數據,其中,訓練數據767條數據,測試數據328條數據.完成數據集的劃分后,需要將準備好的數據集轉換構造為監督學習問題,考慮到上一個時間段對當天航線訂座數的影響,將監督學習問題的框架作為航線條件和訂座情況在前一個時間步驟預測航線訂座數,構建數據集通過前n天的航線需求數據對當天的航線訂座數進行預測,這里n表示時間步長參數,需要通過實驗對參數進行調整確定.
由于當前數據集是按照航線起飛日期依次排序的時間序列數據集,實驗過程首先對標準化后的數據集合做了一次轉化預處理,使得數據集能夠滿足條件用于最近n天需求情況對當天航線訂座數進行多步預測.通過把時間序列數據轉換成一組包含成對輸入輸出的序列數據的方式,使得問題間接轉化為監督學習問題,轉化的核心方法是用到了Pandas所提供的shift()函數.對于一個給定的DataFrame數據,shift()函數實現了對輸入的列進行復制,并將該列復制的副本數據往后或者往前移動,其中,移動后存在的數據空位會用NaN進行填充.通過上述操作,創建出了滯后值的數據列,通過觀察值與滯后值的數據列,便能夠較好地得到一個監督學習數據集的格式數據.以時間步長n=7時為例,處理后的數據格式如圖5所示.

圖5 監督學習數據集Fig.5 Supervised learning data set
采用多變量輸入數據擬合LSTM模型,將輸入(X)重構為LSTM預期的3D格式,即[樣本數,時間步長,特征],對于訓練數據,重構后即為[767,n,10]的格式.針對航線訂座需求預測場景,為了能夠更好地捕獲重要信息,在設計航線需求預測模型時引入注意力機制用于權重參數的分配,在輸入層(LSTM)之前加入Attention.為了滿足注意力結構里Dense層的輸入格式,Attention的設計首先通過Pemute對輸入的第1和第2個維度進行置換,置換后輸出格式為[特征,時間步長],然后將格式為[特征,時間步長]的數據輸入到激活函數為softmax的Dense層,計算得到每個特征的權重.通過Dense后,需要用Permute再次對維度進行變換,完成變換后利用Multiply層完成Attention的第二個結構,用權重乘以輸入,便完成了模型中注意力層的設計.對應參數分配結構圖,如圖6所示.

圖6 參數分配結構圖Fig.6 Parameter allocation structure diagram
通過注意力層的權重分配后,將得到的格式為[樣本數,時間步長,特征]的數據輸入到LSTM層,利用Adam 算法不斷優化調整預測模型參數,對訓練數據集合進行調參訓練,主要針對units,epochs,batch_size進行調參.其中,units參數為整數,代表輸出維度,指的是LSTM神經網絡中包含的前饋神經網絡中的隱藏神經元個數.epochs參數為整數,代表訓練的總輪數,當沒有設置initial_epoch時,模型的訓練將會在輪次達到epochs參數所設置的值時停止.batch_size參數為整數,代表模型訓練中進行梯度下降的每個batch使用的樣本數,每一個batch的樣本在模型訓練的過程中會被計算一次梯度下降,對目標函數進行優化.以廈門-上海航線的LSTM預測模型為例,經過多次調參與測試,最終units參數設置為60,epochs參數設置為200,batch_size參數設置為60.確定了上述參數后,將時間步長參數n在[3,10]區間內分別取值進行調參實驗,根據n的不同取值,預測實驗結果如表3所示.

表3 時間步長調參結果Tab.3 Time step tuning results
根據調參結果,時間步長n在取值7時平均絕對誤差指標(mean absolute error,MAE)與均方根誤差指標(root mean square error,RMSE)結果最優,分別為13.1與17.2,繪制損失函數如圖7所示.

圖7 廈門-上海航線loss函數Fig.7 Xiamen-Shanghai route loss function
為了驗證本研究提出的預測模型性能,分別采用收益管理領域里傳統需求預測定量分析法的常用方法:移動平均法、指數平滑法,以及新興的神經網絡預測方法如RNN神經網絡算法[12-13]、CNN-LSTM混合模型[14]對航線訂座需求預測進行實驗驗證與對比分析.以廈門-上海航線為例,多次實驗后取平均值,LSTM與各預測算法的實驗對比結果分別如圖8~11所示.其中,縱坐標表示航線訂座人數,橫坐標表示測試樣例.
通過對比圖8~11中預測值與真實值的曲線圖,直觀地看出,移動平均法與指數平滑法這兩個傳統的需求預測方法的預測結果都不理想,整體預測數值與實際值的偏差較大,曲線上下波動無規律,通過實驗曲線可以明顯地看出這兩個傳統算法在本次實驗預測中出現了嚴重誤差,全都較大偏離了真實值.RNN神經網絡的預測曲線相比于傳統預測方法來看整體結果較好,但是預測結果整體偏大,預測值的精度相較于Attention-LSTM神經網絡較差,與真實值之間的偏差較大.CNN-LSTM混合模型應用于股票指數預測中具有較好的效果[14],然而應用在航線需求預測中的實驗效果并不理想,整體預測結果偏差較大,曲線趨勢平緩,對于峰值的預測效果較差.相比之下,基于注意力機制的LSTM預測模型得出的預測結果準確性和穩定性都有顯著提升,且對于曲線中的峰值情況的預測結果相比于傳統預測方法,RNN神經網絡及CNN-LSTM混合模型也較為接近,偏差值較小,預測效果更為準確.

圖8 Attention-LSTM與移動平均法預測對比Fig.8 Attention-LSTM and moving average prediction comparison

圖9 Attention-LSTM與指數平滑法預測對比Fig.9 Attention-LSTM and Exponential smoothing prediction comparison

圖10 Attention-LSTM與RNN預測對比Fig.10 Attention-LSTM and RNN comparison

圖11 Attention-LSTM與CNN-LSTM預測對比Fig.11 Attention-LSTM and CNN-LSTM comparison
根據預測結果與實際真實值計算出實驗結果的平均絕對誤差指標與均方根誤差指標進行定量分析評價.平均絕對誤差(MAE)是所有單個觀測值與算術平均值偏差的絕對值平均,由于其能夠解決誤差相互抵消的問題,因而能夠準確反映實際預測誤差的大小[15];均方根誤差(RMSE)是預測值與真實值偏差的平方與觀測次數n比值的平方根,可以用來衡量觀測值同真實值之間的偏差[16].MAE和PMSE的計算公式分別為:

(6)
分別采用移動平均法、指數平滑法、RNN神經網絡算法、CNN-LSTM混合模型進行對比實驗,對航線訂座需求預測進行實驗驗證.表4為各預測模型的統計結果.

表4 預測誤差統計結果Tab.4 Forecast error statistics
由表4可知,基于注意力機制的LSTM模型預測精度最高,其MAE結果為13.1,RMSE結果為17.2,與移動平均法相比,MAE降低了43.0%,RMSE降低了39.9%;與指數平滑法相比,MAE降低了41.5%,RMSE降低了37.9%;與RNN神經網絡算法相比,MAE降低了9.0%,RMSE降低了5.0%;與CNN-LSTM相比,MAE降低了13.8%,RMSE降低了11.3%.
總體來看,基于注意力機制的LSTM航線訂座需求預測模型相比較于其他傳統預測算法精度更高,預測結果明顯優于文獻中已有的移動平均法、指數平滑法等傳統需求預測算法,也優于新興的RNN神經網絡算法以及CNN-RNN混合模型,該模型應用于航線訂座需求時序數據變換趨勢的預測上明顯提高了精度,可以更加準確地對航線需求的訂座規律和變化趨勢進行預測.
提出的基于注意力機制的LSTM航線訂座需求預測模型具有較好的預測效果,可以較好地擬合歷史預售數據、航線布局、航線日期與航線訂座需求之間的關系,提高了對未來航線訂座情況的預測精度,為航線訂座需求的預測提供一種新的思路和方法.將基于注意力機制的LSTM航線訂座需求預測模型與傳統的需求預測方法、RNN神經網絡算法及CNN-RNN混合模型進行實驗對比,代入實例驗證文中基于注意力機制的LSTM預測模型應用于航線需求預測的有效性與優越性.