返回架构笔记
Arch Day 84

Arch Day 84: 需求预测与智能补货

Arch Day 84: 需求预测与智能补货

2026-06-22
第三阶段 - 零售域深度
供应链需求预测智能补货时序模型库存优化

日期: 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实验确定最优模型分配。


学习资源


明日预告

Day 85: 供应链金融 — 供应链金融是金融和零售的交叉领域。我们将深入三种核心模式(应收账款融资/库存融资/预付款融资),理解确权机制,探索区块链在供应链金融中的应用,以及设计一个完整的供应链金融平台架构。