一种可疑交易识别模型构建方法
技术领域
本发明涉及数据分析
技术领域
,具体涉及一种可疑交易识别模型构建方法。背景技术
洗钱犯罪是危害我国金融安全与社会稳定的重要犯罪活动,研究反洗钱问题具有重大现实意义。反洗钱工作的核心是对大额和可疑交易数据的记录和分析,虽然可疑交易识别问题已经具有数十年的研究历史,但目前仍然尚未有成熟有效的技术能大规模应用与实现。基于传统的机器学习方法的可疑交易识别模型需要用户自己提取特征,且通常只关注账户的静态属性,不考虑交易行为随时间的动态变化,因此已无法满足目前反洗钱工作的需求。
Shapelet是时间序列分类问题的一个热门研究方向,Shapelet能够捕获时间序列的局部特征,即使是在数据是有噪声和失真的情况下也能有很不错的分类效果。此外,Shapelet可以为用户提供可解释的分类结果,对于可疑交易识别问题而言,结果的解释性是非常重要的,因为分析结果会作为洗钱犯罪案件后续调查、取证、判案的重要依据。但是,序列模式分类模型只采用单一的Shapelet作为时间序列分类的唯一标准,因此难以识别不同交易模式和不同交易规律的洗钱行为。
发明内容
有鉴于此,本发明提供了一种可疑交易识别模型构建方法,能够识别不同模式的可疑交易行为,对不同的洗钱手段、不同的洗钱行为特点都具有很好的识别能力。
为达到上述目的,本发明的一种可疑交易识别模型构建方法,包括如下步骤:
S1.构建训练集,训练集中包含已预设标签的交易账户。
S2.获取交易账户在一定时间段内的所有交易记录,按照一定的时间间隔将所有记录划分为不同的交易记录子序列,计算每个子序列中包含的交易记录的交易金额总额,计算结果作为交易账户的时间序列的一个元素,所有元素构成交易账户的时间序列表示。
S3.从训练集中所有时间序列的子序列中选取固定数量的子序列作为候选Shapelet,组成一个Shapelet候选集,然后计算Shapelet候选集中每个候选Shapelet的信息增益,最后提取信息增益最大的前K个Shapelet。
S4.构建Shapelet关系图,Shapelet关系图为无向加权图,Shapelet关系图由K个节点组成,每个节点表示一个Shapelet,每条边的权重表示所连接的两个不同的Shapelet能同时与相同的时间序列相匹配的概率;
S5.得到Shapelet关系图后,采用图嵌入方法对Shapelet关系图进行嵌入,得到嵌入后的任一节点的表示向量。
S6.对于时间序列和与其匹配的所有Shapelet,以及相应的匹配度,将Shapelet的嵌入后的表示向量与匹配度相乘,再对所有相乘的结果累加作为当前时间序列的表示向量。
S7.将训练集中每个时间序列的表示向量作为时间序列的特征输入到一个多层感知器神经网络进行训练,使用训练好多层感知器神经网络进行待预测交易账户的分类预测。
进一步地,获取交易账户在一定时间段内的所有交易记录,按照一定的时间间隔将所有记录划分为不同的交易记录子序列,计算每个子序列中包含的交易记录的交易金额总额,计算结果作为交易账户的时间序列的一个元素,所有元素构成交易账户的时间序列表示,具体为:
对于数据集中的第i个交易账户的所有交易记录Ai,*,先将其转换为时间序列表示。
按照一定的时间间隔将Ai,*划分为不同的交易记录子序列,其中第m个子序列中共有n笔交易记录,则第m个子序列表示为:
Segi,m={Ai,x,Ai,x+1,…,Ai,x+n-1};
其中Ai,x,Ai,x+1,…,Ai,x+n-1分别为第m个子序列中对应的第1~第n笔交易记录。
第m个子序列的总交易金额为:
其中Ai,j是第i个账户的第j笔交易记录,Value(Ai,j)为交易记录Ai,j对应的交易金额。
第i个交易账户的时间序列表示为其中Li为第i个交易账户经过划分后的交易记录子序列数,也是时间序列Ti的长度;第i个账户的第Li段子序列表示。
3、如权利要求1或2的方法,其特征在于,从训练集中所有时间序列的子序列中选取固定数量的子序列,具体为:采取贪婪策略进行子序列的选择,使得选取的子序列之间的欧拉距离最大;
进一步地,构建Shapelet关系图,Shapelet关系图为无向加权图,Shapelet关系图由K个节点组成,每个节点表示一个Shapelet,每条边的权重表示所连接的两个不同的Shapelet能同时与相同的时间序列相匹配的概率,具体为:
针对时间序列训练集D,K个Shapelet分别为{S1,…,SK},设置距离阈值为δ。
所构建的Shapelet关系图表示为G,其中节点集合为V={v1,…,vK},v1,…,vK分别为第1~第K个节点依次对应K个Shapelet。
对训练集D中的每个时间序列Ti,找到与时间序列Ti在距离阈值δ条件下相匹配的所有Shapelet的集合{Si,*}。
取集合{Si,*}中任两个Shapelet(Sj,Sk),构建一条vj和vk之间的边,设置边的权值为pi,j×pi,k,其中pi,j为时间序列Ti在距离阈值δ条件下与ShapeletSj相匹配的概率,pi,k为时间序列Ti在距离阈值δ条件下与ShapeletSk相匹配的概率。
将所有重复的边合并为一条边,并将重复边的权值相加。
进一步地,采用图嵌入方法对Shapelet关系图进行嵌入,得到嵌入后的任一节点的表示向量;采用图嵌入方法DeepWalk来获取Shapelet关系图中的任一节点vi的表示向量ui∈RB,其中B是设置好的嵌入维度,取B=64。
进一步地,对于时间序列和与其匹配的所有Shapelet,以及相应的匹配度,将Shapelet的嵌入后的表示向量与匹配度相乘,再对所有相乘的结果累加作为当前时间序列的表示向量,具体为:
对于时间序列Ti和与其匹配的所有Shapelet的集合{Si,*},以及相应的匹配度{pi,*},将Shapelet Si,j的嵌入后的表示向量为μ(Si,j),Si,j∈{Si,*},μ(Si,j)与匹配度pi,j相乘,再对集合{Si,*}对应的所有相乘的结果累加作为时间序列Ti的表示向量Φi;
进一步地,匹配度pi,j表示Shapelet Sj与Ti相匹配的程度,具体为:
其中max(dist(Si,*,Ti))表示集合{Si,*}其中所有的Shapelet与时间序列Ti的欧拉距离的最大值;min(dist(Si,*,Ti))表示集合{Si,*}其中所有的Shapelet与时间序列Ti的欧拉距离的最小值;dist(Sj,Ti)指Shapelet Sj与Ti的欧拉距离。
进一步地,使用训练好多层感知器神经网络进行待预测交易账户的分类预测,具体为:针对待预测交易账户,采用如步骤S2~S6的方式获得其时间序列的表示向量,作为时间序列的特征输入到训练好多层感知器神经网络,获得待预测交易账户的分类预测结果。
有益效果:
1、本发明提供的一种可疑交易识别模型,首先提取具有最大信息增益的前K个Shapelet,然后根据Shapelet与时间序列的匹配情况构建Shapelet关系图,图中的每一个节点代表一个Shapelet,其主要思想就是对于两个不同的Shapelet,如果Shapelet与越多的时间序列能同时匹配,则Shapelet之间的相关性就越强,反映在Shapelet关系图中就是这两个节点之间的边的权重就越大;然后用DeepWalk算法对图进行嵌入,根据嵌入结果对时间序列进行表示学习得到每个序列的表示向量,最后用一个多层感知器对表示向量进行分类训练。本模型对海量交易记录数据中不同模式、不同规律的洗钱行为都有很好的识别效果,具有很好的实际应用价值。
2、提出了Shapelet关系图的概念,将多个Shapelet依照他们之间的关联程度构建为一个图结构,一个Shapelet代表了某一种交易模式,通过Shapelet关系图从而挖掘不同交易模式之间的关系,并且让整个Shapelet Graph模型具有了能够识别不同交易规律的洗钱行为的特点。这是该模型最为核心的一部分。
3、提出了一种时间序列的表示学习的方法。对于任意一个时间序列,利用Shapelet关系图以及该时间序列与每一个Shapelet之间的匹配度,从而将该时间序列表示为一个向量,该向量包含了此时间序列与每一个Shapelet(或者说每一种交易模式)之间的关联程度,因此在下游的分类任务中,可以利用分类器对该表示向量进行分类从而得到其对应的时间序列的分类结果。
附图说明
图1为序列模式图表征的可疑交易识别模型的框架示意图;
图2为Shapelet关系图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种可以交易识别模型的构建方法,如图1所示,包括如下步骤:
S1.构建训练集,其中训练集中包含已经预设标签的交易账户;如图1所示,也可以根据历史交易记录数据同时构建训练数据集和测试数据集。
S2.针对交易账户进行时间序列的提取。
考察一个交易账户在一定时间段内的所有交易记录,按照一定的时间间隔将交易记录划分为不同的交易记录子序列,计算每个子序列的所有交易记录的交易金额总额,该计算结果作为此账户的时间序列的一个元素,所有元素构成此账户的时间序列表示。
一条完整的交易记录Ai,j至少应该包含交易卡号、交易时间、交易金额、交易余额、交易对手卡号、交易对手余额6个字段,如表1所示。
表1交易记录字段
其中Ai,*表示数据集中的第i个账户的所有交易记录,其中ci表示第i个账户的交易记录条数。将该账户转换为时间序列表示,具体做法为:按照一定的时间间隔(如10天)将Ai,*划分为不同的交易记录子序列,设第m个子序列中共有n笔交易记录,则第m个子序列表示为:
Segi,m={Ai,x,Ai,x+1,…,Ai,x+n-1};
其中Ai,x,Ai,x+1,…,Ai,x+n-1分别为第m个子序列中对应的第1~第n笔交易记录。
第m个子序列的总交易金额为:
其中Ai,j是第i个账户的第j笔交易记录,Value(Ai,j)为交易记录Ai,j对应的交易金额。
此账户的时间序列表示为:
Ti指该账户的时间序列提取的结果,也是该账户的时间序列表示,在后续的分类任务中,根据每个账户的时间序列表示来将该账户分为正常交易账户(标记为N)或可疑洗钱账户(标记为P);Li为该账户经过划分后的的交易记录子序列数,也是时间序列Ti的长度;Ai,j是第i个账户的第j笔交易记录,Value(Ai,j)是交易记录Ai,j的交易金额。第i个账户的第Li段子序列表示。
S3.提取Shapelet
从训练集中所有时间序列的子序列里提取一个Shapelet候选集,然后计算该候选集中每个候选Shapelet的信息增益,最后提取信息增益最大的前K个Shapelet。为了减小Shapelet候选集的大小以提高效率,仅选择固定数量的子序列,采取贪婪策略使得候选集中的所有子序列之间的欧拉距离最大。
从训练集中的所有时间序列的子序列中选择固定数量的子序列,采用贪婪策略使得候选集中的子序列之间的欧拉距离最大。这样得到的结果虽然是近似最优解而不是绝对最优解,但却大大减少了Shapelet候选集的大小,从而大大减少了提取Shapelet的时间。
得到Shapelet候选集后,对于候选集中的每个子序列,找到该子序列的最佳分类点并计算该分类策略的信息增益,然后选取信息增益最大的前K个子序列作为提取的Shapelet。
信息增益的计算公式如下:
I(D)=-p(P)log(p(P))-p(N)log(p(N))
其中p(P)、p(N)分别指P类时间序列和N类时间序列在集合D中的比例,P和N分别为时间序列的类标签,例如P表示非异常交易账户,N表示异常交易账户;I(D)表示训练集D的熵;表示训练集D分类后的熵;gain为信息增益;D1和D2指将集合D分类后的两个子集;f(D1)和f(D2)分别指子集D1和D2中的元素数量所占比例。
S4.构建Shapelet关系图
Shapelet关系图是无向加权图,该图由K个顶点组成,图中的每个节点表示一个Shapelet,每条边的权重表示两个不同的Shapelet能同时与相同的时间序列相匹配的概率。形象地说,Shapelet关系图反映了不同Shapelet之间的相关性,如果某条边的权重越大,则说明这两个Shapelet之间的关系越紧密,他们能同时与同一个时间序列相匹配的概率就越大。
提取到了信息增益最大的前K个Shapelet后,用这K个Shapelet构建Shapelet关系图,Shapelet关系图是无向加权图G=(V,E),该图由K个顶点组成,图中的每个节点vi表示一个Shapelet Si,每条边的权重wi,j表示对于相同的时间序列,Si和Sj能同时与该时间序列在δ条件下相匹配的概率。形象地说,Shapelet关系图反映了不同Shapelet之间的相关性,如果权重wi,j越大,则说明Si和Sj之间的关系越紧密,他们能同时与同一个时间序列相匹配的概率就越大。
给定一个距离阈值δ,对于时间序列T和Shapelet S,如果有:dist(T,S)<δ,即若T与S的欧拉距离小于δ,则称T与S在δ条件下相匹配。对训练集中的每个时间序列Ti,找到能与Ti在δ条件下相匹配的所有Shapelet。为了方便起见,用Si,*表示所有与Ti在δ条件下相匹配的Shapelet的集合:
Si,*={Sj|dist(Sj,Ti)<δ}
其中dist(Sj,Ti)指Sj与Ti的欧拉距离。
为了衡量Sj与Ti相匹配的程度,对Sj到Ti的距离进行标准化,称pi,j为Sj与Ti的匹配度:
对于时间序列Ti,若pi,j越大,则表明Sj与Ti匹配程度越高,对于Sj,Sk∈Si,*,称pi,j*pi,k为Sj和Sk在时间序列Ti下的相关性,若pi,j*pi,k越大,则表明Sj和Sk同时与Ti匹配的可能性越高,即Sj和Sk的相关性越大。
构建Shapelet关系图的详细过程为:
首先,初始化Shapelet关系图G=(V,E),G中的每一个节点vi代表相应的ShapeletSi,V(G)={v1,…,vK}。然后,对训练集D中的每个时间序列Ti,找到与Ti在δ条件下相匹配的所有Shapelet Si,*。在实际应用中,可以通过对训练数据集的实验统计来确定δ。若|Si,*|≥1,则对于Si,*中的每一对Shapelet(Sj,Sk),建立一条vj和vk之间的边,边的权值为pi,j*pi,k。最后,将所有重复的边合并为一条边,并将重复边的权值相加。这样,Shapelet关系图G中任意两个节点vj,vk之间的边的权值为:
S5.得到Shapelet关系图后,采用DeepWalk算法对图进行嵌入。本发明采用现有的图嵌入方法DeepWalk来获取关系图中的任一节点vi的表示向量ui∈RB,其中B是嵌入维度,这里取B=64。
S6.时间序列的表示学习
对于时间序列和与其匹配的所有Shapelet,以及相应的匹配度,将Shapelet的嵌入后的表示向量与匹配度相乘,再对所有相乘的结果累加作为该时间序列的表示向量。
对于时间序列Ti和与其匹配的所有Shapelet Si,*,以及相应的匹配度pi,*,将Shapelet Si,j的嵌入后的表示向量μ(Si,j)与匹配度pi,j相乘,再对所有相乘的结果累加作为Ti的表示向量。如果某个时间序列Ti无法与任何一个Shapelet相匹配,即:那么用一个维度为B的零向量表示Ti。这种做法是合理的,因为所有Shapelet嵌入的结果都是非零向量(这是由DeepWalk算法保证的),因此不与任何一个Shapelet相匹配的时间序列可以用零向量与其他时间序列明显区分开来。至此,得到了所有Shapelet的嵌入,以及任意一个时间序列Ti的表示向量Φi,
S7.多层感知器的分类训练与预测
将每个时间序列的表示向量作为该时间序列的特征输入到一个多层感知器神经网络,对时间序列进行分类预测。
实施例1、
此次发明所提出的模型及算法与三种传统的机器学习算法以及原始的Shapelet模型进行了评估对比,在真实数据集上运行,由于交易记录数据的敏感性,目前反洗钱领域暂时还没有可用的公开的数据集,这也是反洗钱研究领域共同面临的一个问题。本文实验部分所使用的数据集来自于某公安部门,并非公开数据集,数据可能存在一定的偏颇。
原始数据包含29934个交易账户的共计约2500万条交易记录,每个交易账户的时间跨度从几天到几年不等。由于很多交易账户数据只有数笔交易记录,不具有分析性,因此过滤掉原始数据中交易记录少于50条或时间跨度小于6个月的账户。最终保留符合条件的18545个账户的交易记录数据作为本文的实验研究数据,这其中有723个账户是该公安部门已经明确查获的洗钱犯罪案件涉及的银行账户,将这些账户标记为正样本(可疑洗钱账户),另外17822个账户标记为负样本(正常交易账户)。
交易记录数据的格式如表2所示。
表2交易记录数据格式
由于原始数据各账户的时间跨度不统一,为了消除时间跨度的影响,方便研究,本实验对数据以年为单位进行切分。具体做法是:如果某账户的交易记录时间跨度大于一年,则按年将其切分为多个账户样本,且划分后的样本的标签全部与原账户样本相同;如果账户的交易记录时间跨度不大于一年,则将其视为一年。这样,原始样本集中的18545个账户样本划分为了81742个样本,其中正样本2785个,负样本78957个。从样本集中随机选取500个正样本和500个负样本作为训练集,其余样本作为测试集。测试集中正样本所占比例只有2.83%,正负样本数量是极不均衡的,这是符合常理的,因为现实情况中洗钱交易在所有交易记录中所占比例非常低。训练集和测试集样本分布如表3所示。
表3训练集和测试集样本分布
样本集
正样本数量
负样本数量
总样本数量
训练集
500
500
1000
测试集
2285
78457
80742
共计
2785
78957
81742
对测试集的所有80742个账户样本基于OneClass SVM(OCSVM)、孤立森林和DBSCA三种不同的机器学习算法进行了实验,作为与Shapelet Graph模型的实验结果的对比。传统的机器学习算法通常需要先对数据进行特征提取,这里选择下列数个特征进行上述三种机器学习算法的实验。
1.交易金额,2.月均交易金额,3.交易金额离散系数,4.交易笔数,5.出账/出账频率,6.交易对手个数,7.出账/入账金额,8.交易金额一万整/一千整的笔数,9.大额交易笔数。
实验结果如表4所示,实验结果表明基于时间序列分析的可疑交易识别算法比传统的机器学习算法具有更好的表现。且本文提出的序列模式图表征模型与序列模式分类模型相比,F1-score提高了11.1个百分点。
表4实验结果
Shapelet关系图如图2所示,Shapelet关系图中每一个节点代表一个Shapelet,图中每条边的粗细表示这条边的权重大小。
综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:支付方法、系统、电子设备及存储介质