4、特征分层概念
特征分层是特征工程中一种系统化的组织方法,它将原始数据经过不同粒度的加工与抽象,形成具有明确层级关系的特征集合。分层不是简单的分类,而是按照数据加工深度、业务语义和复用范围进行纵向切分,使特征体系具备可解释、可复用、可维护的结构化能力。
4.1 特征分层的定义
特征分层是指按照数据加工深度、业务语义抽象程度和复用范围,将特征划分为多个逻辑层次的过程。每一层代表一个特定的数据抽象级别,层与层之间通过明确的加工规则和依赖关系连接。
特征分层与数据仓库分层的核心区别在于:
| 对比维度 | 数据仓库分层 | 特征分层 |
|---|---|---|
| 核心目标 | 数据集成、存储、查询 | 特征提取、复用、建模 |
| 加工粒度 | 表、字段、分区 | 特征、特征组、特征视图 |
| 业务语义 | 面向数据管理 | 面向模型与业务解释 |
| 复用方式 | SQL 查询复用 | 特征注册、特征服务 |
| 典型层次 | ODS、DWD、DWS、ADS | 原始层、派生层、聚合层 |
4.2 分层的目的
特征分层并非为了增加复杂度,而是为了解决特征工程中三个核心痛点:可解释性、复用性和维护性。
4.2.1 可解释性
分层后的特征具有清晰的加工路径,业务分析师和模型开发者可以追溯每个特征的来源与计算逻辑。例如,一个“近7天用户平均消费金额”特征,可以追溯到原始层的交易记录、派生层的日消费金额、聚合层的周平均计算。这种可追溯性降低了特征理解的认知负荷。
4.2.2 复用性
同一份原始数据经过一次加工后,可以在多个模型和业务场景中复用。分层结构天然支持特征的“一次加工、多处使用”。例如,派生层中的“用户年龄”特征,既可用于风控模型,也可用于推荐模型,无需重复计算。
4.2.3 维护性
当业务规则或数据源发生变化时,分层结构可以隔离变更影响。例如,如果用户注册流程调整导致“注册渠道”字段变更,只需修改原始层的映射规则,派生层和聚合层的特征定义无需改动。这种隔离机制大幅降低了特征体系的维护成本。
4.3 常见的分层架构
在工业实践中,特征分层通常采用三层架构:原始层(Raw Layer)、派生层(Derived Layer)和聚合层(Aggregated Layer)。每一层都有明确的定义、加工方式和输出形态。
4.3.1 原始层(Raw Layer)
原始层是特征体系的基础,直接对接数据源,完成数据接入与基础清洗。该层不进行复杂的业务计算,只做必要的格式统一和质量校验。
- 输入:业务数据库、日志文件、消息队列、外部API
- 加工:字段映射、缺失值填充、数据类型转换、重复数据去重
- 输出:标准化后的原始字段集合,保留最细粒度
- 典型特征:用户注册时间、订单金额、商品类目ID、点击时间戳
4.3.2 派生层(Derived Layer)
派生层在原始层的基础上,应用业务规则和简单统计方法,生成具有明确业务语义的特征。该层是特征工程中最核心的加工层,也是业务规则与数据特征结合最紧密的层次。
- 输入:原始层标准化字段
- 加工:业务规则映射、简单统计计算、编码转换、特征衍生
- 输出:单实体维度的业务特征,可直接用于模型训练
- 典型特征:用户年龄(由出生日期计算)、商品价格区间(由价格映射)、订单状态标签(由状态码映射)
派生层的加工方式通常包括:
| 加工类型 | 说明 | 示例 |
|---|---|---|
| 规则映射 | 将原始值按业务规则转换为新值 | 状态码 0→“待支付”,1→“已支付” |
| 简单统计 | 对单实体进行基础统计 | 用户订单总数、用户首次下单时间 |
| 编码转换 | 将类别特征转换为数值编码 | One-Hot编码、Label编码、Target编码 |
| 特征衍生 | 基于已有特征生成新特征 | 年龄分组(青年/中年/老年) |
4.3.3 聚合层(Aggregated Layer)
聚合层在派生层的基础上,进行跨实体或时间窗口的聚合计算,生成更高层次的统计特征。该层特征通常具有更强的泛化能力和业务洞察价值。
- 输入:派生层特征、原始层时间字段
- 加工:时间窗口聚合、跨实体统计、比率计算、排名计算
- 输出:多实体或时间维度的聚合特征
- 典型特征:近7天用户平均消费金额、商品类目销量排名、用户活跃度评分
聚合层的常见计算模式:
| 聚合模式 | 计算方式 | 典型应用 |
|---|---|---|
| 时间窗口聚合 | 按固定时间窗口(天/周/月)统计 | 近30天消费总额、近7天登录次数 |
| 滑动窗口聚合 | 按滑动时间窗口持续计算 | 过去7天滑动平均消费 |
| 跨实体聚合 | 在实体组内进行统计 | 用户所在城市的平均消费 |
| 比率与排名 | 计算占比或排序位置 | 用户消费金额在类目中的排名 |
4.4 分层架构的扩展与变体
在实际项目中,三层架构可以根据业务复杂度进行扩展。常见的变体包括:
- 四层架构:在原始层和派生层之间增加“清洗层(Cleansed Layer)”,专门处理数据质量问题和格式统一,使原始层保持更纯粹的接入状态。
- 五层架构:在聚合层之上增加“应用层(Application Layer)”,存放针对特定模型或场景优化的特征视图,如模型输入特征集、特征组合等。
- 轻量架构:对于小型项目或快速原型,可以将派生层和聚合层合并为“计算层(Computed Layer)”,减少分层维护成本。
4.5 分层架构的落地要点
在实际落地特征分层时,需要关注以下几个关键点:
| 要点 | 说明 | 常见问题 |
|---|---|---|
| 层间依赖 | 下层特征不能依赖上层特征,避免循环依赖 | 派生层特征引用聚合层结果,导致计算死锁 |
| 特征命名 | 每层特征采用统一命名规范,标注层级来源 | raw_user_age 与 derived_user_age 混淆 |
| 版本管理 | 每层特征独立版本控制,支持回滚和对比 | 聚合层特征更新后,下游模型无法追溯旧版本 |
| 血缘追踪 | 记录每个特征的加工链路,支持全链路追溯 | 特征异常时无法快速定位问题来源 |
| 存储策略 | 原始层保留全量历史,派生层和聚合层按需保留 | 聚合层存储全量历史导致存储爆炸 |
特征分层不是一次性的设计工作,而是需要随着业务发展和模型迭代持续演进的结构。良好的分层架构能够降低特征工程的长期维护成本,提升团队协作效率,是构建企业级特征平台的基础能力。