特征工程是把原始数据变成可训练、可复用、可监控的特征资产的过程。它决定了模型效果的上限,也是机器学习工程化中最容易被低估的一环。

特征生命周期与在线离线双路

上排是特征从定义到退役的一生;下排是它被消费的两种方式——训练走离线、推理走在线,但两侧必须读同一份特征逻辑。

特征定义特征开发计算与回填注册入库特征服务监控漂移 命名与口径算子与逻辑批流双通道版本与血缘在线离线读取分布与缺失率 漂移或效果衰减触发重训与迭代 在线 / 离线双路:两侧共用同一份特征逻辑 离线通道 · 训练 特征存储(Feature Store) 在线通道 · 推理 批量窗口计算 → 训练样本集 注册 · 版本 · 血缘 · 一致性校验 实时流计算 → 低延迟读取

读图要点:最大的坑不在上排,在下排两条通道之间。训练用离线批算、推理用实时流算,只要两边的算子或时间窗口有一点差异,离线指标再漂亮上线也会崩——这就是「训练好、上线崩」的根因。图中中间那块 Feature Store 承担的正是把两侧锁到同一份逻辑上。

五个关键环节

  1. 特征定义与元数据:统一特征命名、口径、类型与责任人,形成特征字典。
  2. 计算与回填:离线批处理(Spark / Hive)与实时流(Flink)双通道,支持历史回填与增量更新。
  3. 特征存储(Feature Store):统一注册、版本管理、在线 / 离线双存储与服务化读取。
  4. 线上线下一致性:训练与推理使用同一套特征逻辑,避免「训练好、上线崩」。
  5. 监控与漂移:特征分布漂移、缺失率与时效性监控,异常及时告警。

环节、问题与实践

环节 典型问题 实践建议
特征定义 同名不同义、口径分歧 特征字典 + 评审门禁
计算回填 回填慢、口径不一致 统一算子库 + 幂等任务
Feature Store 重复开发、复用率低 注册中心 + 服务化读取
一致性 训练 / 推理特征错位 同一份特征逻辑双跑校验
监控 漂移导致效果衰减 分布监控 + 自动重训触发

度量指标

  • 特征复用率:被两个以上模型使用的特征占比。
  • 一致性偏差:线上 / 离线同一特征值的不一致比例。
  • 漂移发现时延:从分布变化到告警的时长。

自建工具链示范

特征工程的底座是「数据可观测 + 知识可沉淀」:perfs 负责指标与运行时数据的持续采集,kshare 承载特征字典、口径说明与实验结论的检索与推理,两者组合可在内网闭环「采集 → 定义 → 复用」。

边界与风险

  • 特征泄漏:训练时引入了预测时不可得的信息,离线指标虚高。
  • 口径漂移:上游逻辑变更未同步,特征静默失真。
  • 过度工程:特征未稳定前就上平台,维护成本高于收益。