2. 特征工程基础

在机器学习与推荐、风控、搜索等系统中,模型效果的上限往往由数据决定,而特征正是数据与模型之间的“翻译层”。本节从最基础的概念出发,建立特征、特征工程与特征存储三者的统一认知,为后续批流特征计算与 Feature Store 集成打下共同语言。

一、核心概念:特征、特征工程、特征存储

特征(Feature)是描述样本某一维度属性的数值化或结构化表达,是模型可直接消费的输入变量。例如用户年龄、近7天点击次数、商品价格、设备型号的独热编码等。一个样本通常由多个特征组成特征向量,标签则是模型要预测的目标。

特征工程(Feature Engineering)是把原始数据转化为有效特征的过程,包括清洗、变换、聚合、编码、衍生、选择等步骤。它的目标不是“造更多列”,而是让特征与业务目标、模型假设对齐,提升信号密度、降低噪声与冗余。

特征存储(Feature Store)是面向机器学习特征生命周期的集中化平台,统一管理特征定义、计算、存储、版本、权限与服务。它同时提供离线批量读取与在线低延迟查询能力,解决训练与推理特征不一致、重复开发、口径混乱等工程问题。

一句话理解三者关系:特征是“原料”,特征工程是“加工工艺”,特征存储是“标准化仓库与配送体系”。

二、常见术语与关键区分

  • 实体(Entity):特征归属的主体,如用户、商品、门店、设备,通常由主键标识。
  • 特征视图(Feature View):一组逻辑相关的特征集合,如“用户近30天行为统计”。
  • 特征组(Feature Group):按来源或主题组织的特征集合,便于权限与血缘管理。
  • 离线特征 / 在线特征:离线用于训练与批量打分,在线用于实时推理,要求低延迟、高可用。
  • 时间点正确性(Point-in-Time Correctness):构造训练集时只能使用标签时间点之前已知的特征,避免数据穿越。
  • 特征漂移(Feature Drift):特征分布随时间变化,导致模型效果衰减。
  • 训练-服务偏差(Training-Serving Skew):离线与在线计算逻辑不一致,是线上事故的常见根因。

三、方法流程:从原始数据到可用特征

典型特征工程流程可归纳为六步:需求对齐、数据探查、特征设计、计算实现、验证评估、上线监控。每一步都需要与业务、算法、工程三方协同。

  1. 需求对齐:明确预测目标、标签定义、评估指标与时效要求。
  2. 数据探查:统计缺失率、分布、异常值、时间覆盖与主键唯一性。
  3. 特征设计:结合业务知识与模型类型,设计统计类、序列类、交叉类、嵌入类特征。
  4. 计算实现:批处理用 Spark/Flink SQL,流处理用 Flink/Spark Structured Streaming,在线用 Redis/Feature Store SDK。
  5. 验证评估:检查覆盖率、稳定性、与标签相关性、离线 AUC 增益。
  6. 上线监控:监控特征延迟、缺失率、分布漂移与线上效果。
-- 示例:用户近7天点击次数特征(离线批计算)
SELECT
  user_id,
  COUNT(*) AS click_cnt_7d,
  COUNT(DISTINCT item_id) AS click_item_cnt_7d,
  MAX(event_time) AS last_click_time
FROM dwd_user_behavior
WHERE event_time >= date_sub(current_date, 7)
  AND event_type = 'click'
GROUP BY user_id;

四、典型应用场景与业务价值

特征工程与特征存储的价值在不同业务中表现各异,但核心都指向“更快、更准、更稳”。

场景 典型特征 业务价值
推荐系统 用户兴趣标签、物品热度、实时点击序列 提升点击率与转化率,增强个性化体验
金融风控 近30天逾期次数、设备指纹、交易频次 降低欺诈损失,提高审批通过率与合规性
搜索排序 查询-文档相关性、历史点击率、时效性 提升搜索满意度与商业变现效率
智能营销 用户生命周期阶段、优惠敏感度、活跃度 提高触达精准度,降低营销成本

五、误区与复盘

常见误区一:把特征工程等同于“堆特征”。特征越多,噪声、过拟合与维护成本越高,应重视特征选择与可解释性。
常见误区二:离线效果好就上线。必须验证在线特征延迟、缺失率与训练-服务一致性,否则线上效果可能大幅下降。

复盘时建议围绕三个问题:特征是否真正服务于业务目标?离线与在线口径是否一致?特征生命周期是否有监控与下线机制?只有把特征当作“产品”来运营,Feature Store 才能发挥长期价值。

特征工程与特征存储协作全景 原始数据 日志 / 交易 / 画像 特征工程 清洗 / 聚合 / 编码 特征存储 定义 / 版本 / 服务 模型 训练 / 推理 离线路径 Spark / Hive 批计算 时间点正确性对齐 训练样本生成 在线路径 Flink / Redis 实时计算 低延迟特征查询 在线推理服务 统一特征口径 · 避免训练-服务偏差 · 支撑批流一体