1. 课程导论:离线特征与实时特征的定义、为什么需要一致性校验、课程目标与学习路径
1.1 离线特征与实时特征的定义
在机器学习工程中,特征(Feature)是模型预测的输入变量。根据特征的计算与供给时间窗口,可划分为两类核心形态:
| 维度 | 离线特征(Batch Feature) | 实时特征(Online/Real-time Feature) |
|---|---|---|
| 计算窗口 | T+1 或小时级批处理 | 秒级/毫秒级流式计算 |
| 数据源 | 离线数仓(Hive、HDFS、S3) | 消息队列(Kafka、Pulsar)、日志流 |
| 存储介质 | 离线表、特征文件 | 在线 KV 存储(Redis、HBase) |
| 典型用途 | 模型训练、批量评估、离线分析 | 在线推理、AB 实验、实时风控 |
| 更新频率 | 每日/每周固定快照 | 事件驱动、持续更新 |
关键认知: 离线特征与实时特征本质上是同一业务逻辑在不同时间窗口下的两种计算实现。离线特征追求“全量、准确、可回溯”,实时特征追求“低延迟、高可用、最终一致”。
1.2 为什么需要一致性校验
当模型从离线训练切换到在线推理时,特征值的不一致是线上效果“跌点”的首要原因。以下三类场景直接驱动一致性校验的必要性:
- 训练-推理偏差(Training-Serving Skew): 离线训练使用 T+1 特征,线上推理使用实时特征,两者计算逻辑或数据源不同,导致模型输入分布偏移。
- 特征穿越(Feature Leakage): 离线特征可能无意中使用了未来信息(如当天全量聚合值),而实时特征只能看到当前时刻之前的数据,造成离线 AUC 虚高、线上效果崩塌。
- 工程实现差异: 同一特征(如“用户过去 1 小时点击率”)在离线 SQL 与实时 Flink 作业中,因窗口定义、去重逻辑、空值处理不同,产生数值偏差。
行业教训: 某头部互联网公司因离线与实时特征中“用户历史点击次数”的计数窗口偏移 5 分钟,导致线上 CTR 模型预估偏差超过 8%,回滚后损失千万级广告收入。
1.3 课程目标
完成本课程后,学员将具备以下能力:
- 理解一致性校验的理论基础: 掌握特征分布漂移检测、数值误差容忍度、时间窗口对齐等核心概念。
- 掌握校验工程实现: 能够搭建离线-实时特征对比管道,涵盖数据采样、指标计算、阈值告警全链路。
- 具备生产级调优能力: 针对高吞吐、低延迟场景,设计增量校验策略,降低计算开销。
- 落地持续监控体系: 建立特征质量看板,实现从“人工排查”到“自动发现-定位-修复”的闭环。
1.4 学习路径与章节地图
课程共 30 章,按“基础 → 方法 → 工程 → 实战 → 进阶”五阶段递进:
| 阶段 | 章节范围 | 核心内容 |
|---|---|---|
| 基础篇 | 第 1-5 章 | 特征定义、校验必要性、数据分布对比方法、误差度量体系 |
| 方法篇 | 第 6-12 章 | KS 检验、PSI、分位数对比、时间窗口对齐策略 |
| 工程篇 | 第 13-20 章 | Spark/Flink 校验管道、KV 存储对比、增量校验、告警集成 |
| 实战篇 | 第 21-26 章 | 推荐系统、风控、搜索场景下的完整校验案例 |
| 进阶篇 | 第 27-30 章 | 大规模特征校验优化、数据血缘追踪、AIOps 智能诊断 |
学习建议: 如果你已有特征工程基础,可以直接从第 6 章(方法篇)开始;但建议至少阅读第 2-3 章,确保对“离线-实时特征语义等价”的理解没有盲区。