应用于信用卡欺诈检测的Encoder-LSTM深度学习模型及其方法与流程

文档序号:21085429发布日期:2020-06-12 16:52阅读:1190来源:国知局
应用于信用卡欺诈检测的Encoder-LSTM深度学习模型及其方法与流程

本发明涉及异常检测领域,特别涉及到一种应用于信用卡欺诈检测的encoder-lstm深度学习模型。



背景技术:

现如今,无现金的交易方式已经彻底的改变了我们的生活。尤其是近年来,几乎每个人都有一台智能手机,在此基础上微信、支付宝、各类信用卡的推广和发展,使得这种快捷、方便的形式也受到越来越多人的青睐。欺诈也因此变得可以从多种方式进行,比如以盗用的身份信息从发卡行获取信用卡、使用被盗的或者伪造的信用卡,然后绑定这种类型的信用卡进行购物消费,进一步套现等等。如何有效的侦测和防范欺诈的交易不仅成为各个银行机构关注的重点,也成为诸多学者研究的重点。对于欺诈的侦测和预防,传统的方法主要是基于规则的,通常由专家制定。这意味着,必须事先的手动建立规则,然后用于交易的标记。但是这样的系统并不灵活,犯罪份子可能会设法绕过或者避开这些规则。由于欺诈模式在迅速改变,所以系统也要被动跟随发生变化,传统基于规则的欺诈检测模型逐渐暴露出了一些问题。

最近几年,深度学习技术呈现爆炸式的发展,其在图像识别、语音识别以及自然语言处理等领域已经获得了很大突破。其中,

自编码器(encoder)是深度学习领域中一类重要的神经网络模型。自编码器包含两个部分,分别为编码器和解码器。输入数据先经过编码器进行编码从而得到一个中间向量,然后解码器借助该中间向量对输入数据进行重建。如果输出结果和输入数据非常接近,那么就表明中间向量和输入数据存在关联或者某种映射关系,中间结果就可以作为输入数据的一个特征向量表示。自编码器以及其相关扩展模型被应用于许多领域,特别是数据降维、特征表示、信息检索、分类任务等。

rnn(recurrentneuralnetwork,rnn)是深度学习领域中另一类非常重要的神经网络,可以学习复杂的矢量到矢量的映射,并且具有联想记忆功能。另一方面,rnn也是一个非常强大的用于处理和预测序列数据的神经网络模型,在rnn的隐藏层中的神经元,其在某时刻的输出可以作为下一时刻的输入,这种串联的结构是其适用于序列数据的依据。对于展开后的rnn,可以得到重复的结构,并且深度网络中的参数是共享的,可以大大降低所需训练的神经网络参数。rnn拥有许多优秀的变体模型,比如,为了解决rnn训练时存在的梯度消失和梯度爆炸的问题而提出的lstm(longshort-termmemory)长短期记忆网络。lstm已经可以解决很多rnn无法处理的任务,在此之后也陆续出现了很多关于lstm单元(lstm网络中的隐藏单元)的改进工作。现如今广泛使用的lstm中有一个标准组件,主要是由三个门控单元和记忆单元的连接而成的,即门控单元可以观察到记忆单元,其中的遗忘门使得lstm能够学习一些连续的任务并且可以对其内部状态进行重置,提高了模型的有效性以及鲁棒性,解决了rnn存在的梯度消失和梯度爆炸的问题。lstm已经被用于大量的和序列学习相关的任务中,比如语音识别、语言模型、词性标注、机器翻译等,表现出了优秀的特性与性能。



技术实现要素:

相对于传统的金融反欺诈技术,本发明要解决的技术问题是提供一种应用于信用卡欺诈检测的encoder-lstm深度学习模型,利用encoder与lstm相结合来检测交易数据,以达到更加准确有效地检测出其中的欺诈交易。

本发明是通过下述技术方案实现的:

一种应用于信用卡欺诈检测的encoder-lstm深度学习模型,分为两个部分:

第一部分是自编码器,该部分主要用于提取中间状态的低维特征。自编码器作为分类器进行训练后,将自编码阶段的中间状态作为lstm模型的输入,在输入之前需对数据进行重新整理,以适应于lstm网络的输入。

第二部分是lstm网络,该部分主要用于分析信用卡交易之间的相关性,将经过自编码器提取出低维重构特征向量输入lstm网络,设置相关超参数,使用自适应矩估计优化器,对信用卡交易内部之间的相关性进行挖掘,进而达到检测出欺诈交易的目的。

算法原理为:利用encoder模型来提取中间状态的低维特征,并把这些低维特征进行重构,将重构后的数据输入至lstm网络中来分析交易内部特征之间的相关性,进而检测某个交易是否为欺诈交易。

具体如下实施步骤:

步骤1、设计相结合的encoder-lstm模型

所述encoder-lstm模型如图2所示,图中左侧为encoder模型,实心的方框表示提取的低维特征,右侧为lstm模型,以重构后的低维特征为输入,进而判定交易是否欺诈。所述lstm模型为:如图3所示,lstm主要由输入门、遗忘门、输出门三个门控单元以及一个状态单元,这两个单元组成的类似于“细胞”的单元结构。基本原理为:对输入门输入一个数值,如果sigmoid输入门允许,这个输入的数值可以累加到状态单元。状态单元具有线性自循环,其权重由遗忘门控制,遗忘门还会决定是否遗忘某些信息。输出门可以控制lstm单元是否输出前面输入门与遗忘门合并的数值信息。其中,所有的门控单元都具有sigmoid非线性函数,将权重控制在0到1之间。

步骤2、待测数据预处理。

原始数据为个人信用卡交易记录,但是考虑数据的隐私性,对原始数据进行一些处理,例如:删除交易记录中的某些敏感的列信息。处理后的信用卡交易数据集中,每条交易都包含各个维度的特征,为交易时间、交易额度、交易地点等信息。同时,为了使得数据能够适应于模型处理,需要对数据集内的数据进行预处理,得到样本集。待测数据预处理主要过程为:向量化、处理缺失值、去除无关特征、数据标准化。通常,将数据进行标准化处理后,可以使网络更易于学习。

在这个信用卡欺诈检测数据集中正负样本的比例通常是极不平衡的,为此,将利用交易中已收集到的海量数据,并以一种允许标记或者预测未来交易中是否存在欺诈的方式对网络进行建模,使得模型能够挖掘海量数据中潜在的、更加复杂的欺诈模式。

步骤2中,每条交易数据经过一种常用的降维方法,即主成分分析(pca)进行转换后,提取数据的主要特征分量,构成交易数据集合x={xi}([1,...,n]),其中xi表示一条交易数据,xi是一个n维的向量,向量中的每个分量是一个实数,代表了时间、交易额度、交易地点等特征,设定一共有n条交易记录。首先,对数据集中是否存在缺失值进行检查,接下来,由于不同特征的取值范围不同,所以需对数据特征进行标准化处理。通常,将数据进行标准化处理可以使得网络更加易于学习。比如将数值较大的数据直接输入网络进行学习,或者不同特征的取值范围相差很大的数据输入网络都可能导致较大的梯度更新或者模型无法收敛。所以对数据进行标准化非常必要,此处为了将数据映射到[0,1]区间内,用到的标准化方法是z-score标准化。

步骤3、训练encoder模型

在整个encoder-lstm模型中,在训练阶段,通过已有的带标签的交易数据训练encoder用来“学习”和“记忆”大多数交易数据所共有的模式(正常交易模式)。

步骤3中,利用步骤2中样本集训练encoder模型,进一步包括下列子步骤:

假设交易数据集合x={xi}(xi∈rn,i=[1,...,n]),其中xi表示一条交易数据,是一个n维的向量,向量中的每个分量是一个实数,一共有n条交易记录。每个xi都将有一个与之对应,是数据xi的标签。

e)每个样本x经过encoder模型编码部分后被映射为中间状态y,如下为编码器的公式(1),其中σ是非线性激活函数,θ为编码阶段的网络参数,θ={w,b},其中w是权值,b是偏置值。

y=gθ(x)=σ(wx+b)(1)

f)encoder模型解码部分用来重构交易向量,重构后的交易向量表示为z,如下为解码器的公式(2),其中σ是非线性激活函数,θ’为解码阶段的网络参数,θ′={w′,b′},其中w’是权值,b’是偏置值。

z=fθ′(y)=σ(w′x+b′)(2)

g)使用均方误差(mse)来衡量,进而最小化重构误差来优化模型参数。均方误差公式(3)如所示:

其中yi和分别表示输出向量和预测输出向量,n表示训练样本集的个数,也就是数据集中的交易记录数。是数据的标签,也就是每条记录都会有一个是否是欺诈交易的标记。

h)更新编码器和解码器的网络参数θ、θ’,目标函数表示为:

其中函数l表示向量之间的距离。

步骤4、利用训练后的encoder模型提取待检测真实数据的中间低维特征向量。

步骤2预处理后的数据输入到步骤3训练好的encoder模型中,对待检测的真实数据进行压缩,得到包含了交易数据内部特征之间相关性的中间低维向量,提供给步骤5;压缩时,使中间层的维度小于输入层,强制学习训练数据中的一些较显著特征,从而生成压缩的中间表示,该中间表示就是提取到的输入样本最具代表性和有意义的低维特征。

原理:如果输出结果和输入数据非常接近,那么就表明中间向量和输入数据存在关联或者某种映射关系,中间结果就可以作为输入数据的一个特征向量表示。

步骤4中,利用步骤3训练好的encoder模型对待检测的真实数据进行降维:

每个待检测的真实数据样本x经过编码部分后被映射为中间状态y,编码器的公式为y=gθ(x)=σ(wx+b),其中θ为编码阶段的网络参数,θ={w,b}。g为非线性激活函数sigmoid,g=σ(x)=(1+e-x)-1。提取出的中间状态y即为所需的包含了数据特征之间相关性的低维向量。

步骤5、重整encoder模型提取出的中间低维特征向量。

lstm网络输入层是三维的,三个输入的维度分别为:样本、时间步长和特征。为了符合lstm网络输入数据的模式,需要对步骤4低维特征向量进行重整。

步骤5中,为了使提取出的低维向量可以进入lstm网络中,需要将步骤4encoder输出的一维的低维中间向量重构为三维向量,三维向量代表的含义分别为样本、时间步长和特征。所述样本为一个序列,批处理由一个或多个样本组成;所述时间步长是样本中的观察的一个点;所述特征为一个时间步长下的观察结果。将定义一个reshape函数对一维数据的维度进行重塑,该函数的参数定义了数组新形状的元组。实施例data=data.reshape((1,10,4)),即为将数据设置为1个样本,具有10个时间步长和4个特征的向量。

步骤6、lstm网络分析数据执行分类任务。

将信用卡欺诈检测定义为一个二分类问题,即一条交易要么为“欺诈”,要么为“非欺诈”,给出检测结果。交易欺诈检测过程中,将根据交易数据中,用户名、短信记录、交易时间等特征之间的相关性分析出该交易是否为欺诈交易。

lstm是一种时间递归神经网络,可以处理和预测时间间隔较大的特征,分析出数据各个不同特征之间的相关性,无关于特征输入网络的时间先后。

步骤6包括下列子步骤:

a)将步骤5中的重整后的三维向量作为输入,输入至lstm网络中。

b)lstm网络的运行过程,状态单元和门控结构之间的交互:状态单元是lstm中的最重要的部分,所有的状态单元具有线性自循环的能力,权重由遗忘门控制,达到选择性地删除或保留某些信息。同时,状态单元也可以用作门控单元的额外输入,输入到第i个单元的三个门。

首先,遗忘门会先对信息进行选择性的保留或删除,它会输出0到1之间的某个数值,“0”表示“完全删除”,“1”表示“完全保留”。然后,输入门根据遗忘门保留后的信息决定哪些信息需要更新,同时添加新的输入信息,进而更新整个状态单元。最后,输出门会基于状态单元输出确定输出的部分。

c)lstm网络训练时的目标函数:整个过程中,优化器使用自适应矩估计(adaptivemomentestimation,adam),并利用对数损失函数作为lstm网络的损失函数,对数损失函数公式如下:

本发明在数据层面对数据不平衡处理技术进行探究,并且提出有效的基于深度学习的模型用于数据挖掘。结合了自编码可以学习复杂的高维数据到低维向量之间的映射,lstm可以学习输入数据的隐含特征的优势探究了金融交易数据内部特征的相关性,进而可用于判断某个交易是否为欺诈交易的任务。

附图说明

图1是本发明结构的方框图。

图2是本发明中encoder-lstm模型的结构图。

图3lstm模型结构图。

图4是本发明中encoder-lstm模型对比实验结果所得结果。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对根据本发明实施的一种应用于信用卡欺诈检测方法进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明,即本发明的保护范围不限于下述的实施例,相反,根据本发明的发明构思,本领域普通技术人员可以进行适当改变,这些改变可以落入权利要求书所限定的发明范围之内。

实施例

如图1的结构框图所示,根据本发明具体实施例包括如下步骤:

1)交易数据预处理

对给定的信用卡交易数据集进行挖掘,该数据集中包含持续两天的信用卡交易数据,总共有284807条信用卡交易数据,其中,0.1727%(492条交易记录)的交易数据是欺诈交易,剩下的284315条数据则为正常的交易数据。每条交易经过主成分分析(pca,常用降维方法,为现有技术)转换后包含31维的特征,其中

第1维为本条记录与第一条记录之间的时间差值;

第2维至第29维为pca转换后生成的28个主成分;

第30维为金额;

第31维为类别,即是否为欺诈数据。

在将数据送入网络之前有多种标准化的方法,最佳的标准化方法由特定的任务决定,本任务中使用z-score标准化方法来处理数据,进而可以提升模型精度和模型的收敛速度。

2)encoder提取低维向量

为了lstm可以有效区分正常交易数据与异常交易数据,交易数据中应该包含特征之间的相关性,所以利用encoder提取交易数据中的中间低维向量。最终确定最佳的encoder模型的网络结构为:29->15->15->29,学习率lr为0.0001,批大小(batchsize)为256,优化方法选择rmsprop(rootmeansquareprop),rmsprop算法优化了目标函数更新过程中的摆动幅度过大问题,对参数计算微分平方加权平均数,加快模型的收敛速度。

步骤2)中encoder实现了降维的过程,将31维的特征向量降维到15维,即encoder提取出的交易数据特征向量为15维。

3)重构低维向量

lstm网络输入层必须是三维的,三个输入的维度分别为:样本、时间步长和特征。为了符合lstm网络输入数据的模式,需要对其进行重构。因此,使用reshape()函数对数据的维度进行重塑,重整后的输入张量x_tensor(284797,10,15)。

4)lstm检测交易数据

在lstm阶段,其目的在于分析交易内部特征间的相关性。对于金融数据,lstm可以分析出各个不同特征之间的相关性,无关于特征输入网络的时间先后,根据交易数据中,用户名、短信记录、交易时间等特征之间的相关性分析出该交易是否为欺诈交易。最终确定最佳的lstm模型的网络结构中:epoch为200,rolling_windows_size为10。优化器使用自适应矩估计(adaptivemomentestimation,adam),该优化器也是基于梯度下降的方法,每次迭代参数的学习补偿有一个确定范围。损失函数使用对数损失函数(binarycrossentropy)。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1