4. 特征工程实战:常用保险风控特征与实时计算
特征工程是实时风控模型的基石。在保险场景中,欺诈行为往往隐藏在用户身份、行为模式、设备环境以及社交关系之中。本章将深入剖析四类核心风控特征,并讲解如何在毫秒级延迟下完成特征的存储与计算。
4.1 四大核心风控特征体系
实时风控模型依赖的特征可归纳为以下四类,每一类都对应不同的攻击面与防御策略:
| 特征类别 | 核心维度 | 典型特征示例 | 对抗的欺诈类型 |
|---|---|---|---|
| 用户画像 | 身份属性、信用、历史 | 年龄、职业、历史理赔次数、黑名单命中 | 身份冒用、恶意骗保 |
| 行为序列 | 操作路径、时间间隔、频率 | 页面停留时长、点击流、投保-支付间隔 | 机器脚本、团伙操作 |
| 设备指纹 | 硬件、软件、网络环境 | 设备ID、IP归属地、代理检测、屏幕分辨率 | 设备篡改、模拟器、IP欺诈 |
| 关联网络 | 社交、资金、设备共享 | 同设备登录账号数、同IP投保人数、担保环 | 团伙欺诈、养号骗保 |
4.1.1 用户画像特征
用户画像是风控的第一道防线。它基于用户注册、实名认证及历史保单数据构建,通常存储在离线数仓或在线KV存储中。
- 静态画像: 年龄、性别、地区、职业等级、收入水平。
- 动态画像: 近30天登录次数、历史理赔金额、黑名单标签、信用评分。
- 衍生画像: 投保偏好(如高额意外险)、信息变更频率(如手机号更换次数)。
4.1.2 行为序列特征
行为序列捕捉用户在投保流程中的“节奏感”。机器脚本的行为通常过于规律或过于快速。
- 时间序列: 页面停留时间、输入速度、从浏览到投保的总耗时。
- 路径序列: 用户点击的页面顺序是否异常(如跳过健康告知直接支付)。
- 频次序列: 单位时间内点击次数、重复提交次数。
4.1.3 设备指纹特征
设备指纹用于识别物理设备的唯一性,对抗模拟器、设备农场和IP代理。
- 硬件指纹: CPU核心数、内存大小、显卡型号、屏幕DPI。
- 软件指纹: 浏览器UA、操作系统版本、时区、语言设置。
- 网络指纹: 内网IP、公网IP、WiFi BSSID、代理/VPN检测。
4.1.4 关联网络特征
关联网络通过图算法挖掘用户之间的隐性连接,是识别团伙欺诈的核心手段。
- 设备关联: 同一设备登录过的账号数量、同一账号登录过的设备数量。
- IP关联: 同一IP下关联的保单数、手机号数。
- 资金关联: 同一银行卡支付的用户数、收款账户集中度。
4.2 特征存储:Redis 与 Feature Store
实时风控对特征读取的延迟要求通常在10ms以内。传统关系型数据库难以满足,因此业界普遍采用内存级存储方案。
4.2.1 Redis:高性能在线特征缓存
Redis 是实时风控中最常用的特征存储,适合存储用户画像、设备指纹等键值对特征。
- 数据结构: 使用 Hash 存储用户画像(如
user:12345),使用 String 存储设备指纹(如device:abc123)。 - 过期策略: 为行为序列特征设置 TTL(如 30 分钟),自动清理过期数据。
- Pipeline 优化: 批量读取多个特征时,使用 Pipeline 减少网络往返。
// 示例:使用 Redis Pipeline 批量读取特征
Pipeline pipeline = jedis.pipelined();
pipeline.hgetAll("user:12345");
pipeline.get("device:abc123");
pipeline.smembers("ip:192.168.1.1:users");
List<Object> results = pipeline.syncAndReturnAll();
4.2.2 Feature Store:统一特征管理平台
当特征数量超过数百个时,Redis 的键管理变得混乱。Feature Store(如 Feast、Tecton)提供了特征注册、版本管理和在线/离线一致性保障。
| 对比维度 | Redis 直接存储 | Feature Store |
|---|---|---|
| 特征管理 | 手动维护键名与类型 | 统一注册、自动类型推断 |
| 离线/在线一致性 | 需自行同步 | 内置时间戳对齐与回填 |
| 特征回溯 | 不支持 | 支持历史时间点特征查询 |
| 适用场景 | 小规模、快速原型 | 大规模、生产级、多团队协作 |
4.3 特征实时计算架构
实时特征计算要求在事件到达后的毫秒级窗口内完成聚合、关联与转换。下图展示了典型的实时特征计算流水线:
4.3.1 滑动窗口聚合
行为序列特征通常依赖时间窗口计算。例如,“过去5分钟内用户点击次数”就是一个典型的滑动窗口特征。
// Flink SQL 示例:5分钟滑动窗口统计用户点击次数
SELECT
user_id,
COUNT(*) AS click_count_5min,
HOP_START(event_time, INTERVAL '1' MINUTE, INTERVAL '5' MINUTE) AS window_start
FROM click_events
GROUP BY
user_id,
HOP(event_time, INTERVAL '1' MINUTE, INTERVAL '5' MINUTE);
4.3.2 实时关联与特征拼接
在模型推理前,需要将来自不同存储的特征拼接成一个特征向量。这通常通过“特征服务层”完成。
- 步骤1: 从请求中提取用户ID、设备ID、IP。
- 步骤2: 并发查询 Redis 获取用户画像、设备指纹。
- 步骤3: 从流计算引擎获取当前窗口的行为聚合值。
- 步骤4: 调用图数据库或关联服务获取关联网络特征。
- 步骤5: 将所有特征合并为特征向量,送入模型。
4.4 本章小结
特征工程是实时风控模型效果的天花板。本章详细介绍了用户画像、行为序列、设备指纹和关联网络四类特征的定义与实战用法,并给出了 Redis 与 Feature Store 的选型对比。在实时计算方面,基于 Flink 的滑动窗口聚合与特征服务层的并发拼接是生产环境的标准实践。掌握这些内容,你将能够构建出低延迟、高精度的保险实时风险拦截特征体系。