账户资金转账网络图着色方法及装置与流程

文档序号:21725500发布日期:2020-08-05 01:16阅读:509来源:国知局
账户资金转账网络图着色方法及装置与流程

本申请涉及图着色技术领域,具体涉及账户资金转账网络图着色方法及装置。



背景技术:

为了有效提高账户资金转账的安全性或进行反洗钱识别,部分金融机构采用的监控方式为根据知识图谱或者知识图谱的社区划分结果进行账户资金转账监控,其中,知识图谱可以指金融机构获取的用户们的账户资金转账网络图。因此,如果获取一个可靠性或精确性高的账户资金转账网络图,是金融机构实现账户资金转账的安全性或进行反洗钱识别的数据基础。

目前,为了提高账户资金转账网络图的应用可靠性,通常需要对该账户资金转账网络图进行图着色处理,由于图着色问题的困难性,实际应用中不会精确求出图的色数(色数即着色采用的最少颜色数),而是采取一种贪婪算法:假定图中度数最大节点的度数为maxdegree,则必定可以使用maxdegree+1种颜色来完成对图的着色。对每个节点都根据它的邻居已经采取的颜色确定自己的颜色,使之与每个邻居都不同。作者在实际应用中发现,最大度数相比色数往往很大,特别是在存在个别超点的情况下,最大度数经常超过104。在这种情况下,该贪心着色方法的着色结果难以实用。在并行图计算中,这会导致并行数太低甚至接近串行算法,因此,由于传统的串行图着色贪心算法采用的颜色数往往太大,难以实际应用于并行计算,以及传统算法的颜色数不能自行控制,完全取决于图的结构的问题,使得当前的账户资金转账网络图的应用可靠性及准确性无法得到保证。



技术实现要素:

针对现有技术中的问题,本申请提供一种账户资金转账网络图着色方法及装置,能够实现对账户资金转账网络图的自定义着色控制,并能够将误差控制在一定范围内,能够有效提高账户资金转账网络图的着色的准确性,进而能够有效提高目标账户资金转账网络图的社区划分的准确性,并能够提高基于所述目标账户资金转账网络图转账交易监控或异常识别的准确性及可靠性。

为解决上述技术问题,本申请提供以下技术方案:

第一方面,本申请提供一种账户资金转账网络图着色方法,包括:

将目标账户资金转账网络图中的各个节点的标识分别设置为从零开始的自然数,并确定各个所述节点各自所属的连通分量,将所述连通分量的标识设置为该连通分量中的代表节点的标识的数值,其中,所述代表节点为对应的连通分量中的标识数值最小的节点;

应用预获取的自定义颜色数对所述连通分量以及第一预设数量的节点进行初始化着色处理;

将当前尚未着色的节点进行着色处理;

对着色颜色相同的相邻节点进行择一删除颜色处理,并返回执行所述将当前尚未着色的节点进行着色处理的过程,直至所述将当前尚未着色的节点进行着色处理的过程的执行次数等于或大于预设的迭代阈值之后,输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图。

进一步地,所述将目标账户资金转账网络图中的各个节点的标识分别设置为从零开始的整数,包括:

接收账户资金转账网络图边文件数据以及预设的指定染色数;

根据所述账户资金转账网络图边文件数据获取对应的graph格式的目标账户资金转账网络图,其中,所述目标账户资金转账网络图的节点与账户之间一一对应,相邻的节点之间的边用于表示对应的两个账户之间的转账关系;

将所述目标账户资金转账网络图中的各个节点的标识通过预设的哈希表映射到从零开始的自然数;

以及,将各个所述节点的标签映射为自定义数据类型,其中,所述自定义数据类型包括:颜色编号、着色状态及连通分量标识。

进一步地,所述确定各个所述节点各自所属的连通分量,包括:

应用预设的弱连通分量算法分别确定各个所述节点各自所属的连通分量,并修改对应节点的所述连通分量标识。

进一步地,所述应用预获取的自定义颜色数对所述连通分量以及第一预设数量的节点进行初始化着色处理,包括:

将各个所述节点的标识按照数值从小到大进行排列,并自数值最小的节点开始,在排列后的各个所述节点中选取第一预设数量的节点作为初始节点;

应用预获取的自定义颜色数将各个所述初始节点各自对应的所述着色编号设置为节点自身的标识,并将各个所述初始节点各自对应的所述着色状态设置为已着色;

以及,将各个所述连通分量各自对应的所述代表节点的所述着色编号均设置为零,并将各个所述代表节点各自对应的所述着色状态设置为已着色。

进一步地,所述将当前尚未着色的节点进行着色处理,包括:

将当前尚未着色的节点选定为目标节点;

应用预设的pregel函数获取各个目标节点各自对应的已着色邻居节点;

根据每个目标节点自身对应的已着色邻居节点生成该目标节点的颜色集合;

自数值零开始遍历所述颜色集合,在未出现在该颜色集合中的数值中选取最小值作为该颜色集合对应的目标节点的目标颜色数值;

分别将各个所述目标节点各自对应的所述着色编号设置为对应的目标颜色数值,并将各个所述目标节点各自对应的所述着色状态设置为已着色。

进一步地,所述对着色颜色相同的相邻节点进行择一删除颜色处理,包括:

应用预设的pregel函数获取各个已着色节点各自对应的已着色邻居节点;

在着色颜色相同的相邻节点中,删除标识数值较大的节点的所述着色编号的数值,并将该标识数值较大的节点的所述着色状态设置为未着色。

进一步地,在所述输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图之前,还包括:

应用预设的着色误差计算函数确定所述节点着色图的着色误差率,其中,所述着色误差率为所述节点着色图中的起始节点和终止节点着色颜色相同的边的总数占所述节点着色图全图的边总数的比例;

相对应的,在所述输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图之时,还输出所述节点着色图的着色误差率。

进一步地,在所述输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图之后,还包括:

应用所述节点着色图,基于预设的louvain社区划分算法每次对着色颜色相同的节点进行迭代计算,得到所述目标账户资金转账网络图的社区划分结果;

根据所述社区划分结果对所述目标账户资金转账网络图中的各个所述节点进行交易监控或异常识别。

第二方面,本申请提供一种账户资金转账网络图着色装置,包括:

标识及分量设置模块,用于将目标账户资金转账网络图中的各个节点的标识分别设置为从零开始的自然数,并确定各个所述节点各自所属的连通分量,将所述连通分量的标识设置为该连通分量中的代表节点的标识的数值,其中,所述代表节点为对应的连通分量中的标识数值最小的节点;

初始化着色模块,用于应用预获取的自定义颜色数对所述连通分量以及第一预设数量的节点进行初始化着色处理;

迭代着色模块,用于将当前尚未着色的节点进行着色处理;

筛选及输出模块,用于对着色颜色相同的相邻节点进行择一删除颜色处理,并返回执行所述将当前尚未着色的节点进行着色处理的过程,直至所述将当前尚未着色的节点进行着色处理的过程的执行次数等于或大于预设的迭代阈值之后,输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图。

进一步地,所述标识及分量设置模块包括:

文件数据接收单元,用于接收账户资金转账网络图边文件数据以及预设的指定染色数;

网络图生成单元,用于根据所述账户资金转账网络图边文件数据获取对应的graph格式的目标账户资金转账网络图,其中,所述目标账户资金转账网络图的节点与账户之间一一对应,相邻的节点之间的边用于表示对应的两个账户之间的转账关系;

表示映射单元,用于将所述目标账户资金转账网络图中的各个节点的标识通过预设的哈希表映射到从零开始的自然数;

标签映射单元,用于将各个所述节点的标签映射为自定义数据类型,其中,所述自定义数据类型包括:颜色编号、着色状态及连通分量标识。

进一步地,所述标识及分量设置模块还包括:

连通分量确定单元,用于应用预设的弱连通分量算法分别确定各个所述节点各自所属的连通分量,并修改对应节点的所述连通分量标识。

进一步地,所述初始化着色模块包括:

初始节点选取单元,用于将各个所述节点的标识按照数值从小到大进行排列,并自数值最小的节点开始,在排列后的各个所述节点中选取第一预设数量的节点作为初始节点;

初始节点着色单元,用于应用预获取的自定义颜色数将各个所述初始节点各自对应的所述着色编号设置为节点自身的标识,并将各个所述初始节点各自对应的所述着色状态设置为已着色;

代表节点着色单元,用于将各个所述连通分量各自对应的所述代表节点的所述着色编号均设置为零,并将各个所述代表节点各自对应的所述着色状态设置为已着色。

进一步地,所述迭代着色模块包括:

目标节点选定单元,用于将当前尚未着色的节点选定为目标节点;

已着色邻居节点获取单元,用于应用预设的pregel函数获取各个目标节点各自对应的已着色邻居节点;

颜色集合生成单元,用于根据每个目标节点自身对应的已着色邻居节点生成该目标节点的颜色集合;

目标颜色选取单元,用于自数值零开始遍历所述颜色集合,在未出现在该颜色集合中的数值中选取最小值作为该颜色集合对应的目标节点的目标颜色数值;

目标颜色着色单元,用于分别将各个所述目标节点各自对应的所述着色编号设置为对应的目标颜色数值,并将各个所述目标节点各自对应的所述着色状态设置为已着色。

进一步地,所述筛选及输出模块包括:

邻居节点获取单元,用于应用预设的pregel函数获取各个已着色节点各自对应的已着色邻居节点;

择一删除单元,用于在着色颜色相同的相邻节点中,删除标识数值较大的节点的所述着色编号的数值,并将该标识数值较大的节点的所述着色状态设置为未着色。

进一步地,还包括:

着色误差率获取模块,用于应用预设的着色误差计算函数确定所述节点着色图的着色误差率,其中,所述着色误差率为所述节点着色图中的起始节点和终止节点着色颜色相同的边的总数占所述节点着色图全图的边总数的比例;

相对应的,还包括:着色误差率输出模块,用于在所述输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图之时,还输出所述节点着色图的着色误差率。

进一步地,还包括:

社区划分模块,用于应用所述节点着色图,基于预设的louvain社区划分算法每次对着色颜色相同的节点进行迭代计算,得到所述目标账户资金转账网络图的社区划分结果;

交易监控或异常识别模块,用于根据所述社区划分结果对所述目标账户资金转账网络图中的各个所述节点进行交易监控或异常识别。

第三方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的账户资金转账网络图着色方法的步骤。

第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的账户资金转账网络图着色方法的步骤。

由上述技术方案可知,本申请提供的一种账户资金转账网络图着色方法及装置,方法包括:将目标账户资金转账网络图中的各个节点的标识分别设置为从零开始的自然数,并确定各个所述节点各自所属的连通分量,将所述连通分量的标识设置为该连通分量中的代表节点的标识的数值,其中,所述代表节点为对应的连通分量中的标识数值最小的节点;应用预获取的自定义颜色数对所述连通分量以及第一预设数量的节点进行初始化着色处理;将当前尚未着色的节点进行着色处理;对着色颜色相同的相邻节点进行择一删除颜色处理,并返回执行所述将当前尚未着色的节点进行着色处理的过程,直至所述将当前尚未着色的节点进行着色处理的过程的执行次数等于或大于预设的迭代阈值之后,输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图,能够在一定误差内对各类图进行节点着色,能够实现对账户资金转账网络图的自定义着色控制,能够有效提高图着色过程的可靠性,并能够将误差控制在一定范围内,能够有效提高账户资金转账网络图的着色的准确性,进而能够有效提高目标账户资金转账网络图的社区划分的准确性,并能够提高基于所述目标账户资金转账网络图转账交易监控或异常识别的准确性及可靠性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例中的账户资金转账网络图着色方法的流程示意图。

图2是本申请实施例中的账户资金转账网络图着色方法中步骤100的第一种具体流程示意图。

图3是本申请实施例中的账户资金转账网络图着色方法中步骤100的第二种具体流程示意图。

图4是本申请实施例中的账户资金转账网络图着色方法中步骤200的具体流程示意图。

图5是本申请实施例中的账户资金转账网络图着色方法中步骤300的具体流程示意图。

图6是本申请实施例中的账户资金转账网络图着色方法中步骤400的第一种具体流程示意图。

图7是本申请实施例中的账户资金转账网络图着色方法中步骤410的具体流程示意图。

图8是本申请实施例中的包含有步骤010和步骤440的账户资金转账网络图着色方法中的步骤400的第二种具体流程示意图。

图9是本申请实施例中的包含有步骤500和步骤600的账户资金转账网络图着色方法的流程示意图。

图10是本申请应用实例提供的基于spark/graphx的启发式近似图着色算法系统的结构示意图。

图11是本申请应用实例提供的账户资金转账网络图着色方法的流程示意图。

图12是本申请实施例中的账户资金转账网络图着色装置的第一种结构示意图。

图13是本申请实施例中的账户资金转账网络图着色装置中标识及分量设置模块10的第一种结构示意图。

图14是本申请实施例中的账户资金转账网络图着色装置中标识及分量设置模块10的第二种结构示意图。

图15是本申请实施例中的账户资金转账网络图着色装置中初始化着色模块20的结构示意图。

图16是本申请实施例中的账户资金转账网络图着色装置中迭代着色模块30的结构示意图。

图17是本申请实施例中的账户资金转账网络图着色装置中筛选及输出模块40和着色误差率输出模块50的结构示意图。

图18是本申请实施例中的账户资金转账网络图着色装置的第二种结构示意图。

图19是本申请实施例中的电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

图着色问题是图论中非常重要的一类问题,最初得名于平面地图染色问题(相邻国家用不同的颜色上色),衍生出节点着色,边着色和面着色,由于后二者可以转化为前者,所以现在直接用采用节点着色代表图着色。由此我们采用如下定义:

给定一个无向图g=(v,e),其中v为顶点集合,e为边集合,图的k着色为采用k种颜色将所有节点染色,从而分成k个颜色组,使得任何一个颜色组中没有相邻的节点,或者说相邻接点颜色不同。

图着色问题是np-完全问题,无法在多项式时间内确定一个图是否可以用k(k>2)种颜色着色,除非np=p。

图着色问题不仅有着重要的理论价值,也和很多实际应用问题有着密切的联系,如通讯系统的频道分配问题,时间表制定问题乃至搜索算法、模式匹配,都会涉及到图着色求解问题。在并行图计算场景中,图着色构成对节点或边的一种归类,在某些算法采取类内并行能够提升计算效果。例如在并行louvain社区划分算法中,先对节点进行着色,每次迭代只对一个颜色组的节点进行所属社区更新,能够在一定程度上减小并行导致的收敛困难问题,并提升最终模块度。

由于图着色问题的困难性,实际应用中不会精确求出图的色数(色数即着色采用的最少颜色数),而是采取一种贪婪算法:假定图中度数最大节点的度数为maxdegree,则必定可以使用maxdegree+1种颜色来完成对图的着色。对每个节点都根据它的邻居已经采取的颜色确定自己的颜色,使之与每个邻居都不同。作者在实际应用中发现,最大度数相比色数往往很大,特别是在存在个别超点的情况下,最大度数经常超过104。在这种情况下,该贪心着色方法的着色结果难以实用。在并行图计算中,这会导致并行数太低甚至接近串行算法。

在本申请的一个或多个实施例中,所述图是指由点和边组成的网络图。

其中,图着色是一种重要的通用算法,应用范围很广:可以用于ip溯源、频道分配、时间表计划、并行计算等等。因此,本申请提出的近似图着色算法也是具有通用性的,并不会受限于具体的场景。也就是说,尽管本申请保护的网络图为账户资金转账网络图,但其他类型的网络图也适用于本申请提供的着色方法。

由于传统的串行图着色贪心算法采用的颜色数往往太大,难以实际应用于并行计算,因此本申请提出一种自定义k色的并行启发式近似图着色算法,能够在一定误差内对各类图进行节点着色。另外本申请还提出一种用以衡量着色效果好坏的方法,在着色完成后可以通过定量计算评价着色效果。

在银行场景下,图的来源可以是账户资金转账关系图,图的节点为独立账户,节点之间的边代表账户之间的转账关系。实用中需要对这样的账户转账图进行社区划分来将相关度高的账户划分到相同的社区里。那么在进行社区划分算法之前可以将本发明提出的图着色算法应用于转账关系图,使得相邻节点亦即具有转账关系的账户属于不同的颜色,然后在后续的并行图计算中对每种颜色的账户节点进行分批处理。

上述的图着色处理在最流行的louvain社区划分算法中可以起到提高结果模块度的效果,原因如下:直接并行的louvain社区划分算法由于会对全图所有节点进行同步计算而忽略了邻居节点之间的相互影响导致算法往往容易陷入局部震荡陷阱而无法收敛,进行了图着色后,louvain算法选择每轮迭代只对相同颜色的节点进行计算,而相同颜色的节点彼此都不是邻居,因而很大程度上减小了邻居节点相互影响导致的震荡情况的发生概率,从而最终社区划分结果的模块度相比于不进行图着色大幅提高(模块度衡量社区划分的好坏)。另外由于本发明提出的近似图着色算法采用远少于传统贪婪着色法的颜色即可完成着色,因而每轮迭代可以并行处理的点的数目也远多于传统贪婪着色算法,所以算法的速度也会大幅加快。

为了有效实现对账户资金转账网络图的自定义着色控制,并将误差控制在一定范围内,有效提高账户资金转账网络图的着色的准确性,本申请提供一种账户资金转账网络图着色方法的实施例,参见图1,所述账户资金转账网络图着色方法具体包含有如下内容:

步骤100:将目标账户资金转账网络图中的各个节点的标识分别设置为从零开始的自然数,并确定各个所述节点各自所属的连通分量,将所述连通分量的标识设置为该连通分量中的代表节点的标识的数值,其中,所述代表节点为对应的连通分量中的标识数值最小的节点。

步骤200:应用预获取的自定义颜色数对所述连通分量以及第一预设数量的节点进行初始化着色处理。

在步骤200中,所述预获取的自定义颜色数即为前述提及的自定义k色中的k。

步骤300:将当前尚未着色的节点进行着色处理。

步骤400:对着色颜色相同的相邻节点进行择一删除颜色处理,并返回执行所述将当前尚未着色的节点进行着色处理的过程,直至所述将当前尚未着色的节点进行着色处理的过程的执行次数等于或大于预设的迭代阈值之后,输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图。

为了给目标账户资金转账网络图进行节点着色提供可靠且准确的数据基础,并有效提高节点着色的效率,在本申请提供的账户资金转账网络图着色方法的一个实施例中,参见图2,所述账户资金转账网络图着色方法中的步骤100具体包含有如下内容:

步骤110:接收账户资金转账网络图边文件数据以及预设的指定染色数。

步骤120:根据所述账户资金转账网络图边文件数据获取对应的graph格式的目标账户资金转账网络图,其中,所述目标账户资金转账网络图的节点与账户之间一一对应,相邻的节点之间的边用于表示对应的两个账户之间的转账关系。

步骤130:将所述目标账户资金转账网络图中的各个节点的标识通过预设的哈希表映射到从零开始的自然数。

步骤140:将各个所述节点的标签映射为自定义数据类型,其中,所述自定义数据类型包括:颜色编号、着色状态及连通分量标识。

为了各个所述节点各自所属的连通分量得获取可靠性及准确性,以进一步实现对账户资金转账网络图的自定义着色控制,在本申请提供的账户资金转账网络图着色方法的一个实施例中,参见图3,所述账户资金转账网络图着色方法中的步骤100还具体包含有如下内容:

步骤150:应用预设的弱连通分量算法分别确定各个所述节点各自所属的连通分量,并修改对应节点的所述连通分量标识。

为了有效提高初始化着色处理的效率,并实现对账户资金转账网络图的自定义着色控制,有效提高账户资金转账网络图的着色的准确性,在本申请提供的账户资金转账网络图着色方法的一个实施例中,参见图4,所述账户资金转账网络图着色方法中的步骤200具体包含有如下内容:

步骤210:将各个所述节点的标识按照数值从小到大进行排列,并自数值最小的节点开始,在排列后的各个所述节点中选取第一预设数量的节点作为初始节点。

步骤220:应用预获取的自定义颜色数将各个所述初始节点各自对应的所述着色编号设置为节点自身的标识,并将各个所述初始节点各自对应的所述着色状态设置为已着色。

步骤230:将各个所述连通分量各自对应的所述代表节点的所述着色编号均设置为零,并将各个所述代表节点各自对应的所述着色状态设置为已着色。

为了进一步提高账户资金转账网络图的着色的准确性,在本申请提供的账户资金转账网络图着色方法的一个实施例中,参见图5,所述账户资金转账网络图着色方法中的步骤300具体包含有如下内容:

步骤310:将当前尚未着色的节点选定为目标节点。

步骤320:应用预设的pregel函数获取各个目标节点各自对应的已着色邻居节点。

步骤330:根据每个目标节点自身对应的已着色邻居节点生成该目标节点的颜色集合。

步骤340:自数值零开始遍历所述颜色集合,在未出现在该颜色集合中的数值中选取最小值作为该颜色集合对应的目标节点的目标颜色数值。

步骤350:分别将各个所述目标节点各自对应的所述着色编号设置为对应的目标颜色数值,并将各个所述目标节点各自对应的所述着色状态设置为已着色。

在前述步骤400的基础上,步骤400可以具体拆分为下述步骤,参见图6,所述账户资金转账网络图着色方法中的步骤400的拆分步骤具体可以包含有如下内容:

步骤410:对着色颜色相同的相邻节点进行择一删除颜色处理。

步骤420:判断当前尚未着色的节点进行着色处理的过程的执行次数等于或大于预设的迭代阈值,若否,则返回执行所述步骤300的将当前尚未着色的节点进行着色处理的过程,若是,则执行步骤430;

步骤430:输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图。

为了有效提高对着色颜色相同的相邻节点进行择一删除颜色处理的准确性,以进一步提高账户资金转账网络图的着色的准确性及效率,在本申请提供的账户资金转账网络图着色方法的一个实施例中,参见图7,所述账户资金转账网络图着色方法中的步骤410具体包含有如下内容:

步骤411:应用预设的pregel函数获取各个已着色节点各自对应的已着色邻居节点。

步骤412:在着色颜色相同的相邻节点中,删除标识数值较大的节点的所述着色编号的数值,并将该标识数值较大的节点的所述着色状态设置为未着色。

为了有效将误差控制在一定范围内,以进一步提高账户资金转账网络图的着色的准确性,在本申请提供的账户资金转账网络图着色方法的一个实施例中,参见图8,所述账户资金转账网络图着色方法中的步骤430之前还具体包含有如下内容:

步骤010:应用预设的着色误差计算函数确定所述节点着色图的着色误差率,其中,所述着色误差率为所述节点着色图中的起始节点和终止节点着色颜色相同的边的总数占所述节点着色图全图的边总数的比例。

相对应的,在所述输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图之时,还具体包含有步骤440:输出所述节点着色图的着色误差率。

为了有效提高目标账户资金转账网络图的社区划分的准确性,并能够提高基于所述目标账户资金转账网络图转账交易监控或异常识别的准确性及可靠性,在本申请提供的账户资金转账网络图着色方法的一个实施例中,参见图9,所述账户资金转账网络图着色方法中的步骤400之后还具体包含有如下内容:

步骤500:应用所述节点着色图,基于预设的louvain社区划分算法每次对着色颜色相同的节点进行迭代计算,得到所述目标账户资金转账网络图的社区划分结果。

步骤600:根据所述社区划分结果对所述目标账户资金转账网络图中的各个所述节点进行交易监控或异常识别。

为了进一步说明本方案,本申请还提供一应用基于spark/graphx的启发式近似图着色算法系统实现所述账户资金转账网络图着色方法的具体应用实例,本应用实例的算法基于spark的图计算框架graphx的并行计算模型pregel,能够快速对图节点进行近似着色。

参见图10,所述基于spark/graphx的启发式近似图着色算法系统包括四个模块:

(1)节点初始化着色模块2-1:输入原始边文件和预期染色数k,将节点id哈希映射到从0开始递增的整数后对少量节点进行初始化着色。

(2)传播着色模块2-2:输入节点初始化着色后的图,通过graphx的pregel方法,每个未着色节点收集已着色邻居颜色信息并着色。

(3)颜色冲突消解模块2-3:输入可能存在邻居颜色冲突的图,输出消除冲突后的图。

(4)着色误差计算模块2-4:输入着色完成的图,输出着色误差率。

其中,参见图11,应用基于spark/graphx的启发式近似图着色算法系统实现所述账户资金转账网络图着色方法的具体过程如下:

原始数据:准备网络图边文件数据,具体格式为文件每行以’边起点id+空格+边终点id’,例:13795462。指定颜色数为k。

步骤3-1:读取原始点边文件生成graphx格式的图,将所有节点id通过哈希表映射到从0开始的正整数并将节点的标签映射为自定义的数据类,其中包含颜色、是否上色和连通分量id这三种信息。数据结构的scala伪代码如下表1所示:

表1

步骤3-2:调用graphx的弱连通分量算法求出每个节点所属的连通分量,连通分量id默认设置为该分量中id最小的节点的id。

步骤3-3:将id分别为0,1......k-1的节点颜色编号设置为自身的id,并更改着色状态为已着色。此外,将每个连通分量中的代表点颜色设置为0,即最小编号颜色,其中代表点定义为节点id和所在连通分量id相同的节点。若全图为连通图,则只有0到k-1这k个点会被初始化,若存在多个连通分量,则初始化着色点的数目为k+q-1,其中q为连通分量个数。

步骤3-4:通过调用graphx的pregel函数,使每个未着色节点通过与之相连的边收集所有已着色邻居节点的颜色,构成一个颜色集合。

步骤3-5:对每个未上色节点选定颜色,采取如下策略:遍历由0开始的整数,选取最小的没有出现在邻居颜色集合的整数作为该节点的颜色,并将节点状态设置为已着色。

步骤3-6:进行消除相邻节点颜色冲突的调整:通过pregel函数收集已上色节点的已上色邻居,如果出现冲突,即相邻两点颜色相同(又同为已着色状态),则保留id较小节点的颜色,擦除id较大节点的颜色(状态设置为未着色)。

步骤3-7:若迭代次数小于指定次数则跳转回步骤3-4,其中迭代次数可选取与图的直径(图的直径定义为图中最长的最短路径)相同的量级,对一般的图可以设置为10;若迭代次数达到阈值则继续执行步骤3-8。

步骤3-8:结束着色过程,通过着色误差计算函数计算着色误差率,其中着色误差率定义为起点和终点颜色相同的边的总数占全图边总数的比例。

步骤3-9:终止程序,输出着色结果和着色误差率。

从上述描述可知,本申请应用实例提供的账户资金转账网络图着色方法,是一种基于spark/graphx的启发式并行近似图着色算法。相比于传统常用的串行式贪心图着色算法具有以下优势:

1.该应用实例的算法具有自定义性,能够以不大于自定义数k的颜色数对图进行着色,并且将误差控制在一定范围内,方便各种应用根据需要自定义选择;相对的,传统算法的颜色数不能自行控制,完全取决于图的结构,尤其碰到具有超大度数的超点的图,颜色数急剧膨胀,导致无法应用。

2.该应用实例的算法可以在较小的着色误差前提下采用非常少的颜色数对图进行着色,例如实际测试发现:对某最大度数为549的图,若采用传统算法,则需要550种颜色才能完成着色;相对的,该应用实例的算法采用9种颜色(k=9)实现着色时,着色误差已经为0.0。

3.该应用实例的算法完全基于spark的分布式并行图计算框架graphx,并主要采用pregel模型,能够以很快的速度完成各类大图的着色。单机对十万边级别图的着色时间为秒级。

从软件层面来说,为了实现对账户资金转账网络图的自定义着色控制,并能够将误差控制在一定范围内,能够有效提高账户资金转账网络图的着色的准确性,本申请还提供一种用于实现所述账户资金转账网络图着色方法中全部或分部内容的账户资金转账网络图着色装置的实施例,参见图12,所述账户资金转账网络图着色装置具体包含有如下内容:

标识及分量设置模块10,用于将目标账户资金转账网络图中的各个节点的标识分别设置为从零开始的自然数,并确定各个所述节点各自所属的连通分量,将所述连通分量的标识设置为该连通分量中的代表节点的标识的数值,其中,所述代表节点为对应的连通分量中的标识数值最小的节点。

初始化着色模块20,用于应用预获取的自定义颜色数对所述连通分量以及第一预设数量的节点进行初始化着色处理。

迭代着色模块30,用于将当前尚未着色的节点进行着色处理。

筛选及输出模块40,用于对着色颜色相同的相邻节点进行择一删除颜色处理,并返回执行所述将当前尚未着色的节点进行着色处理的过程,直至所述将当前尚未着色的节点进行着色处理的过程的执行次数等于或大于预设的迭代阈值之后,输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图。

为了给目标账户资金转账网络图进行节点着色提供可靠且准确的数据基础,并有效提高节点着色的效率,在本申请提供的账户资金转账网络图着色装置的一个实施例中,参见图13,所述账户资金转账网络图着色装置中的标识及分量设置模块10具体包含有如下内容:

文件数据接收单元11,用于接收账户资金转账网络图边文件数据以及预设的指定染色数。

网络图生成单元12,用于根据所述账户资金转账网络图边文件数据获取对应的graph格式的目标账户资金转账网络图,其中,所述目标账户资金转账网络图的节点与账户之间一一对应,相邻的节点之间的边用于表示对应的两个账户之间的转账关系。

表示映射单元13,用于将所述目标账户资金转账网络图中的各个节点的标识通过预设的哈希表映射到从零开始的自然数。

标签映射单元14,用于将各个所述节点的标签映射为自定义数据类型,其中,所述自定义数据类型包括:颜色编号、着色状态及连通分量标识。

为了各个所述节点各自所属的连通分量得获取可靠性及准确性,以进一步实现对账户资金转账网络图的自定义着色控制,在本申请提供的账户资金转账网络图着色装置的一个实施例中,参见图14,所述账户资金转账网络图着色装置中的标识及分量设置模块10中还具体包含有如下内容:

连通分量确定单元15,用于应用预设的弱连通分量算法分别确定各个所述节点各自所属的连通分量,并修改对应节点的所述连通分量标识。

为了有效提高初始化着色处理的效率,并实现对账户资金转账网络图的自定义着色控制,有效提高账户资金转账网络图的着色的准确性,在本申请提供的账户资金转账网络图着色装置的一个实施例中,参见图15,所述账户资金转账网络图着色装置中的初始化着色模块20具体包含有如下内容:

初始节点选取单元21,用于将各个所述节点的标识按照数值从小到大进行排列,并自数值最小的节点开始,在排列后的各个所述节点中选取第一预设数量的节点作为初始节点。

初始节点着色单元22,用于应用预获取的自定义颜色数将各个所述初始节点各自对应的所述着色编号设置为节点自身的标识,并将各个所述初始节点各自对应的所述着色状态设置为已着色。

代表节点着色单元23,用于将各个所述连通分量各自对应的所述代表节点的所述着色编号均设置为零,并将各个所述代表节点各自对应的所述着色状态设置为已着色。

为了进一步提高账户资金转账网络图的着色的准确性,在本申请提供的账户资金转账网络图着色装置的一个实施例中,参见图16,所述账户资金转账网络图着色装置中的迭代着色模块30具体包含有如下内容:

目标节点选定单元31,用于将当前尚未着色的节点选定为目标节点。

已着色邻居节点获取单元32,用于应用预设的pregel函数获取各个目标节点各自对应的已着色邻居节点。

颜色集合生成单元33,用于根据每个目标节点自身对应的已着色邻居节点生成该目标节点的颜色集合。

目标颜色选取单元34,用于自数值零开始遍历所述颜色集合,在未出现在该颜色集合中的数值中选取最小值作为该颜色集合对应的目标节点的目标颜色数值。

目标颜色着色单元35,用于分别将各个所述目标节点各自对应的所述着色编号设置为对应的目标颜色数值,并将各个所述目标节点各自对应的所述着色状态设置为已着色。

为了有效提高对着色颜色相同的相邻节点进行择一删除颜色处理的准确性,以进一步提高账户资金转账网络图的着色的准确性及效率,在本申请提供的账户资金转账网络图着色装置的一个实施例中,参见图17,所述账户资金转账网络图着色装置中的筛选及输出模块40具体包含有如下内容:

邻居节点获取单元41,用于应用预设的pregel函数获取各个已着色节点各自对应的已着色邻居节点。

择一删除单元42,用于在着色颜色相同的相邻节点中,删除标识数值较大的节点的所述着色编号的数值,并将该标识数值较大的节点的所述着色状态设置为未着色。

着色误差率获取模块01,用于应用预设的着色误差计算函数确定所述节点着色图的着色误差率,其中,所述着色误差率为所述节点着色图中的起始节点和终止节点着色颜色相同的边的总数占所述节点着色图全图的边总数的比例。

相对应的,还包括:着色误差率输出模块50,用于在所述输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图之时,还输出所述节点着色图的着色误差率。

为了有效提高目标账户资金转账网络图的社区划分的准确性,并能够提高基于所述目标账户资金转账网络图转账交易监控或异常识别的准确性及可靠性,在本申请提供的账户资金转账网络图着色装置的一个实施例中,参见图18,所述账户资金转账网络图着色装置中还具体包含有如下内容:

社区划分模块60,用于应用所述节点着色图,基于预设的louvain社区划分算法每次对着色颜色相同的节点进行迭代计算,得到所述目标账户资金转账网络图的社区划分结果。

交易监控或异常识别模块70,用于根据所述社区划分结果对所述目标账户资金转账网络图中的各个所述节点进行交易监控或异常识别。

从硬件层面来说,为了实现对账户资金转账网络图的自定义着色控制,并能够将误差控制在一定范围内,能够有效提高账户资金转账网络图的着色的准确性,本申请提供一种用于实现所述账户资金转账网络图着色方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:

处理器(processor)、存储器(memory)、通信接口(communicationsinterface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现电子设备与用户终端以及相关数据库等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例中的账户资金转账网络图着色方法的实施例,以及,账户资金转账网络图着色装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。

图19为本申请实施例的电子设备9600的系统构成的示意框图。如图19所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图19是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。

在一实施例中,账户资金转账网络图着色功能可以被集成到中央处理器中。其中,中央处理器可以被配置为进行如下控制:

步骤100:将目标账户资金转账网络图中的各个节点的标识分别设置为从零开始的自然数,并确定各个所述节点各自所属的连通分量,将所述连通分量的标识设置为该连通分量中的代表节点的标识的数值,其中,所述代表节点为对应的连通分量中的标识数值最小的节点。

步骤200:应用预获取的自定义颜色数对所述连通分量以及第一预设数量的节点进行初始化着色处理。

在步骤200中,所述预获取的自定义颜色数即为前述提及的自定义k色中的k。

步骤300:将当前尚未着色的节点进行着色处理。

步骤400:对着色颜色相同的相邻节点进行择一删除颜色处理,并返回执行所述将当前尚未着色的节点进行着色处理的过程,直至所述将当前尚未着色的节点进行着色处理的过程的执行次数等于或大于预设的迭代阈值之后,输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图。

从上述描述可知,本申请实施例提供的电子设备,能够在一定误差内对各类图进行节点着色,能够实现对账户资金转账网络图的自定义着色控制,能够有效提高图着色过程的可靠性,并能够将误差控制在一定范围内,能够有效提高账户资金转账网络图的着色的准确性,进而能够有效提高目标账户资金转账网络图的社区划分的准确性,并能够提高基于所述目标账户资金转账网络图转账交易监控或异常识别的准确性及可靠性。

在另一个实施方式中,账户资金转账网络图着色装置可以与中央处理器9100分开配置,例如可以将账户资金转账网络图着色装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现账户资金转账网络图着色功能。

如图19所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图19中所示的所有部件;此外,电子设备9600还可以包括图19中没有示出的部件,可以参考现有技术。

如图19所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。

其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。

输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为lcd显示器,但并不限于此。

该存储器9140可以是固态存储器,例如,只读存储器(rom)、随机存取存储器(ram)、sim卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为eprom等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。

存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。

通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。

基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。

本申请的实施例还提供能够实现上述实施例中的账户资金转账网络图着色方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的账户资金转账网络图着色方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

步骤100:将目标账户资金转账网络图中的各个节点的标识分别设置为从零开始的自然数,并确定各个所述节点各自所属的连通分量,将所述连通分量的标识设置为该连通分量中的代表节点的标识的数值,其中,所述代表节点为对应的连通分量中的标识数值最小的节点。

步骤200:应用预获取的自定义颜色数对所述连通分量以及第一预设数量的节点进行初始化着色处理。

在步骤200中,所述预获取的自定义颜色数即为前述提及的自定义k色中的k。

步骤300:将当前尚未着色的节点进行着色处理。

步骤400:对着色颜色相同的相邻节点进行择一删除颜色处理,并返回执行所述将当前尚未着色的节点进行着色处理的过程,直至所述将当前尚未着色的节点进行着色处理的过程的执行次数等于或大于预设的迭代阈值之后,输出所述目标账户资金转账网络图对应的用于进行账户节点社区划分的节点着色图。

从上述描述可知,本申请实施例提供的计算机可读存储介质,能够在一定误差内对各类图进行节点着色,能够实现对账户资金转账网络图的自定义着色控制,能够有效提高图着色过程的可靠性,并能够将误差控制在一定范围内,能够有效提高账户资金转账网络图的着色的准确性,进而能够有效提高目标账户资金转账网络图的社区划分的准确性,并能够提高基于所述目标账户资金转账网络图转账交易监控或异常识别的准确性及可靠性。

本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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