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下关联的保单数、手机号数。
  • 资金关联: 同一银行卡支付的用户数、收款账户集中度。
案例: 某健康险产品上线首日,模型通过“关联网络”特征发现:有5个新注册用户共用同一台设备且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 特征实时计算架构

实时特征计算要求在事件到达后的毫秒级窗口内完成聚合、关联与转换。下图展示了典型的实时特征计算流水线:

保险实时特征计算架构图 实时特征计算流水线 事件源 投保/理赔请求 消息队列 Kafka / Pulsar 流计算引擎 Flink / Spark 特征存储 Redis / Feature Store 特征计算 滑动窗口 / 关联 模型服务 实时评分 延迟目标 端到端 < 100ms 特征读取 < 10ms

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: 将所有特征合并为特征向量,送入模型。
性能陷阱: 实时特征拼接时,避免串行调用多个存储。应使用异步并发或 Pipeline 技术,将多次网络请求合并为一次,否则特征读取延迟可能从 5ms 飙升到 50ms,导致模型超时。

4.4 本章小结

特征工程是实时风控模型效果的天花板。本章详细介绍了用户画像、行为序列、设备指纹和关联网络四类特征的定义与实战用法,并给出了 Redis 与 Feature Store 的选型对比。在实时计算方面,基于 Flink 的滑动窗口聚合与特征服务层的并发拼接是生产环境的标准实践。掌握这些内容,你将能够构建出低延迟、高精度的保险实时风险拦截特征体系。