3. 特征服务核心概念:特征定义、特征来源与计算模式

在实时风控网关中,特征(Feature)是描述用户、设备、交易或环境某一维度属性的量化指标。特征服务是整个风控决策引擎的“数据底座”,其核心设计围绕三个维度展开:特征定义、特征来源(实时/离线)与特征计算模式(预计算/实时计算)。

3.1 特征定义:从业务语义到技术元数据

特征定义是将业务风控需求转化为可计算、可存储、可追溯的元数据描述。一个完整的特征定义包含以下要素:

定义维度 说明 示例
特征名称 全局唯一的业务标识 user_login_fail_count_1h
特征类型 数值型、枚举型、布尔型、文本型 数值型(int)
聚合粒度 按用户、设备、IP、银行卡等维度聚合 用户ID
时间窗口 统计的时间范围(滑动窗口/固定窗口) 过去1小时
计算逻辑 SQL、UDF、规则引擎表达式 COUNT(DISTINCT ip) WHERE event='login_fail'
数据源 原始事件流、离线数仓、外部接口 kafka://user_behavior
版本号 特征变更的版本管理 v1.2.0
最佳实践:特征定义应纳入元数据中心统一管理,支持版本回溯与灰度发布。每次特征逻辑变更,必须生成新版本号,确保回放对比时能精确匹配历史特征值。

3.2 特征来源:实时与离线的双轨架构

特征来源决定了数据的时效性与计算成本。实时风控网关需要同时接入实时流与离线批两类数据源,形成互补的特征供给体系。

3.2.1 实时特征来源

  • 事件流:用户行为日志、交易流水、设备指纹事件,通过 Kafka/Pulsar 接入。
  • 缓存状态:Redis 中存储的计数器、布隆过滤器、最近N次记录。
  • 外部API:三方风控评分、黑名单查询、地理位置逆编码。

3.2.2 离线特征来源

  • 数仓表:用户画像标签、历史逾期统计、设备关联图谱。
  • 批量计算:Hive/Spark 产出的日级/小时级聚合特征。
  • 模型打分:离线训练的机器学习模型输出的概率分。
关键对比:实时特征强调低延迟(毫秒级),但计算复杂度受限;离线特征支持复杂聚合与全量扫描,但存在分钟级到小时级的延迟。特征服务必须通过特征回放机制,在离线环境下模拟实时特征的计算结果,才能进行有效的策略对比验证。
特征来源双轨架构 实时特征来源 事件流 (Kafka) 缓存 (Redis) 外部 API 设备指纹 延迟:毫秒级 | 计算:轻量级 离线特征来源 数仓 (Hive) 批量计算 (Spark) 模型打分 用户画像 延迟:分钟~小时级 | 计算:复杂聚合 特征服务

3.3 特征计算模式:预计算 vs 实时计算

特征计算模式决定了特征值在何时、以何种方式被产出。两种模式在延迟、吞吐、一致性上存在本质差异,特征服务必须同时支持两种模式,并通过回放对比验证其等价性。

3.3.1 预计算模式(Pre-computation)

  • 计算时机:在事件到达之前,按固定周期(小时/天)批量完成。
  • 存储方式:结果写入离线表或在线 KV 存储,查询时直接读取。
  • 适用场景:用户画像标签、历史统计特征、模型批量打分。
  • 优势:查询延迟极低(微秒级),支持复杂计算逻辑。
  • 劣势:数据新鲜度受限于调度周期,无法反映最新状态。

3.3.2 实时计算模式(Real-time Computation)

  • 计算时机:事件到达时触发,在毫秒级窗口内完成计算。
  • 计算引擎:Flink/Spark Streaming 或自研的轻量级状态计算引擎。
  • 适用场景:滑动窗口计数、最近N次行为序列、设备指纹实时匹配。
  • 优势:数据新鲜度高,能捕捉秒级行为变化。
  • 劣势:计算复杂度受限,状态管理成本高,存在 exactly-once 语义挑战。
对比维度 预计算模式 实时计算模式
计算触发 定时调度(T+1 / T+小时) 事件驱动(毫秒级)
查询延迟 微秒级(直接读结果) 毫秒级(含计算时间)
数据新鲜度 低(分钟~小时级延迟) 高(秒级可见)
计算复杂度 支持高复杂度(多表JOIN、复杂UDF) 受限(单流、轻量聚合)
状态管理 无状态(读离线表) 有状态(需维护窗口/计数器)
回放难度 低(直接重跑离线任务) 高(需模拟时间窗口与状态)
常见误区:不要试图用预计算模式覆盖所有实时场景,也不要用实时计算模式处理全量历史聚合。特征服务应提供混合计算路由:对时效性要求高的特征走实时计算,对复杂统计特征走预计算,并通过回放对比确保两种模式下同一特征值的一致性。
预计算 vs 实时计算流程对比 预计算模式 原始事件 离线数仓 批量计算 特征结果表 实时计算模式 实时事件流 Flink 作业 状态计算 实时特征值 核心差异 预计算:批量调度,读离线表 实时计算:事件驱动,维护状态 回放对比:验证两者等价性

3.4 特征回放:连接预计算与实时计算的桥梁

特征回放(Feature Replay)是实时风控网关中用于离线验证的核心机制。其基本思想是:将历史时间段内的原始事件,按照实时计算模式重新“回放”一遍,生成与当时实时计算完全一致的特征值,再与预计算产出的特征值进行对比。

回放对比的核心价值:
  1. 一致性验证:确保预计算与实时计算对同一历史时刻产出的特征值一致。
  2. 策略回溯:在离线环境下验证新策略在历史数据上的表现,无需影响线上。
  3. 问题定位:当线上实时特征值与预期不符时,通过回放复现问题现场。
  4. 版本回归:特征逻辑变更后,回放历史数据验证新版本是否引入偏差。

特征回放的技术实现依赖于三个关键能力:事件时间对齐(使用事件时间而非处理时间)、状态快照恢复(从历史状态中重建窗口)、确定性计算(相同的输入必须产生相同的输出)。

实战建议:在特征服务设计初期,就为每个特征定义回放标识(replayable flag)和回放参数(时间窗口、聚合粒度、状态TTL)。这能大幅降低后续回放对比的接入成本,避免在需要回放时才发现特征定义不完整。