层次聚类不必重训练:用logits重建供应链数据层级

人工智能在科研与创新平台By 3L3C

用logits把现有模型“升维”为层次聚类树,不必重训练。本文结合物流与供应链场景,讲清落地流程、三大应用与常见坑。

层次聚类供应链分析物流算法数据分层需求预测库存管理
Share:

层次聚类不必重训练:用logits重建供应链数据层级

旺季前一周,仓库里最常见的“事故”不是系统宕机,而是分类体系跟不上业务变化:SKU 爆发式增长,新品缺少历史数据,拣选路径越来越绕,补货优先级争论不休。很多团队会把希望寄托在“更复杂的模型”上——比如专门为层次聚类设计的深度架构。

但我更认同一篇 ICML 2025 论文提出的逆向观点:很多“专用深层次聚类模型”在真实数据上并不划算——要么算不动,要么效果并不稳定。更关键的是,论文给出了一条务实路线:不必重训练、不必改模型,只要你手里有一个能输出 logits 的预训练模型(无论是无监督聚类模型还是监督分类器),就能把它“抬升”为可用的层次结构。

这对“人工智能在物流与供应链”场景非常友好:我们常常已经有需求预测、SKU 分类、异常检测等模型在跑。把这些模型的 logits 变成层级树,意味着你能更快搭建“可解释的分层运营视图”,把数据组织好,再谈优化决策。

这篇论文到底解决了什么:层次结构不是训练出来的,是“整理”出来的

直接答案:论文提出一种轻量方法,把现有模型输出的 logits 转成有意义的层次聚类,不需要微调。

传统层次聚类(如凝聚式聚类)靠距离度量一步步合并样本;深度层次聚类则试图让网络端到端学出“树”。问题在于供应链数据往往具备几个“现实约束”:

  • 规模大:SKU、门店、订单、线路、承运商维度叠加,样本数轻松上百万。
  • 分布漂移快:促销、季节、渠道变化会改变相似性结构。
  • 标签不完美:人工维护的品类/波次/ABC 分级常带主观性。

论文的批判点很实在:专门的深度层次模型在这类“现实数据”上容易遇到可扩展性与性能瓶颈。于是作者提出:

既然很多预训练模型已经学到了“相似性”,我们只需要把这种相似性按层级方式表达出来。

这里的关键就是 logits:它是模型在最终决策前的“原始分数”,往往比 softmax 概率更保留结构信息(尤其是类间相对关系)。

为什么 logits 特别适合做层次:它们保留了“相对偏好”的几何结构

直接答案:logits 把“像谁、不像谁”的关系编码成连续空间,更容易恢复上层到下层的合并路径。

在物流与供应链里,你常见的模型输出可能是:

  • SKU 需求分群模型的簇分数
  • 门店画像模型对不同“门店类型”的打分
  • 订单风险模型对多种异常类型的打分
  • 图像识别模型对货损/包装缺陷的类别打分

这些打分的共同点是:它们不仅告诉你“最终属于哪类”,还包含了**“次像哪类”的排序信息**。而层次结构恰恰来自“先合并谁,再合并谁”。

在实践里,我见过很多团队只保留 top-1 类别或概率阈值,结果就是:

  • 类别体系僵化(只能平铺,无法上卷/下钻)
  • 解释困难(为什么这个 SKU 被分到这个组?)
  • 难以做策略继承(上层策略无法自然下发到子组)

使用 logits 的思路,能把这些“被丢掉的结构”重新捡回来。

供应链里的一个直观例子:SKU 层级比“单层品类”更有用

直接答案:层次树能让补货、拣选、库存策略按层复用,避免每个 SKU 单独定规则。

设想你有一个 SKU 聚类模型(非层次的),输出每个 SKU 对 K 个簇的 logits。通过层次化,你可以得到类似:

  • L1:快消品 / 耐用品 / 生鲜
  • L2(快消品下):饮料 / 纸品 / 零食
  • L3(饮料下):碳酸 / 茶饮 / 功能饮料

这样做的运营收益很直接:

  • 需求预测:先在 L1/L2 做共享特征,再在 L3 精细化;新品可先挂到上层。
  • 安全库存:上层定义服务水平与周转目标,下层按波动系数微调。
  • 仓内策略:L2 级别决定库区,L3 级别决定货位与拣选方式。

从“学术方法”到“可落地流程”:在物流数据里怎么用

直接答案:把已有模型的 logits 抽出来,构造相似性,再做层次合并与切层评估。

你不需要照搬论文的每个细节,但可以用一个可执行的工程流程把它落地。

第一步:确定你手里可用的 logits 来源

常见来源包括:

  1. 监督分类器:例如对“订单问题类型”的多分类模型。
  2. 自监督表征 + 线性头:例如门店 embedding 上训练的线性分类头。
  3. 非层次聚类模型:例如深度聚类输出的簇分数(很多实现都提供 logits 或类似分数)。

原则很简单:只要输出是一个长度为 K 的连续向量,就可以尝试做层次恢复。

第二步:把 logits 变成“可聚”的表示

实践建议(更贴近供应链脏数据):

  • 对 logits 做标准化或温度缩放,减少极端值对距离的统治
  • 如果类别数 K 很大,先做降维(例如 PCA 到 50-200 维),降低噪声
  • 选择稳定的距离度量(余弦距离在高维向量上常更稳)

一句好记的标准:如果你的表示能把“常一起补货的一组 SKU”拉近,它就适合做层次。

第三步:构建层次树,并决定“切哪一层”给业务用

层次聚类最容易失败的点不是树本身,而是切层。我的经验是:不要幻想“一棵树解决所有场景”,而是给不同部门不同切法。

  • 采购更关心 L1/L2(大类策略、供应商协同)
  • 仓内更关心 L2/L3(库区与动线)
  • 配送更关心线路与时效分层(干线/支线/同城)

切层的评估指标可以很业务化:

  • 同一组内 SKU 的周转天数方差是否更小
  • 同一组内订单的峰谷是否更同步
  • 组间差异是否能解释策略差异(服务水平、拣选方式、包装方案)

三个高价值场景:需求、库存、路径的“分层视角”

直接答案:层次聚类把复杂数据组织成可操作的层级,让预测更稳、库存更准、路径更好切分。

场景 1:需求预测——先共享再细化

当你面对长尾 SKU 或新品时,单 SKU 模型很难。层次结构提供了一个自然的“借力路径”:

  • 上层(例如 L2)学习通用季节性与促销敏感度
  • 下层(L3)学习口味/规格差异
  • 新品先挂到上层,随着数据积累再下沉

结果通常是:冷启动预测误差更可控,且更容易解释给业务。

场景 2:库存分级——ABC 不是终点,层次才是工具

很多企业仍在用静态 ABC。问题是 ABC 只是一维(销量/金额),而供应链的风险是多维的:波动、供给不确定、替代性、保质期等。

用 logits 恢复的层次,可以把“多维相似性”变成树:

  • 上层按供给风险分
  • 中层按波动分
  • 下层再按毛利/替代性分

这样定安全库存与补货频率,会比单一 ABC 更贴近真实约束。

场景 3:路线与区域分群——把“像”的线路归在一起

配送线路的分群常被做成平铺 K 类,但线路天然有层次:

  • L1:城市群/省域
  • L2:城配/县配/乡镇
  • L3:白天/夜间、冷链/常温、时效等级

如果你有一个线路打分模型(例如预测时效风险、拥堵风险、异常签收概率),把其 logits 转成层次,能帮助你:

  • 快速定位异常簇(哪一支分支近期风险上升)
  • 设计分层 SLA(上层统一约束,下层差异化)
  • 做更稳的运力规划(按层聚合需求)

落地时最容易踩的坑:我建议先把这三件事做对

直接答案:层次结果要可解释、可维护、可监控,否则只会变成“好看的树”。

  1. 把“可解释标签”当成交付物

    • 每个节点给出代表性 SKU/线路/门店样本
    • 给出节点的关键特征(周转、毛利、时效、波动)
  2. 建立漂移监控:层次会变,不监控就失效

    • 每周/月重算层次或做增量更新
    • 监控节点成员变化率、节点中心漂移、策略命中率
  3. 不要追求一棵树包打天下

    • 供应链是多目标系统:成本、时效、服务水平互相牵制
    • 允许“多棵树并存”:商品树、门店树、线路树各做各的

我更愿意把层次聚类看成“组织数据的方式”,而不是一次性的建模任务。

写在系列里:科研方法如何变成供应链的“可运营资产”

这篇论文让我最有共鸣的一点是它的工程态度:把已有模型的能力再利用,而不是永远从零训练一个更大更复杂的网络。这正贴合“人工智能在科研与创新平台”系列的核心:让算法从论文走向平台化、流程化、可复用。

如果你正在做物流与供应链的 AI 项目,我建议从一个小切口开始:选一个现有模型(需求分群、门店类型、异常分类都行),抽取 logits,先做一棵能解释清楚的层次树,然后把它嵌到补货、库位、运力、SLA 这些日常决策里。当树能指导一次真实的决策,它才算活过来。

接下来你可以思考一个更尖锐的问题:当你的业务策略已经分层了,你的指标体系、权限体系、看板体系,是否也该跟着分层?