4. 衍生特征层详解
衍生特征层是风控特征工程中最具业务深度和模型区分度的层次。它不直接使用原始数据或基础统计量,而是通过时间窗口、关系图谱、序列模式等维度对基础特征进行二次加工,将业务经验转化为可计算的数值特征。本章聚焦于衍生特征的定义、作用,以及两类最核心的衍生方法:基于时间窗口的衍生与基于关系的衍生。
4.1 衍生特征的定义与作用
定义:衍生特征(Derived Feature)是指基于一个或多个基础特征,通过聚合、变换、组合、时序计算等方式构造出的新特征。它通常携带更强的业务语义和统计稳定性。
核心作用:
- 提升区分度:将单点行为转化为趋势或模式,例如“近7天登录次数”比“今日是否登录”更能区分正常用户与爬虫。
- 增强鲁棒性:时间窗口聚合能平滑偶发噪声,避免单次异常行为触发误杀。
- 表达复杂关系:关联设备数、关联账户数等关系特征能揭示团伙欺诈的隐蔽链路。
- 适配模型需求:许多机器学习模型(如LR、GBDT)对非线性关系和交互项敏感度低,衍生特征可人工注入高阶信息。
业务经验提示:衍生特征的设计应始终围绕“业务风险假设”展开。例如,信贷场景中“近30天申请次数”反映资金饥渴度;支付场景中“近1小时同设备登录账户数”反映设备共享风险。
4.2 基于时间窗口的衍生
时间窗口衍生是最常用、最有效的特征构造方式。它通过设定固定长度的时间区间(如近7天、近30天),对窗口内的行为事件进行计数、求和、均值、最值、标准差等聚合操作。
4.2.1 核心参数与设计原则
| 参数 | 说明 | 常见取值 |
|---|---|---|
| 窗口长度 | 回溯的时间范围 | 1h / 6h / 24h / 7d / 30d / 90d |
| 聚合函数 | 对窗口内事件的计算方式 | count / sum / avg / max / min / std |
| 时间粒度 | 事件时间戳的精度 | 秒 / 分钟 / 小时 / 天 |
| 偏移量 | 是否延迟窗口起点(防未来数据) | 0 / -1h / -1d |
避坑指南:时间窗口衍生必须严格避免“未来信息泄露”。例如,在实时风控中,计算“近7天登录次数”时,窗口终点应为当前事件发生时刻,而非当前系统时间。离线训练时需确保窗口不跨越样本时间点。
4.2.2 典型场景示例
- 近7天行为计数:
login_cnt_7d、trans_cnt_7d、pwd_fail_cnt_7d—— 用于识别异常活跃或试探行为。 - 近30天行为计数:
apply_cnt_30d、addr_change_cnt_30d—— 用于评估用户稳定性或资金需求强度。 - 近1小时行为计数:
ip_change_cnt_1h、device_switch_cnt_1h—— 用于检测高频切换环境等自动化操作。 - 滑动窗口均值与标准差:
amt_avg_7d、amt_std_7d—— 用于发现金额突变或异常波动。
-- 示例SQL:计算近7天登录次数(实时风控场景)
SELECT
user_id,
COUNT(CASE WHEN event_type = 'login'
AND event_time >= NOW() - INTERVAL '7 days'
AND event_time <= NOW()
THEN 1 END) AS login_cnt_7d
FROM fact_event
WHERE user_id = :target_user
GROUP BY user_id;
4.3 基于关系的衍生
关系衍生特征通过实体之间的关联网络(设备、IP、手机号、银行卡等)来构造特征。这类特征在团伙欺诈、设备农场、养号等场景中具有不可替代的识别能力。
4.3.1 核心概念
| 特征名称 | 定义 | 风险含义 |
|---|---|---|
| 关联设备数 | 当前账户在过去一段时间内登录/使用过的不同设备数量 | 设备共享、账号倒卖、异常切换 |
| 关联账户数 | 当前设备在过去一段时间内登录过的不同账户数量 | 设备农场、批量注册、养号 |
| 关联IP数 | 当前账户关联过的不同IP地址数量 | 代理IP、VPN、异地登录 |
| 关联手机号数 | 当前设备绑定或使用过的不同手机号数量 | 卡商、接码平台 |
4.3.2 计算逻辑与实现
关系衍生特征通常基于图连接查询或离线预计算实现。实时风控中,可通过缓存或图数据库(如Neo4j、JanusGraph)快速获取关联计数。
-- 示例SQL:计算当前设备关联的账户数(近30天)
SELECT
device_id,
COUNT(DISTINCT user_id) AS related_account_cnt_30d
FROM fact_device_login
WHERE device_id = :target_device
AND login_time >= NOW() - INTERVAL '30 days'
GROUP BY device_id;
工程实践建议:关系衍生特征的计算量随实体数量呈指数增长。建议对高频实体(如设备、IP)采用布隆过滤器或HyperLogLog进行近似去重计数,以降低存储和计算开销。
4.3.3 关系衍生与时间窗口的组合
将关系衍生与时间窗口结合,可以构造出更精细的特征。例如:
related_device_cnt_1h:近1小时关联设备数,用于检测短时间内设备切换异常。related_account_cnt_7d:近7天关联账户数,用于识别设备共享程度。related_ip_cnt_30d:近30天关联IP数,用于评估账户的IP稳定性。
4.4 衍生特征层的工程落地要点
- 特征存储:时间窗口特征建议使用Redis或内存网格存储,支持毫秒级读取;关系特征可借助图数据库或离线Hive表预计算。
- 特征更新:窗口特征需支持滑动更新,避免每次全量重算;关系特征可采用增量更新策略,每日或每小时刷新。
- 特征监控:对衍生特征进行分布监控(均值、方差、空值率),及时发现数据漂移或计算异常。
- 特征回溯:离线训练时需确保衍生特征的时间窗口与样本时间严格对齐,避免未来信息泄露。
总结:衍生特征层是风控特征体系中最具业务深度的一层。时间窗口衍生捕捉行为趋势与模式,关系衍生揭示实体间的隐蔽关联。两者结合使用,能大幅提升风控模型对复杂欺诈行为的识别能力。在实际工程中,需重点关注计算性能、存储成本和特征时效性之间的平衡。