4. 特征分层体系:特征分层的目的与原则、分层维度与架构图
在反洗钱(AML)风控系统中,特征并非简单堆砌。一个健壮的特征分层体系能够将原始数据、业务逻辑与模型输入解耦,提升特征的可解释性、复用性与维护效率。本章将系统阐述特征分层的目的、核心原则、三个关键维度,并通过架构图直观展示各层之间的协作关系。
4.1 特征分层的目的与原则
4.1.1 分层目的
- 解耦与隔离:将数据源变更、业务规则调整与模型迭代隔离开,避免一处修改引发全局连锁反应。
- 提升复用性:同一份基础特征(如“近30天交易总金额”)可被多个模型或规则复用,减少重复开发。
- 增强可解释性:分层后,业务人员可聚焦于业务逻辑层,数据工程师关注数据源层,模型专家专注模型输入层,各司其职。
- 降低维护成本:当上游数据源字段变更时,只需在数据源层适配,业务逻辑层与模型输入层不受影响。
4.1.2 分层原则
| 原则 | 说明 | 反例 |
|---|---|---|
| 单向依赖 | 上层可依赖下层,下层不可反向依赖上层。 | 模型输入层直接引用原始数据库字段,跳过业务逻辑层。 |
| 职责单一 | 每层只负责特定类型的转换或计算。 | 在数据源层进行聚合计算(如SUM/AVG),应放在业务逻辑层。 |
| 标准化输出 | 每层输出需有明确的Schema定义与命名规范。 | 同一字段在不同时间输出不同单位(如“元”与“分”混用)。 |
| 可追溯性 | 每个特征应能追溯到其原始数据源与加工链路。 | 特征“高风险对手方交易占比”无法回溯到具体对手方名单。 |
实践建议:在项目初期就建立特征注册表(Feature Registry),记录每个特征的名称、所属层级、数据源、计算逻辑与版本号,这是分层体系落地的基础设施。
4.2 分层维度详解
特征分层体系通常划分为三个核心维度:数据源层、业务逻辑层与模型输入层。每一层承担不同的职责,并遵循特定的加工规范。
4.2.1 数据源层(Data Source Layer)
该层直接对接原始数据系统,负责数据的接入、清洗与基础字段提取。不进行任何聚合或衍生计算。
- 输入:核心系统(交易系统、客户信息系统、名单系统)的原始表或日志。
- 输出:标准化后的基础字段,如
transaction_id、customer_id、transaction_amount、transaction_time、counterparty_country。 - 典型操作:字段类型转换、空值填充、异常值截断、时间戳格式化。
4.2.2 业务逻辑层(Business Logic Layer)
该层是风控业务知识的集中体现,将原始字段加工为具有业务含义的特征。所有衍生计算、聚合统计、规则判断均在此层完成。
- 输入:数据源层输出的标准化字段。
- 输出:业务特征,如
近30天累计交易金额、交易时间熵值、是否命中制裁名单、对手方风险等级。 - 典型操作:滑动窗口聚合(SUM/COUNT/AVG)、比率计算、名单匹配、行为序列编码。
4.2.3 模型输入层(Model Input Layer)
该层面向机器学习模型或规则引擎,对业务逻辑层输出的特征进行最终加工,确保特征满足模型的输入要求。
- 输入:业务逻辑层输出的业务特征。
- 输出:模型可直接消费的特征向量,通常包括数值型、类别型、时序型特征。
- 典型操作:缺失值填充(策略可不同于数据源层)、标准化/归一化、独热编码、特征选择、特征交叉。
关键区别:数据源层解决“数据有没有、对不对”;业务逻辑层解决“特征代表什么业务含义”;模型输入层解决“模型能不能用、好不好用”。三层不可混淆。
4.3 特征分层架构图
下图展示了AML特征分层体系的完整架构,包含三个核心维度以及它们之间的数据流向与依赖关系。
架构解读:数据源层提供原始字段(蓝色),业务逻辑层将其加工为具有业务含义的特征(绿色),模型输入层最终转换为模型可消费的格式(紫色)。箭头方向代表数据依赖关系,上层只能调用下层输出,不可反向引用。
4.4 分层体系下的风险控制要点
在实施特征分层时,需关注以下风险控制点,避免分层体系本身成为新的风险源:
| 风险点 | 描述 | 控制措施 |
|---|---|---|
| 数据源层污染 | 上游系统数据质量差,导致下游所有特征失真。 | 在数据源层设置数据质量监控(空值率、异常值检测),并建立数据回滚机制。 |
| 业务逻辑层漂移 | 业务规则频繁变更,导致特征分布发生不可控变化。 | 对业务逻辑层特征进行版本管理,每次变更需经过特征影响面评估。 |
| 模型输入层过拟合 | 模型输入层过度加工,引入未来信息或数据泄露。 | 严格禁止在模型输入层使用未来数据(如“次日交易金额”),并设置特征回溯验证。 |
| 层间依赖混乱 | 跨层直接调用,破坏单向依赖原则。 | 通过API或特征存储(Feature Store)强制层间调用规范,禁止直接访问下层数据库。 |
常见陷阱:部分团队为了追求模型效果,在模型输入层直接引入原始数据源层的字段(如原始交易金额),跳过了业务逻辑层的加工。这会导致模型难以解释,且当业务含义发生变化时(如货币单位调整),模型需要重新训练。务必坚持“数据源层 → 业务逻辑层 → 模型输入层”的完整链路。
4.5 分层体系落地检查清单
在完成特征分层设计后,建议使用以下清单进行自查,确保体系完整且可执行:
- 数据源层:是否所有原始字段都有明确的Schema定义?是否建立了数据质量监控规则?
- 业务逻辑层:每个业务特征是否有对应的业务文档说明?是否记录了计算逻辑的版本?
- 模型输入层:特征是否经过缺失值处理与标准化?是否验证过特征与目标变量之间的时间顺序?
- 跨层依赖:是否存在上层直接调用下层未加工数据的情况?是否通过Feature Store统一管理特征?
- 可追溯性:能否从模型输入层的任意一个特征,追溯到其数据源层的原始字段与业务逻辑层的加工步骤?