3. 特征定义与元数据管理

特征定义是规则引擎与风控系统的“数据契约”。没有规范的特征命名、清晰的特征类型划分以及可扩展的元数据模型,特征将退化为难以维护的“魔法数字”。本节从命名规范、类型体系、元数据模型三个层面,建立特征工程的基础设施。

3.1 特征命名规范

特征命名必须同时满足可读性(业务人员能理解)和唯一性(系统不会冲突)。推荐采用分层命名法,格式如下:

[业务域]_[实体类型]_[指标名称]_[聚合维度]_[时间窗口]

各字段说明:

字段 含义 示例值
业务域 特征所属业务范围 payment, loan, fraud
实体类型 特征作用的对象 user, device, order
指标名称 具体度量内容 amount, count, ratio
聚合维度 聚合方式 sum, avg, max, latest
时间窗口 统计时间范围 1d, 7d, 30d, all

命名示例:

  • fraud_user_login_count_1d — 用户近1天登录次数
  • payment_order_amount_sum_7d — 订单近7天支付金额总和
  • loan_device_apply_ratio_30d — 设备近30天申请通过率
避坑提示: 避免使用无意义的缩写(如 a1、f2),禁止在特征名中嵌入版本号(如 _v2),版本管理应通过元数据字段实现。

3.2 特征类型体系

特征类型决定了计算逻辑、存储方式以及规则引擎的匹配策略。将特征划分为四种基础类型:

类型 描述 存储示例 规则使用场景
布尔型 真/假二值 true / false 黑名单命中、设备越狱检测
数值型 连续或离散数值 12.5, 3, 0.87 金额阈值、次数比较、比率计算
枚举型 有限离散值集合 "high", "medium", "low" 风险等级、渠道来源、设备类型
文本型 非结构化字符串 "张三", "192.168.1.1" 模糊匹配、正则表达式、关键词命中

类型转换规则:

  • 布尔型可转为数值型(true→1, false→0)
  • 枚举型可转为数值型(通过字典映射)
  • 文本型不可自动转为数值型,需显式定义解析逻辑
注意: 规则引擎中,文本型特征的匹配性能远低于枚举型和数值型。若特征值集合有限(如国家代码、性别),优先定义为枚举型。

3.3 特征元数据模型设计

元数据是特征的“身份证”,支撑特征发现、血缘追踪、质量监控和版本管理。一个完整的特征元数据模型包含以下核心字段:

分组 字段名 类型 说明
基础信息 feature_id string 全局唯一特征ID
feature_name string 业务可读名称
feature_type enum boolean / numeric / enum / text
data_type string 底层存储类型(int, float, string)
来源与血缘 source_table string 原始数据表名
source_field string 原始字段名
transform_sql string 特征加工SQL片段
质量与约束 nullable boolean 是否允许为空
value_range string 合法值范围(如 [0, 100])
enum_values array 枚举型特征的合法值列表
版本与生命周期 version int 特征版本号
deprecated_at timestamp 废弃时间(空表示活跃)
元数据管理最佳实践:
  • 所有特征必须注册到元数据中心,禁止硬编码特征名到规则中
  • 特征废弃前需设置 deprecated_at,并保留至少30天过渡期
  • 每次特征逻辑变更必须递增 version,并记录变更日志

3.4 特征元数据模型架构

下图展示了特征元数据模型的核心实体关系,以及特征从定义到上线、再到废弃的完整生命周期:

特征元数据模型核心实体关系 特征定义 feature_id, name, type 数据源 source_table, field 加工逻辑 transform_sql, script 质量约束 nullable, range, enum 版本管理 version, changelog 生命周期 active, deprecated 特征生命周期流转 定义 → 注册 → 上线 → 监控 → 废弃(保留30天)→ 下线 每个阶段均需更新元数据状态,确保规则引擎始终引用最新有效特征

3.5 特征注册与发现流程

特征从开发到上线需经过标准化注册流程,确保元数据完整且可被规则引擎发现:

  1. 特征设计:确定特征名称、类型、数据来源和加工逻辑
  2. 元数据录入:填写元数据模型所有必填字段,提交至元数据中心
  3. 质量校验:自动检查命名规范、类型合法性、值范围约束
  4. 测试验证:在沙箱环境运行特征计算,比对预期结果
  5. 发布上线:特征状态置为 active,规则引擎可实时引用
  6. 监控告警:监控特征空值率、分布偏移、计算延迟
效率提升: 建议为特征注册提供 REST API 和 Web 界面,支持批量导入/导出,降低人工录入错误。

3.6 特征元数据查询与血缘

下图展示了特征血缘追踪的典型场景,帮助定位特征的数据来源和下游使用情况:

特征血缘追踪示例 原始表 user_login_log 中间表 user_daily_agg 特征 login_count_1d 规则 R001_高频登录 血缘查询能力 向上追溯:特征 → 中间表 → 原始表(定位数据质量问题根因) 向下追踪:特征 → 规则 → 决策流(评估特征变更影响范围) 元数据中心应提供血缘图 API,支持按特征 ID 查询完整上下游

3.7 特征元数据管理平台功能清单

一个完整的特征元数据管理平台应包含以下核心功能模块:

模块 功能 优先级
特征注册 新增、编辑、删除特征元数据 P0
特征检索 按名称、类型、业务域、状态搜索 P0
血缘图谱 可视化展示特征上下游依赖 P1
版本对比 比较不同版本特征的元数据差异 P1
质量看板 展示特征空值率、异常率、延迟等指标 P1
变更通知 特征变更时自动通知下游规则负责人 P2
总结: 特征定义与元数据管理是规则引擎的“数据底座”。命名规范保证可读性,类型体系保证计算正确性,元数据模型保证可管理性。三者缺一不可,共同构成特征工程的核心基础设施。