屈景怡,楊柳,陳旭陽,王茜
(1.天津市智能信號與圖像處理重點實驗室(中國民航大學),天津 300300;2.中國民用航空華北地區空中交通管理局 天津分局,天津 300300)
近年來,隨著國內航空業發展迅速,客流量逐漸趨于飽和,航班延誤問題也因此面臨著巨大挑戰。造成航班延誤的因素有很多種,而任何程度的航班延誤都會給航空公司、機場和旅客造成一定的損失。精確的航班延誤預測可以為大面積航班延誤響應機制提供參考,使民航相關部門提前做好應對機制,以降低延誤帶來的損失,因此航班延誤預測具有重要的應用價值。隨著航班數據的不斷積累,基于大數據的航班延誤預測方法也應運而生。
航班延誤預測的目標是對于某一特定機場,在相對較短的時間內預測其未來一段時間的延誤水平,因此涉及時間和空間兩個維度。在時間維度上,當發生大面積航班延誤時,此時前一架航班的延誤會導致一段時間內的后續航班延誤,造成機場內的航班積壓。針對時間維度上的航班延誤預測問題,已有國內外學者進行了大量研究,多采用循環神經網絡的一系列算法,文獻[1-6]中分別采用了經典的長短時記憶(Long Short-Term Memory,LSTM)網絡和改進后的雙向長短時記憶(Bidirectional Long Short-Term Memory,Bi-LSTM)網絡對航班延誤進行分類或回歸預測。其中文獻[3]中通過多步預測和時空相關性的聯合挖掘,引入時間注意力機制和輔助特征構建預測模型。文獻[5]中在Bi-LSTM 網絡的基礎上加入注意力機制來預測未來的航班延誤狀況。
但是,上述算法僅聚焦于航班延誤在時序上的影響,均未能有效提取航班數據中包含的空間信息,而航班數據中的空間信息對預測算法也十分重要。
卷積神經網絡(Convolutional Neural Network,CNN)是有效提取空間信息的算法之一,因此許多研究成果也基于空間維度展開。文獻[7-13]中分別提出了幾種基于不同卷積神經網絡的延誤預測模型:文獻[10]中在航班數據中結合機場天氣數據,擴充了數據集的特征數,然后通過區域殘差結構提取數據空間特征;文獻[10]中通過卷積提取空間特征來預測地鐵站的擁堵情況;文獻[12]中采用通道和空間注意力機制來加強網絡結構深層信息的傳遞。鑒于卷積神經網絡的模型在提取空間特征上具有優勢,氣象數據的加入也為卷積的實現提供了可能。
雖然已有同時考慮時空兩方面特性的預測方法,但目前已有預測方法多為兩種或多種算法的結合,存在算法間的融合問題。因此本文提出了一種基于時空序列的卷積長短時記憶(Convolutional LSTM,Conv-LSTM)網絡航班延誤預測模型,在提取數據中時序性的基礎上,加入氣象數據擴充特征列,通過卷積操作同步提取數據的空間信息,以此充分利用樣本內隱含的空間特征和樣本間的時序特征來進行算法的迭代學習。然后,針對國內4 個機場的航班數據對所提模型的有效性進行了驗證,并討論了氣象因素和序列長度對延誤狀態的影響。
在獲得模型預測結果之后,本文設計了一個航班延誤分析可視化系統。目前國內外構建可視化主要有兩種方式:客戶端/服務器(Client/Server,C/S)和瀏覽器/服務器(Browser/Server,B/S),其中B/S 架構具有豐富的可視化模塊,本文將基于此架構選擇Java 語言和Web 技術進行航班延誤預測系統的開發。該系統利用航班信息和氣象數據,根據模型預測的結果并提供歷史航班數據統計和可視化功能。
航班延誤預測模型一共由三部分組成,分別是:輸入模型時的數據預處理、網絡的訓練以及輸出模型時的分類和預測。其中網絡訓練部分將在第2 章中做詳細描述。
模型整體結構如圖1 所示。其中預處理模塊主要融合航班與氣象數據,對融合后的數據進行編碼并轉換維度,以適應網絡的輸入;模型訓練模塊負責進行網絡的搭建,學習訓練網絡參數并保存模型;分類和預測模塊輸出各個延誤等級的概率值并返回最終的預測結果。
在深度學習算法中,輸入模型的數據集是至關重要的一部分,高質量的數據集可以使模型性能大幅提升。
在原始數據輸入神經網絡進行訓練之前,首先需要數據預處理,預處理過程由數據清洗、數據融合、數據編碼和序列化四個部分組成。經過數據處理后,所有變量將轉變為數值型變量并統一做歸一化處理,然后對其通過滑窗劃分時序,使得數據同時具有時序性特征,整個數據預處理流程如圖2所示。
1.1.1 數據集介紹
本文使用的數據集為華北空中交通管理局提供的4 個國內機場的航班與氣象數據,分別是北京首都機場、北京大興機場、天津濱海機場和石家莊正定機場,樣本量分別為305 萬、79 萬、107 萬和59 萬條,數據記錄時間為2019 年9 月至2020 年10 月。
航班數據包含“航班號”“飛機型號”“起降時間”“起降機場”“高度”和“速度”等23 個特征。
氣象數據每分鐘記錄一次,包含“跑道視程”“降雨量”“溫度”和“風速”等49 個特征。
為了更好地描述航班延誤在時間維度上的影響,圖3 展示了一段天津機場2019 年10 月1 日10∶00~14∶00 航班延誤時間統計情況。圖3 記錄了這段時間內27 架航班的延誤時長,從圖3 中可以看出,當第一架航班發生延誤時,會對短時間內后幾架航班的延誤造成較大影響,但隨著時間的推移,后續航班的延誤時間在逐漸減小,這說明航班延誤的影響只存在于與之相鄰的幾架航班之中,而延誤影響的航班數量就涉及網絡模型中時序這一參數的選擇。
1.1.2 數據預處理過程
1)數據清洗和標注。
當數據中缺失關鍵特征時,本文采用的方法是刪除整條航班或氣象數據;當數據含有異常值時,用特征的平均值來進行填充。由于本文選擇的神經網絡為有監督的算法,因此清洗數據后,需要對訓練集數據進行標注。
2)數據融合。
將數據的特征完整、多樣化地放入模型中,有助于神經網絡更充分地提取特征之間的信息。本文將航班數據和氣象數據做融合,擴充數據集特征列,豐富了樣本的多樣性。此外,融合氣象數據會大幅增加樣本量,起到數據增強的作用,使得數據集更匹配網絡模型。在融合之前,需要提取關聯主鍵,以此作為融合的依據。首先提取航班數據的計劃起飛時間,然后提取天氣的記錄時間,將兩個時間同時作為鍵值進行融合,即當兩個時間相同時,將這兩條航班和氣象數據合并為一條。這樣就得到了在航班計劃起飛的時刻下,帶有此時氣象信息的一條航班數據。
3)數據編碼。
為了消除不同特征列維度之間的影響,輸入神經網絡的數據往往需要將數據集編碼到同一量綱下,做歸一化處理,使得神經網絡更好地學習數據之間的關聯。由于融合后的數據中包含數值型特征和離散型特征,本文對這兩種特征分別采用了不同的編碼方式,數值型特征采用MinMax 歸一化編碼,離散型特征采用Catboost 編碼[14]。
4)序列化。
由于航班延誤數據之間存在短期的時間相關性,因此本文將輸入數據構造為一個時間序列,序列化過程如圖4 所示。首先將數據集E按記錄時間排序,得到數據集Et,然后使用序列長度為L的滑動窗口進行滑動分割,每次向下滑動1 個數據,得到一個新的長度為L的時間序列數據Enew。使用序列數據中最后一次飛行數據的標簽作為網絡模型的輸出。
構建出時序樣本之后,需要對樣本做數據集的劃分,按照一般經驗,本文訓練集和驗證集的樣本量劃分比重為8∶2。
經過數據預處理后,將模型的輸入轉化為張量以適應Conv-LSTM 網絡的輸入維度。表1 列出了Conv-LSTM 網絡輸入輸出的參數結構,初始輸入維度為(15,72),即經過序列化后得到的15 條數據作為1 個樣本,每個樣本包含72 列特征,經過維度轉換后得到(15,8,9,1)的四維數組,其中最后一個維度為濾波器個數。

表1 網絡結構組成和參數量Tab.1 Composition of network structure and number of parameters
對于模型輸出維度的劃分,本文參照中國民用航空局規定的15 min 內為不延誤的標準,將航班延誤狀態按時間分為不延誤(小于15 min)、輕度延誤(15~60 min)、中度延誤(60~120 min)、高度延誤(120~240 min)、重度延誤(240 min以上)5 個等級。
在神經網絡模型充分學習數據的特征后,將通過全連接層的Softmax 激活函數對輸出結果進行分類預測,損失值通過交叉熵函數Categorical_Crossentropy 計算,其計算公式如式(1)所示,其中“I”在本文中的取值為5。
為了評價Bi-LSTM 和Conv-LSTM 網絡模型在航班延誤預測問題中的準確率,本文采用的評價標準為:
其中:N是驗證集中的數據量;acc代表模型預測的延誤等級與實際延誤等級相同的數量;precision是整個模型的準確率。在預測階段,本文將使用未經過網絡訓練的測試數據集,調用訓練集保存的編碼參數以及保存的模型對測試集進行編碼以及預測,預測后返回各個等級的概率值,并將其中最大概率輸出為最終的預測結果等級。
LSTM網絡[15]是循環神經網 絡(Recurrent Neural Network,RNN)的一種改進算法,廣泛應用于時間序列問題。由于航班延誤的短期時序性,通過LSTM 網絡對航班延誤數據進行迭代學習,可以有效利用航班序列中前序延誤對當前航班延誤的影響。Bi-LSTM[16]衍生自LSTM 網絡,在LSTM 網絡改善循環神經網絡中梯度消失的基礎上,Bi-LSTM 可以進一步考慮序列前后每個時間的延誤信息,而不僅僅是當前時間之前的延誤信息。
圖5(a)為LSTM 單元結構示意圖。從圖5(a)中可以看出,LSTM 網絡增加了多個門控結構,在每個序列索引位置t都含有一個遺忘門、輸入門和輸出門,此外還增加了一個隱藏狀態C作為備選的更新狀態。
LSTM 的記憶功能主要依賴于結構單元的中間狀態。中間狀態ht的更新由兩部分組成:第一部分是輸出門;第二部分由隱藏狀態Ct和tanh 激活函數組成。
Bi-LSTM 的結構如圖5(b)所示,以虛線框處的時刻t為例,將輸入xt和前一時刻的中間狀態ht同時輸入正向LSTM層和反向LSTM層,得到中間層的輸出:正向和反向,然后對這兩個輸出按權重相乘得到網絡最終的輸出yt。計算公式如式(3)~(5)所示:
其中:w1~w6是每個輸入xt和中間層ht的權重參數。
Conv-LSTM 網絡[17]在Bi-LSTM 的基礎上,對輸入層和隱藏層加入卷積操作來提取空間特征。對于航班數據這類結構化數據,首先需要進行維度轉換,本文將2D 的數據格式根據特征總數轉化為一個盡可能方正的3D 數據,然后將轉換后的數據和權重參數進行卷積,以此作為網絡結構中三個門控結構以及隱藏狀態的輸入。
Bi-LSTM 的每一層輸入都來自上一層的輸出,層與層之間采用全連接的方式;除此之外,每一層的結構中,前后時刻的樣本將同時輸入進隱藏層和下一層網絡。Bi-LSTM 的網絡結構如圖6(a),Conv-LSTM 輸入輸出的結構[17]如圖6(b)所示。
Conv-LSTM 的核心和Bi-LSTM 一樣,將上一層網絡的輸出作為下一層網絡的輸入。不同的是Conv-LSTM 加入卷積運算后,不僅可以提取時序特征,還可以通過卷積操作提取空間特征。此外,網絡狀態之間的轉換也變成卷積操作,其單元結構公式如下:
其中:wf、wi、wo和wC分別代表網絡中輸入門、遺忘門、輸出門和中間狀態的權重參數矩陣;bf、bi、bo和bC分別是三個門控結構和中間狀態的偏置項;“*”表示卷積運算;“?”表示Hadamard 矩陣乘積。
搭建好網絡結構之后,將進行模型的訓練和驗證,模型的訓練過程一般使用損失值作為目標函數,其代表的物理意義是在有監督的算法中,預測值與真實值之間的誤差大小。隨著訓練迭代次數的增加,如果誤差越來越小,則代表訓練效果越好,因此損失值將隨著訓練過程的進行而不斷降低。
在1.2 節的介紹中,本文使用的目標函數為交叉熵損失函數,由于模型的最終輸出是5 類航班延誤預測等級,屬于分類問題,而交叉熵函數正適用于深度學習中的分類問題。該目標函數的計算公式如下:
其中:I表示航班延誤的分類個數,本文中I的值為5表示網絡預測值;y表示網絡標簽值。五分類激活函數采用Softmax 激活函數,其公式如下所示:
其中:zj表示經過Softmax 前的輸出的5 個分類神經元之一。
模型的反向傳播過程是通過對前向傳播得到的損失函數對z進行鏈式求導,如式(13)~(16)所示。由此不斷更新每一層的參數w和b,最終得到一個趨于收斂的損失值,此時模型達到最優。
整個前向傳播和反向傳播的流程如圖7 所示。
此外,由于深度學習一般將數據集劃分為訓練集和驗證集,每一輪訓練都將通過上述前向傳播輸出整個數據集的平均損失值,將訓練和驗證的損失值是否同步減小作為標準,再經過反向傳播對網絡模型中的參數不斷調整,最終得到適合該網絡結構的一套參數。
本章將介紹實驗環境和基本參數,并通過不同維度對比驗證模型的性能。
實驗環境處理器為Intel Xeon E5Mu1620,GPU 內存為11.92 GB,操作系統為Ubuntu16.04(64 位),深度學習開發環境為Tensorflow 1.10.0,實驗環境所需參數如表2 所示。

表2 實驗環境參數Tab.2 Parameters of experimental environment
氣象數據可以擴充數據特征,增加樣本的多樣性,為卷積的實現提供可能。表3 列出了石家莊正定機場融合與不融合氣象數據的準確率對比。

表3 氣象數據對準確率的影響Tab.3 Influence of meteorological data on accuracy
在1.1.2 節介紹的數據融合中,本實驗采用了兩種融合方法:一種是按照時間精度為1 min 融合航班和氣象數據;另一種按精度為10 min 融合。實驗結果表明,在航班數據中添加1 min 的天氣數據后準確率略有提高,而融合10 min 天氣數據準確率有較大幅度提高。分析原因如下:
一方面,以1 min 為時間精度融合氣象的數據集只增加了特征列,以實現卷積操作,但是以10 min 精度融合氣象不僅增加了特征列,還大大增加了數據量。與一條航班信息對應融合一條氣象數據相比,該方法一條航班融合了10 條氣象數據,使數據集擴大了近10 倍。在增加樣本多樣性的同時,也解決了數據集小但模型復雜導致的過擬合問題。
另一方面,融合10 min 的氣象后,每條航班相當于加入了前后10 min 之內的10 條氣象數據,因此網絡可以學習更多數據之間的相關性,使得預測的分類結果更加準確。
序列長度是循環神經網絡系列中的一個重要參數。由于航班延誤與時間相關,本節將討論序列化過程中序列長度對網絡結果的影響。本文測試了9 個不同的步長參數,使用的數據集為石家莊正定機場的航班和氣象數據,最終得到的準確率如表4 所示。

表4 序列長度對準確率和訓練時間的影響Tab.4 Influence of sequence length on accuracy and training time
表4 列出了隨著序列長度的增加準確率的變化,對比發現,并不是序列越長,準確率越高,當步長為15時,準確率達到最高值。在步長較短時,準確率呈上升趨勢,而步長為17時不但準確率略有下降,訓練時間也大幅增長。
隨著步長的增加,過長時間后的航班狀態對當前時刻的航班是否延誤的影響已經較小或是消失,因此網絡會學習到無關信息,造成數據冗余,導致準確率降低;此外,更長的時間序列會消耗更多的訓練時間。從表4 中幾組數據的對比可以看出,15 是較為合適的時序長度取值,因此,本文將序列長度取值為15 作為后續實驗的基本參數。
本節將通過3 種不同網絡模型的訓練準確率,對比討論本文算法相較于單獨的時序網絡和卷積網絡的優勢,以及時序信息和空間信息分別在神經網絡學習中所起的作用。
使用4 個國內不同機場融合10 min 的氣象后的航班數據作為數據集,列出了3 種不同網絡,以及同一種網絡3 種不同層數下,網絡模型的驗證集準確率對比,其中包括二維卷積(Convolutional-2 Dimention,Conv-2D)網絡模型,1~3 層的LSTM 網絡模型以及1~3 層Conv-LSTM 網絡模型。實驗結果如表5 所示。

表5 不同數據集上各模型準確率對比 單位:%Tab.5 Accuracy comparison of different models on different datasets unit:%
表5中,ZBAA、ZBAD、ZBTJ 和ZBSJ 分別為北京首都機場、北京大興機場、天津濱海機場和石家莊正定機場的地名代碼。各機場融合氣象后的數據總量分別為305 萬、79 萬、107 萬和59 萬條。從表5 中可以看出,在不同機場的數據集中,Conv-LSTM 網絡的準確率都比單獨使用時間序列網絡LSTM 或卷積網絡Conv-2D 更高。與LSTM-3 相比,Conv-LSTM-3 增加了卷積部分,準確率平均提高了0.65 個百分點。與Conv-2D 相比,Conv-LSTM-3 增加了時序部分,準確率平均提高了2.36 個百分點。
圖8 展示了石家莊正定機場數據集下3 種網絡模型的準確率曲線。從圖8 和表5 中都可以看出,由于Conv-LSTM 網絡中包含時序信息的保留以及卷積特征的提取,相較于單獨使用時序網絡或者卷積網絡,模型收斂時的準確率都更高。
在Conv-LSTM 網絡中,本文通過實驗嘗試了3 個不同數量的網絡層數。對于含有LSTM 結構這樣的復雜網絡,3 層網絡層已經是一個非常龐大的網絡結構模型,從表5 可以看出,3 層Conv-LSTM 網絡的準確率最高。
損失值是評估神經網絡模型是否擬合良好的重要參數,和準確率相對應。當準確率升高,損失值降低,相反則損失值上升。圖9 展示了3 種不同網絡及同一網絡不同層數訓練時的損失值下降趨勢。
圖9 中所展示的曲線為驗證集的損失值下降趨勢圖,本文中訓練集與驗證集曲線擬合良好,在每個網絡參數調整至最優的情況下,將不同模型的驗證集損失值曲線進行了對比。
本節同樣展示了石家莊正定機場融合10 min 氣象后的航班數據,訓練集樣本量為80%,驗證集樣本量為20%,模型訓練輪數為100 輪。
通常情況下,損失值越小,準確率越高,表示訓練效果越好。從圖9 可以看出,每個網絡模型中,訓練集和驗證集的損失值下降平緩,且擬合良好,符合一般深度學習模型的下降規律,其中Conv-LSTM3 層網絡的損失值最低,達到了0.028 7。
該系統是為空中交通管制部門開發,將安裝在中國民用航空局華北空中交通管理局,空中交通管制中心的流量管理室,其系統架構如圖10 所示。
本文航班延誤預測系統包含5 個模塊。
1)獲取航班信息。系統數據的導入采用離線導入方式,前端提供數據的導入接口,并通過數據庫管理數據。
2)深度學習(Deep Learning,DL)算法模塊。基于深度學習模型的航班延誤預測算法,主要完成氣象和航班信息的融合,實現模型的訓練和航班延誤預測。
3)數據庫管理系統(Data Management System,DMS)。建立基于MySQL 的數據庫,負責航班信息和氣象信息的查詢,并管理其他終端的數據訪問操作。
4)航班延誤信息處理(Flight Delay Information Processing,FDIP)。負責接收航班和氣象信息,對航班延誤信息進行查詢和統計分析,調用航班延誤預測算法獲取預測結果,并將結果轉發到航班延誤服務終端進行可視化顯示。
5)航班延誤服務終端(Flight Delay Service Terminal,FDST)。完成對歷史航班延誤數據的查詢和統計分析,展示航班延誤預測的結果,并將預測結果按延誤程度進行排序。
對深度學習算法進行封裝后,使用Socket 調用訓練好的航班延誤預測模型,系統后端為客戶端,算法為服務端。
系統啟動后,算法端監聽可視化系統后端發送的請求,前端獲取用戶上傳的航班調度信息,由后端解析航班數據上傳至算法服務器,然后將航班數據發送到航班延誤預測模塊進行數據處理和預測,最終得到預測的每條航班的延誤等級。預測結果通過Socket 返回到系統后端,再到前端接口,最后存儲到數據庫中。
本文基于國內航班與氣象數據提出了一種同時考慮了時空序列,基于Conv-LSTM 網絡的航班延誤預測模型,Conv-LSTM 算法可以充分提取數據中的時間序列和空間信息,有利于神經網絡的深度學習。本文的主要結論如下:
1)航班延誤預測問題是一個時空預測問題,只有在某一特定空間中,其延誤狀態才具有時序相關性,因此本文中將考慮的空間限定為某一單個機場,在這一特定空間下,引入時序的網絡模型對延誤狀態進行預測,并通過卷積操作提取數據中隱含的空間信息。Conv-LSTM 與經典的時序LSTM 網絡以及卷積CNN 相比,能夠同時提取數據中的時間序列特征和空間特征,因此可以在訓練時獲得更高的準確率。
2)航班延誤狀態具有短期的時間相關性,因此時間序列的長度是Conv-LSTM 網絡中的一個重要參數,當輸入序列過長則延誤影響會降低,造成數據冗余,序列長度過短會導致輸入數據中包含的信息量和神經網絡結構不匹配,模型無法正常擬合。對于本文中選用的四個國內機場數據集,當序列長度為15時,模型的性能最好。
3)氣象因素是造成航班延誤的重要影響因素之一,因此氣象數據也是航班飛行數據中的重要組成部分,它包含的特征列中含有許多關于航班狀態的有效信息。加入氣象數據之后,整個數據集的特征變多,卷積網絡可以發揮更大的作用,準確率也會相應提高。
后續研究將圍繞特征工程展開,如何通過提升數據集的質量來提高模型準確率,并研究實現回歸模型預測具體的延誤時間。