什么是反欺诈?
根据Cambridge Dictionary,欺诈(Fraud)定义为:通过欺骗获取物质或者货币的犯罪行为。自古以来,欺诈广泛地存在在商业活动中,所谓“无奸不商,无商不奸”。随着互联网的快速发展,犯罪分子越来越多地利用电信和网络进行诈骗,且手段不断更新进化。目前反欺诈的重点主要包括网上购物(商家卖假货)、银行业务(信用卡欺诈)、互联网优惠券、保险业务等。
魔高一尺,道高一丈。反欺诈技术也在不断地进步,从起初的黑名单到现在基于深度网络的recurrent neural network。方法和算法将在下文做详细介绍。
常用算法
在介绍算法之前,我们先来总结下反欺诈问题建模的主要难点:
- 问题难定义。欺诈手段的不断变化,我们不可能期望训练完成的模型能识别所有欺诈。
- 标注成本高。每一个欺诈正样本的获取必须识别并验证这是一次欺诈行为。这个过程很有可能需要人工去搜集证据去核实,费时费力。这就造成了整个数据集中正负样本往往表现为极大的不平衡。
- 负样本噪声大,存在异常值。大体来说,欺诈行为具有隐蔽性,识别难度很高,标记为负样本的记录同样可能是一次欺诈。这就意味着负样本实际上是正样本,我们打错了标签。
- 欺诈手段是不断进化的,新的欺诈手段不停出现。这就要求我们不断地更新和进化模型,或者模型本身要包含时间这一个重要的变量。
有监督学习(supervised learning)
建模为分类或回归问题,用RL, random forest, NN等算法
缺点:需要大量的已标记好的数据
优点:可解释性强
无监督学习(unsupervised learning)
建模为聚类或者异常值检测问题。可用概率图模型,异常值检测较为常用是周志华老师提出的isolation forest (已经在sklearn中实现),聚类可用k-means, GMM等模型。
缺点:可解释性差,结果不可控
优点:无需标签,用图模型可以提高解释性
规则(rules)
缺点:需要有经验作为支撑,来提出规则;需要不断改进规则来适应具体问题的变化
优点:可快速部署,准确率高