摘要
在电商行业中,供应链管理和履约效率对于确保客户满意度至关重要。京东在这一领域一贯表现出色,得益于完善的物流基础设施,超过90%的自营订单可在24小时内完成履约,这一快速交付承诺显著提升了客户满意度,并使京东在竞争中脱颖而出。
今年10月的INFORMS年会上,京东集团供应链产研团队凭借其在库存选品与调拨技术上的卓越创新与实践,荣获备受瞩目的Daniel H. Wagner Prize。这是继今年4月荣获2024 INFORMS Prize之后,时隔半年京东再次获得运筹与管理学领域的国际顶级奖项。美国运筹与管理科学学会(INFORMS, Institute for Operations Research and Management Science)是国际最具影响力的运筹与管理科学学会。
京东零售供应链团队提出了一种数据驱动的库存选品和调拨算法,有效提高了京东供应链管理和履约效率。在包含区域配送中心(RDC)和前置配送中心(FDC)的两级配送网络结构下,FDC可存储的商品范围往往有限,如何确定FDC的选品范围,以及如何优化RDC到FDC的库存调拨策略,对履约效率有直接的影响,也同时影响客户体验。针对库存选品问题,京东通过分析过往订单中的商品关联购买情况,结合需求预测技术,提出了高效的选品算法,来最大化本地订单满足率和211达成率,从而提升用户体验。
针对库存调拨问题,京东设计并应用了一种全新的端到端调拨算法,将需求预测、迭代优化和仿真模拟等功能模块集于一体,直接输出现货率最高、仓配成本最低的库存调拨方案,同时使方案具有较强的可解释性,为库存管理过程提供了更清晰、更科学的决策支持。
基于该技术的选品和调拨算法已上线应用,显著降低了京东各仓的缺货损失和履约成本,提高了现货率,每年为超千万订单提供了更快的履约时效。这些都极大提高了京东供应链运营效率和客户服务水平,也彰显了数据驱动的优化技术在解决复杂、大规模供应链问题中的潜力。
1. 概述
京东作为全球最大电商公司之一,通过实施数据驱动的库存选品和调拨算法策略,有效提升了供应链管理和履约效率。利用前沿的人工智能和运筹分析技术,京东优化了其供应链和订单履约流程,从而提高了客户满意度。在电商行业中,供应链管理和履约效率对于确保客户满意度至关重要。京东在这一领域一贯表现出色,得益于完善的物流基础设施,超过90%的自营订单可在24小时内完成履约,这一快速交付承诺显著提升了客户满意度,并使京东在竞争中脱颖而出。
京东采用包含区域配送中心(RDC)和前置配送中心(FDC)的两级配送网络。八个RDC是大型仓库园区,储存的SKU范围最为全面,定位于服务整个区域。而FDC更靠近客户,致力于提供快速履约能力,但FDC容量相对较小,要依赖于RDC的每日调拨来进行补货。两级配送网络如下图所示。
当客户订单下达时,如果FDC有足够的库存,则会从相应的FDC发货履约。如果FDC缺货,则会由RDC发货,这会因较长的距离和潜在的延迟交付导致的销售损失而增加额外成本。由于FDC对于快速履约的重要性,以及存在容量限制的问题,FDC的选品以及FDC和RDC的库存管理和调拨任务对于维持履约效率至关重要。我们的目标是最大化FDC履约率,最小化FDC和RDC的销售损失,并减少库存调拨成本。
该问题的难点有以下几个:(1)单个RDC服务于多个FDC,且RDC还有其自己的服务区域来进行订单履约,因此需要非常精细的选品和调拨策略,来平衡RDC的自身需求和各FDC的库存转移。这其中还涉及各种业务约束,如FDC的容量限制、物流能力和销售计划。(2)京东管理着海量、全类别的SKU,要求算法具备通用性和可扩展性。(3)FDC的需求相对稀疏,波动性大,增加了需求预测的复杂性。(4)选品和调拨决策必须考虑未来的不确定性,以适配长期的销售计划,并减少意外事件带来的风险。(5)预测算法需要具备可解释性,从而提升算法结果的采纳度,对于协调供应链上下游各环节至关重要。
为应对这些挑战,本文提出了一个综合优化模型,目的在于最大化本地订单履约率,最小化FDC和RDC的销售损失和库存调拨成本,同时满足各种业务约束。由于问题的复杂性,即使是具有确定性需求的静态版本也是NP-complete问题。此外,由于RDC管理的SKU规模有数百万,问题规模相当庞大,因此我们将问题分解为两个子问题:库存选品问题和库存调拨问题。选品问题决定了哪些SKU应在FDC存储,这反过来影响调拨问题中的仓库容量使用和运输需求。选品决策也会影响FDC理论可实现的服务水平。此外,选品方案的质量直接影响调拨方案的质量。整个决策流程如下图所示。
在选品子问题中,我们需要决定某特定时期(例如一周)内在FDC存储哪些SKU,从而在满足容量限制的前提下,最大化FDC的订单履约数量。该子问题面临两个关键挑战:一是预测未来订单结构非常困难;二是即使有精确的未来订单信息,对应的整数规划问题也是NP-hard的。此优化问题可视为在容量限制下最大化超模函数的特殊情况,通常难以直接求解。为此,我们提出了两种启发式算法:ML-Top-K和Reverse-Exclude。ML-Top-K算法利用机器学习技术预测购买每个SKU的订单数量,并根据这些预测选择前K种产品。Reverse-Exclude则根据历史订单频率,用反复迭代的方式依次淘汰最不畅销的SKU。数值实验表明,与以前的方法相比,这两种方法均实现了更高的订单满足率。
在确定了每个FDC中存储哪些SKU后,第二个子问题是库存调拨问题,即确定从RDC到FDC的每日库存转移量,以最小化总销售损失和库存调拨成本。本文将此问题建模为周期性库存盘点问题。传统的两级库存判断问题大多是供应商决策各零售商之间分配可用库存,这与我们的问题不同,因为供应商(RDC)还需要为自身分配足够的库存。由于需求不确定性、FDC和RDC之间的相互作用、多个时间段内库存决策的相互依赖性等因素,以及各种容量和业务约束,该子问题具有挑战性。为此,本文提出了一种新的多任务端到端学习框架。由于其多任务和自学习能力以及可解释性,该框架优于以前的算法。下文中会提供进一步的细节。
与以往文献和行业其他方案相比,本文的工作有以下几个主要创新点:
- 本文提出了一个用于联合库存选品和调拨的综合框架,目标在于提高FDC订单满足率并最小化因FDC和RDC缺货而导致的销售损失。
- 针对选品问题,本文设计了两种新算法,最大化FDC订单满足率,解决了订单结构预测和优化复杂性的问题。其中以最大化FDC订单履约率为目标的选品算法,在以往文献中研究较少。
- 针对调拨问题,本文开发了一种全新的端到端预测和调拨决策算法。该算法结合预测与数字孪生仿真系统,自学习最佳目标库存(TI)和安全库存(SS)水平。与以往仅依赖历史数据进行库存标记和学习的算法不同,本文的方法结合预测和仿真结果来最小化总损失。该学习框架具有以下几个优势:
- 多任务学习。该框架使网络能够同时学习预测、补货和仿真任务,促进任务之间的信息共享和知识转移,可显著提高库存管理的效率和准确性。
- 自学习。该框架引入了前沿的自学习机制,来进行自动数据标记,不再需要开发以往用于数据标记的复杂运筹算法。这显著提升了库存管理中样本处理的效率和准确性。
- 可解释性。本文模型的模块化结构增强了可解释性,与传统的“黑盒”形式的深度学习方法相比,提供了更好的库存管理过程中的洞察,从而让决策结果更直观、更容易被采纳。
本文提出的选品和调拨算法已在京东的库存管理实践中得到测试和应用。数值实验表明,联合选品和调拨优化能够有效满足客户需求,有效提高FDC订单满足率。应用这些算法后,库存决策系统大幅提高了运营效率和客户体验,主要收益包括降低库存持有和调拨成本,提高库存现货率,以及增加本地订单履约率,有效提升了消费者的211时效体验。
2. 选品算法
2.1 选品问题定义
首先给出选品问题的定义。选品的任务是在全量自营SKU中,为每个FDC选出一组畅销SKU集合,总数量不超过K,以满足FDC的容量限制。我们的目标是最大化FDC能够整单履约的订单数量。该问题可以用整数规划模型来描述,如下图。
其中,N是全量SKU集合,O为订单类型集合,Do是一段历史期间内购买订单类型o的订单数量。决策变量xi是0-1变量,表示SKU i是否包含在选品清单中,辅助决策变量yo是0-1变量,表示订单类型o是否可以由FDC整单履约。第一个约束表示选品清单中最多只能包含K个不同SKU。第二个约束表示只有当订单中的所有SKU都在选品清单中时,该订单才能由FDC整单履约。
直接求解这个问题是很有挑战性的。首先,由于电商场景中大量长尾商品和需求带来的高维稀疏数据、需求的波动性和复杂的产品依赖关系,很难精准预测未来订单结构。其次,即使给定了订单结构,简化为确定性问题,该问题也是NP难的,对于京东这样的规模,求解精确解在计算上是不现实的。
2.2 ML-Top-K算法
为解决选品问题,我们首先设计了基于机器学习预测模型的ML-Top-K算法,即通过预测每个SKU在各FDC覆盖范围内的销量,选择销量排名前K的SKU作为选品清单。
该方案的思路较为简单、直观。实现方式上,ML-Top-K算法的输入包括不同层级的历史订单数量:SKU层级、SKU类别、品牌、全国SKU层级,以及促销和营销活动信息。算法的核心结构包含季节性和趋势模块,用于学习基线模式。这些模块的输出通过两个并行路径进行处理:一个用于深度特征提取的时间卷积网络(TCN),以及一个用于多层次特征提取的多层感知机(MLP)。TCN的输出特征与MLP的促销预测通过元素级乘法结合,然后通过另一个MLP生成最终的订单数量预测。基于此预测,算法选择预测订单数量最高的前K个SKU作为选品结果。
可以证明,当单品订单比例较高时,基于贪心策略的ML-Top-K算法表现良好。但是,我们也通过实际案例发现,当多品订单影响显著时,该算法可能表现较差。原因在于,订单数量高的产品可能经常与订单数量低的不同产品一起出现,因此当关联购买情形较多时,仅选择销量前K的SKU无法保证较高的FDC整单满足率。
2.3 Reverse-Exclude算法
为解决关联购买场景下ML-Top-K算法性能不佳的问题,我们设计了第二种启发式方法,称为Reverse-Exclude算法。该算法采用逆向思维,用汰品的方式来过滤出最终的选品方案。具体来说,Reverse-Exclude算法通过从全部SKU集合中逐步淘汰订单频率最低的SKU,来得到最终的选品结果。该方法在淘汰SKU的同时,也删除掉包含该SKU的订单,因此可确保所有剩余订单可以通过选品结果中的SKU来满足。Reverse-Exclude算法的步骤如下:
1. 初始化:被淘汰的SKU集合E,初始化为空集。
2. 当剩余SKU数量大于K(即 |N\E| > K)时:
- 计算每个剩余SKU的订单影响力fi,即包含该SKU的订单需求总和。
- 按照fi升序排序SKU,并选择fi最小的一批SKU。批量大小是动态调整的,离目标K远时较大,接近K时减小至1。
- 将选中的SKU添加到淘汰集合E中,并将所有包含该SKU的订单需求设为0。
- 重复步骤2,直到 |N\E| = K
3. 返回剩余的SKU,即 N\E 作为最终的选品结果。
3. 调拨算法
3.1 调拨问题定义
在调拨问题中,我们考虑一个具有随机需求、无提前期、多周期库存分配问题。我们假设该问题是针对单个SKU在离散周期1, 2, ..., T上的有限时间范围内进行的,也就是说,我们考虑未来T天的FDC库存调拨方案。
在京东的两层网络中,每个FDC只能由一个RDC补货。在每个补货调拨周期,我们要决定每个FDC的补货数量。当客户订单提交时,系统会依次尝试FDC和RDC,并决定是由FDC或RDC来履约这些订单。每个FDC都有确定的覆盖收货城市范围,该范围内的订单只能由该FDC及其对应的RDC履约(本文暂不考虑平行支援的场景)。由于库存和履约决策在不同RDC区域之间是独立的,我们的决策范围只需考虑一个RDC及其下属各FDC。在定期盘点库存策略中,我们的任务是要确定每个周期t,对于每个SKU,每个FDC的库存调拨数量。目标是在T个周期内最小化总的销售损失(包括RDC和FDC的销售损失)以及库存调拨成本。
该问题仍可以用整数规划模型来建模,但求解该问题具有多方面的挑战:首先,准确预测FDC在多个周期内的需求及其分布是很复杂的任务,尤其是考虑到FDC订单需求的波动性和长尾性,以及京东需要在多个DC管理海量的商品。此外,RDC的补货数量具有不确定性,这需要根据当时的系统状态进行实时决策。即便在需求信息完美的情况下,针对大量SKU求解线性规划也是计算密集型的任务,往往需要耗费数小时。在京东的实际应用中是无法接受如此漫长的求解过程的,因为持续的订单可能会改变库存状态,从而导致结果出炉时可能已经不再是最优解。这些问题也突显了传统优化方法在求解大规模、动态的库存调拨问题中的局限性。
3.2 端到端调拨算法
为了克服调拨问题的这些挑战,实现快速、针对性的决策,我们提出了一种端到端学习算法,将需求预测、库存优化和输出决策整合到一个统一的框架中,能够快速响应变化的条件,同时适配电商库存调拨问题的大规模和高度复杂性。
端到端调拨算法框架通过多任务、多步骤的决策过程优化库存分配和调拨,通过充分利用安全库存,将有限的库存分配给最急需的FDC,同时最小化RDC和FDC的销售损失和调拨成本。对于RDC,先基于本地需求计算安全库存,以确保在每个补货周期内有足够的库存来应对波动。整个计算流程现基于可解释的需求预测模型,生成初始安全库存(SS)和目标库存(TI)结果。随后通过仿真机制,以最小化区域销售损失并最大化区域和FDC的满意度。仿真的存在,有助于减少由于预测误差导致的调拨决策偏差。
从学习结构的角度来看,模型通过将每个RDC及其关联的FDC聚合为一个实例,而不是单独解决每个配送中心的问题,从而在区域层面进行整体优化。这种方法确保了更全面的优化,能够获取整个网络的相互依赖性。
本文的模型与以往端到端文献中简单的单点决策不同,而是采用了一个过程导向的、多周期的决策框架。这种方法将每个决策视为更大链条的一部分,受到过去决策的影响,并影响未来结果。为了捕捉这些复杂的时间关系,并利用先前模型的信息,在整体端到端算法中使用了递归神经网络(RNN)架构,如图所示。
该框架由相互连接的模块组成,每个模块均为一个深度学习模型,处理每日输入,并输出库存管理决策。每个模块的输入来源于两个方面:(1)历史销售数据、营销和促销因素以及调拨提前期;(2)前一个模块的初始库存状态,包括起始库存、补货和从RDC到FDC的调拨量。模块输出仿真后的安全库存SS和目标库存水平TI、销售预测,以及RDC和所有FDC的销售仿真。
如上图所示,每个模块的内部结构包括三个主要组件:
1. 预测模块:用于生成基线预测、促销影响估计,并根据高维销售数据(如SKU粒度、类别粒度、品牌粒度和全国SKU粒度的历史销售)进行调整。
2. 目标库存和安全库存生成模块:结合提前期、销售预测、历史实际销售和历史预测准确性来确定最佳库存水平。该模块使用多层感知机(MLP)和Transformer结构处理输入,并生成目标库存和安全库存值。
3. 仿真模块:在RDC范围内运行,基于生成的安全库存和目标库存分配库存。它优先满足RDC本地需求,然后再分配给FDC。分配后,模型仿真每日销售和库存消耗,记录履约情况和销售损失。仿真模块的输出包括仿真后的安全库存和目标库存水平、预测期的销售预测以及RDC和所有FDC的每日销售情况仿真。
在训练阶段,模型通过最小化两个主要损失函数来优化迭代:(1)预测误差,定义为预测销售与实际销售之间的差异;(2)仿真中的销售损失,包括RDC和FDC的销售损失、FDC调拨成本,以及库存水平低于安全库存的惩罚项。
在推理阶段,模型生成未来数日的销售预测,并为未来的补货决策推荐最佳目标库存和安全库存水平。这种方法实现了动态、前瞻性的库存管理,能够适应不断变化的需求模式和供应链条件。通过提供主动的建议,模型能够高效地预见和响应市场变化,优化整个网络的库存水平。
4. 实验与落地
下面介绍上述算法基于京东真实数据的实验结果,将本文中的算法与原有方法进行比较,并简要介绍相关模型的上线落地过程及影响。
4.1 选品算法实验
选品算法实验中,与线上原有方法相比,ML-Top-K算法和Reverse-Exclude算法分别将本地订单满足率提升了0.54pp和0.27pp,尽管这一数值看上去不大,但换算成数量,相当于每天10万个订单,是一个十分可观的数字。进一步,将两种算法的选品结果按照多路召回的思想进行结合,可以相比原有方法提升满足率2.2pp,是非常显著的提升幅度。这一提升也显示了机器学习和运筹技术在库存管理中的实际效果。
4.2 调拨算法实验
调拨算法实验中,我们考虑2个RDC,每个覆盖6个FDC。实验关注三个关键性能指标:FDC需求满足率(FDC Sat.)、区域销售损失(Reg. Loss)和损失率。损失率的定义为区域销售损失除以FDC履约的销售量,用来衡量订单履约的效率以及销售损失的程度,因为考虑到有限的库存量,从RDC到FDC的库存调拨可能导致区域内的销售损失。
下面将本文提出的新端到端算法与京东线上原有的两种算法进行比较:
1. 基于仿真的参数搜索:通过结合需求预测的仿真,通过搜索的方式确定合适的调拨策略参数。
2. 线性规划:基于需求预测、安全库存约束和其他业务需求,为每个SKU求解线性规划模型,以确定库存调拨决策。
上表中比较了三种算法的性能。新端到端算法在FDC需求满意率上表现优异,达到58.59%,相比参数搜索的57.55%和线性规划的57.12%有显著提升,至少提升了1.05pp。虽然新方法在区域销售损失上略有增加(2.86%对比线性规划的2.78%),但损失率保持在17.80%,与参数搜索方法相当。FDC满足率的显著提升表明,新方法能够显著增强本地订单履约能力,提升211订单的占比,从而极大提升客户满意度。
4.3 落地与影响
基于选品和调拨算法,我们开发了智能供应链决策支持系统。该系统已上线运行,覆盖所有8个RDC,每个RDC覆盖5到13个FDC。该系统上线以来,已产生明显收益,FDC的库存持有成本和资金利用成本每年减少约4451万元。此外,库存调拨成本每年节省约1.62亿人民币。库存现货率也提高了0.85%,每年惠及近100万个SKU。此外,本地订单满足率提高了2.19%,211订单占比上升了1.44%,给约1861万订单提供了更快的履约时效和更好的客户体验。这些收益展示了算法能力在优化运营和资源分配方面的影响。
5. 结论
本文介绍了京东供应链管理中的FDC选品和调拨的算法模型探索。对于选品问题,我们开发了平衡计算可行性与性能的新算法,在本地订单满足率上优于以往方法。对于调拨问题,我们提出了结合预测、优化和仿真的新端到端算法,在相同损失率的前提下,显著提升了FDC满足率。本文中的算法已成功部署在京东的供应链管理系统中,显著提高了运营效率和客户服务水平。本文的算法模型也展示了数据驱动的优化技术在解决复杂、大规模供应链问题中的潜力。
此次荣获Wagner Prize,是京东供应链技术和效能在国际上获得的又一次认可。未来,我们将继续致力于通过技术创新提升供应链效率和用户体验,努力践行“技术为本,让生活更美好”这一使命。
作者:申作军,孙硕,戚永志,胡浩,康宁轩,张建申,王鑫,林晓明 (京东零售-平台产品与研发中心-供应链产品研发部)