无线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

更多信息请关注 “人工智能园地”公众号

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180626G1LW4W00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券