面向深度学习的商品销售额预测研究
2022-08-16唐甜甜
唐甜甜,周 伟
(兰州交通大学 数理学院,兰州 730070)
0 引言
近年来,深度学习(DL)方法和技术已成功应用于各种现实世界中具有挑战性的预测问题,包括时间序列预测。企业根据消费者的数据挖掘规律,使用深度学习模型作出未来的预测,并在此基础上决策出更优的营销方案。因此,现代企业要想优化营销策略使收益最大化,就必须首先进行销售额预测,这为企业未来发展奠定了坚实的基础。
由于深度学习带来了深刻的性能改进,机器学习(ML)得到了快速发展。深度学习在机器学习的许多领域都超越了以往的先进方法,比如自然语言处理[1]、图像处理[2]和语音生成[3]。文献[4]利用时间序列的值构建统计模型,用未来价格的走势提取有用的市场信息。
对金融资产未来走势进行回归的任务一直是许多研究者最近工作的主题,如文献[5-7]。使用人工神经网络等机器学习组件改进和增强已验证的模型。采用新的混合模型和神经网络对原有的性能进行改进[8-10]。文献[11-12]提出了利用自编码器产生最优投资组合的深度投资组合理论,并将自动编码器用于对价格进行编码;然后,对模型进行微调,以预测价格的变动幅度是否会超过中间值以及这种变动的方向。随着深度学习概念的提出,商业领域展现了浓厚的兴趣,并逐步成为研究的主导者。文献[13-15]采用双线性投影思想、智能选择和时间注意机制相结合的神经网络结构来预测未来的价格运动。基于深度学习领域,分析不同神经网络模型的处理能力,凭借着LSTM能充分考虑时序数据先后关系,文献[16-20]将CNN提取的有效特征输入到LSTM,构建CNN-LSTM组合模型。
值得一提的是,电商以及零售类销售数据不是平稳的,因此,任何机器学习模型都很难预测未来值。在此基础上,以某洁日用品促销决策销售数据为研究对象,收集了销售额和与销售额发展趋势相关的特征作为建模数据,在对原始数据进行平稳特征转换、异常值处理、缺失值填充、独热编码以及变量相关性分析等工作的基础上,主要工作为:
1)提出结构化方法将原数据转换为平稳销售值特征,该方法可以与深度学习CNN-LSTM串联预测模型有效结合。
2)将所提出的组合模型与先前提出的采用平稳价格特征的方法在测试集上的预测结果与机器学习算法(XGBoost、SVM)、神经网络模型(CNN、LSTM),就拟合效果和评判指标两方面进行比较分析,验证了所提出的模型更具稳健性和优越性。
1 研究方法
利用时间序列的值,如价格波动的金融产品交易市场,可以构建统计模型,协助提取有用的信息,即市场的当前状态的概率和一组可能的未来状态,如价格或波动性变化。许多模型,比如布莱克·斯科尔斯·默顿模型[4],试图用数学方法推导出期权的价格,并可用于提供对未来价格走势的有用指示。
使用人工神经网络[8]等机器学习组件改进和增强了Garch等已验证的模型。采用新的混合模型和神经网络对原有的性能[9]进行改进。在文献[10]中,神经网络被用来预测未来汇率。对该模型进行了日预测和年预测的检验,得出了短期预测更准确的结论。在文献[11]中,提出了利用自编码器产生最优投资组合的深度投资组合理论。这种方法的表现好于几个已确立的基准,比如生物技术IBB指数。同样,在文献[12]中,另一种类型的自动编码器被称为受限玻尔兹曼机(RBM),用于对股票的月末价格进行编码。然后,对模型进行微调,以预测价格的变动幅度是否会超过中间值以及这种变动的方向。随着深度学习概念的提出,商业领域展现了浓厚的兴趣,并逐步成为研究的主导者。在文献[13]中,采用双线性投影思想和时间注意机制相结合的神经网络结构来预测(limit order book,LOB)中价。类似地,在文献[14-15]中,利用LOB数据以及机器学习方法,如多线性方法和智能特征选择来预测未来的价格运动。
针对单一模型泛化能力较弱的问题,文献[16-20]结合CNN和LSTM较为新颖的学习模型来预测股票的指数、CPI以及短期电力负荷,由于深度学习方法的非平稳特性,直接利用这类数据也是不可能的。因此,在特征工程时兼顾提取特征方法使它们生成平稳特征,结合CNN的特征提取特性和LSTM的时间序列建模能力构建串联CNN-LSTM模型。此模型有助于企业深入理解销售额的影响因素以及与变量间的相关性,由此着手来深入考察日用品经济的走势和变化情况,作出更优的决策。
1.1 CNN-LSTM串联模型构建
本节还将引入前面描述的两个模型的强大组合。CNN模型使用因果卷积为每个时间步生成一组特征。本质上,CNN是销售时间序列数据的特征提取器,它产生了与原始特征长度相同的新的特征时间序列,每个特征都有相对应的时间步长。然后在CNN生成的时间序列上应用LSTM层,然后为每个时间步长生成一个标签。这种工作方式与完全连接层非常相似,但是LSTM允许模型合并过去步骤中的特性,而不是完全连接层。构建CNN-LSTM模型的预测流程,见图1。
图1 CNN-LSTM模型预测流程框图
基本思路是:
1)特征工程将原始数据映射到机器学习特征,包括将原销售值转换为平稳销售特征、对数据进行异常值检测、缺失值的查看、独热编码和相关性分析等基础问题。
2)CNN-LSTM模型主要是由CNN和LSTM网络串联组成,输入层接收特征工程处理完的日用品销售额数据,同时切分数据集。
3)CNN层接收影响销售额及多影响变量的输入,并将卷积过程中提取的特征信息传递到LSTM层。
4)LSTM层实现对目标变量销售额准确的时间序列预测并进行建模。
5)最后,全连接层将预测的特征向量以一维形式输出,生成的预测数据通过评价指标来评估模型的性能。
首先,该网络起始层为输入层,接收销售额以及相关的多种变量,即各种促销方式。其隐层网络结构如图2所示。CNN层实现各种促销方式特征变量的卷积操作并将结果输出到下一层,即在处理销售额序列时,每个filter即权重参数矩阵提取每个特征图上的中心以及边缘信息,通过矩阵求内积的计算方式将特征结果抽取并表达。
图2 CNN网络结构图
在该网络层中,引入因果填充来避免使用未来信息生成当前时间步长的特征。使用一系列卷积层可以捕获时间序列的精细时间动态,并将时间上的距离特征关联起来。
(1)
(2)
池化层的作用是为了减小特征图的空间大小,减少网络的训练参数。池化层之后的特征图大小遵循向下取整原则,在下采样的过程中,特征图具有局部平移不变性。销售额预测采用最大池化操作,通过前一层级的最大值来表征可以抑制过拟合的发生,最大池化层操作可表示为:
(3)
LSTM是CNN-LSTM模型中CNN的后续连接层。LSTM将数据传送至输入门,通过遗忘门中的权重矩阵来选择记忆或遗忘前一层的信息,以及记忆前隐层信息的比重。融合新特征信息和更新前隐层信息来保持长期记忆,存储信息的单元需激活每个门单元来更新细胞状态,每个门单元都是被控制在0~1的连续值。LSTM的3个门(遗忘门、传入门和输出门)独立存储单元的状态,每一个流程都由矩阵间求内积的方式来确定。
因为使用的是满填充的因果卷积,所有的卷积层产生相同的时间步长t,因此不需要担心标签对齐到正确的时间步长。LSTM网络结构如图3所示。
图3 LSTM网络结构图
在t阶段,将带有时间信息的it传送给输入门,通过遗忘门ft来更新隐层ht的特征信息,最终将携带隐含信息的向量通过门ot输出,那么该单元的更新情况可表示为:
it=σ(Wpipt+Whiht-1+Wcict-1+bi)
(4)
ft=σ(Wpfpt+Whfht-1+Wcfct-1+bf)
(5)
ot=σ(Wpopt+Whoht-1+Wcoct+bo)
(6)
式中:第t阶段的细胞状态为ct,σ一般采用tanh激活函数,将输入映射到[-1,1]。共享权重矩阵为W,偏移向量记为b。LSTM在t阶段的ct和ht的更新情况可表示为:
ct=ftct-1+itσ(Wpcpt+Whcht-1+bc)
(7)
ht=otσ(ct)
(8)
全连接层将输入设为hl={h1,h2,…,hl},其中l为LSTM的单元数,该层相应的运算公式为:
(9)
1.2 模型预测评价方法
她一边啃面包,一边把和她工作时间有冲突的公司都勾了出来。如果招聘方向和她的专业很吻合,就一定要想办法调整上班时间,如果不太吻合,就先不去了,到时让同学帮忙拿一份招聘材料,按照流程投递简历就行了。差十分钟六点半时,颜晓晨赶到了蓝月酒吧。
(10)
(11)
(12)
2 实证分析
2.1 数据概况
在已有研究经验的基础上,首先对和鲸社区公开数据集,即某洁日用品销售额相关数据进行筛选分析,然后选取微信推送次数、本地电视广告投入、线上广告投入、门店海报陈列、门店销售人员、门店促销事件等6个特征作为影响销售额的变量来考虑其与销售额之间的动态关系。此6个特征变量与目标变量销售额为同一频率数据。
2.2 特征工程
如果没有某种预处理,原始数据不能直接用于任何深度学习任务。对于日用品的销售额来说,可能会因为节日促销、“双11”活动等而波动和增加,达到从未见过的水平。这意味着销售值的统计数据会随着时间发生显著变化,使得时间序列是非平稳的。简单地将所有销售值归一化并不能解决非平稳性,因为总是会有隐藏的数据,这些数据可能会改变当前数据中不存在的值的分布范围。为了解决这个问题,提出了将价格数据完全转换为平稳特征的新方法。
2.2.1异常值及缺失值处理
建模需要对数据进行缺失值处理并剔除异常值,查看初始数据,发现“本地电视广告投入”变量有缺失值,用中位数填补“本地电视广告投入”的空值。该数据集无明显的异常值,则无需处理。
2.2.2数据预处理及独热编码
1)归一化
数据分布趋于正态化可加速模型的收敛,故将其进行归一化处理:
(13)
通过式(13)将变量数据处理为[0,1]之间的数据,并将特征工程处理后的数据作为CNN-LSTM网络的输入。
这种归一化就避免了一个主要的问题,那就是日用品销售额的分布变化,这可能是由节假日或在较长时间内可能发生的大变动等事件引起的。
不幸的是,这给深度学习模型预测带来了另一个重要问题。除去特殊节日以及促销活动,其他日子的销售额之间的差异总是非常小,使用标准的统计数据标准化方法(z-score)提取这种数据的特征是困难的。在这项工作中,提出了一个新的方法来补救这个问题。
2)数据标准化
不是规范化数据的原始值,而是利用自然对数(ln)对训练和测试数据进行了转换,以均匀化模式的可变性和稳定性,并降低指数趋势,再以中间价格替代原始销售值。这消除了销售值的非平稳性,使特征提取过程更容易,并显著提高了深度学习模型的性能。
(14)
2.2.3变量间的相关性分析
通过表1可以发现,本地电视广告投入与销售额之间的相关性达到0.588 3,是9种促销方式中最强的;与销售额关系较强的还有门店销售人员、门店海报陈列。而线上广告投入与门店促销事件、本地电视广告投入与门店销售人员间存在较强的正相关性;考虑到是否需要对数据进行降维,用热力图描绘所有变量之间的相关性,结果如图4所示。
图4 热力图
表1 相关系数
从上述得到的热力图可以看出,原始数据之间的相关系数基本都小于0.5,不存在非常显著的相关关系,说明数据分布离散,特征变量之间基本不存在冗余,因此未采用PCA进行降维处理,进而丢失太多信息。相关系数的大小反映出不同促销手段对商品销售额的影响力度,以便商家优化促销方式。
2.3 模型参数设置
在构建CNN-LSTM模型的基础上,在运行Windows 10操作系统的PC上用Python 3.7编写代码。深度学习模型使用keras库作为后端实现,而机器学习模型使用sklearn库实现。通过学习经特征工程处理的训练数据集得到预测模型,在训练模型时,迭代次数的取值对最终预测模型的精度有很大影响。迭代次数少,模型不能完全训练,导致模型拟合不足。如果迭代次数过多,模型会过度学习,浪费计算资源,导致模型过度拟合,计算速度变慢。设置迭代次数为1 000次,模型在训练过程中自动保存最优模型。从考虑时序数据特征的角度搭建卷积、池化、LSTM和全连接层其网络层级的结构。调参是一个动态的行为,它是可学习的,是一个不断优化的过程。每个层级都可以调整filter数目、kernel大小和stride数目等参数,模型收敛速度以及学习性能与这些参数的设置息息相关。为了更好地进行销售额预测分析,调整参数来优化网络结构。
CNN-LSTM网络结构参数设置为:所有LSTM和CNN-LSTM的模型都经过50个时期的自适应矩估计(ADAM)训练,批量等于128,使用均方损失函数,激活函数选取ReLU函数,LSTM中激活函数选取tanh函数。ADAM算法确保在训练过程中,学习步骤相对于参数梯度是尺度不变的。此外,为了确保在卷积运算过程中不会遗漏任何特征,应用了相同的填充。从预测的角度来看,预测范围对于模型的预测精度至关重要。预测范围代表预测下一个每日销售额的预测模型所考虑的每日销售额的数量。更具体地说,设置预测范围等于7的情况下,将7天的影响因素数据作为特征变量,意味着模型考虑了从7天收集的数据,并用于预测第8天的销售额,即目标变量。在本研究中,所有评估模型的回归性能通过MSE、MAE和R2来测量。
2.4 实验结果及对比分析
2.4.1预测结果分析
将测试数据传送到训练好的CNN-LSTM模型中,得到日用品销售额预测数据和拟合情况,见图5。从拟合效果可以看出,模型的预测值与实际值较为接近。
图5 CNN-LSTM预测数据曲线
根据式(10)—(12)的误差评判指标计算得到预测准确性的误差,见表2。
表2 CNN-LSTM模型预测结果
可以看出,模型的误差值相对较小,这可能是因为模型引入了微信推送次数、本地电视广告投入、线上广告投入、门店海报陈列、门店销售人员、门店促销事件等作为影响因素。另外,从指标值得出模型在预测分析中表现较为出色。
2.4.2与传统机器学习模型的比较
CNN-LSTM模型与XGBoost和SVM模型的拟合曲线见图6。为了增加模型拟合效果的清晰度,截取部分测试集来展示。总体而言,从数据分布拟合情况来看,CNN-LSTM模型生成的预测效果曲线偏离程度不大,而传统模型的预测值相对实际值来说聚集效果也较好,但在个别转折点出现了离群值。
图6 模型预测结果1
得到CNN-LSTM、XGBoost和SVM模型的预测评价指标MSE、MAE和R2,见表3。
表3 CNN-LSTM与传统模型预测结果
可以看出,CNN-LSTM模型的MSE和MAE数值均为最小,R2数值最大,说明模型拟合效果最好,其次是SVM模型,且XGBoost模型和SVM模型在预测方面性能相差不大。
2.4.3与其他深度学习方法的比较
将CNN-LSTM模型与单一LSTM、CNN深度学习模型进行比较,在测试集上得到预测结果,见图7。
图7 模型预测结果2
在深度模型预测中,CNN-LSTM模型依然表现突出,但三者之间预测曲线都相对紧密地围绕在实际值附近。得到CNN-LSTM与LSTM、CNN模型的预测评价指标MSE、MAE和R2,见表4。
表4 CNN-LSTM与其他深度学习模型预测结果
可以看出,CNN-LSTM模型的预测误差相对较小,说明模型的学习能力较好,在测试集上的表现更为出色,在预测精度方面也略优于LSTM、CNN模型。同时,单一的LSTM和CNN深度学习模型的预测误差也均相对较小。
3 结论
提出了一种新的将销售数据转换为平稳特征的方法,适用于不同的深度学习模型。在商业领域,不少学者研究预测价格,但对销售额影响因素分析及预测的甚少。故针对日用品销售额预测,为了增强模型的可解释性,先对数据进行特征工程操作以及变量间的相关性分析,然后将CNN和LSTM直接融合串联形成CNN-LSTM深度网络模型。为了评判模型的性能,画出生成预测结果拟合曲线并计算指标值,从曲线拟合效果和评价指标的反馈中,展现出CNN-LSTM模型在预测分析中的独特优势。且在测试集上的稳健性比XGBoost、SVM、LSTM、CNN模型都略胜一筹。为经济领域企业调整促销方式,进而获取更高的销售额提供了方案。
未来有几个有趣的研究方向。与所有的深度学习应用一样,更多的数据将使用更大的模型,神经网络也可以用于执行一种智能提取有用的特性,从一个特定的深度和有限时间间隔的事件,这将避免以后失去信息,并允许模型产生预测一个特定时期内而不是之后的事件。另一个重要的补充是注意机制,它将允许网络更好地观察特征,允许它忽略数据的噪声部分,只使用相关信息。