1. 特征工程概述
什么是特征工程
特征工程(Feature Engineering)是将原始数据转化为更能代表问题本质、更适合机器学习算法处理的特征表示的过程。在推荐系统(PD 模型)中,特征工程决定了模型能“看到”什么信息,以及这些信息以何种方式被模型理解。
核心定义:特征工程 = 从原始数据中提取、构造、选择、变换特征,使其对模型预测目标具有最大信息量和最小噪声。
特征工程通常包含以下四个核心环节:
| 环节 | 输入 | 输出 | 典型操作 |
|---|---|---|---|
| 特征提取 | 原始日志、数据库记录 | 结构化特征字段 | 解析 JSON、提取时间戳、拆分多值字段 |
| 特征构造 | 基础特征 | 高阶组合特征 | 交叉特征、统计聚合、序列特征 |
| 特征变换 | 原始分布特征 | 归一化/离散化特征 | Log 变换、分桶、标准化、One-Hot 编码 |
| 特征选择 | 全量特征集 | 最优特征子集 | 方差过滤、互信息、L1 正则、特征重要性排序 |
特征工程在 PD 模型中的重要性
PD 模型(Probability Distribution 模型,即推荐系统中的点击率/转化率预估模型)对特征的依赖程度极高。与图像、语音等端到端模型不同,推荐系统的输入几乎完全由人工设计的特征构成。
行业共识:在工业级推荐系统中,“数据和特征决定了模型的上限,而模型算法只是逼近这个上限”。特征工程的质量直接决定了 PD 模型的天花板高度。
特征工程在 PD 模型中的关键作用体现在以下五个维度:
- 信息密度决定模型容量 — 高质量特征让模型用更少的参数学到更强的模式,降低过拟合风险。
- 稀疏性缓解 — 通过特征交叉、统计聚合等方式,将稀疏的 ID 类特征转化为稠密的行为统计特征,提升模型泛化能力。
- 非线性表达 — 人工构造的交叉特征和组合特征,帮助线性模型或浅层网络捕捉高阶非线性关系。
- 冷启动支撑 — 用户/物品的统计特征和画像特征,为新用户和新物品提供初始预估能力。
- 在线推理效率 — 合理的特征变换和选择,直接降低模型推理时的计算开销和存储成本。
| 场景 | 无特征工程 | 有特征工程 | 效果提升 |
|---|---|---|---|
| CTR 预估 | 仅使用用户 ID + 物品 ID | 加入用户历史点击率、物品类目偏好、时间衰减统计 | AUC +5%~15% |
| 转化率预估 | 仅使用基础属性 | 加入用户行为序列特征、价格敏感度、渠道来源交叉 | GAUC +8%~20% |
| 召回阶段 | 仅使用协同过滤 | 加入多模态特征、图结构特征、实时行为特征 | 召回率 +10%~30% |
特征工程与模型性能的关系
特征工程与模型性能之间存在明确的量化关系。理解这种关系,有助于我们在实际项目中合理分配特征工程和模型调优的资源投入。
关键洞察:特征工程存在边际收益递减规律。初期投入特征工程能带来显著的性能提升(收益递增区),但当特征数量和质量达到一定程度后,继续增加特征带来的收益会逐渐下降,甚至引入噪声导致性能下降(收益递减区)。复杂模型对特征工程的依赖相对较低,但高质量特征仍然是所有模型的基础。
特征工程与模型性能的量化关系可总结为以下公式:
模型性能 ≈ f(特征质量, 特征数量, 模型容量)
其中:
- 特征质量:信息量、区分度、稳定性、时效性
- 特征数量:覆盖度、稀疏度、冗余度
- 模型容量:参数数量、网络深度、非线性表达能力
经验法则:
- 特征质量提升 10% → 模型性能提升 5%~15%
- 特征数量翻倍 → 模型性能提升 1%~5%(存在上限)
- 模型容量翻倍 → 模型性能提升 0.5%~3%(需配合正则化)
在实际项目中,建议遵循以下优先级策略:
- 第一阶段:构建基础特征集(用户画像、物品属性、上下文特征),快速建立基线模型。
- 第二阶段:深入挖掘行为统计特征(历史点击率、转化率、频次、间隔),提升模型区分度。
- 第三阶段:构造交叉特征和序列特征,捕捉高阶交互模式和时序依赖。
- 第四阶段:引入外部知识和图结构特征,突破单一数据源的信息瓶颈。
- 持续迭代:通过特征重要性分析和 A/B 实验,淘汰无效特征,优化特征组合。
实战建议:在 PD 模型项目中,建议将 60%~70% 的时间投入特征工程和数据质量保障,30%~40% 的时间用于模型选型和调参。这是工业界验证过的最优资源分配比例。