一、异常交易检测概述
大家好,我是你们这堂课的主讲人。做风控这些年,我踩过不少坑,也积累了一些实战经验。今天咱们聊聊异常交易检测这个老话题。
说实话,很多人一上来就问我:「到底什么是异常交易?」
我的回答很简单:异常交易就是那些不符合正常行为模式的交易。你想想看,一个用户平时每天消费几十块,突然某天刷了十万块——这肯定不对劲。但问题在于,什么算「正常」?什么算「异常」?边界其实很模糊。
核心定义:异常交易是指与大多数交易行为显著不同、或与历史行为模式严重偏离的交易活动。它可能是欺诈、洗钱、盗刷,也可能是误报。
1.1 业务场景:我在项目中遇到过的真实案例
我参与过几个大型支付平台的风控项目。说实话,每个平台的「异常」定义都不一样。
- 电商场景:我记得有一次,一个商家在凌晨3点突然涌进大量订单,每笔金额都是999元。系统直接报警了——后来发现是刷单团伙在操作。
- 银行转账:有个客户平时只在国内消费,突然连续向境外账户转账。这种跨境交易,哪怕金额不大,也值得警惕。
- 虚拟货币:嗯,这个领域更复杂。我曾经处理过一个案例,一个地址在5分钟内发起200笔小额转账——典型的「粉尘攻击」手法。
你看,不同场景下的异常交易,特征完全不同。所以做特征工程时,场景理解比算法更重要。
1.2 挑战:为什么异常交易检测这么难?
我刚开始做风控时,以为只要把数据扔进模型就能搞定。结果呢?被现实狠狠打脸了。
主要挑战有这几个:
- 样本极度不平衡——正常交易占99.9%,异常交易可能只有0.1%。你想想看,模型很容易学成「全都判正常」的偷懒模式。
- 欺诈手法不断进化——今天你识别了A模式,明天骗子就发明了B模式。我见过一个团伙,每3天换一套攻击策略。
- 实时性要求高——交易发生到判定结果,往往只有几百毫秒。你不可能跑一个复杂的深度学习模型。
- 特征工程难度大——原始数据往往很脏,需要大量清洗和加工。我曾经花了两周时间,就为了构造一个「设备指纹」特征。
避坑指南:我曾经犯过一个错误——把所有特征一股脑扔进模型,结果过拟合严重。后来才明白,特征不是越多越好,而是要「精」。
1.3 特征工程的核心地位
为什么我要把特征工程单独拿出来讲?因为它是整个异常交易检测的基石。
我个人习惯把风控系统比作「侦探破案」:
- 原始数据 = 案发现场的各种线索(时间、地点、金额、设备...)
- 特征工程 = 侦探把这些线索整理成可用的证据(比如「过去1小时交易次数」、「设备是否root」)
- 模型 = 侦探根据证据做出判断
你看,如果线索都没整理好,再厉害的侦探也破不了案。特征工程就是那个「整理线索」的过程。
具体来说,特征工程在异常交易检测中承担了这些任务:
| 任务 | 说明 | 我常用的方法 |
|---|---|---|
| 数据清洗 | 处理缺失值、异常值、重复数据 | 用中位数填充,或者直接删除异常样本 |
| 特征构造 | 从原始数据中衍生出新特征 | 比如计算「过去N分钟交易次数」、「金额与历史均值的偏差」 |
| 特征选择 | 从大量特征中挑出最有用的 | 我常用特征重要性排序 + 业务规则筛选 |
| 特征变换 | 让特征更符合模型要求 | 比如对金额做log变换,或者标准化 |
我的经验:特征工程往往占整个项目70%以上的时间。别急着调模型参数,先把特征做扎实了。我见过太多团队,模型调参调了两个月,结果发现是特征没做好。
1.4 知识体系框架
下面这张图,是我自己总结的异常交易检测特征工程知识体系。你可以把它当作整个课程的地图。
这张图展示了我们整个课程的结构。从业务理解开始,到数据清洗,再到特征工程核心,最后到模型部署。每一步都环环相扣。
我个人建议你把这幅图保存下来。每次学完一个章节,回来看看自己处在哪个位置,心里就有数了。
1.5 一个小例子:从原始数据到特征
光说不练假把式。我给大家看一个最简单的特征构造例子。
假设我们有一条原始交易记录:
{
"user_id": "U12345",
"amount": 9999.00,
"timestamp": "2024-01-15 03:22:10",
"ip": "192.168.1.100",
"device_id": "DEV_ABC123"
}
这条数据本身信息量有限。但我们可以构造出这些特征:
# 特征1:过去1小时该用户的交易次数
user_1h_count = 15 # 这个用户1小时内交易了15次
# 特征2:金额与用户历史均值的偏差
amount_deviation = 9999.00 / user_avg_amount # 假设用户历史均值是100元,偏差=99.99
# 特征3:是否在凌晨交易
is_night = 1 # 凌晨3点,标记为1
# 特征4:设备是否在短时间内切换
device_change_count = 3 # 过去24小时换了3个设备
你看,一条原始记录,经过特征工程后,变成了4个有意义的特征。这些特征才是模型真正能「理解」的信息。
核心观点:特征工程不是简单的数据搬运,而是把业务知识编码成模型能学习的语言。你越懂业务,特征就做得越好。
好了,这一章就到这里。记住一句话:特征工程决定了模型的上限,而模型只是逼近这个上限。后面几章,我会手把手带你做各种实战特征。