基于考虑滞后性LSTM模型的电商需求预测

2022-12-22 11:47包吉祥赵梦鸽
计算机工程与应用 2022年24期
关键词:需求预测神经网络因子

包吉祥,李 林,赵梦鸽

上海理工大学 管理学院,上海 200093

随着互联网技术的快速发展,电子商务迅速崛起,而电商企业为了更加及时准确地把控市场变化,同时提供给消费者更好的服务更低的价格,将需求预测作为持续改进的目标。但市场的多变性和客户的不稳定性、信息化和智能化程度都对需求预测的准确性带来很大影响。侯晓乐[1]从库存管理的角度建立基于灰色预测的快消品需求预测模型,但其只能对少量历史数据进行预测。韩芊芊[2]针对产品特性和线上运营的历史数据进行研究,建立ARIMA-多元回归综合预测模型。王姝唯[3]从在线评论的角度提出了基于在线评论情感指数提取和Bass模型的需求预测方法。叶剑锋等人[4]考虑了快消行业的季节性周期特点和快消企业的促销因素,研发基于季节性ARIMA时间序列与多元回归组合的模型。然而,目前对快消品的需求预测研究都集中基于商品自身的特性和历史销售数据建立模型,未充分考虑消费者行为对快消品需求的影响。所以本文提出结合历史销售数据和消费者行为建立需求预测模型。

较为常用的需求预测方法包括时间序列法、支持向量机法、人工神经网络法等多种方法。以往的需求预测过程都是针对产品特性,通过数据预处理、优化参数、改进网络结构等方法提高预测精度,而忽略了消费者行为对产品需求的影响。对于各影响因素之间并不成明显线性关系的需求预测问题,如果选择输入的特征参数较为单一,将不能得到很好的预测模型及结果;而如果选择的输入特征参数较多,则会使模型复杂化,不利于其训练速度及性能[5]。针对这一问题,本文提出基于随机森林特征选取和LSTM模型的需求预测方法。随机森林是一种优秀的机器学习方法,它不仅可以解决分类问题和回归问题,在特征选择领域也已经引起越来越多的关注。近年来已经被广泛应用于各种分类、预测、特征选择以及异常点检测问题中[6-7]。且相较于基于聚类以及自适应多种群遗传算法的特征选择方法,随机森林特征选择算法在性能上有较大的提高[8]。LSTM网络是改进之后的RNN,与传统预测模型相比预测性能更高,且具有良好的泛化能力[9-11]。并且广泛应用于各个方面,比如自然语言翻译和语音识别等,还可以应用于时间序列的预测[12],都具有较好的效果。

在本文中,实证数据采用Q企业纸类产品历史销售数据和消费者行为数据。首先用随机森林筛选输入特征参数,然后对LSTM预测模型进行训练、验证,最后与SVM、RF和XGBoost模型的预测结果比较。实验结果表明,基于LSTM网络的预测模型精度较高,也证实了考虑消费者行为产生的滞后性能提高模型的训练精度。

1 模型介绍

1.1 随机森林

随机森林指的是利用多棵树对样本进行训练并预测的一种分类器,具有一个重要特征:能够计算单个特征变量的重要性。并且这一特征在很多方面能够得到应用,例如在银行贷款业务中能否正确地评估一个企业的信用度,关系到是否能够有效地回收贷款[13]。但是本文研究的需求预测模型的影响因素有很多,且这些影响因素之间存在相互作用;数据量较多,数据间的关系较为复杂,且非线性、持续性及噪音普遍存在。而随机森林中特征选择的重要性思想,就是看每个特征对随机森林中每棵树的贡献有多大,然后取平均值,通过比较这些特征的贡献大小选择贡献大的作为特征因子;同时随机森林可以处理大量的输入变数并且产生高准确度的分类器。因此考虑到商品数据之间可能存在复杂的非线性关系,以及后续研究中也可能会不断地搜集增加新的影响因素,本文选择随机森林算法选取特征因子。

本文中在用随机森林选取特征因子过程中,利用的方法是平均不纯度的减少(mean decrease impurity)。该方法常用基尼指数作为评价指标。基尼指数的计算公式为:

在式(1)中,GIm表示样本m的基尼指数,k代表第k个类别,pm表示样本点属于类别k的概率。

计算出基尼指数后,再计算每个特征xj的基尼指数评分。特征xj在节点m的重要性计算公式为:

在式(2)中,VIMjm代表特征xj在节点m的重要性,GIl和GIr分别表示分支后两个新节点的基尼指数。

如果,特征xj在决策树i中出现的节点在集合M中,那么在第i棵树的重要性VIMij为:

假设随机森林中共有n棵树,那么xj在整个随机森林中的重要性可由式(4)计算:

然后,把求得的所有的重要性评分进行归一化见式(5),得到归一化的xj重要性VIM'j

1.2 基于Dropout改进LSTM神经网络

LSTM最初是在1997年由Schmidhuber等 人[14-16]提出,是基于RNN神经网络,在隐含层的神经元中增加了遗忘门,从而使模型学习过程中可以选择忘记不重要的历史信息,只将重要的历史信息作为新一轮模型训练的输出。所研究的需求预测问题,是典型的时序问题,即某一个时刻的值受前一个时刻或几个时刻的影响,所以选择LSTM模型进行训练及预测。

深层神经网络训练过程中随着训练时间的增加和学习过程中参数的数量增加可能存在过拟合的问题,从而影响模型训练效果导致测试集失效。过拟合特别是指在拟合模型的过程中,为了使模型拟合训练数据,使用了太多不必要的参数,从而导致训练后的模型精度明显较高,但实际上相反。在2012年,Hinto等人提出了Dropout算法[17],用于防止过拟合。之后,也有许多学者先后证实利用Dropout改进神经网络[18-19],能较好地解决神经网络训练中出现的过拟合问题。

信息在无Dropout网络中向前传播时,来自所有节点的所有信息都将保留并转到下一层。导致神经元之间存在强烈的依赖性,并且也会发生过度拟合。于是,思考在训练过程中是否可以随机丢弃某些神经元生成的信息,从而使神经元之间生成的信息没有如此强的相关性,从而可以提高神经元的泛化能力。

应用Dropout的神经网络,信息在前向传递的过程中会让某个神经元的激活值以一定的概率p停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征。如图1,部分节点出现了叉号,表示丢弃了该方面上的所有信息,而正常的空心圆表示保留了该节点所有信息。

图1 有Dropout的神经网络Fig.1 Neural network with Dropout

这样,根据设定的概率不同,在连续训练过程中,由于每次丢弃的节点信息不同,每次训练的结果也不同。将从这些训练中获得的结果进行平均,可以获得更理想的参数。因此本文在设计LSTM神经网络时也添加了Dropout层以优化LSTM神经网络结构。

2 商品需求预测的实证分析

2.1 数据的获取及处理

选取Q企业纸类商品2018年日销售数据,如图2。从图2可以明显看出,该商品在2018年日销售数据中出现了几个明显的峰值,分析发现峰值出现在“元旦”“6.18”“8.18”“国庆”“双十一”“双十二”期间,该期间均为电商平台的大型促销活动日。根据公司记录,在上述节日期间公司都推出了折扣力度较大的优惠活动,并且通过增加在电商平台的广告展现量等手段来吸引流量,所以在这些时间段出现了销售峰值,销售量大幅提升。

图2 纸类商品2018年原始日销售数据Fig.2 Original daily sales data of paper products in 2018

首先对数据进行分割,将1月至11月的销售数据作为训练集,12月的销售数据作为测试集。其次对销售数据进行异常值检测,并用均值修正异常值,得到处理后的销售数据如图3所示。通过图3可以看出,日销售数量处于200~1 200之间,且销售量不稳定,波动较大。

图3 对异常值处理后的纸类商品2018年日销售数据Fig.3 2018 daily sales data of paper products after handling abnormal values

再从该企业获取2018年纸类商品的顾客行为数据,获取的数据包括日期、展现量、浏览量、访客数、搜索人数、点击数平均停留时长、退出率、收藏人数、加购量、拍下量。通过Python中的describe命令,对预处理后的顾客行为数据进行基本信息统计,统计结果见表1。

表1 消费者行为数据基本信息统计Table 1 Basic information statistics of consumer behavior data

2.2 特征因子选取

2.2.1 消费者行为数据选取

顾客行为数据一般包括消费者从进店到购买再到评价的各种中间数据,数据粒度包括天、周、月等,数据来源包括PC端与无线端。流量数量是指顾客访问某商品流量的数量值,一般由访客数量、展现数量、浏览数量三个指标构成,流量越多代表潜在顾客越多;用户体验数据一般由顾客的平均停留时间、平均访问的页数、跳出频率等指标构成;网站流量效率的一个重要衡量数据就是网站流量转化比率即顾客转化率,顾客转化率一般由收藏量、加购量、拍下量等数据指标构成。通过以上分析,将消费者在网购的环节中产生的可能影响商品需求量的消费者行为数据汇总到表2。

表2 影响商品需求的顾客行为因素汇总Table 2 Summary of customer behavior factors that affect product demand

如果这10个可能影响因素中,存在与销量无关或者相关性很低的影响因素,而在预测电商企业商品需求量时将这些影响因素加入到预测模型,将会大大降低预测的准确率。所以在进行商品需求预测之前,剔除与商品需求无关或相关性较低的影响因素是十分重要的。因此需要对选取的顾客行为数据与销售数据的关联度进行分析。

2.2.2 不考虑滞后性的重要特征因子选取

根据本文获取的实际数据,利用皮尔逊相关性检验方法,将不同的顾客行为数据分别与商品销售量数据进行相关性分析,具体分析结果见表3和表4。

表3 浏览行为数据与销售量相关性分析Table 3 Analysis of correlation between browsing behavior data and sales volume

表4 购买行为数据与销售量相关性分析Table 4 Correlation analysis of purchasing behavior data and sales volume

通过表3发现顾客浏览行为与销售量存在一定的相关性,而销售量与平均停留时间、跳出率的相关性较低,在后续研究中可以剔除。通过表4发现顾客购买行为对销售量影响显著。采用Pearson相关分析法,分析顾客不同行为产生的数据与商品销售量的相关性,发现展现量、浏览量、访客数、搜索人数、点击数、收藏人数、加购量、拍下量这8种顾客行为数据与商品需求量存在较强相关性,因此在后续需求预测模型研究中将考虑这8种顾客行为数据对商品需求的影响。

2.2.3 考虑滞后性的重要特征因子选取

(1)特征因子重构

不同的影响因素在不同的滞后时间对商品需求的影响程度有所不同,因此本文假设7天内的顾客行为对商品需求均有影响。设n为销售当天,销售当天起前7天为区间,取历史前[1,2,3,4,5,6,7]天的实际商品数据值作为新的特征因子。设xji为新的特征因子,其中i代 表 8种 影 响因 素,所以i=1,2,…,8;j=[n-1,n-2,n-3,n-4,n-5,n-6,n-7]代表历史前[1,2,3,4,5,6,7]天,将带有不同滞后期的影响因素重构特征因子,共得到56个特征因子如表5所示。

表5 商品需求预测特征因子Table 5 Commodity demand forecast feature factor

表8 12月份商品预测情况Table 8 Commodity forecast in December

(2)随机森林选取特征因子

在Python软件中sklearn已经封装了需要用到的所有函数,因此只需要调用其中的函数,运行随机森林算法,进行运算。本次运算导入的消费者行为数据和历史销售数据都是Q企业纸类商品2018年数据。算法运行结果见表6,得到了特征因子重要性评价结果。

表6 特征因子重要性评价结果Table 6 Feature factor importance evaluation result

根据随机森林选取重要因子算法,从8个影响因素的特征因子中分别选取对商品需求量影响最大的滞后特征因子组成的重要特征因子集合作为LSTM模型的输入,得到表7。

表7 重要特征因子选取结果Table 7 Selection results of important feature factors

从表7看出,对当前商品需求(yn)影响程度较大的影响因素有Xn-51,Xn-32,Xn-13,Xn-14,Xn-15,Xn-16,Xn-57,Xn-18分别为五天前的展现量、三天前的访客数、一天前的浏览量、搜索人数、点击数、收藏人数、五天前的加购量,以及一天前的拍下量。

2.3 需求预测模型训练

利用已经获取的Q企业纸类商品的历史销售数据以及顾客行为数据对其商品需求进行预测。展现量n-5、访客数n-3、浏览量n-1、搜索人数n-1、点击数n-1、收藏人数n-1、加购量n-5、拍下量n-1作为需求预测模型的输入值,商品日销量为输出值,利用长短期记忆神经网络建立考虑滞后性的LSTM神经网络快消品电商需求预测模型。

经以往研究经验所得[20-22],步长的选择对模型的预测效果影响不是很大,学习率对模型训练的速度有较大影响,隐含层对LSTM的预测精度影响较大,对此进行着重研究。训练集样本为该商品1月到11月的数据,测试集样本为12月的数据,学习率为0.01,比较不同隐含层的均方根误差,结果如图4所示。当隐藏层为5层时,两个样本的均方根误差最低,模型的预测精度最高,因此隐藏层数设置为5。迭代次数的确定通过以往实验经验进行手动调整,迭代次数为1 000时训练效率较稳定。

图4 隐含层不同时的均方根误差Fig.4 Root mean square error of different hidden layer

网络模型参数选择:LSTM神经网络的隐藏层层数为5层,每一层的神经元个数分别为9、64、64、64、64、1;时间步中递归次数设置为2;训练批尺寸设置为20,表示每一轮从训练集中选取5组训练样本进行训练;训练轮数设置为1 000,表示将训练过程重复1 000次;优化算法采用adam算法,dropout设置为0.2。

3 实验结果及分析

当模型训练结束,选取未参加训练的12月份数据归一化后代入上述训练好的LSTM神经网络模型,可得到预测拟合图5。在图5中,横轴为时间轴,纵轴为商品需求,量单位为“件”,虚线代表的是本文构建的考虑滞后性的LSTM神经网络需求预测模型的预测结果,实线则是真实的历史销量值。从图5中可以看出,两条线的拟合效果较好,证明利用长短期记忆神经网络建立考虑滞后性的LSTM神经网络商品需求预测模型较为合理,能够较为精确地预测出商品的需求趋势。

图5 测试组预测拟合图Fig.5 Test group prediction fit graph

利用该模型预测的Q企业纸类商品的12月份需求量预测值具体见表8,对比两列数值可以看出预测值接近真实值预测误差较小。

3.1 模型性能对比

为了检验本文建立考虑滞后性的LSTM神经网络快消品电商需求预测模型的预测精度,选取平均相对误差和平均绝对百分比误差为模型预测性能指标,对不同模型的性能进行计算对比。

平均绝对误差(MAE)表示的是预测值和实际值之间绝对误差的平均值,它的计算公式为:

平均绝对百分比误差(MAPE)计算公式为:

在式(6)和式(7)中y'i都表示商品需求量预测值,yi都表示真实商品销量。MAE和MAPE的计算值越小证明预测误差越小,预测效果越好反之则表示模型劣质。

以下是用LSTM、RF、SVM、XGBoost算法分别建立了不考虑滞后性的需求预测模型和考虑滞后性的需求预测模型,对Q企业纸类商品12月份的商品需求量进行预测的预测结果。

3.2 选择特征因子建立需求预测模型

建立不考虑滞后性的需求预测模型,选择前一天的展现量、访客数、浏览量、搜索人数、点击数、收藏人数、加购量、拍下量为特征因子作为需求预测模型的输入,当天的商品销售数据作为输出,分别用LSTM、RF、SVM、XGBoost算法建立商品需求预测模型并进行仿真实验。同样对Q企业纸类商品12月份的商品需求进行预测,各个模型的预测结果如图6所示。从图中可以看出,LSTM神经网络快消品电商需求预测值与真实值两条曲线的拟合相较于其他模型预测结果的拟合效果能更好地预测出商品的需求趋势。

图6 不考虑滞后性的不同模型的预测结果对比图Fig.6 Comparison of prediction results of different models without considering lag

建立考虑滞后性的需求预测模型,选择展现量n-5、访客数n-3、浏览量n-1、搜索人数n-1、点击数n-1、收藏人数n-1、加购量n-5、拍下量n-1为重要特征因子作为需求预测模型输入。选取SVM、RF和XGBoost模型作为比较模型。基于相同的数据预处理后,同样对12月份的数据进行预测,各个模型的预测对比结果如图7所示。

图7 考虑滞后性的不同模型的预测结果对比图Fig.7 Comparison of forecast results of different models considering hysteresis

对比图6和图7可以看出,本文构建的考虑滞后性的LSTM神经网络商品需求预测值与真实值拟合相较于其他模型预测结果的拟合效果能更好地预测出商品的需求趋势。为了更好地对比模型的性能,借助模型评估指标平均绝对误差(MAE)、平均绝对百分比误差(MAPE)来进一步评估模型对商品需求的预测能力,性能评估结果如表9所示。

表9 考虑滞后性预测模型性能评估结果Table 9 Consider lagging prediction model performance evaluation results

从表9可知在考虑滞后性利用LSTM预测模型进行需求预测,测试组的平均相对误差值为0.035,预测精度最高。可以看出基于深度学习的LSTM神经网络需求预测模型对电商商品需求量的预测效果较好。

3.3 最优预测模型

将考虑滞后性模型和不考虑滞后性模型预测结果的平均绝对误差和平均相对误差进行对比,如图8和图9所示。

图8 不同模型的平均绝对误差对比Fig.8 Comparison of mean absolute errors of different models

图9 不同模型的平均相对误差对比Fig.9 Comparison of mean relative errors of different models

从图8和图9明显可以看出考虑滞后性基于LSTM、SVM、RF建立的需求预测模型相较于不考虑滞后性建立的预测模型的预测平均误差都有减小,平均绝对误差降低,预测精确度提高。而XGBoost模型的需求预测效果不管是否考虑滞后性,预测的平均绝对误差和平均相对误差都较大,预测效果不理想。其中考虑滞后性LSTM模型预测相对误差仅为0.035,预测精度最高。

综上,通过以上模型对比可以验证本文建立的考虑滞后性的LSTM神经网络需求预测模型较为合理,能够有效地预测商品需求。

4 结论与建议

本文以快消品电商需求分析及预测为研究目标,结合消费者行为数据以及历史线上销售数据,利用LSTM神经网络相关知识对快消品电商需求进行分析以及预测。选取Q企业纸类商品数据对模型进行验证。但本文选取的数据数量有限,且消费者行为数据种类并未完全搜集到,因此对整个电商企业来说,其对象和数据的选择具有一定的局限性。在建立预测模型过程中可以通过增减模型输入自变量的个数,研究需求预测模型的效果变化情况,这也是接下来需进一步研究的问题。

实验结果显示,LSTM神经网络在一定程度上更适合电商需求预测;消费者的浏览行为和购买行为对商品的需求有滞后性影响。因此,企业若想更准确地预测商品的需求量,可通过市场调查和网络监管等技术加强对消费者行为的数据收集,从而掌握消费趋势和市场走向、管理库存和制定合理的战略。

猜你喜欢
需求预测神经网络因子
我刊2021年影响因子年报
基于递归模糊神经网络的风电平滑控制策略
一些关于无穷多个素因子的问题
基于BP神经网络的济南市物流需求预测
基于灰色模型对上海市电力需求预测分析研究
影响因子
神经网络抑制无线通信干扰探究
基于神经网络的中小学生情感分析
扮靓爱车拒绝潜伏危险因子
基于灰色马尔可夫模型的公务航空市场需求预测