当前位置 鱼摆摆网 > 教程 > 淘宝开店 > 网店知识库 >

电商集群的流量预测与不确定性区间估计

  作者:鱼摆摆   2019-04-27 09:24

1.背景与问题介绍

1.1 鲁棒性流量预测意义

流量预测对智能容量规划和任务调度具有重要意义,然而大规模电商集群的流量会出现各种复杂的极端事件,如线上促销活动、流量限制等。这些极端事件会导致时间序列中出现很多突发脉冲,从而给流量预测带来巨大挑战。同时,容量预测应当对不确定性具有鲁棒性,即能很好地应对未来可能出现的情况,保证集群稳定性,而并非严格地根据预测值进行容量收缩。针对大规模分布式电商集群的流量场景以及动态容量规划的需求,提出了包含不确定性估计的流量实时预测框架。该框架基于多变量的LSTM自动编码器和贝叶斯理论,在进行流量确定性预测的同时能够给出准确的不确定性区间估计。


2  数据集与特征工程

  实验原始数据集来源于真实的电商集群,通过分布式链路追踪技术收集,采样频率为每分钟。本文利用三份不同时间段的原始数据进行算法检验,每份数据包含40天的训练数据和后7天的测试数据。在前两份数据集中,预测集同训集保持了较好的数据一致性;在最后一份数据中,需要预测的7天数据与训练数据模式不一致,时间序列总体趋势快速下降。本文用这份异常数据来检验算法的稳定性与鲁棒性。


3 研究方法

3.1 Seq2Seq神经网络

2014年,Cho等人[15]为了解决序编码问题提出基于RNN的Seq2Seq编码-解码网络结构,该模型提出后受到了持续关注。随后,Sutskever 等人[16]提出基于LSTM的Seq2Seq网络,来解决长时依赖问题。Seq2Seq的编码器接受任意长度的输入序列并将信息压缩到隐层特征空间,解码器利用特征空间信息重构,可以输出不同于输入长度的时序序列。本文利用两个LSTM层分别作为Seq2Seq的编码与解码器,如图1所示。LSTM是一种特殊的递归神经网络结构,每个单元是一个细胞,可以接受输入并产生输出。不同于全连接层的神经元,LSTM的每个细胞还拥有两个状态:隐状态和细胞状态,LSTM通过这两个状态推动信息在同网络层细胞、不同层网络层和不同时间步之间的流动。 每个LSTM细胞内有三个门:遗忘门、输入门、输出门,它们由乘法操作、加法操作与激活函数构成,三个门共同控制着细胞状态、隐状态和细胞输出。Seq2Seq允许输入与输出具有不同的时间步长度,解决了时序预测中输入与输出不匹配的问题,同时由于网络层数较浅,预测速度快,适合在线场景。

图1  基于Seq2Seq的电商流量鲁棒预测网络


3.2 不确定性区间估计

神经网络的模型认知不确定性来源于网络参数,随着数据集的增大,模型的认知能力会逐渐提升,该项会逐渐减小;异方差不确定性是不同输入数据噪声波动情况不同所引起,因此随着输入数据的改变而改变;同方差不确定性是在不同输入数据上程度不发生改变的不确定性,因此也称为固有不确定性。贝叶斯神经网络是不确定性估计的理论框架,可以结合不同结构的网络模型使用。贝叶斯网络假设网络参数服从高斯分布,以贝叶斯公式为基础,将不确定性估计引入神经网络。

(1)记模型认知不确定性为。蒙特卡洛Dropout是贝叶斯神经网络的近似推理的一种方法[11][12]。因此本文保持输入不变,利用蒙特卡洛Dropout方法对网络权重进行次抽样,可以得到个预测输出,此时输出y的不确定性是由网络权重引起的,因此输出y的方差即为模型认知不确定性平方,y的方差可由公式(1)计算得到。是第n次dropout后得到的全权值矩阵。

           (1)

(2)记异方差不确定性为。论文[11]利用贝叶斯理论、最大似然估计(Maximum Likelihood Estimation, MLE)和最大后验估计(Maximum a Posteriori Estimation,MAP),推理得到一个新的损失函数,将异方差不确定性变为可预测项作为到网络部分输出。作者将预测得到的异方差不确定性与模型认知不确定性结合,成功运用到图像像素回归任务中。本文利用论文中推导出的误差函数(2)对时间序列中的异方差不确定性进行预测。公式(2)中D是预测时间步长,是的函数。同时由公式(3)可知,异方差不确定性现在是输入的因变量。

           (2)

            (3)

(3)记同方差不确定性为。根据论文[12]中的推导,一个利用趋于无限数据集合训练的模型(模型认知不确定性趋于零),保持权重矩阵不变,在独立验证集(独立于训练集合)上预测与真实值的误差var1可以看作是同方差不确定性的渐进无偏估计。但由于训练集合有限,这种计算方式明显会带来不确定性的过度估计。因此对于有限数据训练出来的模型,本文从训练集中抽样出一个验证集合,用该集合预测与真实值的误差var2作为同方差的估计量。var2比独立验证集上的估计量var1要小,由于训练集合进行过迭代训练,模型认知不确定性大大减小(但var2不一定比真实的同方差不确定性小,因为模型认知不确定性无法从var2中分离)。本文在实验中发现不确定性的95%置信度区间效果在96%~99%之间,因此var2比论文[12]中提出的var1更能缓解前两种不确定性的估计过度,避免了区间过度发散。同时,由于var2中包含的模型认知不确定性与时刻t(一天内第几分钟)有关:有些时刻时序一直很稳定,模型认知不确定性小,得到var2相应地会比较小;反之,经常出现秒杀、抢券等促销活动的时刻,模型难以进行准确预测,因此模型认知不确定性大,得到var2也相应增大。所以计算同方差不确定性时,本文考虑了时刻差异,在训练集合中同预测时序的时刻信息一致的数据中随机抽样,构成最终的验证集。公式(4)中M为验证集抽样总数。

            (4)

(4)本文利用公式(5)合并三种不确定性,并计置信度区间。其中为确定预测值,为置信度系数,为显著性水平。本文取95%置信度区间(显著性水平为0.05)作为最终不确定性区间,此时约等于1.96。


               (5) 

4  实验结果

本文算法的实验运行环境为Intel Core i5,1.6 GHz,操作系统macOs 10.13.数据处理与模型由Python2.7+Keras2.2.4+Tensorflow1.12.0+sklearn0.0实现。

4.1 实验模型与调参调节

本文训练了另外五个不同的回归预测模型进行对照实验,来评估我们提出的模型UN对未来流量的预测效果,表1给出了各个模型的介绍。

表1 实验模型说明

模型名称

模型说明

UN

本文提出的不确定性神经网络模型(UN_2计算了两种不确定性,UN_3计算了三种不确定性)

Seq2Seq

Encoder–Decoder 结构的神经网络,本文采用的原始网络结构(基本单元为LSTM)

FC

全连接神经网络,与本文网络层数相同(dropout层不计入)

Prophet

Facebook的开源时间序列预测算法,带有置信度区间估计

SVR

支持向量机回归预测模型

实验过程中,所有神经网络采用相似深度与结构。UN与Seq2Seq网络包含两个LSTM层和一个全连接层(Fully Connected Layer)层,两个LSTM层在非循环步使用0.2的比例进行dropout。FC网络包含三个全连接层,同时在两个全连接隐层前加入比率为0.2的两个dropout层,使用修正线性单元(Rectified linear unit,ReLU)作为激活函数。在实践中,本文发现UN网络在每层LSTM单元数为32时就可以达到最佳效果,而Seq2Seq和FC网络在每层单元数为64时效果更好。因此下面对照实验结果中,本文提出的网络使用了对照神经网络模型一半的单元数目。另外,由于本文提出的不确定性预测神经网络模型(UN)采用了二阶函数作为损失函数,如公式(2)所示,所以本文在Seq2Seq和FC网络中,采用同样是二阶的均方误差(Mean Square Error,MSE)作为损失函数。所有神经网络模型最大训练周期(Epoch)为 500,可以在网络收敛时提前结束(EarlyStopping)以防止过拟合。

在机器学习算法(三个神经网络与SVR)训练与预测时,本文使用预测时刻之前3小时的历史序列作为输入,之后15分钟时间序列作为输出。但Prophet在训练时需要分析所有历史数据,才能掌握长期的时间规律,并且在预测时不接受新的输入,只能指定预测步长,因此本文输入所有历史信息,并将未来七天的预测一起输出。另外,本文使用GirdSearch为三个神经网络模型(UN、Seq2Seq、FC)和支持向量机算法SVR进行调参。Prophet算法可以自动进行参数调节。


4.2 不确定性区间预测对照评估

本节4.2.1中,图4-1至图4-4展示了Facebook的开源算法Prophet和本文算法的不确定性区间的预测效果。本节4.2.2中,本文使用三个指标量化不确定性区间估计的效果好坏,进行对照、自身对照实验。

4.2.1不确定性区间效果图

图4-1至图4-4展示了Facebook的开源算法和UN的预测效果:

Prophet提供了区间估计,如图4-1所示,但Prophet模型的区间估计存在以下几点不足:(1)脉冲处难以覆盖;(2)波谷处曲线一般很平稳,值也偏低,但是给出的不确定性很大,丧失参考价值;(3)随着时间推移,区间越来越发散。

图4-1  Prophet预测结果(Week2_Normal)

图4-2是UN加入了两种不确定性的估计区间,相比Prophet有如下优势:(1)日常抖动严重、毛刺较多的波峰处算法相应给出较大的不确定性区间;(2)日常平稳的波谷处算法给出较小的不确定性区间;(3)不确定性估计不会随着时间推移越来越发散。

图4-2  UN_2两种不确定性叠加预测结果(Week2_Normal)

但结合了两种不确定性的UN_2依然存在几点不足:(1)很多脉冲超出了估计区间;(2)对脉冲的估计可能发生错位、延迟。而加入考虑了时间差异的同方差不确定性后,UN_3在脉冲处也达到了很好的预测效果,如图4-3所示。另外,由图4-4观察可知,当预测序列发生异常,不确定性会急剧增大。最后三天的预测与真实值很贴近,模型依然会给出很大的不确定性警告。

图4-3  UN_3三种不确定性叠加预测结果(Week2_Normal)

图4-4  UN_3异常情况下的预测结果(Week3_Abnormal)


4.2.2不确定性区间评估指标

为了定量评估不确定性区间的预测效果好坏,本文设计了三个指标:覆盖率、覆盖率/覆盖面积和平均界外点距和。

(1)覆盖率:区间覆盖真实值点的百分比,区间的覆盖率越大,覆盖的点越全面。由表2可得,本文的不确定性估计模型UN_3在Week1、Week2预测中覆盖率分别比UN_2高1.1%和1%,并比Prophet高2.57%和4.66%,在Week3异常情况预测中更比Prophet高67.4%。

表2 不确定性评估_覆盖率(%)

Model

Week1_Normal

Week2_Normal

Week3_Abnormal

Prophet

97.12301587 

95.08928571


UN_2

98.60904123

98.75807253

96.42324888

UN_3

99.70193741

          99.7516145

          98.2116

(2)覆盖率/覆盖面积:在覆盖率相同的情况下,覆盖面积越小越好。因此本文利用覆盖率/覆盖面积比值表示单位面积覆盖百分比。覆盖面积是对区间上下界差值累加得到。如表3所示,Prophet只有Week2时比UN_3高0.002,其余表现效果明显不如UN_2和UN_3 。UN_3和UN_2表现相似:前两周中,UN_3比UN_2分别高出0.006和0.01;在Week3中,UN_2比UN_3高出0.003。UN_3增加的面积并没有浪费,而是为了覆盖难以预测的脉冲,所以UN_3第三个指标获得了最佳结果。

表3 不确定性评估_覆盖率/覆盖面积

Model

Week1_Normal

Week2_Normal

Week3_Abnormal

Prophet

 0.03761096 

0.04661707

0.01800751

UN_2

0.05018554

0.05515904

0.02922981

UN_3

0.04404390

0.04482848

           0.032617

(3)平均界外点距和:对于区间没有包含的点,区间边界距离这些点的距离越小,区间的参考价值越大。平均界外点距是区间外的点到边界的距离的平均值。如表4所示,Prophet、UN_2的平均界外点距是UN_3的1.43~68.86倍。说明对于区间外未被覆盖到的点,UN_3计算的区间边界距离这些点会更加接近。

表4 不确定性评估_平均界外点距

Model

Week1_Normal

Week2_Normal

Week3_Abnormal

Prophet

0.023744 

0.0193336

 0.1873117

UN_2

      0.012087

0.0123535

 0.0039323

UN_3

 0.0052474


      0.00272


4.3 准确值预测对照评估

预测准确值的结果采用平均绝对值误差(Mean Absolute Error,MAE)、对称平均绝对百分比误差(Symmetric Mean Absolute Percentage Error,SMAPE)、R2三个度量指标。

(1)MAE越小,说明预测值越接近真实值,模型预测效果越好,如公式(6)所示。图4-5给出各个模型的MAE值,本文提出的算法在给出不确定性区间估计的同时没有牺牲预测的准确度,在三周的预测上均获得了最佳效果(第一周的MAE误差为0.092, 第二周的MAE误差为0.095,第三周为0.172),比起相似结构的Seq2Seq甚至有所提升。另外值得注意的一点是,在第三周异常情况下,有些模型错误率提升很大,如Seq2Seq提升了305.8%、SVR模型提升了193.1%,而本文提出的方法错误率提升了81.5%,显示出对异常情况较强的鲁棒性。

           (6)

图4-5  模型MAE误差结果图


(2)SMAPE指标考虑了预测与真实值量级的差异性,是时间序列预测常用的评价指标[17]。SMAPE越小也代表模型效果越好,如公式(7)所示。从图2的比较可得,本文提出的模型在三个星期的预测中SMAPE指标总体表现最佳。

           (7)

图4-6  模型SMAPE误差结果图


(3)R2指标越接近1,代表模型效果越好,一个糟糕的模型R2得分会为负,如公式(8)所示。由图3-7可得,本文提出的模型在三份数据集上R2得分都是最高的,分别为0.91、0.904、0.839。另外,尽管prophet在误差上的表现不佳,说明prophet在总体趋势预测上取得了一定效果。而预测效果很差的模型,R2指标会给出负值来体现模型糟糕程度,如SVR。

           (8) 

图4-7  模型R2得分结果图

4.未来工作

  1. 正在和希宁工程团队沟通,推进上线验证。
  1. 目前主要是将不确定性预测跟预测结合,但实际预测模型还有提升空间。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 yubaibai360@qq.com 举报,一经查实,本站将立刻删除。

[ 标签:电商集群 ]

相关文章

  • 全部评论(0
说点什么吧