2. 风控训练数据基础

在风控模型的生命周期中,训练数据是决定模型上限的第一要素。很多团队在模型上线后才发现训练效果与生产表现存在明显落差,追根溯源,问题往往不在算法,而在数据基础环节。本节围绕训练数据来源、生产数据链路、特征工程数据、样本标签体系与常见数据存储形态五个方面,建立对风控训练数据的整体认知,为后续一致性校验打下基础。

一、训练数据的四大来源

风控训练数据通常来自多个异构系统,理解来源差异是判断数据一致性的前提。

  • 业务系统数据:来自信贷、支付、账户等核心业务库,包含申请信息、交易流水、还款记录等,是样本与标签的主要来源。
  • 埋点与行为数据:来自App、H5、小程序等前端埋点,记录设备指纹、点击流、页面停留等,常用于反欺诈特征。
  • 第三方数据:征信报告、多头借贷、黑名单、运营商数据等,通过接口或文件方式接入,具有时效性和合规约束。
  • 人工审核与标注数据:审核员的判定结论、调查结果、客服工单等,是高质量标签的重要补充。
不同来源的数据在时间语义、主键定义、更新频率上往往不一致。例如业务库按业务日期更新,埋点按事件时间写入,第三方数据按批次落地。训练时若不做统一对齐,就会埋下特征穿越和标签错位的隐患。

二、生产数据链路与训练链路的差异

生产环境的数据链路通常是从业务事件触发,经过实时消息、特征计算、模型打分到决策输出;而训练链路是从离线数仓或数据湖中抽取历史数据,经过特征回填、样本构造到模型训练。两条链路在数据流向上相似,但在实现细节上差异巨大。

对比维度 生产链路 训练链路
触发方式 事件驱动,实时或准实时 调度驱动,T+1或批量
特征计算 在线特征服务,低延迟 离线SQL/Spark,全量回填
时间语义 事件时间与处理时间接近 依赖分区日期,易产生穿越
数据范围 单次请求或短窗口 历史全量样本
一致性风险 在线特征与离线定义漂移 回填逻辑与线上不一致

一致性校验的核心目标,就是让训练链路中每个样本的特征值,尽可能逼近该样本在生产时刻真实可获得的特征值。这要求我们不仅关注数据本身,还要关注数据产生的时间与顺序。

三、特征工程数据的组织方式

特征工程数据通常以特征宽表、特征视图或特征组的形式组织。离线训练时,常见做法是将用户维度、设备维度、行为维度的特征按主键和时间窗口聚合,形成一张宽表。下面是一个典型的特征回填SQL片段:

INSERT OVERWRITE TABLE risk_feature_train PARTITION (dt='2024-06-01')
SELECT
  a.user_id,
  a.apply_time,
  COUNT(b.txn_id) AS txn_cnt_7d,
  SUM(b.amount) AS txn_amt_7d,
  MAX(c.device_score) AS device_score
FROM apply_sample a
LEFT JOIN txn_log b
  ON a.user_id = b.user_id
 AND b.txn_time BETWEEN a.apply_time - INTERVAL 7 DAY AND a.apply_time
LEFT JOIN device_profile c
  ON a.device_id = c.device_id
GROUP BY a.user_id, a.apply_time;

这段SQL体现了两个关键点:一是时间窗口必须严格以申请时间为右边界,避免使用未来数据;二是关联维度表时要注意快照时间,设备评分应取申请时刻之前最近一次的快照,而非最新值。

常见的特征穿越包括:用全量统计值代替历史窗口值、用标签产生后的行为构造特征、用最新维度快照回填历史样本。这些都会导致离线AUC虚高,上线后效果骤降。

四、样本标签体系与存储形态

样本标签体系决定了模型学习的目标。风控中常见标签包括:逾期标签(如DPD30+)、欺诈标签、拒绝推断标签、行为风险标签等。标签的定义必须与业务口径严格一致,包括观察期、表现期、坏样本定义和灰样本处理规则。

  • 观察期:样本进入时的信息采集窗口,通常为申请时刻。
  • 表现期:用于判断好坏的时间窗口,如放款后6个月。
  • 坏样本定义:如DPD30+、DPD60+、欺诈确认等。
  • 灰样本:表现不明确或数据缺失的样本,需明确剔除或单独处理。

在存储形态上,训练数据常见以下几种:

  • Hive/Spark表:按日期分区,适合大规模离线训练,是主流形态。
  • Parquet/ORC文件:列式存储,压缩率高,读取效率好。
  • 特征数据库:如Redis、HBase,用于在线特征服务,也可导出用于训练比对。
  • CSV/JSON样本文件:用于小规模实验或跨团队交付,但缺乏schema约束。
训练数据的一致性校验,本质上是在比对“同一主键、同一时间点”下,离线特征值与在线特征值是否一致。因此,存储形态的选择会直接影响校验的可行性与效率。列式存储便于按列比对,特征数据库便于按主键抽样比对。

五、案例与复盘:一次特征穿越的排查

某消费金融团队在训练反欺诈模型时,离线AUC达到0.92,上线后KS仅0.31。排查发现,设备评分特征在离线回填时使用了最新快照,而在线打分时使用的是申请时刻的设备评分。由于设备评分会随时间变化,离线样本中混入了未来信息,导致模型过度依赖该特征。

修复方式是:在离线回填时,按设备ID和申请时间做时间范围关联,取申请时刻之前最近一次的快照。修复后离线AUC降至0.86,但上线KS提升至0.38,离线与线上表现趋于一致。

复盘要点:一致性校验不是一次性工作,而应嵌入特征开发、样本构造、模型训练和上线监控的每个环节。建议在特征注册时即记录时间语义和快照策略,并在训练样本生成后做抽样比对。