Arch Day 84: 需求预测与智能补货
Arch Day 84: 需求预测与智能补货
日期: 2026-06-22 (Day 84) 阶段: 第三阶段 - 零售域深度 标签: #供应链 #需求预测 #智能补货 #时序模型 #库存优化
核心概念
一句话定义
需求预测不是"猜"——是用数据驱动库存决策。它通过历史数据、外部信号和机器学习模型,预测未来各SKU在各门店的销售量,再结合安全库存和在途库存,自动生成补货建议。
为什么关注
据NVIDIA 2026零售AI调研报告,91%的零售企业正在使用或评估AI技术用于库存优化。IBM调查显示,90%的高管预期到2026年供应链工作流将包含AI助手和自动化。在零售场景中:
- 库存积压:中国零售行业平均库存周转天数超过60天,大量资金沉淀在库存中
- 缺货损失:缺货导致的销售损失占零售总销售额的4%-8%
- 人工补货低效:传统门店店长凭经验补货,准确率不足60%
- 长尾SKU难管:20%的SKU贡献80%的销售,但剩下80%的长尾SKU才是库存管理的难点
误区与反模式
| 误区 | 现实 |
|---|---|
| "预测越精确越好" | 不同品类需要不同精度标准,AX类SKU追求高精度,CZ类追求低成本管理 |
| "一个模型打天下" | 不同波动性的商品需要不同的预测方法组合 |
| "预测=补货" | 预测只是输入,补货还要考虑安全库存、MOQ、在途、仓容 |
| "历史数据越多越好" | 季节性商品用太久的历史反而引入噪音 |
| "AI一定比统计方法好" | 高频稳定SKU,简单指数平滑可能优于复杂深度模型 |
知识点详解
一、预测方法演进
需求预测经历了四个时代:
时代1: 经验驱动 (2000前)
├── 店长拍脑袋订货
├── 简单的上周销量×系数
└── 问题:完全依赖人的经验,不可复制
时代2: 统计方法 (2000-2015)
├── 移动平均 (MA/WMA)
├── 指数平滑 (SES/DES/TES/Holt-Winters)
├── ARIMA/SARIMA
└── 优势:可解释、计算快、理论成熟
时代3: 机器学习 (2015-2022)
├── XGBoost/LightGBM (表格数据)
├── Prophet (Facebook开源)
├── DeepAR (Amazon开源)
├── N-BEATS (Nixtla)
└── 优势:捕捉非线性关系、自动特征交互
时代4: 基础模型/大模型 (2023-至今)
├── TimesFM (Google)
├── Chronos (Amazon)
├── Lag-Llama
├── LLM辅助预测 (用GPT解释预测偏差)
└── 优势:零样本/少样本预测、跨品类迁移
1.1 经典统计方法详解
移动平均(Moving Average):
简单移动平均: F(t+1) = (D(t) + D(t-1) + ... + D(t-n+1)) / n
加权移动平均: F(t+1) = Σ(w_i × D(t-i+1)), Σw_i = 1
适用场景:需求平稳、无明显趋势和季节性的商品(如日用消耗品)。
指数平滑(Exponential Smoothing):
简单指数平滑: F(t+1) = α × D(t) + (1-α) × F(t)
Holt双参数: 加入趋势项β
Holt-Winters三参数: 加入季节性项γ
指数平滑的核心思想是"近期数据权重大、远期数据权重小",通过平滑系数α控制衰减速度。
ARIMA/SARIMA: 自回归差分移动平均模型,适合有明确趋势和季节性的单变量时序。参数(p,d,q)×(P,D,Q,s)需要通过AIC/BIC选择。
1.2 机器学习方法详解
Prophet(Meta开源):
y(t) = g(t) + s(t) + h(t) + ε(t)
趋势 季节性 节假日 误差
特点:
├── 分解式建模,可解释性强
├── 自动处理节假日效应
├── 支持手动添加变化点
├── 对缺失值和异常值有较好的鲁棒性
└── 适合业务分析师使用(非深度学习)
DeepAR(Amazon开源):
基于自回归RNN的概率预测模型
特点:
├── 输出概率分布而非点估计(P10/P50/P90)
├── 全局模型:所有时序共享参数
├── 天然支持cold-start(相似品类迁移)
├── 适合大规模SKU批量预测
└── 训练成本较高,需要GPU
N-BEATS(Neural Basis Expansion):
特点:
├── 纯深度学习,无需领域知识
├── 双重残差栈架构(Trend+Seasonality)
├── 可解释版本支持趋势/季节性分解
├── 在M4竞赛中表现优异
└── 适合自动化预测流水线
XGBoost/LightGBM:
特点:
├── 将时序问题转化为特征工程+表格学习
├── 特征:滞后值、滚动统计、日期特征、外部变量
├── 训练速度快,推理速度快
├── 可解释性好(SHAP值)
├── 企业实践中性价比最高
└── 如SPAR Austria通过类似模型实现>90%预测准确率
二、预测粒度与层级
2.1 预测粒度
预测粒度由三个维度决定:商品×地点×时间。
粒度由粗到细:
商品维度: 品类 → 子品类 → 品牌 → SPU → SKU
地点维度: 全国 → 大区 → 城市 → 门店/仓库
时间维度: 年 → 季 → 月 → 周 → 天
实际选择:
├── 运营补货:SKU × 门店 × 天(最细粒度)
├── 采购计划:SPU × 大区 × 周
├── 战略规划:品类 × 全国 × 月
└── 财务预算:大品类 × 全国 × 季度
2.2 预测层级策略
Top-down(自顶向下):
全国预测 → 按比例分配到区域/门店
优点:高层级数据更稳定,预测更准
缺点:忽略局部特征,分配比例可能不合理
适用:新门店、新品类
Bottom-up(自底向上):
各门店预测 → 汇总到区域/全国
优点:捕捉局部特征
缺点:底层数据波动大,误差累积
适用:成熟门店、稳定SKU
Middle-out(中间向外):
选择"最优中间层级"(如城市×子品类)预测
向上汇总 + 向下分配
优点:平衡稳定性和局部特征
缺点:最优层级需要实验确定
适用:大多数实际场景(推荐)
Reconciliation(协调法):
各层级分别预测 → 用优化方法协调使各层一致
方法:MinT (Minimum Trace) / WLS
三、安全库存计算
安全库存是应对需求不确定性和供应不确定性的缓冲。
3.1 基础公式
安全库存 = Z × σ_L
其中:
Z = 服务水平对应的正态分布Z值
- 95% → Z = 1.65
- 97.5% → Z = 1.96
- 99% → Z = 2.33
σ_L = 提前期内的需求标准差
= √(L × σ_d² + d_avg² × σ_L²)
L = 平均提前期(天)
σ_d = 每日需求标准差
d_avg = 每日平均需求
σ_L = 提前期标准差
3.2 不同场景的安全库存策略
A类SKU(高价值、高销量):
├── 服务水平: 97-99%
├── 盘点频率: 每天
├── 补货方式: 定量补货 (Q系统)
└── 安全库存: 精确计算,动态调整
B类SKU(中价值、中销量):
├── 服务水平: 93-97%
├── 盘点频率: 每周
├── 补货方式: 定期补货 (P系统)
└── 安全库存: 标准公式计算
C类SKU(低价值、低销量):
├── 服务水平: 85-93%
├── 盘点频率: 每月
├── 补货方式: min-max法
└── 安全库存: 简单倍数法(如1.5倍周均销量)
四、ABC-XYZ分类矩阵
ABC-XYZ矩阵是库存管理的"手术刀",它将商品按**价值(ABC)和需求波动性(XYZ)**两个维度分类。
4.1 分类标准
ABC分类(按累计销售额占比):
A类: 前70%的销售额(通常占SKU数的15-20%)
B类: 70%-90%的销售额(通常占SKU数的30-35%)
C类: 90%-100%的销售额(通常占SKU数的50%+)
XYZ分类(按需求变异系数CV):
X类: CV < 0.5(需求稳定,高可预测性)
Y类: 0.5 ≤ CV < 1.0(需求有波动,中可预测性)
Z类: CV ≥ 1.0(需求高波动,低可预测性)
CV = 标准差 / 均值
4.2 矩阵管理策略
┌─────────┬──────────────────┬──────────────────┬──────────────────┐
│ │ X (稳定) │ Y (波动) │ Z (高波动) │
├─────────┼──────────────────┼──────────────────┼──────────────────┤
│ A(高值) │ AX: 黄金品 │ AY: 需关注 │ AZ: 高风险高回报 │
│ │ 自动补货/JIT │ 安全库存+预测 │ 动态安全库存 │
│ │ 预测准确率>90% │ 预测+人工判断 │ 密切监控+弹性供应 │
├─────────┼──────────────────┼──────────────────┼──────────────────┤
│ B(中值) │ BX: 稳定供应 │ BY: 标准管理 │ BZ: 控制风险 │
│ │ 标准补货流程 │ 标准安全库存 │ 定期审查 │
│ │ 预测准确率>80% │ 适度关注 │ 控制库存上限 │
├─────────┼──────────────────┼──────────────────┼──────────────────┤
│ C(低值) │ CX: 低成本管理 │ CY: 简化管理 │ CZ: 考虑淘汰 │
│ │ Min-Max自动补 │ 按需订货 │ 是否还需要? │
│ │ 大批量低频补货 │ 合并采购 │ MTO(按单生产) │
└─────────┴──────────────────┴──────────────────┴──────────────────┘
五、自动补货引擎
5.1 补货流程全景
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ 预测引擎 │───→│ 库存计算 │───→│ 补货建议 │───→│ 审批流程 │
│ │ │ │ │ │ │ │
│·ML模型 │ │·安全库存 │ │·补货量 │ │·自动审批 │
│·特征工程 │ │·在途库存 │ │·供应商 │ │·人工审批 │
│·多模型融合│ │·可用库存 │ │·到货时间 │ │·异常预警 │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
│
▼
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ 效果反馈 │←───│ 到货入库 │←───│ 物流追踪 │←───│ 采购下单 │
│ │ │ │ │ │ │ │
│·预测偏差 │ │·入库验收 │ │·在途监控 │ │·PO生成 │
│·库存指标 │ │·质量检验 │ │·异常处理 │ │·EDI/API │
│·模型更新 │ │·上架作业 │ │·ETA更新 │ │·供应商确认│
└──────────┘ └──────────┘ └──────────┘ └──────────┘
5.2 补货量计算公式
基础补货量 = 预测需求(提前期+补货周期) + 安全库存 - 当前库存 - 在途库存
约束调整:
├── MOQ(最小起订量): 向上取整到MOQ的倍数
├── 箱规/托规: 向上取整到整箱/整托
├── 仓容限制: 不超过最大库容
├── 保质期: 考虑商品有效期
├── 预算约束: 不超过采购预算
└── 供应商交期: 考虑实际可供货量
最终补货量 = max(0, 调整后补货量)
5.3 审批策略
自动审批规则(无需人工干预):
├── AX/BX类商品 + 补货量在正常范围(±30%历史均值)
├── 系统推荐且预测置信度 > 85%
└── 供应商有足够产能
人工审批触发条件:
├── 补货量异常(超过历史均值3倍)
├── 新品首次补货
├── AZ/CZ类高风险商品
├── 大促前特殊补货
└── 预测模型漂移告警
六、预测准确度衡量
6.1 核心指标
MAPE (Mean Absolute Percentage Error):
MAPE = (1/n) × Σ|Actual - Forecast| / Actual × 100%
优点:直观("预测偏了百分之几")
缺点:actual=0时无法计算,低销量SKU被放大
WMAPE (Weighted MAPE):
WMAPE = Σ|Actual - Forecast| / Σ(Actual) × 100%
优点:高销量SKU权重大,更反映业务影响
缺点:可能掩盖低销量SKU的巨大偏差
Forecast Bias(预测偏差):
Bias = Σ(Forecast - Actual) / Σ(Actual) × 100%
正值=过高预测(库存积压风险)
负值=过低预测(缺货风险)
行业基准:
├── FMCG/快消稳定品:WMAPE 10-15%(优秀<10%)
├── 服装/季节性:WMAPE 25-35%
├── 新品(无历史):WMAPE 40-60%
└── AX类SKU:MAPE < 15%为达标
架构设计实操
智能补货系统架构设计
┌─────────────────────────────────────────────────────────────────┐
│ 智能补货系统 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 数据采集层 │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌──────────┐ │ │
│ │ │ POS销售 │ │ 库存快照 │ │ 供应商 │ │ 外部数据 │ │ │
│ │ │ 数据 │ │ 数据 │ │ 数据 │ │ (天气等) │ │ │
│ │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬─────┘ │ │
│ │ └──────┬────┴──────┬────┴──────┬────┘ │ │
│ │ ▼ │ │
│ │ ┌──────────────┐ │ │
│ │ │ 数据清洗/ETL │ │ │
│ │ └──────┬───────┘ │ │
│ └──────────────┼────────────────────────────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 特征工程层 │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ 时间特征 │ │ 销售特征 │ │ 库存特征 │ │ 外部特征 │ │ │
│ │ │·周几/月份│ │·滞后值 │ │·周转率 │ │·天气 │ │ │
│ │ │·节假日 │ │·滚动均值 │ │·缺货率 │ │·促销 │ │ │
│ │ │·大促期 │ │·同比环比 │ │·过期率 │ │·竞品价格 │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
│ └─────────────────────────┬───────────────────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 预测引擎层 │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ 统计模型 │ │ ML模型 │ │ DL模型 │ │ │
│ │ │·Holt- │ │·XGBoost │ │·DeepAR │ │ │
│ │ │ Winters │ │·LightGBM│ │·N-BEATS │ │ │
│ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │
│ │ └──────┬───────┴──────┬──────┘ │ │
│ │ ▼ ▼ │ │
│ │ ┌──────────┐ ┌──────────────┐ │ │
│ │ │ 模型融合 │ │ ABC-XYZ路由 │ │ │
│ │ │ Ensemble │ │ 按分类选模型 │ │ │
│ │ └────┬─────┘ └──────────────┘ │ │
│ └────────────┼────────────────────────────────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 补货引擎层 │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ 安全库存 │ │ 补货量 │ │ 约束优化 │ │ │
│ │ │ 计算 │→│ 计算 │→│ (MOQ/仓容 │ │ │
│ │ │ │ │ │ │ /预算) │ │ │
│ │ └──────────┘ └──────────┘ └────┬─────┘ │ │
│ └───────────────────────────────────┼─────────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 审批与执行层 │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ 规则引擎 │→│ 审批流程 │→│ PO生成 │ │ │
│ │ │ 自动/人工│ │ 多级审批 │ │ EDI下发 │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 监控与反馈层 │ │
│ │ ·预测准确率监控 ·库存健康度看板 ·模型漂移检测 │ │
│ │ ·补货效果分析 ·异常预警 ·A/B实验(新模型) │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
核心模块技术选型
数据存储:
├── 特征存储: Feature Store (Feast/Hopsworks)
├── 模型注册: MLflow Model Registry
├── 预测结果: ClickHouse (时序+分析)
└── 业务数据: PostgreSQL
计算引擎:
├── 批量预测: Spark + PyTorch/XGBoost
├── 实时特征: Flink (实时库存/销售)
├── 模型训练: GPU集群 (Kubernetes)
└── 模型服务: Triton Inference Server / Seldon
调度:
├── 日批: Airflow (每日凌晨跑预测+补货建议)
├── 实时: Flink (库存变动触发补货检查)
└── 模型重训: 周级别 (Airflow + MLflow)
新品冷启动策略
冷启动问题:新品无历史数据,无法直接用时序模型
解决方案:
1. 相似品类迁移
├── 基于商品属性(品类/品牌/价格带)找到相似商品
├── 用相似商品的销售曲线作为先验
└── DeepAR天然支持(全局模型)
2. 生命周期模板
├── 根据商品类型选择典型生命周期模板
│ ├── 标品:平稳型
│ ├── 时尚品:快速上升→快速衰退
│ └── 季节品:周期性波峰
└── 模板参数 × 品类系数 × 渠道系数
3. 初期小批量→快速迭代
├── 首批按保守估计铺货
├── 3-7天后根据实际销售调整
└── 逐步过渡到数据驱动预测
4. LLM辅助判断(2025-2026新趋势)
├── 用LLM分析商品描述、社交媒体热度
├── 结合市场趋势给出定性判断
└── 与定量模型结合(如Bayesian更新)
AI增强
ML时序预测模型架构
┌────────────────────────────────────────────┐
│ Model Training Pipeline │
│ │
│ 数据准备 → 特征工程 → 模型训练 → 评估 │
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ Feature │ │ Training │ │
│ │ Store │→│ (GPU) │ │
│ │ (Feast) │ │ XGB/DL │ │
│ └──────────┘ └────┬─────┘ │
│ │ │
│ ▼ │
│ ┌──────────┐ │
│ │ Model │ │
│ │ Registry │ │
│ │ (MLflow) │ │
│ └────┬─────┘ │
└────────────────────┼────────────────────────┘
│
┌────────────────────┼────────────────────────┐
│ Model Serving Pipeline │
│ ▼ │
│ ┌──────────┐ │
│ │ Model │ │
│ │ Server │ │
│ │ (Triton) │ │
│ └────┬─────┘ │
│ │ │
│ ┌───────┴───────┐ │
│ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ │
│ │ 批量预测 │ │ 实时预测 │ │
│ │ (Spark) │ │ (API) │ │
│ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────┘
┌─────────────────────────────────────────────┐
│ Feedback Loop │
│ │
│ 实际销售数据 → 预测偏差计算 → 触发重训/调参 │
│ │
│ 监控指标: │
│ ├── WMAPE趋势(是否恶化) │
│ ├── Bias趋势(是否系统性偏高/偏低) │
│ ├── 数据漂移检测(PSI > 0.2则告警) │
│ └── 概念漂移检测(模型效果持续下降) │
└─────────────────────────────────────────────┘
LLM增强的需求预测(2025-2026前沿)
传统方式:纯数值时序 → 统计/ML模型 → 预测值
LLM增强方式:
├── 1. 预测解释:LLM解释为什么预测与实际有偏差
│ "上周预测偏高20%,可能因为竞品同期促销分流了客户"
│
├── 2. 外部信号理解:LLM解析新闻/社交媒体→影响因子
│ "社交媒体出现该品牌负面事件,建议下调预测15%"
│
├── 3. 新品描述→预测先验
│ "根据商品描述和定价,该商品类似去年上市的XX,
│ 建议参考其前3个月销售曲线"
│
└── 4. 人机协同:LLM辅助补货审核员做决策
"该补货建议偏高,原因是模型未考虑到即将到来的
淡季效应,建议手动下调25%"
Web3关联
供应链透明度与需求信号
Web3在需求预测场景的潜在应用:
1. 链上供应链数据共享
├── 供应商将生产/发货数据上链
├── 零售商可实时获取供应端信号
└── 基于智能合约的自动补货触发
2. 去中心化的需求信号聚合
├── 多方贡献预测数据(如多个零售商)
├── 联邦学习 + 区块链验证
└── 保护各方数据隐私,共享预测智慧
3. Token激励的预测市场
├── Polymarket式的需求预测市场
├── 预测者质押Token,准确者获得奖励
└── 去中心化的"群体智慧"预测
今日思考
需求预测的本质不是追求"零误差",而是在预测精度和管理成本之间找到最优平衡。ABC-XYZ矩阵告诉我们:不是所有SKU都值得用DeepAR预测,也不是所有SKU都该用同样的安全库存策略。
2025-2026年的趋势是"AI Agent化"——不只是预测一个数字,而是构建一个"能解释、能学习、能建议"的智能补货助手。NVIDIA调研显示91%的零售企业已在评估AI库存优化,这意味着"人工订货"正在加速退出历史舞台。
作为架构师,核心挑战在于:如何设计一个系统,让ML模型、业务规则、人工判断三者优雅协作?答案是分层决策:模型给建议、规则做约束、人做例外审批。
面试题
Q1: 需求预测的准确度如何衡量?
简短回答:主要用WMAPE(加权平均绝对百分比误差),因为它按销售额加权,更能反映业务影响。同时关注Forecast Bias判断系统性偏差方向。
详细回答:
- MAPE适合单品分析但被低销量SKU扭曲,WMAPE解决了这个问题
- 行业基准:稳定快消品WMAPE 10-15%为优秀,季节性品类25-35%可接受
- 除了精度还要看偏差方向(Bias):正偏差=库存积压风险,负偏差=缺货风险
- 不同ABC-XYZ分类应有不同的准确率目标
- 建议建立"预测准确率看板",按品类/门店/时间维度监控
Q2: 如何处理新品(冷启动)预测?
简短回答:用"相似品迁移+生命周期模板+小批量试销+快速迭代"四步法。
详细回答:
- 第一步:基于商品属性找相似已有商品,借用其销售模式
- 第二步:根据商品类型匹配生命周期模板(标品/时尚/季节)
- 第三步:首批保守铺货,3-7天后用真实数据修正
- 第四步:随着数据积累,逐步过渡到数据驱动模型
- 前沿方法:用LLM分析商品描述+社交热度辅助判断
Q3: 预测引擎如何选择模型?
答案:不用"一个模型打天下",而是按ABC-XYZ分类路由到不同模型。AX类用精度最高的集成模型,CZ类用简单移动平均甚至不预测(MTO)。通过离线回测(backtesting)+线上A/B实验确定最优模型分配。
学习资源
- NVIDIA 2026零售AI调研报告
- IBM AI Demand Forecasting
- FineBI 2025供应链分析趋势
- SAP: AI如何重新定义销售预测
- Forecast Accuracy Metrics & Benchmarks
- RELEX: Measuring Forecast Accuracy
- 书籍推荐:《Demand-Driven Inventory Optimization and Replenishment》
- 论文推荐:N-BEATS (ICLR 2020), DeepAR (IJF 2020), TimesFM (ICML 2024)
明日预告
Day 85: 供应链金融 — 供应链金融是金融和零售的交叉领域。我们将深入三种核心模式(应收账款融资/库存融资/预付款融资),理解确权机制,探索区块链在供应链金融中的应用,以及设计一个完整的供应链金融平台架构。