需求预测与库存决策的集成研究

2018-08-23 08:48
上海管理科学 2018年4期
关键词:报童库存决策

徐 欢

(上海交通大学 安泰与经济管理学院,上海 200030)

1 文献综述

关于需求预测方面研究有很多,主要表现为关于需求场景的研究和关于预测方法的研究。杨磊等[1]在考虑资金、仓库面积等约束条件下,分析了零售商的风险厌恶程度对最优订货策略的影响。李娟等[2]考虑了价格相依报童模型,分析了需求的不确定性,以及供应商和零售商之间的信息不对称性对零售商以及供应商决策的影响。褚宏睿等[3]在前景理论的假设下,研究了回购机制和缺货惩罚因素对最优订货量的影响,并给出了它们的函数变化关系。徐贤浩等[4]考虑库存价值可能发生贬值或增值,在给出随机需求分布的情况下得到最优订货量和最大期望收益。陈杰等[5]考虑了多商品的情况,在带有能力约束的情况下,给出了多元马氏需求报童模型。禹海波[6]在需求不确定的情况下,研究了一次订货单周期报童模型和二次订货最大化利润报童模型两类问题,并探讨了二者之间的结构性关系。Guo等[7]分析了短生命周期商品的不确定性,考虑了不同需求情况下的最优订货策略。

以上都是报童模型在不同场景下的研究,主要考虑了在给定情境下,如何做出最优决策。另外有一类关于预测方法的研究。宋华明等[8]使用Bayes的方法,利用获得的最新信息修正需求预测,建立了一个平衡更新预测带来的收益和预测成本的决策优化模型。孙涵等[9]对我国的能源需求建立了支持向量回归机(SVR)预测模型,并证明该方法在能源需求预测问题上,比BP神经网络有更高的预测精度。徐贤浩等[10]考虑了短生命周期商品易变质、难预测的特点,对BASS扩展模型进行了改进,用来预测短生命周期商品的需求分布,并给出了优化策略。

还有一些理论方面的研究。Bertsimas等[11]抛弃了存在需求分布的假设,完全由数据驱动,建立了一个鲁棒报童模型,并引入一个可调节的参数alpha,来控制模型的鲁棒性。Wang等[12]引入了Likelihood Robust Optimisation(LRO)的概念,利用这一概念重新定义了可能的需求分布,并给出这些分布中最坏情况下的最优决策。Levi等[13]假设商品需求分布未知,仅有该分布下的独立历史数据,对Sample Average Approximation(SAA)方法进行了分析,给出了更精确的上下界,并研究了分布属性对上下界的影响。

可以看出,以上研究大多将预测与决策分开来考虑。另外有一些研究将预测与决策结合起来考虑。孙彩虹[14]在仅获得需求的均值与方差的情况下,联合定价与订货决策,给出了部分信息下的鲁棒联合报童模型。李长春[15]使用随机森林对商品需求做预测,并在残差属于正态分布的假设下,得到商品的需求分布,结合报童模型,给出了仓库的库存决策。该论文将预测和决策分成两步结合起来,属于Sepatated Estimation and Optimisation(SEO)方法。倪冬梅等[16]利用时间序列分析与多元回归,建立了需求综合预测模型,并将预测模型与决策相结合,采用启发式算法进行求解。该论文同时考虑了预测与决策的问题,并将两者结合起来研究,但在数据上,仍旧主要考虑了历史销量数据对当期销量的影响。在大数据背景下,我们可以获得更多与当期需求有关的特征数据。另外,该论文采用邻域搜索的启发式算法进行求解,仅仅考虑了六个特征,当特征数增加(在大数据背景下,往往能增加到上千或上万个特征)时,该方法很难给出最优解或较优解。Rundin等研究了多特征下的报童问题,将线性回归与报童问题结合,讨论了无论在大数据还是小数据的情况下,新给出的方法在表现上都要优于SAA和SEO。

从对以往文献的分析中可以发现,提高需求预测的准确性,并将需求预测与库存决策结合起来,给出全局最优的解决方案,是库存问题的发展方向。本文在已有数据集(给定p个特征与n个样本)的情况下,构建了一个Feature Based Newsvendor Model(FBNV)模型。该模型将机器学习与库存决策结合起来,转化成一个规划问题,以线性回归模型中的特征系数为决策变量,以最低成本为目标。本文详细说明了该模型与传统报童问题,以及SAA、SEO模型的区别,并且通过实验数据证明了该模型的有效性。

2 问题描述

通过天池大数据众智平台,本文获取了阿里巴巴旗下电商平台买家与卖家脱敏后的交易数据。利用这些数据,电商希望能够提取所需要的特征,并构建预测模型,更准确地估计出商品未来的需求,从而为每个仓库确定更合理的库存,达到降低运营成本的目的。

本次数据包括1 000种商品,5个区域仓,从2014年10月10日至2015年12月27日,一年多的交易数据。数据展示如表1、表2所示。

表1 商品特征类目表

根据赛题要求,每两周作为一个数据窗口,两周内商品的总销量作为数据标签,本文对原数据进行处理,构建了一个带有60多个特征的数据集。数据集如表3所示。

特征主要包括:1)item维度,分别计算了各个量7天/14天的统计值;2)category、band、supplier维度,分别计算了非聚划算的销量均值、销量标准差。

假设以上数据集是本次问题的输入,本文尝试使用不同的方法对问题进行建模,并通过实验结果进行对比,发现“一步走”(FBNV)的方式能够找到更加合理的库存水平,进一步节约库存成本。同时,使用比线性规划更复杂的预测方法,也能够改进模型的效果。

表2 商品成本信息表

表3 数据特征表

3 建模与分析

3.1 经典报童问题

经典报童问题假设公司销售一种商品,该商品的需求分布已知,存在持货成本h和缺货成本b,在未观测到下一期的需求前,确定订货量,使得总的期望成本最小。目标函数为

其中,q是订货量,D是未知随机需求,b和h分别对应单位缺货成本和单位存储成本。目标函数是关于订货量q和需求D的随机函数:

C(q,D) =b(D-q)++h(q-D)+

如果需求分布F已知,该问题的最优解已经给出:

3.2 数据驱动报童问题

经典报童问题假设需求分布已知。然而,实际中常常并不知道商品的需求分布。数据驱动的报童模型假设仅能获取商品的历史销售数据,同样存在持货成本h和缺货成本b。在未观测到下一期的需求前,电商需要确定订货量,使得总的期望成本最小。一般我们使用样本平均期望替代真实期望,该问题目标函数为

h(q-di)+]

这种使用历史样本均值替代真实期望的方法被称作Sample Average Approximation(SAA)。SAA模型的最优解也已经给出:

3.3 Feature Based报童问题(FBNV)

数据驱动报童模型仍然太过简单。在大数据时代下,电商能够收集到包括历史需求数据在内的众多外生信息。这些需求相关的信息,能够帮助电商做出更准确的决策。因而,我们可以将报童问题看作已知n期历史数据Sn=[(x1,d1),(x2,d2),…,(xn,dn) ],需要确定订货策略,使得总期望成本最小。其中,xi=[xi1,xi2,…,xip]是一个p维向量,表示第i期收集到的数据,包括天气、季节性、促销等与销量相关的特征。

最终需要解决的问题是,在收集到第n+1期的数据xn+1的情况下,确定第n+1期的订货量。也就是需要找到一个最优的函数g(·),将xn+1映射到g(xn+1),使得期望的总成本最小。采用类似SAA方法的思想,带特征的报童问题可以建立如下目标函数:

h(g(xi)-di)+]

其中,目标函数是在给定数据集Sn情况下,关于函数g(·) 的历史平均成本。FBNV算法与SAA类似,均采用了经验风险最小化原则。该原则在机器学习的分类和回归问题中被广泛采用[21]。

为了解决这一问题,我们需要定义函数g(·)所属的集合范围Ω 。其中,Ω的范围,或者说函数g(·)的复杂程度控制了模型是过拟合还是欠拟合。Ω越复杂,模型可能越能拟合当前数据样本,但却会造成过拟合的问题。在本文中,我们仅考虑线性函数,假设

其中x1=1,表示将截距项考虑到模型中去;g(x)将特征向量x转化成一个一维实数R,即预测的销量。实际上,g(·)的范围并没有严格的限制,可以根据问题需要,设置不同的转化函数。本文为了与线性回归进行对比,以及使用线性规划的方法对问题进行求解,我们选择了线性的转化关系。

3.4 FBNV模型求解

g(xi))++h(g(xi)-di)+]≡

s.t.∀i=1,…,n:

ui,oi≥0

定义两个虚拟变量ui,oi,分别代替(di-g(xi))+和(g(xi)-di)+,将原问题转成一个标准的线性规划问题。可以使用gurobi等工具,对其进行求解。

如果特征较多,我们可以使用特征筛选的方法,如AIC[22],BIC[23]等挑选特征;或者通过加入正则惩罚项,让模型自动挑选变量。加入L2惩罚项后,原问题如下所示,变成了一个二次规划问题。该问题同样可以使用锥规划求解器对其进行求解。

[b(di-q(xi))++h(q(xi)-di)+]+λ‖q‖2≡

4 算法结果对比

本文使用上面所述数据,并用Python 2.7进行了程序实现,对比了纯预测算法策略、预测算法+库存决策“两步走”策略、FBNV模型“一步走”策略三种不同的库存策略。其中,预测方法选取线性回归(Linear regression)作为基本模型;另外,从随机森林、GBDT、SVM等回归模型中挑选预测表现最好的一个模型随机森林,作为对比。每一种预测模型,分别有纯预测算法策略和预测+决策“两步走”策略,加上FBNV模型,本文对每一份数据,利用5个不同的策略,分别计算了最优的库存成本。

为了证明算法的稳定性和有效性,避免随机因素,本文在5个仓库分别进行了实验,实验结果见表4。

表4 模型结果对比

由表4可以看出,在5个案例中,FBNV算法得到的结果均为最优。另外,无论是简单的线性回归,还是复杂一些的随机森林,使用预测+决策“两步走”的方式的确能够在一定程度上减少库存。同时,单从预测算法上来看,提高预测模型的预测准确度也能减少成本。

图1给出了相对于最基本的线性回归模型其他四种模型提升的比例,可以看到采用“一步走”的策略,平均大约能够减少20%左右的库存成本。

图1 模型提升百分比/%

5 总结

大数据时代带来了大量的数据,同时也诞生了很多新的预测方法,能帮助我们更准确地对需求做出预测,这对库存决策来说是一个新的机遇。如何运用这些方法,是一个需要考虑的问题。本文通过对预测模型和报童模型的研究,提出了一个将预测与决策结合起来,将“两步走”变成“一步走”的新方法,并用数据对模型进行了证明。实验结果表明,通过“一步走”找到全局最优的思想,能够大大减少库存成本。这对大数据背景下,如何做出更优的库存决策的问题具有一定的参考意义。

猜你喜欢
报童库存决策
乌克兰谷物和油料作物库存远低于2020年同期
为可持续决策提供依据
决策为什么失误了
基于预期的报童问题研究
前景理论框架下基于期望的损失厌恶报童博弈
一二线城市库存减少5.2%
营销4C与房产去库存
别指望农民工当去库存的“接盘侠”
第八十三
关于抗美援朝出兵决策的几点认识