一种基于金融交易网络的团伙检测方法及其实现装置
技术领域
本发明涉及一种基于金融交易网络的团伙检测方法及其实现装置,属于数据挖掘技术领域。
背景技术
团伙检测是指在图数据上检测具有相同特征的节点集合,在复杂网络领域中也叫社团检测。 团伙检测具有广泛的应用基础。金融犯罪方面的辅助决策工具需要较高的准确率和可解释性。 因此在海量的交易流水中,挖掘潜在的嫌疑人具有广泛的研究和应用价值。目前这项工作还普 遍依赖人工对数据的挖掘和分析,这需要对数据和犯罪行为的深刻了解和对数据的深入分析, 对人的经验要求较高,而随着各类交易数据量的大爆发,对机器硬件和人都提出了新的巨大的 挑战。
社团检测属于复杂网络众多技术中的一种,之前的研究主要在科学家合作网络、电力网络、 蛋白质交互网络等特定领域的网络上,取得很大的成效。从最初的GN算法到能够应用在大规模 数据集上的标签传播算法,再到后来提出了基于概率统计方法的生成式模型MMSB算法,现有的 社团检测算法大多仅仅利用了图的空间结构信息,如邻居信息。目前还缺乏有效的金融犯罪团 伙的检测方法,大多还是使用这种基于图空间拓扑结构的算法,得到结果准确度较低,无法轻 易扩展到其他交易数据上。现有的方法没有考虑时间交易序列特征,时间序列中同样隐含着能 够表示一个节点的特征。目前尚没有一种方法能够充分利用金融交易数据的时序特征和空间特 征来进行犯罪团伙检测。
中国专利文献CN104867055A公开了一种金融网络可疑资金追踪与识别方法,包括:(1)构 建金融交易网络拓扑图:金融交易网络拓扑图是将原始金融交易流水经过处理后可视化展现出 来的一张图,这张图包含了原始金融交易流水中所有的交易关系和资金流向;(2)资金流向分析 流程;当交易网络拓扑图构建完成后,在图上进行资金流向分析,资金流向分析的目的是追踪 一笔或多笔资金的具体流向;(3)交易关系分析流程:当交易网络拓扑图构建完成后,在图上进 行资金流向分析,交易关系分析的目的是挖掘出嫌疑团伙的资金流转关系,得到高额高嫌疑资 金路径。但是该专利只是利用了原始的交易流水的拓扑关系,没有更深入挖掘交易序列内在的 时间空间序列特征;同时,需要人工输入调整的地方过多,自动化程度较低。
中国专利文献CN110348978A提供了一种基于图计算的风险团伙识别方法、装置、设备和存 储介质,该方法,包括:接收业务请求,所述业务请求包含业务类型及用户属性信息;对所述 业务类型、所述用户属性信息及与所述业务请求对应的历史业务数据,进行社会网络分析,以 生成对应的社会网络;根据凝聚度从所述社会子网络分割出与所述业务请求对应的子网络;将 所述子网络的邻接矩阵输入预设的预测模型,获得所述业务请求对应的风险团伙识别结果。本 说明书实施例可以实现对金融业务中的风险团伙的识别检测。但是该专利中,1)根据凝聚度团 伙识别最大的问题是得到的团伙往往是在图上密切相邻的成员,不相邻的成员无法识别;2)算 法内在问题,凝聚法中两个节点在合并以后就无法分开,因此误分率较高;3)对交易序列的使 用停留在简单的拓扑关系上,结果不可靠。
发明内容
针对现有技术的不足,本发明提供了一种基于金融交易网络的团伙检测方法,该方法利用 原始金融交易流水信息数据中的交易账号、交易对手账号和交易时间等基本特征,通过序列模 型和GAE模型自适应的提取时间序列特征和空间结构特征,最后使用连接特征计算两两节点之 间的距离作为网络权重,使用该检测方法就可以将每个用户分配到潜在的团伙中。这种方法能 够减轻人工提取特征的工作,并能够自动确定团伙个数,且能有效提高现有方法的准确率和可 解释性。
本发明还提供了上述基于金融交易网络的团伙检测方法的实现装置。
术语解释:
1.Skip-gram模型:一种训练词向量的神经网络模型。
2.GAE模型:图自编码器模型,一种通过无监督学习,将输入的图数据高效表示的神经网络 模型。
3.高频词抽样技术:即在训练词向量的过程中,为了克服“the”这种高频词的影响,以一 定的概率对其进行删除。
4.负采样技术:一种提高神经网络训练速度的方法。不更新所有的参数,只更新少量的神 经元参数。
5.GCN:图卷积神经网络,一种对图结构数据进行卷积的神经网络。
本发明的技术方案为:
一种基于金融交易网络的团伙检测方法,包括:
(1)数据预处理:对交易数据进行数据清洗,提取每个用户的交易序列、构建图数据;
(2)生成用户特征向量:使用序列模型获取用户时序特征向量,使用GAE模型获取用户空 间特征向量;将用户时序特征向量和空间特征向量分别归一化,并做连接操作,生成节点表示 向量
d′
1,......d′
m表示归一后的用户时序特征向量,
表示归 一后的空间特征向量;
(3)团伙检测:计算每个节点所属的团伙,并输出节点的团伙标记。
根据本发明优选的,所述步骤(1)中,所述交易数据包括用户、交易对手账号、交易时间 和交易金额,对交易数据进行数据清洗的具体步骤包括:
1-1、缺失值填充:如果某条交易数据的用户、交易对手账号、交易时间中任一字段缺失, 则丢弃该条交易数据;
如果某条交易数据中的只有交易金额存在字段缺失,采用均值填充法进行填充,即计算当 前用户所有交易金额的平均值,采用所述平均值填充交易金额;
1-2、数据不一致处理:当使用不同的日期形式来表示日期时,使用Python的datatime库 进行格式化,统一所有的时间格式为年月日的日期形式;例如:交易时间里的日期存在 “2019/01/07”和“07/01/2019”,使用Python的datatime库进行格式化,统一所有的时间格 式为“20190107”;
1-3、特征编码:使用一个map进行映射,将15位以上的用户和交易对手账号转换成标签 编码(label-encoding),最终得到交易样本集合。比如,有100个账号映射以后就是0~99,交 易账号包括银行***、账号;交易样本集合包括若干条经过步骤1-1至1-3预处理后的交易数 据。
原始的交易数据中有很多字段具有较多的缺失值和异常值,数据清洗的主要目的就是将脏 数据处理成初步可用的输入数据。
根据本发明优选的,所述步骤(1)中,提取每个用户的交易序列、构建图数据的具体步骤 包括:
a、基于时间顺序生成每个用户的交易序列:使用Pandas库的unique函数获得用户集合
n为用户总数,用户u
i,i=1,......,n,表示第i个交易用户; m为交易对手账号的总数,交易对手账号
j=1,......,m,表示第j个交易对手账号;
对于用户ui来说,从交易样本集合中获取所有的交易对手账号,并按照交易时间进行升序 排序,将序列去重组合为交易序列Li;
以用户ui为键,交易序列Li为值,构建键值对集合S={si|i=1,...n},其中si为(ui,Li);键 值对集合S的键是用户,值是交易序列,用来通过用户查找到交易序列;
b、构建图数据:所述图数据包括邻接矩阵A和图节点的特征矩阵X;
首先,在交易样本集合中,从同一条交易数据中提取用户u
i和交易对手账号
组成序对
i=1,...,n,j=1,...,m;
再对所有的序对进行去重操作,将去重后的所有序对集合作为图G的边集E, E={ei|i=1,...,m};所有用户集合U作为节点集V,V={vi|i=1,...,n};使用边集E和节点集V, 通过networkx库来生成节点的邻接矩阵A∈Rn×n,邻接矩阵通过编码图的节点之间是否相连来 表示一个图的拓扑结构;用户和交易对手账号作为节点,任一节点之间有交易就添加一条边;
图节点的特征矩阵X为节点的度矩阵D,度矩阵D是对角阵,对角上的元素为各个节点i的 度,节点i的度di表示和节点vi相关联的边的数量,Di=[di],Di表示节点vi的度,得到的邻接 矩阵A和图节点的特征矩阵X用作GAE模型的训练数据。
根据本发明优选的,所述步骤(2)中,使用序列模型获取用户时序特征向量,将交易序列 L
i视作一个句子,
通过最大化在中心节点出现的情况下,上下文节点出现的概 率来优化每层参数,具体步骤包括:
2-1、准备训练数据:首先使用sklearn库中OneHotEncoder对节点列表做向量化处理,得 到一个较高维度的节点One-hot向量,节点One-hot向量的维数大小等于单词个数;
然后设置window窗口和skip步长大小,用以生成训练数据,通过交易序列Li构造训练数 据,Li={Li (1),...,Li (k)};Li为用户ui的交易序列,上标1,...,k为交易序列Li中的k个交易对 手账号;设定window窗口和skip步长大小,以某一节点作为中心节点,构建(input,output)形 式的训练集,获得训练数据,output为上下文节点,output为中心节点;
具体的,假设窗口和步长大小都取2,从Li (2)开始作为中心节点,分别选择左侧和右侧两个 节点作为窗口节点,构建(input,output)形式的训练集,这里获得(Li (2),Li (1)),(Li (2),Li (3)),(Li (2),Li (4)) 三组训练数据;
2-2、构建Skip-gram模型,获得节点向量:Skip-gram模型包括依次连接的输入层、隐藏 层和输出层,
输入层输入节点One-Hot向量;隐藏层的维度根据用户需要设定,隐藏层的维度即隐藏层 神经元的个数;输出层为softmax分类器,输出每个节点的概率,
计算交叉熵损失函数,并使用梯度下降法更新模型权重参数,最终使用输入层到隐藏层的 权重矩阵作为节点的时序特征R序列={d′1,......d′m};
优选的,所述步骤2-1生成训练集的过程中,使用高频词抽样技术对训练样本中的向量序 对(input,output)进行抽样,以减少训练样本个数,解决权重矩阵和训练样本规模过大的问题;
采用负采样技术,在训练每个样本的时候只更新每一部分模型权重,以降低计算负担。
根据本发明优选的,所述步骤(2)中,使用GAE模型获取用户空间特征向量,所述GAE模 型包括编码器和解码器;编码器包括两层GCN,解码器用来计算任意两节点之间存在边的概率, 然后生成边,形成重构图;具体步骤包括:
a、在GAE模型的输入层输入邻接矩阵A和图节点的特征矩阵X;
b、编码器的两层GCN对邻接矩阵A和图节点的特征矩阵X进行特征提取,得到节点嵌入向 量Z,这里假设的是每个输入的样本邻接矩阵A是服从高斯分布的,通过两层GCN对邻接矩阵A 和图节点的特征矩阵X进行特征提取,确定均值和方差,即确定高斯分布的分布函数,再通过 高斯分布的分布函数得到重构后的邻接矩阵
节点嵌入向量Z满足:
Z=GCN(X,A) (I),
式(I)中,GCN表示图卷积神经网络模型,X为图节点的特征矩阵,A为邻接矩阵;
c、节点嵌入向量Z输入到解码器中,使用解码器生成边的连接概率,重构图;最后由输出 层输出重构后的邻接矩阵
计算公式如下:
式(II)中,上标T表示转置,σ(·)表示sigmoid函数,即神经元的输出激活函数,为神经网络 中的常用表示符号,
表示重构后的邻接矩阵;
采用损失函数L用来衡量重构图和原始图之间的差异,通过最小化损失函数L,使得重构的 图与原始图最接近;
输入图的邻接矩阵A和节点的特征矩阵X,通过两层GCN结构的编码器对邻接矩阵A和图节 点的特征矩阵X进行特征提取,使用解码器计算任意两个节点之间存在边的概率生成图,最后 通过损失函数L来衡量输入的图与GAE生成的图之间的差异,通过优化W
0,W
1,使得损失函数L 最小,这样重构图就是与原始图最接近的,得到节点嵌入向量矩阵Z,节点嵌入向量矩阵Z具有 图的空间特征,
Z是一个n行的矩阵,行向量对应一个节点;
进一步优选的,步骤b中,两层GCN的定义如下:
式(III)中,ReLU(·)表示线性整流函数,
D表示度矩阵,上标-1/2表示做 幂运算,W
0表示第一权重矩阵,W
1表示第二权重矩阵;
进一步优选的,步骤c中,解码器通过计算节点间概率来重构图,即重构邻接矩阵:
式(IV)中,Sigmoid(·)为激活函数,将变量映射到0,1之间,如果概率超过阈值,则A
ij为1,代 表两个节点相连,最终得到邻接矩阵
A
ij表示节点嵌入向量矩阵Z上位于第i行第j列的元 素,z
i和z
j分别指节点嵌入向量矩阵i行和j行;
表示通过已知节点嵌入向量矩阵Z来重构任意两个节点i 和j之间相连的概率;Sigmoid(·)为激活函数,将变量映射到0,1之间,如果概率超过阈值, 代表两个节点相连,对应邻接矩阵
中元素设置为1,
是对矩阵A的一个分解表示;
损失函数是通过编码器-解码器结构的重构图与原始图之间的距离度量:
L=Eq(Z|X,A)[logp(A|Z) (V)
式(V)中,L表示损失函数,Eq(·)表示期望分布;
使用随机梯度下降来训练GAE,损失函数收敛训练结束,最终得到节点的低维节点嵌入向量 矩阵Z;
通过优化W0,W1,使得损失函数L最小,这样重构图就是与原始图最接近的,得到低维节点 嵌入向量矩阵Z,低维节点嵌入向量矩阵Z具有图的空间特征。
通过W来最小化L,就是要求L对W的梯度,然后使用梯度下降法优化L,使L最小。
数据预处理阶段生成了交易图的邻接矩阵A和节点的特征矩阵X,特征矩阵X包含了节点的 度信息,本模块要通过GAE模型来编码节点的空间表示向量,即包含该节点本身的特征,同时 也包含邻居节点的特征。
根据本发明优选的,步骤(3)中,计算节点两两之间的距离,并作为边的权重,得到每个 节点所属的团伙,并输出节点的团伙标记,具体步骤包括:
3-1、首先利用步骤2中生成的节点表示向量Ri计算图数据结构中任意两节点之间的距离, 并将计算出来的距离作为边的权重,距离越大代表两个节点的距离越远;然后将图数据结构上 的每个节点分配到单独一个团伙中,不断遍历网络中的节点,比较节点加入邻居团伙带来的模 块度变化情况,选择将该节点加入到能够使紧密度增幅最大的团伙,
所述模块度Q定义函数为:
式(VI)中,Q表示模块度,m为所有边的权重之和,Wij表示节点i和节点j之间的权重, ki表示与节点i相连的边的权重之和,kj表示与节点j相连的边的权重之和,ci为节点i所属 的团伙,cj为节点j所属的团伙,δ(ci,cj)为一个示性函数,如果ci和cj是同一个团伙,则为1, 不是则为0;
3-2、将属于同一个团伙所有节点合并为新的节点,构造一个超图;
3-3、重复步骤3-1和步骤3-2,获得最终的团伙的划分,生成(ui,ci)的团伙标记,ci为 节点i所属的团伙。
基于上述金融交易网络的团伙检测方法的实现装置,包括:
数据预处理模块,用于对交易数据进行数据清洗,提取每个用户的交易序列、构建图数据, 用于执行步骤(1);
用户特征向量生成模块,使用序列模型获取用户时序特征向量,使用GAE模型获取用户空 间特征向量,并将用户时序特征向量和空间特征向量分别归一化,并连接起来,用于执行步骤 (2);
团伙检测模块,用于计算每个节点所属的团伙,并输出节点的团伙标记,用于执行步骤(3)。
本发明的有益效果为:
1.本发明主要提供了一种基于节点的时间序列特征和空间结构特征相结合的团伙检测方 法。该方法利用原始金融交易流水信息数据中的用户、交易对手账号和交易时间等基本特征, 通过序列模型和GAE模型自适应的提取时间序列特征和空间结构特征,最后使用连接特征计算 两两节点之间的距离作为权重,使用一种基于模块度优化的团伙检测算法就可以将每个用户分 配到潜在的团伙中。
2.本发明的主要目的是为办案人员提供一套辅助决策***,基于Skip-gram模型和GAE模 型自动提取特征,极大的释放了人力,生成的团伙标记也可以用来对潜在嫌疑人进行追踪。
3.本发明提供的基于金融交易网络的团伙检测方法,流程全自动,任何人员通过输入较少 字段的原始数据就能获得最终想要的结果,提升了工作效率,节省了大量时间。随着输入的交 易数据量的提升,自动构建的训练数据数量随之增多,模型的准确率将进一步提高。
附图说明
图1是本发明提供的一种基于金融交易网络的团伙检测方法中数据流图。
图2是序列模型的结构示意图。
图3是GAE模型的结构示意图。
图4是本发明提供的一种基于金融交易网络的团伙检测方法的流程图。
具体实施方式
下面结合实施例和说明书附图对本发明做进一步说明,但不限于此。
实施例1
一种基于金融交易网络的团伙检测方法,如图1和图4所示,包括:
(1)数据预处理:对交易数据进行数据清洗,提取每个用户的交易序列、构建图数据;
所述步骤(1)中,所述交易数据包括用户、交易对手账号、交易时间和交易金额,对交易 数据进行数据清洗的具体步骤包括:
1-1、缺失值填充:如果某条交易数据的用户、交易对手账号、交易时间中任一字段缺失, 则丢弃该条交易数据;
如果某条交易数据中的只有交易金额存在字段缺失,采用均值填充法进行填充,即计算当 前用户所有交易金额的平均值,采用所述平均值填充交易金额;
1-2、数据不一致处理:当使用不同的日期形式来表示日期时,使用Python的datatime库 进行格式化,统一所有的时间格式为年月日的日期形式;例如:交易时间里的日期存在 “2019/01/07”和“07/01/2019”,使用Python的datatime库进行格式化,统一所有的时间格 式为“20190107”;
1-3、特征编码:使用一个map进行映射,将15位以上的用户和交易对手账号转换成标签 编码(label-encoding),最终得到交易样本集合。比如,有100个账号映射以后就是0~99,交 易账号包括银行***、账号;交易样本集合包括若干条经过步骤1-1至1-3预处理后的交易数 据。
原始的交易数据中有很多字段具有较多的缺失值和异常值,数据清洗的主要目的就是将脏 数据处理成初步可用的输入数据。
所述步骤(1)中,提取每个用户的交易序列、构建图数据的具体步骤包括:
a、基于时间顺序生成每个用户的交易序列:使用Pandas库的unique函数获得用户集合
n为用户总数,用户u
i,i=1,......,n,表示第i个交易用户; m为交易对手账号的总数,交易对手账号
j=1,......,m,表示第j个交易对手账号;
对于用户ui来说,从交易样本集合中获取所有的交易对手账号,并按照交易时间进行升序 排序,将序列去重组合为交易序列Li;
以用户ui为键,交易序列Li为值,构建键值对集合S={si|i=1,...n},其中si为(ui,Li);键 值对集合S的键是用户,值是交易序列,用来通过用户查找到交易序列;
b、构建图数据:所述图数据包括邻接矩阵A和图节点的特征矩阵X;
首先,在交易样本集合中,从同一条交易数据中提取用户u
i和交易对手账号
组成序对
i=1,...,n,j=1,...,m;
再对所有的序对进行去重操作,将去重后的所有序对集合作为图G的边集E, E={ei|i=1,...,m};所有用户集合U作为节点集V,V={vi|i=1,...,n};使用边集E和节点集V, 通过networkx库来生成节点的邻接矩阵A∈Rn×n,邻接矩阵通过编码图的节点之间是否相连来 表示一个图的拓扑结构;用户和交易对手账号作为节点,任一节点之间有交易就添加一条边;
图节点的特征矩阵X为节点的度矩阵D,度矩阵D是对角阵,对角上的元素为各个节点i的 度,节点i的度di表示和节点vi相关联的边的数量,Di=[di],Di表示节点vi的度。
得到的邻接矩阵A和图节点的特征矩阵X用作GAE模型的训练数据。
(2)生成用户特征向量:使用序列模型获取用户时序特征向量,使用GAE模型获取用户空 间特征向量;将用户时序特征向量和空间特征向量分别归一化,并做连接操作,生成节点表示 向量
d′
1,......d′
m表示归一后的用户时序特征向量,
表示归 一后的空间特征向量;
所述步骤(2)中,使用序列模型获取用户时序特征向量,将交易序列L
i视作一个句子,
通过最大化在中心节点出现的情况下,上下文节点出现的概率来优化每层参数, 具体步骤包括:
2-1、准备训练数据:首先使用sklearn库中OneHotEncoder对节点列表做向量化处理,得 到一个较高维度的节点One-hot向量,节点One-hot向量的维数大小等于单词个数;
然后设置window窗口和skip步长大小,用以生成训练数据,通过交易序列Li构造训练数 据,Li={Li (1),...,Li (k)};Li为用户ui的交易序列,上标1,...,k为交易序列Li中的k个交易对 手账号;设定window窗口和skip步长大小,以某一节点作为中心节点,构建(input,output)形 式的训练集,获得训练数据;
具体的,假设窗口和步长大小都取2,从Li (2)开始作为中心节点,分别选择左侧和右侧两个 节点作为窗口节点,构建(input,output)形式的训练集,这里获得(Li (2),Li (1)),(Li (2),Li (3)),(Li (2),Li (4)) 三组训练数据;
所述步骤2-1生成训练集的过程中,使用高频词抽样技术对训练样本中的向量序对 (input,output)进行抽样,以减少训练样本个数,解决权重矩阵和训练样本规模过大的问题;
采用负采样技术,在训练每个样本的时候只更新每一部分模型权重,以降低计算负担。
2-2、构建Skip-gram模型,获得节点向量:Skip-gram模型包括依次连接的输入层、隐藏 层和输出层,
输入层输入节点One-Hot向量;隐藏层的维度根据用户需要设定,隐藏层的维度即隐藏层 神经元的个数;输出层为softmax分类器,输出每个节点的概率,
计算交叉熵损失函数,并使用梯度下降法更新模型权重参数,最终使用输入层到隐藏层的 权重矩阵作为节点的时序特征R序列={d′1,......d′m};
所述步骤(2)中,使用GAE模型获取用户空间特征向量,所述GAE模型包括编码器和解码 器;编码器包括两层GCN,解码器用来计算任意两节点之间存在边的概率,然后生成边,形成重 构图;具体步骤包括:
a、在GAE模型的输入层输入邻接矩阵A和图节点的特征矩阵X;
b、编码器的两层GCN对邻接矩阵A和图节点的特征矩阵X进行特征提取,得到节点嵌入向 量Z,这里假设的是每个输入的样本邻接矩阵A是服从高斯分布的,通过两层GCN对邻接矩阵A 和图节点的特征矩阵X进行特征提取,确定均值和方差,即确定高斯分布的分布函数,再通过 高斯分布的分布函数得到重构后的邻接矩阵
节点嵌入向量Z满足:
Z=GCN(X,A) (I),
式(I)中,GCN表示图卷积神经网络模型,X为图节点的特征矩阵,A为邻接矩阵;
c、节点嵌入向量Z输入到解码器中,使用解码器生成边的连接概率,重构图;最后由输出 层输出重构后的邻接矩阵
计算公式如下:
式(II)中,上标T表示转置,σ(·)表示sigmoid函数,即神经元的输出激活函数,为神经网络 中的常用表示符号,
表示重构后的邻接矩阵;
采用损失函数L用来衡量重构图和原始图之间的差异,通过最小化损失函数L,使得重构的 图与原始图最接近;
输入图的邻接矩阵A和节点的特征矩阵X,通过两层GCN结构的编码器对邻接矩阵A和图节 点的特征矩阵X进行特征提取,使用解码器计算任意两个节点之间存在边的概率生成图,最后 通过损失函数L来衡量输入的图与GAE生成的图之间的差异,通过优化W
0,W
1,使得损失函数L 最小,这样重构图就是与原始图最接近的,得到节点嵌入向量矩阵Z,节点嵌入向量矩阵Z具有 图的空间特征,
Z是一个n行的矩阵,行向量对应一个节点;
进一步的,步骤b中,两层GCN的定义如下:
式(III)中,ReLU(·)表示线性整流函数,
D表示度矩阵,上标-1/2表示做 幂运算,W
0表示第一权重矩阵,W
1表示第二权重矩阵;
进一步的,步骤c中,解码器通过计算节点间概率来重构图,即重构邻接矩阵:
式(IV)中,Sigmoid(·)为激活函数,将变量映射到0,1之间,如果概率超过阈值,则A
ij为1,代 表两个节点相连,最终得到邻接矩阵
A
ij表示节点嵌入向量矩阵Z上位于第i行第j列的元 素,z
i和z
j分别指节点嵌入向量矩阵i行和j行;
表示通过已知节点嵌入向量矩阵Z来重构任意两个节点i 和j之间相连的概率;Sigmoid(·)为激活函数,将变量映射到0,1之间,如果概率超过阈值, 代表两个节点相连,对应邻接矩阵
中元素设置为1,
是对矩阵A的一个分解表示;
损失函数是通过编码器-解码器结构的重构图与原始图之间的距离度量:
L=Eq(Z|x,A)[logp(A|Z) (V)
式(V)中,L表示损失函数,Eq(·)表示期望分布;
使用随机梯度下降来训练GAE,损失函数收敛训练结束,最终得到节点的低维节点嵌入向量 矩阵Z;
通过优化W0,W1,使得损失函数L最小,这样重构图就是与原始图最接近的,得到低维节点 嵌入向量矩阵Z,低维节点嵌入向量矩阵Z具有图的空间特征。
通过W来最小化L,就是要求L对W的梯度,然后使用梯度下降法优化L,使L最小。
数据预处理阶段生成了交易图的邻接矩阵A和节点的特征矩阵X,特征矩阵X包含了节点的 度信息,本模块要通过GAE模型来编码节点的空间表示向量,即包含该节点本身的特征,同时 也包含邻居节点的特征。
(3)团伙检测:计算每个节点所属的团伙,并输出节点的团伙标记。
本步骤可以应用在现有的算法如K-means、KNN等基于特征空间距离的聚类和社团检测算法;
本实例中,步骤(3)中,基于欧式距离计算节点两两之间的距离,并作为边的权重,得到 每个节点所属的团伙,具体步骤包括:
3-1、首先利用步骤2中生成的节点表示向量Ri计算图数据结构中任意两节点之间的距离, 并将计算出来的距离作为边的权重,距离越大代表两个节点的距离越远;然后将图数据结构上 的每个节点分配到单独一个团伙中,不断遍历网络中的节点,比较节点加入邻居团伙带来的模 块度变化情况,选择将该节点加入到能够使紧密度增幅最大的团伙,
所述模块度Q定义函数为:
式(VI)中,Q表示模块度,m为所有边的权重之和,Wij表示节点i和节点j之间的权重, ki表示与节点i相连的边的权重之和,kj表示与节点j相连的边的权重之和,ci为节点i所属 的团伙,cj为节点j所属的团伙,δ(ci,cj)为一个示性函数,如果ci和cj是同一个团伙,则为1, 不是则为0;
3-2、将属于同一个团伙所有节点合并为新的节点,构造一个超图;
3-3、重复步骤3-1和步骤3-2,获得最终的团伙的划分,生成(ui,ci)的团伙标记,ci为 节点i所属的团伙。
本发明主要提供了一种基于节点的时间序列特征和空间结构特征相结合的团伙检测方法。 该方法利用原始金融交易流水信息数据中的交易账号、交易对手账号和交易时间等基本特征, 通过序列skip-gram模型和GAE模型自适应的提取时间序列特征和空间结构特征,最后使用连 接特征计算两两节点之间的距离作为权重,使用一种基于模块度优化的团伙检测算法就可以将 每个用户分配到潜在的团伙中。本方法减少人工特征工程的工作量,充分利用交易图的时序和 空间特征。
实施例2
基于实施例1提供的金融交易网络的团伙检测方法的实现装置,包括:
数据预处理模块,用于对交易数据进行数据清洗,提取每个用户的交易序列、构建图数据, 用于执行步骤(1);
用户特征向量生成模块,使用序列模型获取用户时序特征向量,使用GAE模型获取用户空 间特征向量,并将用户时序特征向量和空间特征向量分别归一化,并连接起来,用于执行步骤 (2);
团伙检测模块,用于计算每个节点所属的团伙,并输出节点的团伙标记,用于执行步骤(3)。