Embedding与特征工程融合:金融风控中的表征盲区解决方案
1. 项目概述:当Embedding遇见特征工程
在金融风控和用户行为分析领域,我们每天都在处理海量的交易事件序列——每笔支付的时间戳、金额、商户类型,每个页面点击的先后顺序,这些时序数据蕴含着用户最真实的行为密码。传统做法面临一个两难选择:使用统计特征(如最近30天交易次数、平均金额)可解释性强但特征工程成本高;采用深度学习Embedding(如RNN、Transformer生成的用户向量)自动化程度高却成了"黑箱"。
去年在为某银行优化反欺诈系统时,我们发现一个有趣现象:当把手工设计的"凌晨交易占比"特征与用户Embedding拼接后,模型AUC提升了2.3%。这暗示着——Embedding可能没有完全捕获某些关键模式。后来才知道,这种现象在业内被称为"表征盲区"(Representational Blind Spots),就像人眼的视觉盲区一样,不同架构的Embedding模型会系统性忽略某些特征模式。
2. 核心设计思路拆解
2.1 框架整体架构
EAFD的创新在于构建了一个动态对话系统:让Embedding和特征工程互相"教"对方。其核心组件包括:
-
预训练Embedding锚点
冻结的CoLES/NTP/LLM4ES等序列编码器,将原始事件序列(如[txn_time, amount, mcc])映射为d维向量。这里特别要注意,不同编码器有各自的"视觉偏好":- CoLES(对比学习)擅长捕捉商户类别共现模式
- NTP(Next Transaction Prediction)对时间间隔敏感
- LLM4ES能理解文本描述的语义(如"奢侈品"vs"日用品")
-
LLM特征生成代理
采用GPT-OSS-120B作为"特征发明家",其创新点在于输入上下文包含:- 原始事件序列的元信息(字段类型、统计量)
- 当前Embedding重建误差热力图(如图1所示)
- 历史迭代的反馈(哪些特征类型表现好/差)
-
双机制评估系统
- 对齐得分(A) :用LightGBM预测Embedding向量各维度,R²越高说明特征越能"解释"Embedding
- 互补得分(U) :对比「纯Embedding」和「Embedding+特征」的下游任务损失差异
2.2 特征生成逻辑剖析
当LLM生成"最近7天最大单笔金额"这样的特征时,实际发生了三层推理:
-
模式识别
分析交易金额字段的分布(右偏?有离群值?),决定采用max而非mean -
时间窗选择
根据历史反馈知道:短期模式(7天)对欺诈检测有用,长期模式(90天)适合信用评估 -
可解释性包装
自动生成特征描述:"捕获用户近期消费激进程度"
实操技巧:在金融场景中,建议限制LLM生成的特征不超过3层聚合(如sum(max(amount))),过于复杂的特征虽然训练集有效但泛化性差。
3. 关键技术实现细节
3.1 特征候选生成
LLM的prompt设计是成功关键。以下是经过调优的模板:
"""你是一名资深金融风控专家,请基于以下信息设计特征:
1. 可用字段: {字段列表}
2. 当前Embedding在[时间类]特征重建差
3. 上一轮最佳特征是[夜间交易占比]
请生成5个Python函数,每个包含:
- 函数逻辑(含@validate装饰器)
- 业务解释
- 预期影响方向"""
# 示例输出
def feature_last3day_entropy(events):
'''计算最近3天交易时间的香农熵'''
times = [e.hour for e in events if e.timestamp > now-3*86400]
return entropy(np.histogram(times, bins=24)[0])
3.2 双阶段评估实现
对齐评估的代码细节值得关注:
def calc_alignment_score(features, embeddings):
# 使用弹性网络回归防止过拟合
model = make_pipeline(
StandardScaler(),
ElasticNetCV(l1_ratio=[.1, .5, .9])
)
scores = []
for dim in range(embeddings.shape[1]):
model.fit(features, embeddings[:, dim])
scores.append(r2_score(embeddings[:, dim],
model.predict(features)))
return np.mean(scores)
而互补评估更关注业务指标:
def calc_utility_score(X_embed, X_feat, y, metric='auc'):
base_model = CatBoostClassifier(iterations=500).fit(X_embed, y)
joint_model = CatBoostClassifier(iterations=500).fit(
np.hstack([X_embed, X_feat]), y)
base_score = evaluate(base_model, X_embed, y, metric)
joint_score = evaluate(joint_model,
np.hstack([X_embed, X_feat]), y, metric)
return joint_score - base_score
3.3 迭代优化策略
每轮迭代后,会给LLM反馈这样的结构化信息:
| 特征类型 | 对齐分↑ | 互补分↑ | 执行耗时↓ | 稳定性★ |
|---|---|---|---|---|
| 时间熵 | 0.82 | 0.01 | 120ms | ★★★★ |
| 金额偏度 | 0.45 | 0.03 | 85ms | ★★★ |
| 跨商户HHI | 0.31 | 0.12 | 210ms | ★★ |
这引导LLM在下一轮:①多生成时间类特征 ②避免复杂聚合 ③添加异常值处理
4. 工业落地实践
4.1 性能优化技巧
在银行实际部署时,我们发现三个关键点:
-
特征缓存机制
对高频特征(如"当日交易次数")预计算并存入Redis,避免实时计算影响风控接口延迟 -
LLM生成限速
通过以下策略控制成本:- 温度系数=0.3降低随机性
- 一轮最多生成20个候选
- 跳过与已有特征Jaccard相似度>0.6的提案
-
动态特征开关
监控每个特征的PSI(群体稳定性指数),当PSI>0.25时自动降权
4.2 可解释性增强
为满足监管要求,我们对重要特征添加了双重解释:
-
技术层面
使用SHAP分析特征对Embedding维度的贡献:explainer = shap.LinearExplainer(alignment_model) shap_values = explainer.shap_values(feature_samples) -
业务层面
自动生成如下的自然语言报告:"特征'周末金额占比'主要影响Embedding第17维(与消费周期性强相关),在客群分层中可区分'稳定薪族'(>0.4)和'自由职业者'(<0.2)"
5. 效果对比与案例分析
5.1 基准测试结果
在Rosbank数据集上的对比实验(AUC):
| 方法 | CoLES | NTP | LLM4ES |
|---|---|---|---|
| 纯Embedding | 0.835 | 0.798 | 0.849 |
| +Featuretools | 0.863 | 0.812 | 0.861 |
| +EAFD(本文) | 0.872 | 0.865 | 0.866 |
可以看到,EAFD对较弱的基础Embedding(如NTP)提升尤为显著,说明其确实能发现模型盲区。
5.2 典型特征分析
我们解析了EAFD生成的Top特征:
-
时间类
"最近3次交易间隔的变异系数":捕捉消费节奏异常- 对齐分0.64,互补分0.08
- 在欺诈检测中重要性排名第3
-
金额类
"对数金额与品类平均价的偏离度":识别异常消费- 对齐分0.21,互补分0.15
- 有效识别出"小额测试交易"欺诈模式
-
交叉类
"周末夜间餐饮消费占比":生活方式指纹- 对齐分0.88,互补分0.02
- 可用于客群细分
6. 避坑指南
在实际项目中我们踩过这些坑:
-
冷启动问题
- 错误做法:直接让LLM从零开始生成
- 正确方案:先人工提供10-20个种子特征(如"交易频次")
-
数值稳定性
- 问题:特征"金额/交易次数"在零除时崩溃
- 解决:所有除法特征自动添加epsilon=1e-6
-
特征洪水
- 现象:迭代5轮后特征数膨胀到200+
- 优化:每轮保留Top20特征,其余进入"休眠池"
-
线上线下不一致
- 陷阱:训练时用全量数据计算分位数,线上只能用滑动窗口
- 方案:所有统计特征统一改用近90天窗口计算
7. 扩展应用方向
除了金融领域,这套方法还可用于:
-
医疗事件序列
- 对齐特征:用药频率规律性
- 互补特征:异常检测指标
-
物联网日志
- 设备Embedding + 故障模式特征
-
安全领域
- 网络流量Embedding与威胁指标特征结合
最近我们正在试验将EAFD与差分隐私结合,通过分析特征重要性自动识别Embedding中的敏感信息(如性别、年龄),然后用HSIC正则化进行选择性擦除。初步实验显示,在保持95%的AUC同时,可以减少60%的人口统计信息泄漏。
这种Embedding与特征工程的"双人舞",或许正是实现AI系统可解释性与高性能共存的关键路径。当黑箱模型开始学会解释自己,当手工规则获得自适应进化能力,我们才真正站在了机器智能与人类理解的交汇点上。
更多推荐
所有评论(0)