反欺诈方向的实际应用很多,我有做过保险业反欺诈和零售快消业的欺诈检测,抛砖引玉的谈谈反欺诈项目的"道"和"术"。
1.背景 - 为什么反欺诈检测难度很高?
反欺诈项目很多情况下就是客户根本不知道什么是欺诈,什么不是。换句话说,对于什么是诈骗的定义很模糊。往小了说,反诈骗似乎是一个二分类问题(binary classification),但你仔细想想后会发现其实这是个多分类问题(multi-class classification),如果你把每种不同诈骗当做一种单独的类型。而单一类型的诈骗几乎是不存在的,且诈骗的手段日新月新总在变化。即使像银行还有保险公司这种常年和诈骗打交道的行业,也必须常常更新自己的检测手段,而不是把赌注压到同一个模型上。
除此之外,欺诈检测一般还面临以下问题:
九成九的情况数据是没有标签(label)的,各种成熟的监督学习(supervised learning)没有用武之地。
区分噪音(noise)和异常点(anomaly)时难度很大,甚至需要发挥一点点想象力和直觉。
紧接着上一点,当多种诈骗数据混合在一起,区分不同的诈骗类型更难。根本原因还是因为我们并不了解每一种诈骗定义。
退一步说,即使我们真的有诈骗的历史数据,即在有标签的情况下用监督学习,也存在很大的风险。用这样的历史数据学出的模型只能检测曾经出现过与历史诈骗相似的诈骗,而对于变种的诈骗和从未见过的诈骗,我们的模型将会无能为力。因此,在实际情况中,我不建议直接用任何监督学习,至少不能单纯依靠一个监督学习模型来奢求检测到所有的诈骗。
这就陷入了一个鸡生蛋蛋生鸡的死循环,因为没有历史标签和对诈骗的理解,我们无法做出能对诈骗细分的模型。因此我们一般使用无监督学习(unsupervised learning),且需要领域专家(domain experts)也就是对这个行业非常了解的人来验证我们的预测,提供反馈,以便于及时的调整模型。
2. 反欺诈项目的操作顺序(1) - 可视化
一般在拿到数据以后,我会推荐以下步骤进行分析。当然,一个答案很难包括所有常见的操作,仅仅是分享个人经验以供思考。
数据可视化 - 相关矩阵(Correlation Matrix) & 多维尺度变换(Multidimensional Scaling)
人是视觉动物,可以在第一时间“看到”数据中存在的问题。