具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的群组定位方法、用于资金交易网络中风险群组的定位方法以及装置。
图1是根据本申请一个实施例的群组定位方法的流程图。需要说明的是,本申请实施例的群组定位方法可应用于各种具有关系网络的应用程序或平台上,只要存在多个个体或用户、且个体或用户之间存在关系而组成的关系网络,即可通过本申请实施例的群组定位方法,来识别出已给定个体之间存在潜在关系的目标群组。该目标群组可理解为由多个个体或用户以及各个个体或用户之间存在关联关系而组成的网络。
如图1所示,该群组定位方法可以包括:
S110,根据预设的目标网络维度确定关系网络的标签传播次数。
其中,在本申请的实施例中,假设目标网络维度可用N表示,则N可理解为用于指示定位已知个体(如第一个体)之间N维度以内的群组,也就是说,待定位的目标群组中已知个体节点(如第一节点)之间的网络路径最大距离为N。
可以理解,关系网络是通过不同场景的互动而形成的网络体系,如在资金交易中付款方和收款方构成关系,或两个用户使用相同的手机也可构成关系等。例如,以关系网络为资金交易网络为例,假设有一笔资金500元从用户A流向用户B,则用户A与用户B的网络距离即为1维度,当有大量的用户进行交易时,便可产生一个高度复杂的资金交易网络。
需要说明的是,为了减少遍历关系网络的次数,降低群组定位过程中所产生的计算资源,本申请实施例通过类似标签传播的方式进行群组定位,首先,可先根据目标网络维度确定在关系网络中进行标签传播的次数,该标签传播次数可通过如下公式获得:标签传播次数=[(N+1)/2],其中,N为目标网络维度,N为正整数,[]表示取整。
S120,从关系网络中的第一节点开始,按照标签传播次数,依次通过邻接节点向其他邻接节点进行标签传播,其中,标签用于指示标签接收节点与第一节点之间的距离。
可以理解,上述第一节点可以是预设的已知个体在关系网络中所对应的节点。在本申请的一个实施例中,在步骤S120之前,该群组定位方法还可包括:获取预设的目标群组中的第一个体的信息,并根据该第一个体的信息确定第一个体在关系网络中所对应的第一节点。其中,该第一个体可以是账户,还可以是其他信息,例如终端等,第一个体的信息可以是该个体的编号、ID等标识信息。可以理解,上述第一个体即为预设的已知个体,本申请的目的即为根据预设的已知个体以及预设的目标网络维度找到已知个体之间的目标网络维度的目标群组。还可以理解,上述第一节点的数量为多个。
在找到第一个体在关系网络中所对应的第一节点之后,可以第一节点为起始节点,分别向邻接节点发送自身标签,当其它节点接收到第一节点的标签时,可根据当前节点是否为第一节点进行不同转发标签的操作,直至标签的转发次数达到标签传播次数为止。
举例而言,在本申请的实施例中,假设目标网络维度N为4,也就是说,以定位第一节点之间4维度以内的目标群组为例,如图2和图4(a)-(c)所示,从关系网络中的第一节点开始,按照标签传播次数,依次通过邻接节点向其他邻接节点进行标签传播(即步骤S120)的具体实现过程可包括:
S121,对关系网络中的所有节点的标签内容进行初始化。
为了保证定位结果的准确度,在进行标签传播之前,可先对关系网络中的所有节点进行初始化,即可对关系网络中的所有节点的标签内容进行初始化,例如,可为所有节点的标签分配初始标签,或者将所有节点的标签内容设置为空等。
S122,以第一节点为起始节点,分别向邻接节点传播标签,其中,标签的内容包括第一节点的编号。
例如,如图4(a)所示,假设节点A、节点B和节点C为第一节点(即已知个体的节点),在本步骤中,可以节点A、B、C为起始节点,分别向这些节点的邻接节点发送标签,标签内容对应如[A,1]、[B,1]、[C,1],其中,A、B、C分别代表本实施例提到的第一节点的编号,1代表标签接收节点到第一节点的距离值。如图4(b)所示,节点之间的箭头即表示当前节点向邻接节点发送标签。
S123,当邻接节点接收到标签时,判断邻接节点是否属于第一节点。
具体地,当邻接节点接收到标签时,可将各自接收到的标签内容进行记录。例如,以图4(a)所示的关系网络为例,接收到标签的节点保留标签内容,如下面表1所示,即为接收到标签的节点以及所接收到的标签的内容:
表1接收到标签的节点
节点 |
收到的标签 |
节点 |
收到的标签 |
A |
[B,1] |
11 |
[B,1] |
B |
[A,1] |
4 |
[C,1] |
1 |
[A,1] |
6 |
[C,1] |
5 |
[A,1] |
9 |
[C,1] |
7 |
[A,1] |
12 |
[B,1],[C,1] |
需要说明的是,在本申请的实施例中,如果邻接节点属于第一节点,则不转发该邻接节点所接收到的标签。例如,如上述表1可以看出,节点A和节点B可以不需要转发其接收的标签。
S124,如果邻接节点不属于第一节点,则将邻接节点接收到的标签传播给与邻接节点相邻的邻接节点。
例如,以上述表1为例,可节点1、5、7、11、4、6、9及12级将自身接收到的标签发送给与自身相邻的邻接节点,并且,在发送的过程中,将发送的标签的内容中的距离值加1,也就是说,此时接收到标签的节点,该节点所对应的标签中包含了该节点到第一节点的距离值。如图4(c)所示,节点之间的箭头即表示当前节点向邻接节点发送标签。控制接收到的标签的节点保留标签内容,此时,所有接收到标签的节点其标签内容可如下表2所示:
表2接收到标签的节点
节点 |
收到的标签 |
节点 |
收到的标签 |
A |
[B,1] |
11 |
[B,1] |
B |
[A,1] |
4 |
[C,1] |
1 |
[A,1] |
6 |
[A,2]、[C,1] |
5 |
[A,1]、[C,2] |
9 |
[C,1] |
7 |
[A,1] |
12 |
[B,1],[C,1] |
2 |
[A,2] |
3 |
[C,2] |
8 |
[A,2]、[C,2] |
10 |
[B,2] |
S125,重复执行步骤S123和步骤S124,直至重复执行的次数达到标签传播次数。
也就是说,在执行步骤S124之后,可判断此时标签的传播次数是否已达到标签传播次数,如果是,则停止标签传播操作,否则重复执行步骤123和步骤S124。
例如,假设目标网络维度N为4,则标签传播次数为[(4+1)/2]=2,也就是说,目标是找到第一节点之间的4度网络的目标群组,则只需发送2轮标签,可停止标签发送。可以理解,如果目标是找到输入个体之间的6度网络,则可发送3轮标签即可,如果目标是找到输入的个体之间的8度网络,则可发送4轮标签即可等。
还可以理解,在本申请的实施例中,将标签传播次数设置为[(N+1)/2],是由于在进行[(N+1)/2]轮标签传播之后,此时关系网络中已经存在至少一个节点具有至少两个标签,例如,以如图4(c)中的节点8为例,节点8具有节点A标签以及节点C标签,并且,节点8到节点A标签中所指示的距离与节点8到节点C标签中所指示的距离的总和即为目标网络维度N。由此,可以看出,通过标签传播的方式,同时从第一节点出发向邻接节点传播标签,只需[(N+1)/2]轮标签传播即可找到与第一节点具有潜在关系的节点,减少了遍历次数,降低计算资源。
S130,从关系网络中获取接收到至少两个标签的第二节点,以及位于第二节点与第一节点之间的第三节点。
在标签传播结束之后,可从关系网络中找到接收到至少两个标签的节点,其中,该节点不属于第一节点(即已知的个体节点),并将该节点作为第二节点。
可以理解,在本实施例中,可通过标记节点的状态信息以实现第三节点的获取。具体而言,在本申请的一个实施例中,关系网络中的所有节点具有状态信息,在从关系网络中获取位于第二节点与第一节点之间的第三节点之前,还可对关系网络中的所有节点的状态信息分配初始状态,并对第二节点的初始状态更新为第一状态。
也就是说,可为关系网络中的每个节点标记状态信息,首先,对关系网络中的每个节点的状态信息分配初始状态,例如,将每个节点的状态置为0,然后,对获取到的第二节点的状态信息更新为第一状态。例如,以上述表2为例,找出拥有至少2个标签的第二节点,如节点5、6、8、12,并将节点5、6、8、12的状态信息由初始状态更新为第一状态,如第一状态可标记为1。
在本申请的实施例中,可根据第一状态从关系网络中获取位于第二节点与第一节点之间的第三节点。具体地,可以状态信息为第一状态的节点为起始节点,分别向邻接节点发送第一状态,直至第一状态的传播次数达到状态传播次数为止。
举例而言,在本申请的实施例中,假设目标网络维度N为4,也就是说,以定位第一节点之间4维度以内的目标群组为例,如图3和图4(d)-(f)所示,从关系网络中获取位于第二节点与第一节点之间的第三节点的具体实现过程可包括:
S131,根据预设的目标网络维度确定关系网络的状态传播次数。
其中,在本申请的实施例中,该状态传播次数可通过如下公式获得:状态传播次数=[(N-1)/2],其中,N为目标网络维度,N为正整数,[]表示取整。可以理解,标签传播次数与状态传播次数的差值为1。也就是说,在整个目标群组的定位过程中,只需进行N-1轮信息的传播即可定位到第一节点之间存在潜在关系的群组,其中,N为目标网络维度。
S132,基于关系网络,以状态信息为第一状态的节点为起始节点,分别向与起始节点拥有同编号的邻接节点发送第一状态,其中,起始节点的标签与数值1的差值等于邻接节点的标签。
具体地,基于关系网络,以状态信息为第一状态的节点为起始节点,分别向它的邻接节点发送第一状态,其中,该邻接节点需满足如下两个条件:a)至少包含1个与当前节点(即起始节点)一样的第一节点的编号;b)d起始节点距离同编号的距离-1=d邻接节点距离同编号的距离。
例如,以上述表2为例,状态信息为第一状态的节点为节点5、6、8、12,而这些节点可向其拥有相同编号的邻接节点发送第一状态,其中,节点12的邻接节点都是第一节点,可不发送第一状态,这是因为发送状态是为了找到与第一节点关联的潜在节点,而第一节点是已知节点,可无需将该节点的状态进行更新,可减少计算资源;节点5的邻接节点A是第一节点,节点6状态以为第一状态,因此节点5可不发送第一状态;节点6的邻接节点C是第一节点,节点3虽然与节点6有同编号C,但节点3到节点C的距离值为2,节点6到节点C的距离值为1,不满足上述邻接节点的条件,因此节点6可不发送第一状态;节点8向节点7和节点9发送第一状态,如图4(d)所示,节点之间的箭头表示当前节点向邻接节点发送第一状态。
S133,将接收到第一状态的节点的状态信息更新为第一状态。
例如,以如图4(d)所示,将接收到第一状态的节点的状态信息更新为第一状态,此时,节点7、节点9也与其他状态第一状态节点具有相同的状态,若用图表示的,则可参照如图4(e)所示,以将状态为第一状态的节点与其他节点进行区分。
S134,重复执行步骤S132和步骤S133,直至重复执行的次数达到状态传播次数。
也就是说,在执行步骤S133之后,可判处此时状态传播的次数是否已达到状态传播次数,如果是,则停止状态传播,并继续执行下述步骤S135,否则重复执行步骤132和步骤S133,直至状态的传播次数达到状态传播次数。
S135,从关系网络中获取状态信息为第一状态的节点,并将节点作为第三节点,其中,该节点不属于第二节点。
也就是说,在获取到第二节点之后,可通过状态传播的方式,从关系网络中的第二节点开始,按照状态传播次数,依次通过邻接节点向其他邻接节点进行状态传播,从而从关系网络中获取到状态信息更新为第一状态的第三节点。可以理解,该第三节点即为第二节点与第一节点之间的所有节点。
由此,通过类似标签传播以及状态传播的方式,仅需较少的计算资源就能够快速地批量定位复杂关系网络中的第一节点之间潜在关系的目标群组。
S140,根据第一节点、第二节点以及第三节点确定目标群组。
具体而言,可从关系网络中提取第一节点、第二节点以及第三节点中的各个节点之间的关联关系,并根据第一节点、第二节点、第三节点以及该关联关系确定第一节点之间存在潜在关系的目标群组。
综上,本申请实施例的群组定位方法只需要目标网络维度N-1轮消息(如标签以及状态)传播过程即可筛选出第一节点之间存在潜在关系的目标群组,并保证不会误杀正常的个体节点,例如,如图4(a)所示中的节点1、2、3、4、10、11。与传统的穷举所有网络路径的算法相比,本申请需要的内存和计算资源非常少,可应用于实时的交易监控环境中,还能够同时识别出多个风险个体构成的超大风险群组。
本申请实施例的群组定位方法,可先根据预设的目标网络维度确定关系网络的标签传播次数,之后,从关系网络中的第一节点开始,按照标签传播次数依次通过邻接节点向其他邻接节点进行标签传播,然后,从关系网络中获取接收到至少两个标签的第二节点,以及位于第二节点与第一节点之间的第三节点,最后,根据第一节点、述第二节点以及第三节点确定第一节点之间存在潜在关联关系的目标群组。实现了利用类标签传播算法实时地发现批量输入已知个体节点(如上述的第一节点)间潜在的联系和社团群组,彻底挖掘出隐藏的已知个体之间组成的整个社团和关系链路,并且,在整个过程中,无需考虑个体节点间关系的动态变化对模型鲁棒性和自适应性的影响,降低了计算资源和存储资源,提高了定位效率以及定位结果的准确性。
与上述几种实施例提供的群组定位方法相对应,本申请的一种实施例还提供一种群组定位装置,由于本申请实施例提供的群组定位装置与上述几种实施例提供的群组定位方法相对应,因此在前述群组定位方法的实施方式也适用于本实施例提供的群组定位装置,在本实施例中不再详细描述。图5是根据本申请一个实施例的群组定位装置的结构框图。如图5所示,该群组定位装置可以包括:标签传播次数确定模块110、标签传播模块120、第一获取模块130和群组确定模块140。
具体地,标签传播次数确定模块110可用于根据预设的目标网络维度确定关系网络的标签传播次数。
标签传播模块120可用于从关系网络中的第一节点开始,按照标签传播次数,依次通过邻接节点向其他邻接节点进行标签传播,其中,标签用于指示标签接收节点与第一节点之间的距离。
具体而言,在本申请的实施例中,标签传播模块120从关系网络中的第一节点开始,按照标签传播次数,依次通过邻接节点向其他邻接节点进行标签传播的具体实现过程可如下:
S11,对关系网络中的所有节点的标签内容进行初始化。
S12,以第一节点为起始节点,分别向邻接节点传播标签,其中,标签的内容包括第一节点的编号。
S13,当邻接节点接收到标签时,判断邻接节点是否属于第一节点。
S14,如果邻接节点不属于第一节点,则将邻接节点接收到的标签传播给与邻接节点相邻的邻接节点。
S15,重复执行步骤S13和步骤S14,直至重复执行的次数达到标签传播次数。
第一获取模块130可用于从关系网络中获取接收到至少两个标签的第二节点,以及位于第二节点与第一节点之间的第三节点。
具体而言,在本申请的实施例中,关系网络中的所有节点具有状态信息,如图6所示,该装置还可包括:初始化模块150和状态更新模块160。其中,初始化模块150可用于在第一获取模块130从关系网络中获取位于第二节点与第一节点之间的第三节点之前,对关系网络中的所有节点的状态信息分配初始状态。状态更新模块160可用于对第二节点的初始状态更新为第一状态。
在本申请的实施例中,第一获取模块130根据第一状态从关系网络中获取位于第二节点与第一节点之间的第三节点的具体实现过程可如下:
S21,根据预设的目标网络维度确定关系网络的状态传播次数;
S22,基于关系网络,以状态信息为第一状态的节点为起始节点,分别向与起始节点拥有同编号的邻接节点发送第一状态,其中,起始节点的标签与数值1的差值等于邻接节点的标签;
S23,将接收到第一状态的节点的状态信息更新为第一状态;
S24,重复执行步骤S22和步骤S23,直至重复执行的次数达到状态传播次数;
S25,从关系网络中获取状态信息为第一状态的节点,并将节点作为第三节点,其中,节点不属于第二节点。
群组确定模块140可用于根据第一节点、第二节点以及第三节点确定目标群组。具体而言,在本申请的实施例中,如图7所示,群组确定模块140可包括:提取单元141和确定单元142。其中,提取单元141可用于从关系网络中提取第一节点、第二节点以及第三节点中的各个节点之间的关联关系。确定单元142用于根据第一节点、第二节点、第三节点以及关联关系确定目标群组。
进一步,在本申请的一个实施例中,如图8所示,该群组定位装置还可包括:第二获取模块170和第一节点确定模块180。
其中,第二获取模块170可用于在标签传播模块120从关系网络中的第一节点开始,按照标签传播次数,依次通过邻接节点向其他邻接节点进行标签传播之前,获取预设的目标群组中的第一个体的信息。
第一节点确定模块180可用于根据第一个体的信息确定第一个体在关系网络中所对应的第一节点。
本申请实施例的群组定位装置,实现了利用类标签传播算法实时地发现批量输入已知个体节点(如上述的第一节点)间潜在的联系和社团群组,彻底挖掘出隐藏的已知个体之间组成的整个社团和关系链路,并且,在整个过程中,无需考虑个体节点间关系的动态变化对模型鲁棒性和自适应性的影响,降低了计算资源和存储资源,提高了定位效率以及定位结果的准确性。
可以看出,本申请提出了一种通用的快速定位给定个体间潜在联系的方法,能够应用于各种具有关系网络的应用程序或平台上,从而能够在复杂的关系网络中实时精准地发现多个个体间的目标群组。为了在反洗钱领域中可有效地防范遏制犯罪分子的非法金融活动,保证正常用户的资金安全,本申请还提出了一种用于资金交易网络中风险群组的定位方法,即利用类似上述方法的思想,来实现在资金交易网络中快速定位已给定风险个体之间团伙关系。
图9是根据本申请一个实施例的用于资金交易网络中风险群组的定位方法的流程图。需要说明的是,本申请实施例的用于资金交易网络中风险群组的定位方法可应用于反洗钱应用程序或平台上。
如图9所示,该用于资金交易网络中风险群组的定位方法可以包括:
S910,根据预设的风险网络维度确定资金交易网络的标签传播次数。
其中,在本申请的实施例中,假设风险网络维度可用N表示,则N可理解为用于指示定位已知风险个体(如第一风险个体)之间N维度以内的风险群组,也就是说,待定位的风险群组中已知风险个体节点(如第一风险节点)之间的网络路径最大距离为N。
可以理解,资金交易网络可为在资金交易中付款方和收款方构成关系。例如,假设有一笔资金500元从用户A流向用户B,则用户A与用户B的网络距离即为1度,当有大量的用户进行交易时,便可产生一个高度复杂的资金交易网络。
需要说明的是,为了减少遍历资金交易网络的次数,降低风险群组定位过程中所产生的计算资源,本申请实施例通过类似标签传播的方式进行风险群组定位,首先,可先根据风险网络维度确定在资金交易网络中进行标签传播的次数,该标签传播次数可通过如下公式获得:标签传播次数=[(N+1)/2],其中,N为风险网络维度,N为正整数,[]表示取整。
S920,资金交易网络的第一风险节点开始,按照标签传播次数,依次通过邻接节点向其他邻接节点进行标签传播,其中,标签用于指示标签接收节点与第一风险节点之间的距离。
可以理解,上述第一风险节点可以是预设的已知风险个体在资金交易网络中所对应的节点。在本申请的一个实施例中,在步骤S920之前,该风险群组定位方法还可包括:获取预设的风险群组中的第一风险个体的信息,并根据该第一风险个体的信息确定第一个体在资金交易网络中所对应的第一风险节点。其中,该第一风险个体可以是账户,还可以是其他信息,例如终端等,第一风险个体的信息可以是该风险个体的编号、ID等标识信息。可以理解,上述第一风险个体即为预设的已知风险个体,本申请的目的即为根据预设的已知风险个体以及预设的风险网络维度找到已知风险个体之间的风险网络维度的风险群组。还可以理解,上述第一风险节点的数量为多个。
在找到第一风险个体在关系网络中所对应的第一风险节点之后,可以第一风险节点为起始节点,分别向邻接节点发送自身标签,当其它节点接收到第一风险节点的标签时,可根据当前节点是否为第一风险节点进行不同转发标签的操作,直至标签的转发次数达到标签传播次数为止。
举例而言,在本申请的实施例中,假设风险网络维度N为4,也就是说,以定位第一风险节点之间4维度以内的风险群组为例,如图10和图12(a)-(c)所示,从资金交易网络中的第一风险节点开始,按照标签传播次数,依次通过邻接节点向其他邻接节点进行标签传播(即步骤S920)的具体实现过程可包括:
S921,对资金交易网络中的所有节点的标签内容进行初始化。
为了保证定位结果的准确度,在进行标签传播之前,可先对资金交易网络中的所有节点进行初始化,即可对资金交易网络中的所有节点的标签内容进行初始化,例如,可为所有节点的标签分配初始标签,或者将所有节点的标签内容设置为空等。
S922,以第一风险节点为起始节点,分别向邻接节点传播标签,其中,标签的内容包括第一风险节点的编号。
例如,如图12(a)所示,假设节点A、节点B和节点C为第一风险节点(即已知风险个体的节点),在本步骤中,可以风险节点A、B、C为起始节点,分别向这些节点的邻接节点发送标签,标签内容对应如[A,1]、[B,1]、[C,1],其中,A、B、C分别代表本实施例提到的第一风险节点的编号,1代表标签接收节点到第一风险节点的距离值。如图12(b)所示,节点之间的箭头即表示当前节点向邻接节点发送标签。
S923,当邻接节点接收到标签时,判断邻接节点是否属于第一风险节点。
具体地,当邻接节点接收到标签时,可将各自接收到的标签内容进行记录。例如,以图12(a)所示的资金交易网络为例,接收到标签的节点保留标签内容,如下面表1所示,即为接收到标签的节点以及所接收到的标签的内容:
表1接收到标签的节点
节点 |
收到的标签 |
节点 |
收到的标签 |
A |
[B,1] |
11 |
[B,1] |
B |
[A,1] |
4 |
[C,1] |
1 |
[A,1] |
6 |
[C,1] |
5 |
[A,1] |
9 |
[C,1] |
7 |
[A,1] |
12 |
[B,1],[C,1] |
需要说明的是,在本申请的实施例中,如果邻接节点属于第一风险节点,则不转发该邻接节点所接收到的标签。例如,如上述表1可以看出,节点A和节点B可以不需要转发其接收的标签。
S924,如果邻接节点不属于第一风险节点,则将邻接节点接收到的标签传播给与邻接节点相邻的邻接节点。
例如,以上述表1为例,可节点1、5、7、11、4、6、9及12级将自身接收到的标签发送给与自身相邻的邻接节点,并且,在发送的过程中,将发送的标签的内容中的距离值加1,也就是说,此时接收到标签的节点,该节点所对应的标签中包含了该节点到第一风险节点的距离值。如图12(c)所示,节点之间的箭头即表示当前节点向邻接节点发送标签。控制接收到的标签的节点保留标签内容,此时,所有接收到标签的节点其标签内容可如下表2所示:
表2接收到标签的节点
节点 |
收到的标签 |
节点 |
收到的标签 |
A |
[B,1] |
11 |
[B,1] |
B |
[A,1] |
4 |
[C,1] |
1 |
[A,1] |
6 |
[A,2]、[C,1] |
5 |
[A,1]、[C,2] |
9 |
[C,1] |
7 |
[A,1] |
12 |
[B,1],[C,1] |
2 |
[A,2] |
3 |
[C,2] |
8 |
[A,2]、[C,2] |
10 |
[B,2] |
S925,重复执行步骤S923和步骤S924,直至重复执行的次数达到标签传播次数。
也就是说,在执行步骤S924之后,可判断此时标签的传播次数是否已达到标签传播次数,如果是,则停止标签传播操作,否则重复执行步骤923和步骤S924。
例如,假设风险网络维度N为4,则标签传播次数为[(4+1)/2]=2,也就是说,目标是找到第一风险节点之间的4度网络的风险群组,则只需发送2轮标签,可停止标签发送。可以理解,如果目标是找到已知风险个体之间的6度网络,则可发送3轮标签即可,如果目标是找到已知风险个体之间的8度网络,则可发送4轮标签即可等。
还可以理解,在本申请的实施例中,将标签传播次数设置为[(N+1)/2],是由于在进行[(N+1)/2]轮标签传播之后,此时资金交易网络中已经存在至少一个节点具有至少两个标签,例如,以如图4(c)中的节点8为例,节点8具有节点A标签以及节点C标签,并且,节点8到节点A标签中所指示的距离与节点8到节点C标签中所指示的距离的总和即为风险网络维度N。由此,可以看出,通过标签传播的方式,同时从第一风险节点出发向邻接节点传播标签,只需[(N+1)/2]轮标签传播即可找到与第一风险节点具有潜在关系的节点,减少了遍历次数,降低计算资源。
S930,从资金交易网络中获取接收到至少两个标签的第二风险节点,以及位于第二风险节点与第一风险节点之间的第三风险节点。
在标签传播结束之后,可从资金交易网络中找到接收到至少两个标签的节点,其中,该节点不属于第一风险节点(即已知的风险个体节点),并将该节点作为第二风险节点。
可以理解,在本实施例中,可通过标记节点的状态信息以实现第三风险节点的获取。具体而言,在本申请的一个实施例中,资金交易网络中的所有节点具有状态信息,在从资金交易网络中获取位于第二风险节点与第一风险节点之间的第三风险节点之前,还可对资金交易网络中的所有节点的状态信息分配初始状态,并对第二风险节点的初始状态更新为第一状态。
也就是说,可为资金交易网络中的每个节点标记状态信息,首先,对资金交易网络中的每个节点的状态信息分配初始状态,例如,将每个节点的状态置为0,然后,对获取到的第二风险节点的状态信息更新为第一状态。例如,以上述表2为例,找出拥有至少2个标签的第二风险节点,如节点5、6、8、12,并将节点5、6、8、12的状态信息由初始状态更新为第一状态,如第一状态可标记为1。
在本申请的实施例中,可根据第一状态从资金交易网络中获取位于第二风险节点与第一风险节点之间的第三风险节点。具体地,可以状态信息为第一状态的节点为起始节点,分别向邻接节点发送第一状态,直至第一状态的传播次数达到状态传播次数为止。
举例而言,在本申请的实施例中,假设目标网络维度N为4,也就是说,以定位第一风险节点之间4维度以内的风险群组为例,如图11和图12(d)-(f)所示,从资金交易网络中获取位于第二风险节点与第一风险节点之间的第三风险节点的具体实现过程可包括:
S931,根据预设的风险网络维度确定资金交易网络的状态传播次数。
其中,在本申请的实施例中,该状态传播次数可通过如下公式获得:状态传播次数=[(N-1)/2],其中,N为风险网络维度,N为正整数,[]表示取整。可以理解,标签传播次数与状态传播次数的差值为1。也就是说,在整个风险群组的定位过程中,只需进行N-1轮信息的传播即可定位到潜伏在第一风险节点之间的风险群组,其中,N为风险网络维度。
S932,基于资金交易网络,以状态信息为第一状态的节点为起始节点,分别向与起始节点拥有同编号的邻接节点发送第一状态,其中,起始节点的标签与数值1的差值等于邻接节点的标签。
具体地,基于资金交易网络,以状态信息为第一状态的节点为起始节点,分别向它的邻接节点发送第一状态,其中,该邻接节点需满足如下两个条件:a)至少包含1个与当前节点(即起始节点)一样的第一风险节点的编号;b)d起始节点距离同编号的距离-1=d邻接节点距离同编号的距离。
例如,以上述表2为例,状态信息为第一状态的节点为节点5、6、8、12,而这些节点可向其拥有相同编号的邻接节点发送第一状态,其中,节点12的邻接节点都是第一风险节点,可不发送第一状态,这是因为发送状态是为了找到与第一风险节点关联的潜在节点,而第一风险节点是已知节点,可无需将该节点的状态进行更新,可减少计算资源;节点5的邻接节点A是第一风险节点,节点6状态以为第一状态,因此节点5可不发送第一状态;节点6的邻接节点C是第一风险节点,节点3虽然与节点6有同编号C,但节点3到节点C的距离值为2,节点6到节点C的距离值为1,不满足上述邻接节点的条件,因此节点6可不发送第一状态;节点8向节点7和节点9发送第一状态,如图12(d)所示,节点之间的箭头表示当前节点向邻接节点发送第一状态。
S933,将接收到第一状态的节点的状态信息更新为第一状态。
例如,以如图12(d)所示,将接收到第一状态的节点的状态信息更新为第一状态,此时,节点7、节点9也与其他状态第一状态节点具有相同的状态,若用图表示的,则可参照如图12(e)所示,以将状态为第一状态的节点与其他节点进行区分。
S934,重复执行步骤S932和步骤S933,直至重复执行的次数达到状态传播次数。
也就是说,在执行步骤S933之后,可判处此时状态传播的次数是否已达到状态传播次数,如果是,则停止状态传播,并继续执行下述步骤S935,否则重复执行步骤932和步骤S933,直至状态的传播次数达到状态传播次数。
S935,从资金交易网络中获取状态信息为第一状态的节点,并将节点作为第三风险节点,其中,节点不属于第二风险节点。
也就是说,在获取到第二风险节点之后,可通过状态传播的方式,从资金交易网络中的第二风险节点开始,按照状态传播次数,依次通过邻接节点向其他邻接节点进行状态传播,从而从资金交易网络中获取到状态信息更新为第一状态的第三风险节点。可以理解,该第三风险节点即为第二风险节点与第一风险节点之间的所有节点。
由此,通过类似标签传播以及状态传播的方式,仅需较少的计算资源就能够快速地批量定位复杂资金交易网络中的潜伏在第一风险节点之间的风险群组。
S940,根据第一风险节点、第二风险节点以及第三风险节点确定风险群组。
具体而言,可从资金交易网络中提取第一风险节点、第二风险节点以及第三风险节点中的各个节点之间的关联关系,并根据第一风险节点、第二风险节点、第三风险节点以及该关联关系确定潜伏在第一风险节点之间的风险群组。
综上,本申请实施例的风险群组定位方法只需要风险网络维度N-1轮消息(如标签以及状态)传播过程即可筛选出潜伏在第一风险节点之间的风险群组,并保证不会误杀正常的个体节点,例如,如图12(a)所示中的节点1、2、3、4、10、11。与传统的穷举所有网络路径的算法相比,本申请需要的内存和计算资源非常少,可应用于实时的交易监控环境中,还能够同时识别出多个风险个体构成的超大风险群组。由此可以了解,本申请的风险群组定位的算法复杂度所需要的硬件需求远小于传统的路径探索方法。
需要说明的是,在实际的应用中,可采用Apache Spark实时计算平台,利用GraphX计算框架实现本申请提出的风险群组的定位方法,在挖掘盗案账号和洗钱账号间潜在的风险群组时可以取得显著的效果,产品功能可支持审理和监控人员实时快速地定位风险群组,保证了正常用户的资金安全,营造了更可靠的网络交易环境。
本申请实施例的用于资金交易网络中风险群组的定位方法,可先根据预设的风险网络维度确定资金交易网络的标签传播次数,之后,从资金交易网络的第一风险节点开始,按照标签传播次数依次通过邻接节点向其他邻接节点进行标签传播,然后,从资金交易网络中获取接收到至少两个标签的第二风险节点,以及位于第二风险节点与第一风险节点之间的第三风险节点,最后,根据第一风险节点、第二风险节点以及第三风险节点确定第一风险节点之间存在潜在交易关系的风险群组。实现了利用类标签传播算法实时地发现批量输入已知风险个体节点间潜在的资金交易关系和风险群组,彻底挖掘出隐藏的已知风险个体之间组成的整个社团和关系链路,并且,在整个过程中,无需考虑个体节点间关系的动态变化对模型鲁棒性和自适应性的影响,降低了计算资源和存储资源,提高了定位效率以及定位结果的准确性,从而可以有效地防范遏制犯罪分子的非法金融活动,同时保证了正常用户的资金安全。
与上述几种实施例提供的用于资金交易网络中风险群组的定位方法相对应,本申请的一种实施例还提供一种用于资金交易网络中风险群组的定位装置,由于本申请实施例提供的用于资金交易网络中风险群组的定位装置与上述几种实施例提供的用于资金交易网络中风险群组的定位方法相对应,因此在前述用于资金交易网络中风险群组的定位方法的实施方式也适用于本实施例提供的用于资金交易网络中风险群组的定位装置,在本实施例中不再详细描述。图13是根据本申请一个实施例的用于资金交易网络中风险群组的定位装置的结构框图。如图13所示,该用于资金交易网络中风险群组的定位装置可以包括:标签传播次数确定模块210、标签传播模块220、第一获取模块230和风险群组确定模块240。
具体地,标签传播次数确定模块210用于根据预设的风险网络维度确定资金交易网络的标签传播次数。
标签传播模块220用于从资金交易网络的第一风险节点开始,按照标签传播次数,依次通过邻接节点向其他邻接节点进行标签传播,其中,标签用于指示标签接收节点与第一风险节点之间的距离。
具体而言,在本申请的实施例中,标签传播模块220从资金交易网络的第一风险节点开始,按照标签传播次数,依次通过邻接节点向其他邻接节点进行标签传播的具体实现过程可如下:
S11,对资金交易网络中的所有节点的标签内容进行初始化。
S12,以第一风险节点为起始节点,分别向邻接节点传播标签,其中,标签的内容包括第一风险节点的编号。
S13,当邻接节点接收到标签时,判断邻接节点是否属于第一风险节点。
S14,如果邻接节点不属于第一风险节点,则将邻接节点接收到的标签传播给与邻接节点相邻的邻接节点。
S15,重复执行步骤S13和步骤S14,直至重复执行的次数达到标签传播次数。
第一获取模块230用于从资金交易网络中获取接收到至少两个标签的第二风险节点,以及位于第二风险节点与第一风险节点之间的第三风险节点。
在本申请的一个实施例中,资金交易网络中的所有节点具有状态信息,如图14所示,该装置还可包括:分配模块250和状态更新模块260。
其中,分配模块250用于在第一获取模块230从资金交易网络中获取位于第二风险节点与第一风险节点之间的第三风险节点之前,对资金交易网络中的所有节点的状态信息分配初始状态。
状态更新模块260用于对第二风险节点的初始状态更新为第一状态;
其中,在本申请的实施例中,第一获取模块230根据第一状态从资金交易网络中获取位于第二风险节点与第一风险节点之间的第三风险节点的具体实现过程可如下:
S21,根据预设的风险网络维度确定资金交易网络的状态传播次数。
S22,基于资金交易网络,以状态信息为第一状态的节点为起始节点,分别向与起始节点拥有同编号的邻接节点发送第一状态,其中,起始节点的标签与数值1的差值等于邻接节点的标签。
S23,将接收到第一状态的节点的状态信息更新为第一状态。
S24,重复执行步骤S22和步骤S23,直至重复执行的次数达到状态传播次数。
S25,从资金交易网络中获取状态信息为第一状态的节点,并将节点作为第三风险节点,其中,节点不属于第二风险节点。
风险群组确定模块240用于根据第一风险节点、第二风险节点以及第三风险节点确定风险群组。具体而言,在本申请的实施例中,如图15所示,该风险群组确定模块240可包括:提取单元241和确定单元242。其中,提取单元241用于从资金交易网络中提取第一风险节点、第二风险节点以及第三风险节点中的各个节点之间的交易关系。确定单元242用于根据第一风险节点、第二风险节点、第三风险节点以及交易关系确定目标群组。
进一步地,在本申请的一个实施例中,如图16所示,该装置还可包括:第二获取模块270和第一风险节点确定模块280。
其中,第二获取模块270用于在标签传播模块220从资金交易网络的第一风险节点开始,按照标签传播次数,依次通过邻接节点向其他邻接节点进行标签传播之前,获取预设的风险群组中的第一风险个体的信息;
第一风险节点确定模块280用于根据第一风险个体的信息确定第一风险个体在资金交易网络中所对应的第一风险节点。
本申请实施例的用于资金交易网络中风险群组的定位装置,实现了利用类标签传播算法实时地发现批量输入已知风险个体节点间潜在的资金交易关系和风险群组,彻底挖掘出隐藏的已知风险个体之间组成的整个社团和关系链路,并且,在整个过程中,无需考虑个体节点间关系的动态变化对模型鲁棒性和自适应性的影响,降低了计算资源和存储资源,提高了定位效率以及定位结果的准确性,从而可以有效地防范遏制犯罪分子的非法金融活动,同时保证了正常用户的资金安全。
在本申请的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。