gcForest分布式深度森林及其在套现欺诈自动检测中的应用

分布式深度森林及其在套现欺诈自动检测中的应用

摘要

互联网企业每天面对处理大规模机器学习应用的请求,需要一个能够处理超大数据任务的分布式系统.深度森林是最近提出的一个利用树作为组件深度学习框架,在各种领域取得不错的结果.然而并没有在超大规模数据任务上测试.在这项工作中,我们基于我们的参数服务器系统和人工智能平台,我们开发了分布式版本的具有易于使用的GUI的森林,就我们所知,这是第一个分布式深度森林,为了满足任务需要,对很原始深度森林模型做出很多改进.我们测试深度森林模型在一个额外的大型数据任务上,自动检测现金欺诈.有超过10亿条测试样本.实验结果表明,根据不同角度的评估指标,即使很少调整参数,深度森林模型也具有最佳性能。这种模式可以在大量资金中阻止欺诈交易,每一天即使与最优部署模型相比,深林模型也能显著降低经济损失。

1.介绍

现金套现欺诈是目前网络金融公司面对的主要问题,现在机器学习基本方法像LR逻辑回归和多元回归树被采用,在处理这些问题上取得了很大的成功,然后对更好的方法依然有强烈的需求.

目前,随机森林和多重加性回归树等基于树的模型仍然是 各种任务的主要方法之一。事实上,大多数获奖的Kaggle 竞赛或数据科学项目由于其卓越的性能,总是使用一组 MART 或其变体。蚂蚁金服内部的应用尤其如此。数据往往是稀疏的、高维的,作为一个离散的建模问题或混合的建模问题,它总是不适合深度神经网络等其他流行的选择。

最近,周和冯提出了一种深林方法,为用不可识别的组件,特别是构建深林模型开辟了新的途径。这种新的深度模型能够在所有非 DNN 方法中获得最佳性能,并在各种任务领域中与最先进的 DNN 模型一起给出竞争结果。此外,可以自动确定层数,使模型复杂性与精确数据相适应 (除了预先定义的 DNN 结构), 深林方法要调整的超参数要少得多。事实上,根据这篇论文,默认设置将在不同的任务中产生高度竞争的结果,这使得它成为处理分类问题 的一个很好的候选人。

在这项工作中,我们基于我们的分布式学习系kunpeng,实现并部署了分布式版本的深林模型.这是第一个基于服务器的参数深林模式与产业标准的分布式实施处理数百万高维数据的能力.此外,基于Web的图形用户人工智能平台在蚂蚁金融平台上提供了接口。

允许数据科学家在不需要编码的情况下使用模型。只需几个拖拽和点击,一个深森林模型准备好了。这使得建模过程非常有效方便,使数据科学家团队可以更容易地建立和评估模型.

2.系统概述

2.1 kunpeng

kunpeng是一个基于参数服务器的并行优化分布式学习系统。开发了用于处理工业界出现的大规模问题的运算法则。

参数服务器系统由两个主要部分组成:

第一种是所谓的无状态工作程序,它执行模型的大部分计算任务培训;第二部分是所谓的有状态服务器,它维护模型。具体来说,巨大的模型参数分布在服务器和参数可以通过网络通信传递给工人。这样的话,上百个可以处理数十亿个模型参数。此外,参数服务器也提供了解决方案对于集群中的节点故障,即可以执行参数的自动恢复,当在检查点的帮助下某些节点失败时。

由于这些优点,开发了基于生产级参数服务器的kunpeng分布式学习系统。

一般来说,昆鹏的构建有很多优化:

(1)一种可靠的故障转移机制,可确保大规模作业的高成功率;

(2)一种稀疏数据和通用通信接口的有效通信实现;

(3)友好的C++和pythonSDK

 

2.2 分布式MART

在这个部分,我们会介绍多元累计回归树(MART),和在昆鹏的分布式实现。因为已经在昆鹏实施了MART我们将把它作为分布式系统的基本组成部分深度森林,以及任何其他类型的构建块可以进一步开发深度森林的分布式版本。

为了很快了解MART,我们将首先对提升决策树作出简要解释。树通过将树模型与当前残差相加来构造模型。具体来说,让x i表示第i个实例,y i是对应的标签。在第t次迭代时,我们从第一轮(t-1)中得到了预测f t-1,然后学习了树模型f t最小化以下目标

其中,l是损失函数,Ω是控制模型,t轮循环的预测值:

与提升决策树类似,Mart也以拟合剩余部分。然而,在提升决策树的过程中,一部分情况下损失函数L可能无法计算。要处理这个问题,mart是通过对最陡的实际残差进行近似而提出的。下降法,即所谓的伪残差拟合。此外,二阶近似被广泛探索以有效地优化目标,并已实施在大多数系统中,如xgboost。目标如下

 

gi和hi是损失函数的一阶和二阶梯度

这里有MART两个重要特征,一是数据不平衡问题经常存在,解决这个问题一般有两种方法,分别是基于成本和基于采样.为了解决类不平衡问题,基于成本的方法可以自然地嵌入到MART。具体来说,重量可以分配给每个样本。具体来说,更高的重量将设置为金额较少的类(如果是,则通常是成本较高的类)错误分类)和较小的权重被设置为具有更多数量的类。因此,目标式可修改如下

wi是x与结果相关的权重

gcForest分布式深度森林及其在套现欺诈自动检测中的应用_第1张图片

mart方法有一个内置的功能来完成这些任务。也就是说,可以计算特征重要性并执行特征选择。也就是说,可以计算出每个属性的重要性得分,它表明构造树时功能的值用的越多,特性用于决定越重要。具体来说,对于每一棵树,属性的重要性的计算公式为

L是叶子节点个数,(L-1)是非终端节点数,VL是节点l的相关特征,(^i)2是由分割产生的平方误差,1是指示函数,

 

为了处理工业任务,在昆鹏实施了MART的分布式版本,在开发分布式集市时遇到了许多挑战,例如存储问题及计算和通信成本。为了满足昆鹏超市存储空间巨大,采用数据并行机制。到具体来说,每个工作人员只为每个特性存储整个数据的一个子集,并且拆分节点的工作流程如下:

(1)每个工人计算本地加权分位数在草图上存储数据;(2)每个工人将本地加权分位数草图推到服务器和服务器将它们合并到一个全局加权分位数草图中,并找到分割值;

(3)每个工作人员从服务器中提取拆分值,并将示例拆分为两个节点。

另一个关键挑战是分割查找算法的计算和通信成本

可能会变得很高。为了解决这一问题,采用了昆鹏的通信模式减少合并本地草图的成本,这确实加快了整个过程。由于MART已经在昆鹏实施,因此我们将使用它们作为深层森林的分布式版本

 

2.3 特别的深层森林架构

深度森林是最近提出的深度学习框架,它使用树作为模块,最原始的版本有两个模块,即细粒度模块和联级模块,在我们的任务中,没有使用细粒度模块.联级模块是一个多层的构建结构,每层是由随机森林或者完整随机森林作为学习者,对于每一个学习者,输入是上一层产生的类向量或者原始数据输入,输出是每个基础学习者的输出组合,然后对每一层进行K折验证,联级过程会自动终止当精度停止提高的时候.

每个基础学习者都可以接受分布式培训,以及一个层次内的所有基础学习者也可以被并行训练,使整个过程易于以分布式方式实现。下一节将简要介绍解释如何通过基于参数服务器的分布式学习系统构建这样的模型

gcForest分布式深度森林及其在套现欺诈自动检测中的应用_第2张图片

 

 

 

2.4 深度森林的分布式实施与作业调度

在工业场景中,我们经常面对数量庞大维度庞大的数据,意味着需要大量的分布式算法,这部分介绍分布式框架,深度森林的分布式框架建立在鲲鹏服务之上,基于鲲鹏的架构主要有三个节点:

1.工作节点执行繁重的计算任务

2.服务节点维护全局共享参数

3.协调器节点,协调工作者和服务器节点,并执行作业调度

深度森林算法的主要问题就是如何进行工作调度.

在每一层中,深林过程包括以下子作业:

(1)数据准备因为k折交叉验证,将数据分成不同的训练和有效折叠需要降低过度拟合的风险;

(2)模型训练过程,培养不同的基础学习者根据分割的训练数据;

(3)预测过程,进行预测分割的有效数据;

(4)组合和连接过程,结合了结果不同的基础学习者并将预测与原始特征连接起来;

 

为了执行作业调度,下图中显示了一个正常的策略,其中包含协调器按顺序调用工作程序和服务器以执行每个进程。但是,这份工作以这种方式进行调度可能效率很低。由于模型培训模块需要保持等待所有数据准备工作完成,直到所有模型都成功训练预测模块都不会执行.

gcForest分布式深度森林及其在套现欺诈自动检测中的应用_第3张图片

为了执行更有效的作业调度,我们采用有向无环图来处理这个问题。有向无环图是没有有向循环的有限有向图,我们将每个进程视为图中的一个节点,而只是相应的过程是连接的。一个节点运行的前提条件是该节点有输入。每个节点都被执行分开,这意味着一个节点的故障不会影响其他节点。当且仅当节点的所有前置条件完成后,允许该节点执行。这样,等待时间将会很长缩短.例如,一旦完成k倍训练数据的分割,相应的模型就可以进行训练,而不是等到所有数据都准备好。此设计为故障转移提供了更好的解决方案例如,如果某个节点与某些节点崩溃原因是由于其前置条件没有成功完成,我们只需要从该节点重新运行而不是从头开始运行整个算法。

3.应用

3.1 任务描述和数据准备

任务内容是识别现金欺诈,我们将此识别任务制定为二元分类问题并收集原始数据来自四个不同方面的特征,即卖方特征,描述了身份信息 卖方的货物;买方功能,描述买方的身份信息;交易功能,描述确切交易的信息和历史 功能,描述卖方和买方的信息。总共超过5000维度特征被收集.

 

为了构建训练和测试数据,我们从收集的数据中抽取训练数据在连续几个月内使用Ant Credit Pay的O2O(在线到离线)交易,以及在接下来的几个月中,同一场景的抽样交易被用作测试数据。 数据的统计信息如表1所示。我们可以看到,这个任务是有的极大的规模和阶级不平衡

gcForest分布式深度森林及其在套现欺诈自动检测中的应用_第4张图片

 

首先对5000个维度进行降维,根据模型的特征重要性显示300个维度的数据具有比较高分数.

 

3.2 实验结果

由于数据量很大,实验是通过鲲鹏系统分布式学习的,为了验证算法的有效性还和一些其他模型做了对比,比如LR模型,DNN模型,MART,其中LR和MART是之前和当前部署的基础机器学习模型也取得了很大的成功,由于数据不平衡,为了节省成本,我们需要去解决这个问题,在MART中,600棵树可以得到更好的表现(更高的树也不会提高),但是在深度森林中,每一个MART仅仅200棵不是600棵,

gcForest分布式深度森林及其在套现欺诈自动检测中的应用_第5张图片

结果显示在表2中,正如我们所看到的,深度森林(简称gcForest)比所有其他现有方法执行得更好。 MART表现得第二好,说明它是很有效的。我们需要解决MART模型的微调问题,以及600需要树来达到这种性能(并且更多的树木不会提高树木性能),这可能是该模型可以达到的上限。但是,对于深度森林,每个MART有200棵树,而且经过轻微的调整,性能就是已经比最佳基线好多了,正如我们稍后将展示的,即使只有50棵树(默认设置)结果仍然更好。在这里,DNN表现相当令人不满意,这证实了DNN处理的弱点建模问题(而DNN更适合像图像这样的建模任务)。 LR也表现不尽如人意

 

gcForest算法理解

一、DNN和gcForest的优缺点

DNN

1)DNN需要大的样本集,在小样本数据集上表现不可观;

2)DNN本身就是复杂的模型,所以训练过程很复杂,需要大量的复杂计算;

3)参数太多,需要花费大量的调参时间。(坊间流行一句话:DNN的训练更像是艺术,而不是科学或者工程);

4)DNN在大数据集上的效果确实很好。

gcForest

1)gcForest在大数据集上的表现和DNN分庭抗礼,在小数据集上也表现很好;

2)参数少,调参简单,在很多领域的不同数据集上,使用默认设置,结果都很好;

3)训练过程简单、理论体系更易懂;

4)执行效率高,gcForest在一台PC上的效率相当于DNN在GPU机器上的效率;

5)并行度高,作为Forest,有着天然的高并行性。

 

 

介绍

gcForest(multi-Grained Cascade forest 多粒度级联森林)是周志华教授最新提出的新的决策树集成方法。这种方法生成一个深度树集成方法(deep forest ensemble method),使用级联结构让gcForest学习。

gcForest模型把训练分成两个阶段:Multi-Grained Scanning和Cascade Forest。Multi-Grained Scanning生成特征,Cascade Forest经过多个森林多层级联得出预测结果。

Cascade Forest(级联森林)

级联森林结构的图示,这种组合是集成的集成

gcForest分布式深度森林及其在套现欺诈自动检测中的应用_第6张图片

 

图示解释:

1.级联中每一层接收到由前一层处理的特征信息,并将该级的处理结果给下一集.

2.级联的每个级别包括两个随机森林(蓝色字体标出)和两个完全随机树木森林(黑色)。[可以是多个,为了简单这里取了2种森林4个弱分类器]

3.每个完全随机森林包含1000个完全随机的决策树,每个决策树的每个节点都是随机选择一个特征做分裂,直至每一个叶节点包含的实例属于同一个类,或者实例数目不多于10个;

4.每个随机森林也是1000个决策树,每个决策树的生成是随机选择sqrt(d)个特征(d输入的总特征数量),每次选择gini值最高的做分裂,

级联森林的迭代终止条件:迭代到效果不能提升就停止!!!

 

级联森林中每个森林是如何决策的呢?

每个森林中都包括好多棵决策树,每个决策树都会决策出一个类向量结果(以3类为例,下面也是),然后综合所有的决策树结果,再取均值,生成每个森林的最终决策结果——一个3维类向量!每个森林的决策过程如下图所示。

gcForest分布式深度森林及其在套现欺诈自动检测中的应用_第7张图片

这样,每个森林都会决策出一个3维类向量,回到之前的流程图中,级联森林中的4个森林就都可以决策出一个3维类向量,然后对4个*3维类向量取均值,最后取最大值对应的类别,作为最后的预测结果!

gcForest分布式深度森林及其在套现欺诈自动检测中的应用_第8张图片

多粒度扫描(Multi-Grained Scanning)

多粒度扫描是为了增强级联森林,为了对特征做更多的处理的一种技术手段。具体扫描过程如下图3所示。

gcForest分布式深度森林及其在套现欺诈自动检测中的应用_第9张图片

对于序列数据,假设我们的输入特征是400维,扫描窗口大小是100维,这样就得到301个100维的特征向量,每个100维的特征向量对应一个3分类的类向量,即得到:301个*3维类向量!最终每棵森林会得到903维的衍生特征变量!

于图像数据的处理和序列数据一样,图像数据的扫描方式当然是从左到右、从上到下,而序列数据只是从上到下。

当然,可以用各种尺寸不等的扫描窗口去扫描,这样就会得到更多的、更丰富的特征关系!

整体流程

gcForest分布式深度森林及其在套现欺诈自动检测中的应用_第10张图片

阶段1:

  1. 利用滑动窗口切分成多实例特征向量,经过森林变换输出类别概率向量。

  2. 合并类别概率向量生成新的特征。 

阶段2 :

  1. 输入特征经过森林输出类别概率向量,连接原始输入作为下一层输出。

  2. 经过多个级联森林,输出最终的类别概率向量。

  3. 对多个森林输出的类别概率向量求类别的均值概率向量,取最大的类别概率为预测结果。

优点

1.性能较之深度神经网络有很强的竞争力。

2.gcForest较深度神经网络容易训练得多

3.gcForest具有少得多的超参数,并且对参数设置不太敏感,在几乎完全一样的超参数设置下,在处理不同领域的不同数据时,也能达到极佳的性能,即对于超参数设定性能鲁棒性高。

4.训练过程效率高且可扩展,适用于并行的部署,其效率高的优势就更为明显。

5.gcForest在仅有小规模训练数据的情况下也表现优异。

你可能感兴趣的:(联级森林,论文,机器学习)