當前位置:
首頁 > 最新 > 無線AI應用的經典Case-流量預測

無線AI應用的經典Case-流量預測

針對無線網路流量的建模和預測研究一直備受關注。所謂網路流量是指在給定時間內通過網路或網路埠的數據大小,從無線空口到承載網元各個網路節點都是有瓶頸的,當流量達到或超過節點的瓶頸時,網路服務即會受到不同程度的影響。

當前,隨著運營商在新業務的不斷發放和市場推廣對網路流量帶來巨大的衝擊,網路流量的預測可以說是解決網路擁塞提升用戶體驗以及合理分配利用網路資源提高網路帶寬利用率的基礎。比如通過預測未來的業務流量增長或變化,支撐各專業進行決策、評估、擴容、新建和網路保障;另外由於各個節點的計費方式和價格不同,基於預測的流量進行資源調配可減少帶寬的支出等等。本文結合我們之前在無線空口流量預測上的實踐從數據預處理、演算法模型選擇、效果評估等幾個方面探討如何可以更加準確的預測網路流量。最後,結合業務目標討論分析流量預測實踐中遇到的問題與可能的解決方法。

1.小區級無線空口流量預測

近年來,隨著大數據和人工智慧的快速發展,我們的作業方式也發生了巨大變化。傳統運營商在做流量預測時經過取數、分析、規則生成、預測等步驟迭代周期過長,相對比現在利用大數據加機器學習的方式在效率、規模和準確率上都得到很大程度的提升。結合我們的實踐,以天粒度國內某省份全省17萬左右的無線LTE小區(即cell小區一天)上下行總流量為例,利用歷史90天流量數據做訓練來預測未來一周七天各小區流量分鐘級即可完成。

1.1 數據預處理

實際上,隨著國內4G網路的普及,我們在享受高速互聯互通帶來便利的同時,網路流量數據的激增也導致對應LET小區流量很難預測。比如,在多個小區覆蓋下的體育場、風景區、商業區等地,就會由於某些大型活動的舉辦或者節假日的到來使得流量突增;而大中院校覆蓋下的小區又會由於某些節假日或者寒暑假的到來選擇節能關停部分小區基站。所以在對全省或者部分地區內全部小區進行預測前,我們首先選擇過濾部分「雜訊」小區。所謂「雜訊」小區是指其流量變化或波動不規則或者波動(流量波峰波谷間差值)過大(小區基站異常關斷),這些小區流量通過常規演算法往往很難被準確預估。一種過濾方法是先對每個小區上下行總流量做STL[1]分解,將某時刻的流量數據Yv分解為趨勢分量(Trend)、周期分量(Seasonal)和不規則分量(Remainder),然後過濾掉那些原始流量 和其不規則分量 波形相似的小區 。

另外,也可以自定義「雜訊」小區的過濾規則,例如,通過指定流量序列的均值(Mean)、方差(Variance)和自協方差(Auto-covariance)閾值來判斷序列穩定性,過濾掉「非穩定」的小區(時序預測中的常見做法[2])。再比如,一種簡單的方法是計算鄰近時間段內流量波峰、波谷的比值來識別異常關斷等等。最後,在實際應用中,針對這些過濾掉的「雜訊」小區我們可以將其映射到小區具體所在的物理位置,並制定單獨的策略進行分析預測。

1.2 演算法模型選擇

流量預測常見的做法是將其轉化為時序預測模型進行求解,實踐場景是預測小區天粒度無線空口上下行總流量(也可以單獨預測上行或者下行流量),覆蓋範圍包括國內、海外等多個局點的小區流量數據。過程中,我們對每一個小區流量都單獨建模,選用來測試的方法包括傳統時序預測演算法(AR(P), Holt-Winters, SES, ARIMA)[3]、機器學習的演算法(Random Forest和Gradient Boosting regression tree)[4]。

表1.1

我們選擇以上演算法出於下面幾方面的考慮:

1) 傳統時序預測演算法如ARIMA、Holt-Winters只是線性模型,但考慮了序列的周期性和趨勢性等特點(ARIMA通過先差分得到平穩序列的方式)進行預測;

2) 很多小區流量並沒有顯著的周期性,這種情況下,基於過去近鄰時刻的流量迭代做預測(如SES(simple exponential smoothing))可以得到較好預測結果;

3) 傳統時序預測中採用了自回歸(auto-regression)的方式(如ARIMA)是單純擬合時間序列的線性關係。而非線性關係可以通過構造特徵使用其他機器學習中的回歸演算法(如隨機森林回歸、梯度提升回歸或Xgboost[7])進行求解[6];

4) 其他一些擬合非線性的回歸演算法如SVR、ANN和Fuzzy Regression[8]也常被用於時序預測,但含有超參較多,考慮到實際應用中需要自動化的對數萬小區基站進行單獨的建模,應盡量減少演算法中超參調整的部分。

除了以上演算法,在實踐的過程中,如何自動化建模且方便部署也是我們考慮的重要問題,基站小區由於地理位置、天氣、人流量等原因,會導致基站之間的差異性比較大。因此,不同的基站需要不同的模型(周期性和非周期性、線性和非線性)。對應萬數量級別扇區,人工是無法進行模型選擇。為了解決這個問題我們提出了一種將多演算法進行融合(Fusion)策略來預測小區流量,融合模型採用集成學習的基本思想首先對單個小區流量歷史數據進行訓練集和驗證集的劃分,然後所有演算法均會被使用在訓練集上,並在驗證集上計算得到對應演算法的均方誤差,最後根據均方誤差得到每個演算法權重並在預測時加權平均各個演算法的預測結果以達到更好的效果。

1.3 效果評估

實踐中,我們測試了包括國內和海外多個局點的小區流量數據,下面表格簡單的給出了某省部分地市超過4萬小區流量數據的預測結果,訓練樣本截取2017年6月至2017年9月近90天數據,預測未來7天的準確率。

圖1.2 傳統時序模型(Holt-winters)預測結果

圖1.3 GBDT regression預測結果

圖1.4 融合(Fusion)模型預測結果

圖1.5 經過預處理後的預測結果

1) 結果表中的精確區間代表相對誤差的上下界,如, 表示預測結果與真實值的比值在[0.8, 1.2]之間,即相對誤差為20%;

2) 表格中的值為佔比數據,如53.8%,表示在預測未來第一天的結果中,有53.8%的LTE小區預測相對誤差在20%以內;

3) 使用融合的方法做預測,整體預測準確度相比單一演算法有明顯的提升,接近總數60%的小區預測相對誤差在20%以內,超過總數80%的小區預測相對誤差在40%以內;

經常數據預處理的小區流量數據,再通過融合方法做預測,結果可以進一步提升。

2.問題與思考

相比於其他時序預測問題(如網站流量),單個小區空口流量的時序波形更加複雜,有些甚至很難用傳統計算周期性、趨勢性或者線性的時序模型去描述。因此,本節針對我們實踐中遇到的一些問題做進一步的討論並嘗試給出一些解決方法。

2.1 單小區建模還是統一模型

在第一部分的描述中,我們在進行流量預測時是針對每個小區進行單獨建模,然後對於萬數量級別小區,採取了並行化建模的處理方式以同時達到準確率和效率的要求。而另外一種思路是建立統一模型,即將全體小區的流量數據整體作為訓練集進行訓練併產生統一模型用於全體小區的預測,這種方式更適合利用深度學習這種可以很好擬合複雜非線性模型的方法。在今年kaggle數據建模和數據分析競賽中[9],題目是網站流量預測,排名第一的解決方案就是把所有網站的流量整體作為訓練樣本,通過特徵工程(加入pageviews、day of week、page popularity等時序和時序衍生特徵)構造新的特徵輸入,再利用Seq2Seq(基於RNN改進後的深度學習演算法適用於時序數據建模)的演算法進行訓練的[10]. 同樣的,我們也嘗試使用了包括LSTM/Seq2Seq在內的深度學習演算法進行統一建模,但目前受限於數據量和硬體條件預測準確率尚未得到顯著提升。

2.2 長周期預測

通常情況下,我們預測未來N個時刻(天或者月)的小區流量,採用的方法是one-step-ahead的方式,即以單步預測為基礎,將預測的值加入歷史數據當作真實值來對下下個時間步做預測,很明顯,這樣肯定有誤差積累。雖然Seq2Seq等演算法可以同時做多步(multiple-step)預測,但本質上還是用先前值(包括先前預測值)的聯合概率預測下一個值,誤差依然是累積的,如果某一時刻出現較大預測偏差,則可能毀了所有後續步的預測準確度。

事實上,one-step-ahead的方式僅適合於短期(short-term)的時序預測要求,而對於長周期(long-term)的需求這種方法已不再適用。而從業務的需求上,類似於「基站擴容」場景是需要對無線空口流量進行一個更為長期(3個月後甚至6個月後流量)的預測。我們曾經測試過利用融合的方法去預測3個月或者6個月的某海外局點小區流量,以20%相對誤差做衡量,準確率從初期80%的小區佔比下降到6個月後不到40%佔比。

解決小區長周期流量預測問題,一種方式是通過平滑再預測趨勢(漲幅),比如可以對小區歷史流量數據以周(2周或4周)為單位進行(average)平滑,根據平滑後的結果計算每個時段的流量漲幅再回歸未來幾個時間段後的漲幅,最後根據漲幅還原小區流量。實踐中這種方法可以在一定程度上避免one-step-ahead帶來誤差驟降的問題。另外,對於基站擴容的業務需求,在數據預處理上還要進行壓抑基站的識別。所謂流量壓抑簡單來講,就是隨著用戶數的不斷增多,小區流量增長在達到某個門限值後將會受到抑制,這時用戶體驗會變差。這部分小區可以通過規則事前過濾出來。

2.3 多特徵輸入

僅僅使用小區歷史流量數據進行預測可能是制約準確率提升的另外一個重要因素。從業務角度上理解,小區的用戶連接數,PRB(物理信道)利用率,傳輸包大小甚至視頻,p2p等流量佔比數據都與預測小區流量有著密切關係。引入多維度的特徵進行小區流量預測,可以從幾個方面做嘗試:

1) 基於特徵進行分組:可以根據自定義的小區(平均)用戶連接數與(平均)PRB利用率將所有小區進行劃分,將相似用戶數和PRB利用率的小區劃分為一組,然後同組小區流量數據整體做訓練(可以選用隨機森林回歸、梯度提升回歸或Xgboost任意一種)得到統一模型,預測階段再根據當前小區所在的分組進行預測。

2) 多元特徵回歸:簡單講就是將所有t時刻的相關特徵(如用戶連接數、PRB利用率包括當前時刻小區流量等)作為輸入回歸t+1時刻的小區流量,這樣構造出的訓練集再利用最小二乘的方法求解回歸係數,最後依然通過one-step-ahead方式預測未來N個時刻,當然這種做法本身也同樣存在誤差累計的問題。

3.結語

小區流量預測可以說是各種無線AI應用中的一個經典案例,本文就我們的一些實踐探討了如何可以提高預測準確率的若干方法。事實上,準確預測小區流量是非常難的,尤其對於長周期的預測場景,基建改造、運營商的業務變更都會對小區流量帶來巨大的衝擊,並且預測結果難以立刻得到有效驗證,而短期的預測又會被一些突發事件和「雜訊」所影響,比如節假日、大型活動、異常關斷等等。所以,未來流量預測一方面要尋求更有價值的應用場景,另外一方面提升預測準確率則要考慮「事件」(節假日各種活動、套餐推廣)影響,用戶(終端變更)影響等更多因素加入到預測特徵輸入中。

4.參考

[1] Cleveland, Robert B., William S. Cleveland, and Irma Terpenning. "STL:A seasonal-trend decomposition procedure based on loess." Journal of Official Statistics 6.1 (1990): 3

[2] 李子奈、葉阿忠 ,《高等計量經濟學》(2000),清華大學出版社

[3] Hyndman, R. J. & Athanasopoulos, G. Forecasting: Principles and Practice

[4]https://spark.apache.org/docs/latest/mllib-ensembles.html

[5] B. J. Chen, M. W. Chang, and C.-J. Lin, 「Load forecasting using support vector machines: a study on EUNITE competition 2001,」 IEEE Trans. Power Syst (2004).

[6] T.-Q. Chen and C. Guestrin. XGBoost: A scalable tree boosting system. In KDD 2016, pages 785–794

[7] Hong, T., & Fan, S. 「Probabilistic electric load forecasting: a tutorial review」. International Journal of Forecasting (2016)

[8] https://www.kaggle.com/c/web-traffic-time-series-forecasting/

[9]https://github.com/guillaume-chevalier/seq2seq-signal-prediction

[10]https://github.com/Arturus/kaggle-web-traffic

更多信息請關注 「人工智慧園地」公眾號


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 人工智慧園地 的精彩文章:

人工智慧測試初探

TAG:人工智慧園地 |