任心怡 金 鑫 鄭 圣 周 瑩 戴筠迪 蔣迅婕
中國聯合網絡通信集團有限公司江蘇省分公司
VoLTE(Voice over LTE)是基于IMS網絡的語音業務解決方案。VoLTE基于IP傳輸數據,其數據和語音業務全部承載于LTE網絡,可以在給用戶提供高速率數據業務的同時提供高質量語音和視頻通話。
VoLTE網絡架構一般可由業務平臺、核心網、承載網、接入網和終端構成。其中,核心網結構復雜、網元眾多,在整個網絡中具有舉足輕重的地位。VoLTE核心網可劃分為PS域、CS域、信令層、分組域等,各部分的網元種類繁雜眾多。如負責業務承載的EPC,主要包括策略與計費規則功能單元(PCRF)、移動管理實體(MME)、歸屬簽約用戶服務器(HSS)、域名系統(DNS)、路由代理節點(DRA)、SAE-GW(分組數據網關(P-GW)、業務網關(S-GW)和計費網關(CG)。PS域的IP多媒體子系統的網絡組成主要包括:服務呼叫會話控制功能(S-CSCF)、代理呼叫會話控制功能(P-CSCF)、詢問呼叫會話控制功能(I-CSCF)、IP多媒體網關(IM-MGW)。S-CSCF是IP多媒體子系統的核心,主要負責歸屬網絡中UE的注冊請求和會話控制;P-CSCF是IP多媒體子系統中手機終端的首個通信節點,負責進行請求驗證,請求通過后將信息轉交給下一目標,并做處理和轉發響應操作;I-CSCF是運營商網絡的內部接觸點,主要負責查詢HSS中用戶地址等;IM-MGW負責IP多媒體子系統與固網及電路交換域之間的互聯互通,提供了CS交換網絡和IP多媒體子系統之間的用戶平行鏈路。
在整個運營商網絡中,一旦核心網發生故障,會對用戶的網絡感知造成很大影響。因此,需要快速發現核心網風險,在影響范圍擴大之前及時消除故障。關鍵性能指標(Key Performance Indicator,KPI)反映了網絡性能和質量,對KPI進行分析挖掘,能夠在一定程度上及時發現網絡質量劣化風險。傳統的核心網KPI異常檢測方法基于設備關鍵指標的固定閾值進行監控,不能基于業務進行全面、體系化的監控,無法及時發現現網故障風險和隱患。
本文基于中國聯通江蘇省VoLTE業務,構建了用于VoLTE核心網性能檢測的KPI指標體系,并利用機器學習技術對KPI指標進行訓練學習,構建多維度KPI異常檢測模型,實現了業務性能實時異常檢測和預警上報。
梳理VoLTE核心網KPI異常檢測指標體系,通過各個KPI指標的數據特征匹配不同的模型算法,并學習得到各類指標的動態閾值,之后,設計業務過濾規則,對造成業務影響較小的情況進行過濾。主要構建邏輯如圖1所示。

圖1 異常檢測構建邏輯
VoLTE核心網的指標主要可分為三類:注冊、呼叫、切換。本文使用與業務相關的VoLTE核心網話務統計指標,在注冊、呼叫、切換三大指標類別下,再按照網元類型進行劃分,之后基于KPI指標特性進行指標分組,以適配不同的異常檢測算法。
KPI指標根據其本身的數值特征可分為:無明顯波動指標、有波動但無明顯周期性指標、弱周期性指標以及強周期性指標。此外,考慮到VoLTE業務的逐步推廣、用戶數量逐漸增多,部分指標如注冊請求數、試呼次數等可能呈現弱趨勢性。
鑒于VoLTE核心網業務特性,大部分指標如接通率、請求數、注冊成功率、響應成功率等呈現以24小時為周期的強周期性波動,可采用回歸模型或時序分解模型對每個指標的周期性、趨勢性進行單獨建模分析。部分呼叫類SIP(Session Initiation Protocol,會話初始協議)響應碼可呈現弱周期性波動、無規律性波動或無波動狀態,網元的每類業務流程通常可對應多個響應碼,在實際建模過程中,需要根據業務流程對響應碼類的KPI指標進行拆解分組,對于各個分組內的響應碼進行合并建模訓練。
具體示例見表1,其中,S-CSCF為IMS的服務呼叫會話控制單元,ATS為IMS的應用服務單元,eSRVCC為增強的無線語音呼叫連續性。

表1 VoLTE核心網KPI異常檢測指標體系示例
建模前需要對KPI指標進行預處理,主要包括時間戳的補齊、缺省值的填充、異常值的剔除及數據的平滑去噪。其中,時間戳補齊和缺省值填充可采用多項式插值法;異常值剔除可采用統計學方法如箱線圖法、3-Sigma法等;數據平滑可采用局部線性回歸等方法。
此外,針對強周期性波動的指標,為了更好地讓模型學習到其數值規律,本文采取基于等長有重疊的時間滑窗對時序KPI數據進行分段。該分段方法不僅能夠保證將持續時間較長的數據模式完整地分割出來,還能夠保持原有時序數據在時間上的先后依賴性。本文采用的等長有重疊的時間滑窗數據分段方法具體為:設時序樣本記為X=(x1,x2,x3,…,xt,…,xn),其中xt表示X在t時刻的取值。現將時序樣本X以長度為w的滑窗、s為步長進行截取,得到樣本集Y。具體的劃分表示如下:

實際應用中,滑窗長度w一般以24小時為基準,結合數據的時間顆粒度進行取值;步長s一般取1小時。
根據KPI異常檢測指標分組,在完成指標預處理后,匹配不同的檢測算法,并融合統計學方法得到最終的異常判斷閾值。
1.3.1 基于極端梯度提升樹的KPI異常檢測
針對具有強周期性波動的單一指標,如各網元的接通率、請求數、注冊成功率、響應成功率等,鑒于其本身的指標特征,本文選取極端梯度提升樹(eXtreme Gradient Boosting,XGBoost)模型來進行訓練及預測。XGBoost是一種集成學習算法,在傳統的梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)算法上進行了改進。GBDT在優化時僅使用一階導數信息,而XGBoost則對損失函數進行二階泰勒展開,同時用到一階和二階導數。XGBoost還在損失函數中加入了正則項,控制模型的復雜度,正則化可以降低模型的方差,使模型更簡單且避免過擬合。XGBoost模型可以較好地學習到數據的周期性及趨勢性特征,且需要的訓練樣本相對少,訓練及預測速度快。具體的實現流程如下:
Step1:取7天 以上 的KPI時 序 樣 本 記 為X=(x1,x2,x3,…,xt,…,xn),其中xt表示X在t時刻的取值。采用基于滑窗的分段方法,滑動地以長度為w的滑窗、s為步長截取時序數據作為訓練數據的輸入Y,以每段滑窗數據的下一個點作為預測的目標值Z。
Step2:將Step1中得到的訓練數據Y作為模型的輸入,預測目標值Z作為模型的輸出,訓練XGBoost回歸模型,完成模型的構建。
Step3:預測時,輸入一段新的滑窗數據,依據訓練好的XGBoost回歸模型得到該段滑窗下一個點的預測值。
因模型訓練前進行了異常值剔除的預處理操作,故XGBoost學習到的是每個KPI時序數據的平穩周期性特征。當異常出現時,某一時刻的真實值可能與XGBoost預測值出現較大偏差,因此需要確定一個閾值區間來判斷該時刻的真實值是否為異常。在訓練XGBoost模型得到每個時刻的預測值之后,計算每個預測值與該時刻真實值之間的偏差,得到偏差序列,之后,利用箱線圖法得到偏差序列的閾值區間,用于異常判斷。箱線圖法利用數據中的五個統計量,即最小值、第一四分位數、中位數、第三四分位數、最大值來描述數據,IQR為第三四分位數Q3與第一四分位數Q1的差值,實際應用中,一般認為大于Q3+3*IQR或小于Q1-3*IQR的值為異常。
完整的偽代碼如下:

?

?
1.3.2 基于核主成分分析的KPI異常檢測
針對具有業務相關性的KPI指標組,如各個業務流程下的SIP響應碼組,為了挖掘指標與指標之間存在的隱形關聯,本文選取帶核方法的主成分分析(Kernel Principal Component Analysis,KPCA)算法來進行訓練及預測。主成分分析(Principal Component Analysis,PCA)是一種統計方法,將多個可能存在相關性的變量通過正交變換轉換為一組線性不相關的主成分,是數學上用來降維的一種方法。而KPCA是PCA的一種改進版,它引入核函數的概念,將原始空間映射到高維的特征空間,在高維空間進行PCA分析,使輸入數據具有很好的可分性。本文利用KPCA將具有業務相關性的KPI指標組進行重構,通常情況下,重構后的第一主成分通常能夠包含95%重構特征的方差比,即第一主成分在很大程度上反映了原始數據中的重要信息,而剩余的主成分則可能包含噪聲。實際應用中,一般選取高斯核作為KPCA的核函數,在完成對原始KPI指標組數據的重構后,將重構后的第一主成分映射回原始數據空間。具體步驟如下:
Step1:取7天以上的KPI指標組時序樣本集記為X=(X1,X2,X3,…,Xt,…,Xn),其中Xt表示t時刻指標組內某一指標的取值。
Step2:將Step1中的時序樣本集輸入KPCA模型進行重構,之后選取第一主成分映射回原始數據空間,得到新的數據集Y=(Y1,Y2,Y3,…,Yt,…,Yn)。
Step3:以24小時為周期,計算step2中得到的新數據集Y在24小時當中每個時間點上的平均值,得到預測集Z=(Z1,Z2,Z3,…,Zm)。
因模型訓練前進行了異常值剔除的預處理操作,故KPCA學習到的是無異常狀態下的數據特征。當異常出現時,某一時刻的真實值可能與重構后映射回原始數據空間的預測值出現較大偏差,此時可以參考單指標模型中的箱線圖法來確定指標組內每一個KPI指標在24小時內每一個時間點上的閾值范圍。
完整的異常檢測偽代碼如下:

?
1.3.3 基于高斯混合模型的KPI異常檢測
針對無明顯規律性但數據形態較為穩定的單一指標,可采用高斯混合模型(Gaussian Mixture Model,GMM)對其進行訓練及預測。

GMM是指具有如下形式的概率分布模型:

檢測時,通過計算數據在整體分布中的概率,來判斷其是否為異常點。具體流程如下:
Step1:取7天以 上 的KPI時 序 樣 本 記 為X=(x1,x2,x3,…,xt,…,xn),其中xt表示X在時刻t的取值。
Step2:將Step1中的時序樣本X輸入高斯混合模型進行訓練,得到高斯混合模型參數。
Step3:將Step1中的時序樣本X輸入訓練好的高斯混合模型并計算得到逐樣本點的整體概率,利用箱線圖法得到概率的上下閾值。
Step4:異常檢測時,針對每個時間點的數據,輸入Step2中訓練好的高斯混合模型,結合Step3中的概率上下閾值,判斷是否為異常。
實際應用中,VoLTE核心網各網元的KPI指標基本都具有一定周期性,基于XGBoost的異常檢測和基于KPCA的異常檢測可以涵蓋絕大多數異常檢測場景,因此,本文暫未啟用基于GMM的異常檢測。
在經上述模型判斷出異常后,需要通過業務過濾規則對異常進行進一步的篩選。通常情況下模型對異常的識別相對靈敏,業務過濾規則的設計是為了去除核心網KPI的一些合理抖動,從而更專注于真實異常的發現。
本文中的業務過濾規則融入核心網運維專家經驗,考慮到不同時段核心網業務量的差異及夜間割接情況,將模型學習出的閾值在合理區間內進行小范圍調整,并引入多時間點監控機制,在確保真實異常能夠被檢測出的前提下,過濾掉因KPI正常抖動造成的模型誤檢,提升檢測準確度。具體流程如圖2所示。

圖2 業務過濾規則
本實例選取了VoLTE核心網S-CSCF網元LTE接入被叫側的SIP響應數據。該KPI指標組內包含多個KPI指標,即S-CSCF網元LTE接入被叫側的各類SIP響應。采用KPCA對該KPI指標組內的指標進行重構,并選取第一主成分映射回原始數據空間。可以觀察到該指標組內的“S-CSCF LTE接入被叫408請求超時次數”于9月9日15:00左右產生了一個異常突變,如圖3中藍色曲線所示。
圖3中藍色曲線為該KPI指標的觀測值,灰色曲線為經異常檢測模型及業務過濾規則預測得到的指標閾值,該異常可以被捕捉。同時,“S-CSCF LTE接入主叫408請求超時次數”也捕獲到相似的異常情況。后期經核心網運維專家驗證,9月9日下午VoLTE核心網發現故障,間接說明了本文基于多指標模型的KPI異常檢測的可行性。

圖3 突變類異常檢測實例
本實例選取了VoLTE核心網S-CSCF網元MT接通率指標的數據。該指標為單指標,我們使用相應的單指標模型進行訓練和預測,預測結果如圖4所示。圖中藍色曲線為真實接通率,灰色曲線為XGBoost算法預測出的下閾值邊界。圖中可見,我們檢測出在5月29日 01:40到5月29日 07:05之間發生了漸變類的接通率過低異常。在真實現網環境中,及時發現漸變類異常是非常有意義的,因為我們一旦發現異常就可以及時預警,并采取補救措施,避免性能指標持續劣化,從而避免對運營商的網絡服務質量造成更大的影響。

圖4 漸變類異常檢測實例
核心網KPI能夠實時反映網絡運行情況及質量,KPI異常檢測對于及時發現現網故障及隱患有著十分重要的意義。本文以VoLTE核心網為例,基于業務流程梳理KPI指標體系,并采用多種機器學習算法,對核心網KPI異常檢測的檢測流程、算法邏輯及模型選型進行了研究探索,提出了一套VoLTE核心網KPI異常檢測方案,打破了傳統基于設備關鍵指標的固定閾值進行監測的方式,使監控更全面、故障發現更及時,具有較大的應用前景。