李 國,袁 聞+,王懷超
(1.中國民航大學 計算機科學與技術學院,天津 300300;2.中國民航大學 中國民航信息技術科研基地,天津 300300)
中國民航旅客信息服務主要由中國民航信息股份有限公司的新一代旅客服務信息系統提供,其由21個相對獨立的子系統組成,在航班信息查詢、航班預定、出票、航班離港、費用結算、旅客畫像等核心業務中承擔主要工作。由于各系統之間標準數據結構定義不同,存取方式不同,系統之間通信方式差異等多方面原因,從而造成數據缺失、數據冗余、數據不一致等數據質量問題,從而影響到后續旅客流失預測分析及其它方面的應用,對航空公司收益造成巨大的損失[1-3]。
本文所研究的問題為基于民航旅客服務信息數據不完備且類別不平衡的情況下,對旅客進行流失預測。傳統的方法將此問題分開串行處理,先將數據集缺失數據使用基于統計的方法或基于機器學習的方法進行填補,再將填補后完整的數據集進行旅客流失預測模型構建,因沒有關注任務之間的相關性,導致當數據集屬性維度較多,且缺失率較高時,填補后的數值與真實值差異較大,從而影響預測任務精確性。
針對上述問題,本文考慮到兩個任務之間的相關性,提出以多任務學習為框架,將旅客流失預測作為主任務,缺失數據填補作為輔助任務,利用兩個任務之間的相關性,將兩個任務在深度學習模型下同時并行建模,在提高數據處理與分析效率的同時,極大提升了預測精度。實驗結果表明,本文提出的方法在數據不完備的條件下對缺失數據的填補質量較高,同時能精準地對旅客進行流失預測,從而能為航空公司提供有效的決策,挽回相應的損失。
目前針對類別不平衡問題處理的方法主要包括:樣本采樣技術、代價敏感學習技術、決策輸出補償技術、集成學習技術、主動學習技術、一分類技術[4]。其中,樣本采樣技術是在工程上最為常用的技術。即通過增加少數類樣本或減少多數類樣本的方式以獲得相對平衡的訓練集。增加少數類樣本的方法稱為過采樣(oversampling),減少多數樣本的方法稱為欠采樣(undersampling)。考慮到使用欠采樣方式,會使訓練集中旅客記錄數據量減少,導致后續模型可能學習不到旅客的重要特征,從而影響旅客流失預測精度。因此,本文決定采用過采樣技術處理類別不平衡問題。其中,SMOTE算法[5]是由Chawla等提出的經典隨機過采樣方法,可有效解決少數類樣本不足的問題。其主要思想在于,以每個少數類樣本為中心,采用最近鄰KNN算法,選出K近鄰少數類樣本。在距離較近的K近鄰少數樣本之間通過式(1)隨機生成一個新樣本
(1)

多任務學習(multitask learning)是一類同時學習多個相關任務的機器學習算法,基本思想是在學習期間利用其它相關任務中包含的信息,更好地或更快地學習任務[6]。其優點是能同時并行學習多個任務,并且通過每個任務互相學習其它任務的所附加的額外信息,能最快最好提升自身任務的學習性能。此外,由于使用共享表示,多個任務同時進行預測時,減少了數據來源的數量以及整體模型參數的規模,使預測更加高效。
自編碼器是一種無監督學習神經網絡,由編碼器和解碼器兩部分構成。編碼器通過隱藏層將輸入樣本數據進行降維或升維,從而起到數據編碼的作用。解碼器將編碼器輸出的樣本再次通過隱藏層恢復到原來輸入編碼器時的維度,從而起到數據解碼的作用[7]。利用逐層訓練優化算法初始網絡權重并使用反向傳播算法對網絡參數進行微調。通過多次組合自編碼器網絡,把當前層的輸出作為下一層的輸入,可形成堆疊自編碼器深度神經網絡。
編碼過程為
(2)
解碼過程為
Y=g(H):=Sz(a′H+b′)
(3)
損失函數為
(4)
(網絡參數為:W={a,a′,b,b′})

(5)

結合式(5),采用SMOTE算法對少數類別樣本進行過采樣步驟如下:
(1)將少數類中每一個樣本,根據式(5)計算其到少數類集合所有樣本點的距離,得到K近鄰樣本;
(2)根據樣本不平衡比例設置合適的采樣頻率N,從K近鄰樣本中,隨機選擇若干樣本;

(6)
其中,rand(0,1)表示生成0到1之間的隨機數。
針對數據屬性缺失處理,數據缺失值填補的最終目的是能對旅客流失做出精確的預測。結合多任務學習與降噪自編碼器的優勢,本文設計出一種基于降噪自編碼器的多任務學習網絡模型MLT-DAE。由模型架構和訓練過程分別進行論述。
2.2.1 模型架構
模型網絡架構如圖1所示。

圖1 模型MLT-DAE網絡架構
圖1中提出的架構由3部分組成:編碼器、解碼器、分類器。各部分中間均包含多個隱藏層,其中編碼器與解碼器構成堆疊降噪自編碼器。參考有關DAE網絡[10-12]架構,區別于傳統自動編碼器架構,受Kernal SVM[13]啟發,本文采用的架構在編碼階段與輸入層相比,連續隱藏層中的單元數更多,試圖將輸入數據映射到更高維子空間,將數據擴充有助于增加數據可分性以及增強數據恢復能力。從初始Xn維輸入開始,然后在每個連續的隱藏層,添加a個節點,將維度增加a維。在模型輸入階段,將輸入數據進行歸一化處理,使得數據數值在0和1之間,以加快模型在中小樣本量時收斂,同時引入噪聲,在輸入層隨機將輸入Xn中的一半分量設置為0,使得網絡能提取到更加抽象的特征,增強網絡魯棒性。對于降噪自編碼器部分,因為由多個隱藏層構成,因此采用逐層貪婪方式先對編碼器和解碼器網絡進行預訓練,最后配合分類器對整個模型參數進行微調。采用交叉熵損失函數針對分類器進行訓練,采用均方差損失函數針對編碼器解碼器進行訓練。由于在初始化時需要完整的數據,因此在不完整樣本輸入前,對于缺失的連續變量使用相應的列平均值進行初始填補,對于缺失的分類變量的使用屬性中出現最多的值作為初始填補。
2.2.2 模型訓練過程
輸入:數據集X1,X2,X3,…,Xi,任務權重系數λ
輸出:encoderFφ,decoderGθ,classifierHβ
(1)初始化網絡參數φ,θ,β;
比特幣不是基于賬戶的密碼貨幣,而是基于交易的密碼貨幣。在基于賬戶的貨幣中,我們可以通過賬戶直接查詢余額;但在比特幣系統中,我們需要通過未花費交易輸出(UTXO)來統計該地址余額。

(3)逐層無監督預訓練編碼器encoderF、解碼器decoderG;
(4)結合分類器classifierH,通過任務權重系數入對整體網絡進行聯合訓練,并有監督微調降噪自編碼器網絡;
(5)Repeat
(6)計算對應任務的損失函數
E=λEm+(1-λ)Es

(8)Until網絡參數φ,θ,β收斂。
模型由一個輸入端,兩個輸出端構成。解碼器的輸出是為了對輸入數據的缺失值進行恢復,從而采用均方差損失函數進行模型訓練。分類器的輸出是為了對最終目標流失預測任務,從而采用交叉熵損失函數進行模型訓練。由于兩個任務的重要程度不一致,因此在模型中引入任務權重系數λ[14],用于調節模型訓練兩個任務的權重,以平衡兩個任務的重要程度,對模型整體性能有著非常重要的影響,是重要的模型調優參數。λ的最優值一般處于0到1之間,并且它的取值取決于所解決問題的性質以及當前數據質量。

圖2 整體數據流
步驟1 從民航常旅客畫像服務主數據系統抽取旅客服務信息數據。其中,抽取的數據的屬性主要為旅客基本信息、旅客值機信息、旅客積分信息等。
步驟2 按照行業經驗,對抽取的數據進行相關預處理,并進行數據標注后,等比例對數據進行分割。將90%的數據形成訓練集,10%的數據形成測試集。
步驟3 同時對訓練集與數據集模擬完全隨機缺失,形成不完備訓練集、不完備測試集。
步驟4 將不完備訓練集使用提出的基于部分距離的SMOTE算法進行隨機過采樣生成類別平衡后的不完備訓練集。
步驟5 將類別平衡后的不完備訓練集與完備訓練集放入設計好的多任務學習降噪自編碼器模型,進行模型訓練。
步驟6 將不完備測試集與完備測試集放入已訓練好的網絡模型進行相關性能指標驗證。
步驟7 判斷是否重復已訓練模型10次,如果已訓練10次,則計算模型平均性能指標,否則回到步驟3繼續。
本實驗采用從中航信旅客信息服務部門旅客信息服務主數據系統中抽取的某航空公司部分常旅客會員信息服務主數據。將數據進行如上文所述流程處理后,分別進行相關對比實驗以驗證所提出方法的有效性。
由于涉及旅客和航空公司的相關隱私信息,所有屬性均經過脫敏處理。數據集一共37 237條樣本記錄,屬性維度為44維。數據集中,其與核心業務相關的主要屬性包括3個方面:①旅客基本信息:包含旅客ID、旅客性別、旅客年齡、旅客工作所在城市、旅客價值等級、首次乘機時間、旅客入會時間等。②旅客值機信息:包含旅客當前累積飛行次數、第1年乘機次數、第2年乘機次數觀測窗口結束時間、旅客飛行總公里數、票價總收入、平均折扣率、平均乘機時間間隔、末次飛行日期等。③旅客會員積分信息:總基本積分、積分兌換次數、總精英積分、促銷積分等。
參考民航旅客價值評估體系分析的獨有特點,對傳統的客戶價值RFM指標進行相應改進,引入旅客保持關系長度L、一定時間內旅客所享受的平均折扣系數C,形成L、R、F、M、C這5個價值系統指標,作為重要的生成特征[15]。其中,L可由旅客觀測窗口結束時間與旅客入會時間相減計算出;R代表旅客最近一次距今消費時間可由觀測窗口結束時間與末次飛行日期相減計算出;F代表消費頻率可以由屬性當前類型飛行次數得出;C可以由屬性平均折扣率得出。同時,根據業務分析人員經驗判定第2年乘機次數與第1年乘機次數比例低于50%為已流失旅客,處于50%到90%之間為準流失旅客,依然高于90%以上為未流失旅客。其余屬性在刪除例如對模型訓練無意義的旅客ID屬性同時,對數據集中的離散特征的標簽類別屬性如旅客性別、旅客工作所在城市等進行數值化處理。最終,形成特征數40維,已流失旅客數為4802,準流失旅客數為8301,未流失旅客數為25 134,可以看出絕大多數的會員為未流失狀態,已流失的會員相對來說比較少,非常符合類別不平衡的情形。為了訓練模型的缺失值填補能力,針對現有的3種缺失機制:完全隨機缺失、隨機缺失、非隨機缺失[16],考慮到完全隨機缺失(MCAR)具有普適性,因此對預處理后的訓練集、測試集以缺失率0.1至0.6分別模擬完全隨機缺失,最終形成符合數據系統環境下的不完備訓練集、測試集。在正式輸入網絡模型訓練前,將數據進行歸一化處理,以加快網絡模型的參數收斂。
本實驗環境為Windows 10 64 bit,CPU 2.8 Hz 內存16 G,使用Python語言及Tensorflow2.0框架完成相關數據處理以及模型訓練。其中基于部分距離的SMOTE算法,近鄰個數k為5,采樣倍率N為5和3分別對已流失旅客和未流失旅客進行隨機過采樣,從而使數據集類別達到平衡。基于降噪自編碼器的多任務學習網絡模型,經過多次實驗采用四層網絡架構,隱藏層激活函數設置為Tanh函數,解碼器輸出層激活函數設置為Sigmod函數,采用均方差損失函數,分類器輸出層激活函數設置為Softmax函數,采用交叉熵損失函數,編碼器每層增加的節點數a為7。整體模型采用Adam優化函數計算更新網絡權重。訓練輪數Epoch設置為200,每次訓練批處理數Batchsize為256,任務權重系數λ為0.1~0.9。
在傳統分類算法中,一般以整體正確率為評價指標。由于本文所面向的數據集類別不平衡,因此準確識別出絕大部分未流失旅客,可能整體正確率會高達95%以上,但這對于航空公司來說沒有實際價值意義,重點在于能精確識別出未流失旅客和準流失旅客。因此,實驗采用綜合衡量模型精準率(Precision)和召回率(Re-call)的F1-Score值作為分類預測旅客流失任務的評價指標,其值越大越好,即
(7)
同時,對于缺失值填補任務,采用均方差損失(RSME)作為評價指標,其值越小越好。
3.5.1 分類預測效果對比
在分類效果對比實驗中,將本文提出的基于降噪自編碼器的多任務學習方法分別與通過傳統主流數據填補算法均值填補算法、MIC算法[17]、KNN、SoftImpute算法[18]先進行缺失值填補,再采用SVM算法進行分類預測對比。同時,將基于部分距離的SMOTE算法與以上算法結合,驗證其有效性。實驗結果以F1-Score值作為度量分類任務性能指標,全部實驗均重復10次以獲得最終平均結果。實驗結果如圖3所示。

圖3 分類預測效果對比實驗
由圖3可知,實線均為各算法在數據經過提出的改進SMOTE算法在類別平衡化處理后使用后續相應算法訓練出的結果。相比未經類別平衡化處理,各算法在使用提出的改進SMOTE算法后在分類性能上均有相應的提升,體現出基于部分距離的SMOTE算法在解決缺失模式下數據類別不平衡的問題的有效性。同時,相比先對缺失值進行填補,后對填補后的數據集進行分類預測的傳統處理方法,本文提出的MLT-DAE網絡模型在缺失率不斷增大下有著非常好的優越性及穩定性,F值一直處于0.95以上的水平,而均值填補、KNN填補、SoftImpute填補當數據集缺失率較大時,模型的分類精度均出現較大的損失。主要原因在于,在數據缺失率較高情況下經過基于部分距離的SMOTE隨機過采樣會生成的帶有噪聲的數據樣本,從而影響后續進行分類任務的性能。由此可以分析出:①經過采用基于部分距離的SMOTE算法,能有效解決缺失模式下的類別不平衡問題。②類別平衡后的數據經過降噪自編碼器處理可以較大減小數據經過基于部分距離的SMOTE算法采樣后形成的噪聲,從而有助于提升分類任務的性能。
3.5.2 填補效果對比
對于缺失值填補任務,將MLT-DAE模型對不同缺失率下的數據集進行填補,以對缺失率為0.3的測試集LRFMC屬性填補效果為例,經多次測試本文提出的模型部分填補效果見表1~表3。同時將本文提出的方法與均值填補法、MICE、KNN填補法、SoftImpute填補法進行對比。采用均方根誤差RMSE作為評價指標,為減小隨機誤差,分別對5種方法重復進行10次實驗,得到綜合實驗結果如圖4所示。

圖4 缺失填補效果對比
由表1~表3所示,模型在對民航價值業務體系業務指標LRFMC的填補有著非常不錯的效果,經模型填補后的數值與數據原始值較為接近,有助于后續對旅客進行更進一步的數據畫像分析。同時,由圖4所示,相比傳統方法本文提出的方法在缺失填補方面也一直保持較好的效果,隨著數據缺失率不斷增大,均方根誤差與其它傳統方法相比較低,且差距明顯。尤其是在數據集缺失率較高的情況下,配合多任務學習能對數據進行有效填補。進一步從側面體現出,在不完備數據集進行旅客流失預測任務時,缺失值對分類結果有著直接的影響。算法對缺失值的填補性能的提升有助于分類任務性能的提升。

表1 測試集LRFMC屬性原始記錄

表2 測試集LRFMC屬性缺失記錄

表3 經過模型填補后LRFMC屬性記錄
3.5.3 多任務學習有效性驗證實驗對比
由于本文提出的MLT-DAE網絡模型既能進行旅客流失預測任務又能進行缺失值填補,為了驗證多任務學習網絡架構的有效性,將經MLT-DAE網絡模型去掉分類器直接采用由編碼器和解碼器構成的DAE網絡模型填補后的輸出,配合SVM算法、邏輯回歸(LG)算法進行旅客流失預測,與MLT-DAE分類器端的結果輸出進行對比。分別以缺失率0.2、0.4、0.6重復進行10次實驗,取平均值作為最終結果,綜合結果見表4。

表4 多任務學習驗證對比
從實驗結果可以歸納出,針對旅客流失預測問題,傳統的SVM算法要略好于LG算法,原因在于SVM在高維空間中找出分割面將數據按照類別得以分割,類別不平衡對其影響較小,而LG算法要度量總體損失函數,對平衡類別較為敏感。本文結合業務環境提出的預測方法,考慮到自編碼器對數據進行自動特征提取的優勢,將數據在編碼階段進行維度擴展得到更高維更抽象的特征表達,配合解碼器網絡和分類器網絡,使得中間層學習到的特征表達既包含原有數據樣本缺失的信息,又能對數據進行有效的分割,從而使缺失值得填補以分類預測為導向,有助于提升預測精度。
3.5.4 參數任務權重系數λ
MLT-DAE模型,對兩個任務同時進行處理,由于兩個任務有各自的權重,因此模型的輸入參數任務權重系數λ對模型收斂及整體性能有著非常重要的影響。以缺失率為20%、40%、60%的數據集為實驗數據進行說明,以F值為評價指標,對任務權重系數λ設置,以0.1為步長,從0.1到0.9分別對數據集進行對比實驗,以發現最優值規律。實驗綜合平均結果見表5。

表5 參數任務權重系數λ選擇
當數據集缺失率低于10%時,參與模型訓練的數據質量比較高,網絡模型聯合訓練應該偏向旅客流失預測分類任務,λ值可從0.1~0.2中設置。隨著數據集的缺失率逐漸升高,參與網絡模型訓練的數據質量逐漸變低,使得模型訓練由原來的以流失分類預測為主任務轉為以缺失值填補為主任務,導致λ值也相應升高。因此,實際在生產環境上部署訓練模型時,要根據當前環境下的數據質量以及模型的主要任務搜尋合適的權重系數以使模型性能達到最優。
針對民航旅客信息服務系統中數據缺失影響對旅客做流失預測的情形,本文對已有SMOTE算法進行改進,使其能在不完備數據集下對已流失旅客和準流失旅客進行過采樣以平衡數據集。同時,設計出一種基于降噪自編碼器的多任務深度神經網絡模型,將旅客流失預測任務作為主任務,數據缺失值填補作為輔助任務,同時并行解決民航旅客服務信息主數據缺失值填補以及民航旅客流失預測問題。實驗結果表明,相比傳統處理方法,模型考慮到現實生產環境,在分類任務和缺失值填補任務中有著較好的性能,可提升分類精度和數據質量,同時更為重要來說使其能在數據不完備的情況下對旅客流失進行精確預測,因此具有較大的工程實用價值。