孫 禾,陳一新
(1.中國民航大學空中交通管理學院,天津 300300;2.中國民用航空廈門空中交通管理站,福建 廈門 361006)
航空運輸?shù)陌踩咝н\行離不開空中交通管理部門的有效保障,而航班號是確定飛行器身份的首要標識。在正常情況下,管制員運用標準的管制規(guī)則,并結(jié)合自身的管制經(jīng)驗,通過觀察雷達屏幕上飛機的運動態(tài)勢,呼叫相應的航班號,以對特定航班發(fā)送管制指令。在此過程中,若管制員和/或航空器駕駛員混淆(看錯、聽錯、讀錯等)1 個或者多個航班號,繼而錯誤改變航空器飛行狀態(tài),都將造成重大的安全事故。近年來,已經(jīng)發(fā)生多起因航班號混淆導致的航班危險接近事件,甚至觸發(fā)飛機的TA告警(空中防撞系統(tǒng)告警),因此研究航班號的相似性并有效量化相似度對于保障空管運行安全具有重大意義。
我國民航航班號一般由航空公司英文代碼和3~4位數(shù)字組成,如CCA8227、CSN3789 等。雖然受到疫情影響,但我國民航日均航班量已超過1.12 萬班[1],受限于航班號分配規(guī)則及航班量突破性的增長,依據(jù)航班號編制的規(guī)則航班號可用總量為9 896 個,顯然航班號重復的情況已不可避免,航班號相似的情況愈加嚴重。近年來,國內(nèi)外學者提出以下2 種分析方法,一是采用信息距離的方法構(gòu)造航班號對應位置距離矩陣[2-3],通過對應位置灰度的深淺可以直觀呈現(xiàn)不同航班號之間的相似程度,繼而可以在音素級水平為管制員和飛行員提供區(qū)分易混淆航班號的建議;二是采用編輯距離的方法計算2 個航班號的相似情況[4],將短文本字符串進行差異性比對,通過它們之間的編輯距離分析其相似程度。但目前提出的傳統(tǒng)方法基本局限在客觀計算字符之間的變化,往往忽略對語義信息的分析[5],而在實際運行中有些相似情況是人為主觀判斷的,包括形似、聲似等多種情況,導致主客觀識別相似程度上的差異。
綜上所述,航班號相似性主要存在于形似,因此針對航班號這一短文本類型數(shù)據(jù)[6]容易混淆的問題,總結(jié)民航空管系統(tǒng)相似航班號相關(guān)管理規(guī)定,提出基于多標準的判斷準則,應用主成分分析法統(tǒng)一量化相似度,并進一步構(gòu)建1 種改進后的Siamese網(wǎng)絡(luò),使用機器學習方法自動判斷航班號相似性,以期提高相似航班號的識別率,減少因航班號混淆造成的運行安全事件。
目前在管制系統(tǒng)中,應用最為廣泛也是最為簡便的是基于規(guī)則匹配的方法。民航局空管局發(fā)布的《民航空管系統(tǒng)相似航空器呼號管制運行操作指引》[7]中有關(guān)建議和規(guī)定對判斷相似航班號提供一系列匹配規(guī)則,如航班號中字符字形相似,如“I”與“1”、“O”與“0”、“S”與“5”等;航班號與其他管制用語相似,如與跑道號相似,AAR036;與機型相似,CCA330;與高度層相似,CAO270等。
針對2 個相關(guān)航空器航班號相似性,提出多項匹配規(guī)則,當2 個航班號符合匹配規(guī)則時,即可判定為相似航班號,舉例如下:
1)相關(guān)的2 個航空器,航班號字符完全相同。
2)相關(guān)的2 個航空器,其一航班號可以由另一航班號全部字符重新排列順序后獲得。
3)相關(guān)的2 個航空器,航班號位數(shù)相同,且4 位航班號中3 個同樣位置的字符或者3 位航班號中2 個同樣位置的字符相同。
4)相關(guān)的2 個航空器,某一航班號中連續(xù)3 位字符構(gòu)成的字符串包含于另一航空器呼號末尾4 位連續(xù)字符構(gòu)成的字符串中。
采用基于規(guī)則匹配的方法可以簡單便捷地快速識別出相似航班號,但當2 個航空器滿足匹配規(guī)則時,部分會呈現(xiàn)高度相似性,而部分相似程度一般,相似程度難以量化,因此還需要進一步識別,以便有針對性地進行相似航班號預警。
鑒于航班號為5~7 位的字符串,因此可以采用基于字符的方法,計算文本之間的距離以判斷2 個航班號的相似性。本文綜合多個判斷標準,量化得到統(tǒng)一的相似度。
在計算航班號字符距離之前,首先采用One-Hot編碼對航班號進行預處理,針對航空公司英文代碼,編碼步驟如下:
1)確定要編碼的對象為航空公司的英文呼號,一共26 種類別(26 個大寫字母)。
2)將英文呼號簡化為有2 或3 個字母的樣本,每個位置有26 種類別,字母所在的位置為1,其他位置為0,最后將其合并成為1 個完整的向量。根據(jù)26 個字母的編排約定特征排列的順序:A-1,B-2,…,Z-26,得到稀疏編碼表。
3)對稀疏編碼表中全為0 的列進行刪除,得到最終的緊密編碼表。
本文以相似航班號“CXA8571”與“CQH8571”為例,根據(jù)One-Hot編碼的規(guī)則,得到緊密編碼表如表1所示。
表1 “CXA8571”與“CQH8571”的緊密編碼表Table 1 Close code table of“CXA8571” and“CQH8571”
歐式距離是多維空間中任意2 個坐標的直線距離,無量綱。n 維向量空間的2 點M(x1,x2,…,xn)和N(y1,y2,…,yn)的歐式距離D1如式(1)所示:
對“CXA8571”和“CQH8571”進行歐氏距離計算,提取表1數(shù)據(jù)得到向量M,N分別為M=(1,0,1,1,0,8,5,7,1),N=(1,1,0,0,1,8,5,7,1)。
將M,N帶入式(1)得到:
曼哈頓距離可以解釋為2 個坐標在固定的多維坐標系上的直線距離在所有坐標軸上產(chǎn)生的投影的距離的總和,這個距離是2 點之間在沒有任何捷徑下的最大距離。
n 維向量空間的2 點M(x1,x2,…,xn)和N(y1,y2,…,yn)的曼哈頓距離D2如式(2)所示:
為更好地表示相似航班號的相似程度,同樣取曼哈頓距離的倒數(shù)作為相似航班號的特征之一。
針對相似航班號“CXA8571”和“CQH8571”進行曼哈頓距離計算,得到:
余弦距離通過計算任意2 個空間向量的夾角大小得到向量的相似程度。2 個向量之間夾角越大,距離越大。當2 個向量夾角為180°時,它們之間的差值達到最大;當2 個向量的夾角減小到0°時,此時2 個向量完全重合,距離最小,相似度最高。余弦距離D3如式(3)所示:
取S3=D3=cos(θ) 作為相似航班號的特征之一。
針對相似航班號“CXA8571”和“CQH8571”進行余弦距離計算,得到:
漢明距離D4表示2 個同樣長度的字符串中不同字符數(shù)量。由于漢明距離比較的是文本不同的位數(shù),因此在計算相似航班號相似度時,將漢明距離相似度記為S4=1-D4。
針對相似航班號“CXA8571”和“CQH8571”進行漢明距離的計算,經(jīng)過One-Hot編碼預處理后,得到:
文本編輯距離是將1 個字符串轉(zhuǎn)化為其他字符串的最小編輯操作。規(guī)定字符串的編輯操作有以下3 種:1)將1 個元素替換成另一個元素;2)插入1 個元素;3)刪除1 個元素。每1 個操作,將其步長記為1。最終得到文本編輯距離D5如式(4)所示:
式中:x代表計算出來步數(shù);y代表最長的字符串長度。
針對相似航班號“CXA8571”和“CQH8571”進行文本編輯距離計算。首先創(chuàng)立1 個矩陣,矩陣的維度要在2 個字符串長度的基礎(chǔ)上各加1;隨后根據(jù)上述計算規(guī)則,每1 個元素的增加、替換、刪除,都會導致步長加1;最終得到相似結(jié)果為S5=D5=2/3。
由于判斷標準不同,得到的相似度過于分散,難以得出最優(yōu)解。因此,針對不同相似度計算方法得到的航班號相似度特征,采用主成分分析方法,將眾多具有一定相關(guān)性的指標重新組合成1 組新的相互無關(guān)的綜合指標,從而結(jié)合多個標準形成1 個統(tǒng)一的相似程度量化值,取各個標準之所長,便于對航班號的相似程度進行更好地識別。主成分分析步驟如下:
1)各相似度標準特征構(gòu)成的原始數(shù)據(jù)矩陣X如式(5)所示:
式中:xnp為特征矩陣中的數(shù)據(jù)。
2)建立變量的相關(guān)系數(shù)矩陣R,如式(6)~(7)所示:
式中:rij代表著系數(shù)之間的相關(guān)性,當rij為0 時,表明元素之間不滿足線性相關(guān)。
3)矩陣R的特征根λ1≥λ2≥…≥λp>0 及特征根所指示的單位特征向量如式(8)所示:
式中:ai為單位特征向量,i=1,…,p;api為新舊指標的單位關(guān)聯(lián)系數(shù)。
4)主成分如式(9)所示:
式中:Fi表示新的指標。
5)綜合性特征的主成分貢獻率和累計主成分貢獻率分別如式(10)和式(11)所示:
貢獻率:
累計貢獻率:
式中:h1,h2,…,hm為新特征的貢獻值。
當綜合性特征的累積貢獻率達85%~95%時,特征值h1,h2,…,hm所對應的第1,第2,…,第m(m≤p)個主成分可近似表示所有的主成分結(jié)果。
對給定的500 個相似航班號對進行處理,通過主成分分析得到新特征計算結(jié)果z1~z3如式(12)所示。經(jīng)過計算,新的特征值在主成分分析總得分中的權(quán)重為:λ1=0.65,λ2=0.28,λ3=0.053。
式中:x1~x5為各距離特征。
取任意10 對相似航班號,得到主成分得分如表2所示。
表2 主成分分析得分Table 2 Score of principal component analysis
通過分析實驗中500 個航班對,95%以上的非相似航班號數(shù)據(jù)排序集中在[0.08,0.15]這個范圍內(nèi),航班號序號分布在[1,62]之間,范圍覆蓋整體數(shù)據(jù)的12%,可以將其視為1 個合格的參考標準。因此當主成分相似度≥0.15 時,認為航班號相似。取一線管制單位得到的50 對非相似航班號特征值帶入到提取到的450 對相似航班號特征數(shù)據(jù)集中,共計500 對航班號數(shù)據(jù)進行驗證,得到識別率如表3所示。可以看到經(jīng)過主成分分析后,識別率較單獨1 個判定標準有所改進。
表3 相似特征標準與識別率Table 3 Similarity feature standards and recognition rate
采用多標準量化的相似航班號判別方法,雖然該方法便于理解且適用范圍較廣,但判定的閾值需要人為設(shè)定。當閾值較大時,識別率有所提高,但相應的非相似航班號被誤識的概率也會變大。因此矛盾始終存在,需要不斷調(diào)整,需要采用1 種智能學習方法,自動判斷航班號相似性。
目前很多學者對多種深度網(wǎng)絡(luò)結(jié)構(gòu)[8]進行研究,其可用于文本及圖像的檢測與識別[9],而Siamese網(wǎng)絡(luò)是1 種用于相似文本檢測的非線性測量學習結(jié)構(gòu)[10-11],通過文本對的比對進行學習分類。同時構(gòu)建結(jié)構(gòu)相同權(quán)值共享的2 個網(wǎng)絡(luò),將2 個文本分別輸入2 個網(wǎng)絡(luò),通過隱含層減少計算的維度,將其轉(zhuǎn)換為向量,通過距離度量的方式計算2 個輸出向量的距離,以此來判定2 個文本的相似程度[12]。本文所設(shè)計的模型結(jié)構(gòu)共有2 個分支,如圖1所示。
圖1 自適應Siamese網(wǎng)絡(luò)結(jié)構(gòu)模型Fig.1 Adaptive Siamese network structure model
首先,建立1 個5 層的Siamese網(wǎng)絡(luò),輸入層為航班號按位編碼,一般前3 位為字母,后3 位或4 位為數(shù)字;隱含層為3 層,采用雙向長短期記憶(bidirectional long short-term memory,BiLSTM)的增強網(wǎng)絡(luò)結(jié)構(gòu),每層50 個節(jié)點,采用前饋算法;在輸出層得到2 個航班號轉(zhuǎn)化為向量的特征值,繼而通過歐式距離計算差異值。
其次,同樣針對航班號對應位的編碼,計算編輯距離。根據(jù)航班號短文本英文字母+數(shù)字的特點,本文采用Jaro-Winkler距離進行計算。Jaro-Winkler距離dw=dj+KP(1-dj),其中dj表示最后得分,K為前綴部分匹配的長度,P為標準值0.1。
最后,將2 分支結(jié)果相乘,作為整個模型的損失函數(shù)進行迭代學習。相比于傳統(tǒng)的Siamese網(wǎng)絡(luò),對于損失函數(shù)的修正可以在很大程度上自適應航班號之間本身就已經(jīng)固有的相似情況,因此更加符合客觀要求。
網(wǎng)絡(luò)的數(shù)據(jù)訓練集為三元組(x1,x2,y),其中x1和x2為文本序列,y∈{0,1}表示2 個序列的相似程度。當2 個序列相似時,y=1;當2 個序列不相似時,y=0。這樣能最小化相似文本之間的距離并最大化不同文本之間的距離。
由于傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)容易發(fā)生梯度消失,本文采取BiLSTM 網(wǎng)絡(luò)結(jié)構(gòu)。假設(shè)輸入序列為(x1,x2…,xT),在每1 個時間步t∈{1,2,…,T},通過方程ht=σ(Wxt+Q ht-1) 更新隱含狀態(tài)向量ht,其中W為輸入層至隱含層權(quán)重,而Q為上一時間步的ht-1至隱含層的權(quán)重,σ(x) =(1 +e-x)-1。通過序列更新隱含層的狀態(tài),引入記憶狀態(tài)mt和3 個門(輸出門、輸入門、忘記門),通過每一步時間的更新控制信息流,其中輸出門ot決定下一節(jié)點mt的數(shù)量;輸入門it決定在此步時間內(nèi)輸入xt的數(shù)量;忘記門ft決定上一步時間的記憶是否要忘記。網(wǎng)絡(luò)各層參數(shù)更新公式如式(13)~(18)所示[13-14]:
式中:Wi,Qi為輸入門的權(quán)重參數(shù);Wf,Qf為忘記門的權(quán)重參數(shù);Wo,Qo為輸出門的權(quán)重參數(shù);Wm,Qm為記憶狀態(tài)的權(quán)重參數(shù);表示中間記憶狀態(tài);mt-1表示上一時間步的記憶狀態(tài)。
通過計算對比損失函數(shù)實現(xiàn)模型的反饋學習,首先計算2 個網(wǎng)絡(luò)輸出向量的距離EW(x1,x2)= fW(x1)-fW(x2)2,傳統(tǒng)Siamese網(wǎng)絡(luò)的對比損失函數(shù)為LW(x1,x2) =yL+(x1,x2) +(1-y)L-(x1,x2),其中L+(x1,x2)=EW2表示y=1 時的損失,L-(x1,x2) =max((1-EW),0)2表示y=0 時的損失,并且當EW大于margin 時L-=0。
但在將數(shù)據(jù)輸入網(wǎng)絡(luò)之前,已基本可以通過計算編輯距離大體獲得航班號的相似情況,因此本文首先計算2 個航班號之間的Jaro-Winkler距離,使用計算結(jié)果修正對比損失函數(shù),使網(wǎng)絡(luò)能夠自適應航班號的客觀相似情況。
假設(shè)輸入文本序列為x1和x2,計算Jaro-Winkler距離中最后得分,其中n 為匹配的字符數(shù),r為換位的數(shù)目。
接著計算Jaro-Winkler距離,即當2 個文本起始部分就相同,給予更高的分數(shù)。對于航班號,起始部分代表著航空公司代碼,相同公司的航班更容易混淆。
最后對網(wǎng)絡(luò)輸出向量的距離EW進行修正,所得修正后的距離,如式(19)所示:
若2 個文本之間的編輯距離較大,更接近1,說明2個文本已經(jīng)較為相似,對于總的對比損失函數(shù)改變不大;若編輯距離較小,更接近0,說明2 個文本不相似,對于總的對比損失函數(shù)改變較大,從而需要進一步增加類間距離,加快算法的收斂。而對于本身編輯距離偏小而標定為相似情況的航班號,通過自適應Siamese網(wǎng)絡(luò)學習的數(shù)據(jù)可以避免編輯距離單一衡量標準的情況。修正前后的對比損失函數(shù)變化如圖2所示。
圖2 修正前后的對比損失函數(shù)變化Fig.2 Changes of contrastive loss function before and after cor rection
為測試網(wǎng)絡(luò)學習的效果與性能,分別采用不同數(shù)量的相似航班號數(shù)據(jù)訓練網(wǎng)絡(luò)結(jié)構(gòu),最終測試結(jié)果如表4所示。分析不同樣本數(shù)量下,3 種相似性分析方法的識別率,如圖3所示。需要說明的是,由于訓練樣本的不同,識別率可能會略有改變,但整體趨勢基本相同。
表4 相似航班號識別結(jié)果對比Table 4 Comparison of r ecognition results of similar call signs
圖3 不同方法的識別率變化Fig.3 Change in recognition rates of different methods
結(jié)合表4和圖3可知,相比于基于多標準的判斷方法,當訓練數(shù)據(jù)過少時,自適應Siamese網(wǎng)絡(luò)學習不夠充分,識別率較低,而當數(shù)據(jù)有一定積累(本次實驗需要約500 條訓練數(shù)據(jù))就可以突破多標準判斷方法識別率上限,并且有大幅度的提高,比多標準判斷準則提高約3%,說明算法有效;相比于原始Siamese網(wǎng)絡(luò),改進的自適應Siamese網(wǎng)絡(luò)在相同訓練數(shù)據(jù)量的情況下,識別率均大于原模型,平均提高約2.7%,說明增加編輯距離的修正可以更加準確識別航班號的相似性,并且改進后Siamese網(wǎng)絡(luò)對小樣本條件下識別率提高尤為明顯,效率提高顯著。
1)相似航班號混淆是一直困擾空中交通管制員的問題之一,針對以往判定條件單一、未考慮語義的情況,本文從相似航班號規(guī)則匹配、多標準相似航班號判斷、人工智能算法自動判斷,層層深入分析相似航班號判斷方法。
2)基于規(guī)則匹配的判斷方法簡便快捷,適用于快速處理的場景,但相似度難以量化,無法提供更加精細的預警;基于多標準的判斷方法,結(jié)合各種常用的文本之間相似性判斷標準,通過主成分分析法得到統(tǒng)一的量化值,適用范圍廣且受到樣本的影響較小,缺點是判斷閾值需要人為設(shè)定,識別率與誤識率的矛盾始終存在。
3)基于改進的Siamese網(wǎng)絡(luò)采用機器學習方式自動判別相似航班號,且準確率提升明顯,缺點是受到訓練樣本的直接影響較大,對于新出現(xiàn)的相似航班號不夠友好。