数据采集与特征工程:信任评分的基石

信任评分模型,说白了就是「用数据给用户打分」。但数据从哪来?怎么加工成有用的特征?这步没做好,后面算法再牛也白搭。我见过太多团队,模型上线后效果差,回头一查——特征工程阶段就埋了雷。

这一章,咱们就聊聊数据源怎么分类、特征怎么构建、存哪去、怎么更新。嗯,都是实战里绕不开的硬骨头。

数据源分类:三种来源,三种脾气

信任评分的数据源,我习惯分成三大类。每一类的获取方式、质量、更新频率都不一样。

数据源类型 典型数据 获取难度 更新频率 信任权重参考
用户画像 注册信息、实名认证、设备指纹、历史行为偏好 低(自有系统) 低频(周/月) 基础分(30%-40%)
行为日志 登录频次、交易记录、操作路径、异常点击 中(需埋点) 高频(实时/天) 动态分(40%-50%)
外部征信 央行征信、多头借贷、黑名单、工商信息 高(需授权/采购) 中频(周/月) 校验分(20%-30%)

关键认知: 用户画像决定「你是谁」,行为日志反映「你做了什么」,外部征信验证「别人怎么看你」。三者缺一不可,但权重分配要看业务场景。

1. 用户画像数据

这部分数据最稳定。用户注册时填的姓名、身份证、手机号、职业、收入范围,还有设备信息(IMEI、MAC地址、操作系统版本)。

我个人习惯把画像数据分成两类:

  • 静态属性: 年龄、性别、学历、地域。这些几乎不变,一次采集长期使用。
  • 半静态属性: 职业、收入、婚姻状况。可能一年变一两次,需要定期回捞。

我在项目中遇到过一个问题:用户画像数据质量参差不齐。有人填「月收入5万」,但行为日志显示他天天薅羊毛。这时候画像数据只能作为参考,不能全信。

2. 行为日志数据

这才是信任评分的「富矿」。用户每次点击、每次登录、每次交易,都在产生数据。

行为日志有几个特点:

  • 量大: 一个活跃用户一天可能产生上千条日志。
  • 实时: 欺诈行为往往在几分钟内完成,日志必须近实时处理。
  • 噪声多: 刷子、爬虫、误操作,都会污染数据。

举个例子。用户A每天登录3次,每次浏览5分钟,下单1次。用户B每天登录50次,每次停留10秒,从不下单。你想想看,谁更像真人?行为日志里的「登录频次」「停留时长」「转化率」,都是信任评分的好特征。

避坑指南: 我曾经在行为日志里直接用了「登录次数」这个原始字段,结果发现有些用户用脚本自动登录,次数高得离谱。后来我改成「登录次数/设备数」的比值,才过滤掉机器行为。

3. 外部征信数据

这部分数据最「贵」,也最「硬」。央行征信报告、百行征信、同盾多头借贷、法院失信名单、工商异常名录……

外部征信的作用是「交叉验证」。用户说自己没欠过钱,征信报告一拉,发现逾期记录一堆。这种矛盾本身就是强信号。

但要注意:外部征信数据有合规门槛。用户授权、数据脱敏、接口调用频次限制,都是必须处理的坑。

特征构建方法论:从原始数据到有效特征

数据源搞定了,下一步就是特征构建。我把它拆成四个步骤:

  1. 清洗与预处理 —— 去重、去空、异常值处理
  2. 基础特征提取 —— 统计量、频次、占比
  3. 衍生特征构造 —— 交叉、聚合、时序
  4. 特征筛选 —— IV值、相关性、稳定性

步骤一:清洗与预处理

这一步最枯燥,但最重要。我见过有人跳过清洗直接建模,结果模型学到的全是噪声。

常见的清洗操作:

  • 缺失值处理: 用户画像的「职业」字段可能缺失30%。直接删掉?太浪费。我习惯用「未知」作为一个独立类别,或者用众数填充。
  • 异常值截断: 交易金额字段,有人填了99999999。这种明显是测试数据,直接截断到99分位。
  • 格式统一: 手机号有的带+86,有的不带。统一格式后再做特征。

步骤二:基础特征提取

从原始数据里直接算出来的特征。比如:

数据源 原始字段 基础特征
用户画像 注册时间 注册天数、注册时段(白天/夜晚)
行为日志 登录记录 近7天登录次数、平均登录间隔
外部征信 逾期记录 逾期次数、最大逾期天数、逾期金额占比

步骤三:衍生特征构造

这才是体现功力的地方。把多个基础特征组合起来,产生新的信息。

我常用的几种方法:

  • 交叉特征: 「登录次数 × 交易金额」—— 登录多但交易少,可能是刷子。
  • 聚合特征: 「近30天交易金额的均值/标准差」—— 波动大说明行为不稳定。
  • 时序特征: 「交易时间间隔的变异系数」—— 间隔越规律,越像机器。
  • 比率特征: 「夜间交易占比」—— 夜间交易多,欺诈风险高。

实战经验: 我在做电商信任评分时,发现「收货地址变更次数/订单数」这个比率特征,对识别虚假交易特别有效。正常用户一年换一次地址,骗子每单换一个地址。

步骤四:特征筛选

特征不是越多越好。我见过有人一口气造了500个特征,模型训练慢,还容易过拟合。

筛选标准:

  • IV值(信息量): IV > 0.02 的保留,< 0.02 的扔掉。
  • 相关性: 两个特征相关系数 > 0.8,只留一个。
  • 稳定性(PSI): 特征分布随时间变化太大,不能用。

特征存储与更新策略

特征造好了,存哪?怎么保证实时性?

存储方案

我推荐分层存储:

存储层 技术选型 存储内容 访问频率
离线层 Hive / HDFS 全量历史特征(T+1) 低(模型训练用)
近线层 ClickHouse / Doris 近7天聚合特征 中(批量查询)
在线层 Redis / HBase 实时特征(秒级更新) 高(实时评分用)

注意: 在线层存储的特征必须轻量。我见过有人把全量用户画像塞进Redis,结果内存爆了。在线层只存最近24小时的行为统计和最新画像快照就够了。

更新策略

不同特征,更新频率不同:

  • 实时特征: 登录次数、当前设备指纹、IP归属地。每次请求都更新。
  • 天级特征: 近7天交易金额、近30天登录天数。每天凌晨跑批更新。
  • 周级特征: 用户画像变更、外部征信更新。每周拉取一次。

我曾经踩过一个坑:把天级特征也放到了实时更新链路里,结果每次评分都要等3秒。后来改成异步更新,评分耗时降到50毫秒。

本章知识体系总览

下面这张图,把数据采集与特征工程的完整链路串起来了。你可以把它当作本章的「地图」。

信任评分模型 - 数据采集与特征工程流程图 数据采集与特征工程流程 数据源分类 用户画像 行为日志 外部征信 特征构建方法论 ① 清洗与预处理 ② 基础特征提取 ③ 衍生特征构造 ④ 特征筛选(IV/相关性/PSI) 特征存储 离线层 (Hive) 近线层 (ClickHouse) 在线层 (Redis) 更新策略 实时特征(秒级) → 天级特征(T+1批处理) → 周级特征(定期拉取) 不同更新频率的特征,存储在不同层级,避免资源浪费

这张图展示了从数据源到特征存储的完整链路。你想想看,每一步都有坑,但每一步也都有优化空间。信任评分模型的竞争力,往往就体现在这些细节里。

我的建议: 刚开始做特征工程时,别追求大而全。先选3-5个核心特征,跑通全流程,再逐步迭代。我见过太多团队在第一版就想造100个特征,结果半年没上线。