河南省人力资源社会保障电子政务中心 谷剑芳
随着社保卡业务的积累以及政策的拓展,整合各类社会保障卡应用的数据资源,深入数据分析应用,提高公共服务决策分析能力,促进经办管理精准化、服务高效便捷化成为当务之急。本文成果来源于河南省人社厅社会保障卡用卡轨迹图项目,其中关于互联网渠道人社业务办理量预测场景,分别应用LSTM和RFM算法对业务量进行预测,通过比对两种算法的拟合效果,总结出两种算法的优缺点,以及更适用于社保卡业务预测的算法。
对时间序列数据进行分析和预测比较完善和精确的算法主要包括基于传统统计方法的ARIMA模型(差分整合移动平均自回归模型)和基于神经网络方法的LSTM模型(长短期记忆人工神经网络)。ARIMA模型和LSTM模型都能够较好地提取原始数据中所蕴含的趋势性及周期性,然后再根据从原始数据中所提取到的规律对未来数据进行预测。在数据波动较为平稳的数据集上,ARIMA模型的效果相对LSTM模型较优;而在数据波动较为不平稳的数据集上,则是LSTM模型的表现更好。
为进一步提高对时间序列业务预测的精度,我们以电子社保卡互联网业务访问量和社保卡办理量两个预测场景为例,分别应用ARIMA和LSTM模型,通过比较分析归纳出两种模型的特点和适应性,进而提高人社业务数据分析能力。
通过模型算法,掌握未来一个时期内互联网业务办理压力和社保卡制作量压力,有助于提前做好服务器、存储等信息系统资源和社保卡库存准备,结合对现有信息化资源和卡资源的情况,及时做好风险应对。借助大数据技术,通过历史数据预测未来的业务量,进一步提高业务的精细化、智能化管理水平。
利用Hadoop平台实现大数据应用的分区分库,构建数据仓库。数据架构设计包括整合库、主题库、模型库、成果库和支撑库五个数据库,整合库是将数据源数据进行一定清洗之后存储的数据,主题库根据应用层主题建立数据集。模型库是指主题应用的模型数据,成果库是通过模型计算的结果,支撑库就是系统的配置信息。
选用ARIMA算法或LSTM时间序列算法建立预测模型,数据集收集不同业务,不同地区以往近三个月历史业务办理数据,并根据次数据做时间序列分析并建立预测模型。通过对互联网渠道,基于电子社保卡身份识别的人员,对人社业务访问量和社保卡申请量进行建模和数据训练,预测未来7-14天线上访问量和申请量。
2.1.1 算法介绍
LSTM时间序列模型[1]基于循环时间网络,引入了输入门(Input Gate)、遗忘门(Forget Gate)和输出门(Output Gate)的概念。输入门、遗忘门和输出门的公式[2]分别如下:
(1)候选记忆细胞:
以值域在[-1,1]的tanh函数作为激活函数,在给定时间t步时记忆细胞的计算公式[2]为:
(2)记忆细胞:
通过元素值域在[0,1]的输入门、遗忘门和输出门来控制隐藏状态中信息的流动,这一般也是通过使用按元素乘法(符号为⊙)来实现的。当前时间步记忆细胞的计算组合了上一时间步记忆细胞和当前时间步候选记忆细胞的信息,并通过遗忘门和输入门来控制信息的流动[2]
遗忘门控制上一时间步的记忆细胞Ct-1中的信息是否传递到当前时间步,而输入门则控制当前时间步的输入Xt通过候选记忆细胞如何流入当前时间步的记忆细胞。如果遗忘门一直近似1且输入门一直近似0,过去的记忆细胞将一直通过时间保存并传递至当前时间步。这个设计可以应对循环神经网络中的梯度衰减问题,并更好地捕捉时间序列中时间步距离较大的依赖关系。
(3)隐藏状态:
有了记忆细胞以后,通过输出门来控制从记忆细胞到隐藏状态Ht的信息的流动[2]
tanh函数确保隐藏状态元素值在-1到1之间。需要注意的是,当输出门近似1时,记忆细胞信息将传递到隐藏状态供输出层使用;当输出门近似0时,记忆细胞信息只自己保留。
2.1.2 数据预处理
首先,从业务库中获取得到要进行业务分析的原始数据。然后,我们再对原始数据进行去重、空值处理、异常值处理、数据归一化等数据预处理工作,得到时间序列数据。
2.1.3 划分数据集
按7∶2∶1的比例将原始时间序列数据划分为训练集、测试集和验证集。其中,训练集主要用于训练模型并确定模型权重,验证集用于确定网络结构以及调整模型的超参数,验证集则用于检验模型的泛化能力。
2.1.4 定义单个数据样本
采用滑动窗口形式构建单个数据样本,理论上单个样本周期越长越有利于模型的预测。鉴于应用数据只有1年,我们折中选择了37天为单个数据样本长度(以30天为数据窗口长度,7天为偏移量)。我们以单个数据样本(37天)的前30天(0-29)作为样本数据,后30天(7-36)作为标签数据。将这样的数据样本传入模型进行训练,模型能够基于我们传入的前30天数据对一个包含未来7天的序列数据进行预测,从而达到预测未来的数据目的。
2.1.5 模型训练
构建LSTM模型[3],设置Adam方法作为模型优化器,并将我们前面所定义的训练集、验证集和测试集数据传入模型进行训练,通过设置EarlyStopping方法来提前终止模型训练,并保存效果最佳的模型,最后便可以利用此模型对未来数据进行预测。从测试效果看,LSTM算法的历史拟合效果比较理想,预测值与实际值的趋势一致。
2.2.1 算法介绍
ARIMA(p,d,q)模型[4]的构建和预测过程包括平稳性检验、参数估计和时间序列数据预测,3个参数p,d,q分别表示自相关(p阶AR模型),d次差分,滑动平均(q阶MA模型):
(1)平稳性和非白噪声检验。ARIMA模型处理的时间序列数据需满足平稳性检验,对于预处理后的时间序列数据,通过差分法对数据进行转换。
(2)参数估计。基于信息定阶准则,可采用AIC、BIC[4]等信息定阶分值计算公式,构建自回归模型和移动平均模型等定阶热力图进行网格搜索,对AR和MA模型进行定阶。
(3)时间序列预测。基于构建完毕的ARIMA模型,对时间序列数据进行预测。本文从工程实现角度对ARIMA模型拟合及预测过程构建管道化处理,自动进行模型参数寻优、模型拟合及预测,具体过程如下:
1)ADF检验:对经过预处理后对时间序列进行ADF检验,当单位检测统计量p-value值大于0.05时达统计显著,定阶ARIMA模型差分参数d。
2)AR和MA模型参数定阶:设置算法参数配置信息,根据MSE、AIC准则、BIC准则择优对ARIMA模型其他参数估计及定阶,拟合预测模型。
3)迭代训练与滚动预测:为避免ARIMA模型欠拟合,预测模型精度不足,采用迭代训练与滚动预测的形式处理时间序列数据,将ARIMA模型的预测步长设置为1,算法每轮迭代训练预测出t+1时刻的结果后将把预测值添加回训练数据重新拟合模型,预测t+2时刻结果。
2.2.2 数据处理
(1)数据预处理。首先,从业务库中获取得到要进行业务分析的原始数据。然后,我们再对原始数据进行去重、空值处理、异常值处理、数据归一化等数据预处理工作,得到时间序列数据。
(2)划分数据集。按7∶2∶1的比例将原始时间序列数据划分为训练集、测试集和验证集。其中,训练集主要用于训练模型并确定模型权重,验证集用于确定网络结构以及调整模型的超参数,验证集用于检验模型的泛化能力。
2.2.3 模型构建
首先,我们观察预处理后的时序数据,发现其震荡较为强烈,这是一个典型的非平稳时间序列。所以,我们考虑对其进行一阶差分处理,发现此时数据已符合平稳性条件。同时,对差分后数据进行白噪声检验,发现其p值为0.098>0.05,即该时序序列为平稳非白噪声序列,故我们可以考虑对其进行ARIMA建模。
我们采用网格搜索方式确定模型的p,d,q参数[5],并对该时序序列进行模型拟合。在进行测试集拟合的过程中,我们观察到使用ARIMA模型拟合的效果并不是很好,白噪声检验中的p值为0.098,并非显著地拒绝原假设,即在ARIMA模型看来,数据可提取的有用信息不多,故ARIMA模型的拟合效果相对较差。
图1和图2分别是ARIMA模型与LSTM模型在相同的真实应用访问量数据集上的预测结果,绿色是实际值,红色是预测值,可以直观的看出两种算法在实验场景中,LSTM模型的拟合效果更好。
图1 LSTM模型实际执行效果Fig.1 Actual implementation effect of LSTM model
图2 ARIMA模型实际执行效果Fig.2 Actual implementation effect of ARIMA model
通过实验对比我们会发现,由于我们的业务场景中,应用的访问量时常会受到一些特殊事件的影响,比如政策变更、应用推广等,但一般情况下又会遵循着某种普遍的规律。采用ARIMA模型预测时序数据,必须是稳定的,如果不稳定的数据,难以捕捉到规律。ARIMA模型在数据拟合过程中,容易受到数据异常波动变化的影响,所以最后表现出来的数据拟合效果较差;而LSTM模型由于输入门、遗忘门和输出门的特殊模型结构,能够通过遗忘门选择性地去遗忘掉数据异常波动给模型带来的不利影响,再利用记忆门去提取数据中存在的普遍性规律,所以最后表现出来的数据拟合效果较好。基于实验对比结果,在实际应用中我们主要基于LSTM模型进行数据建模,提取数据集中所蕴含的普遍规律,最后,我们再利用所提取到的规律对未来数据进行预测。