数据关系的确定方法、装置和服务器与流程

文档序号:24723749发布日期:2021-04-16 15:36阅读:86来源:国知局
数据关系的确定方法、装置和服务器与流程

1.本说明书属于大数据技术领域,尤其涉及数据关系的确定方法、装置和服务器。


背景技术:

2.在许多基于大数据的处理场景(例如,银行的转账交易数据处理场景等)中,常常需要对平台系统所接入的海量业务数据进行分析处理,以找出数据对象之间隐藏的数据关系(例如,基于业务数据所形成的关系圈等)。
3.而基于现有方法,在处理业务数据、寻找数据对象之间的数据关系时,往往存在数据处理量大、处理效率低的技术问题。尤其当涉及到针对较高深度的数据关系搜寻、挖掘时,上述问题会更加明显。
4.针对上述问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本说明书提供了一种数据关系的确定方法、装置和服务器,能够有效地降低数据处理量,高效地从大量业务数据中确定出数据对象之间的关系圈,提高了处理效率。
6.本说明书提供了一种数据关系的确定方法,包括:
7.获取多个业务数据;其中,所述多个业务数据中的各个业务数据分别携带有发起业务数据的数据对象的身份标识和接收业务数据的数据对象的身份标识,所述发起业务数据的数据对象通过所述业务数据指向所述接收业务数据的数据对象;
8.根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵;
9.根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的数据对象的身份标识,所述预设次数根据预设的关系深度确定;
10.根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的数据对象的身份标识;
11.根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈。
12.在一个实施例中,根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵,包括:
13.建立矩阵行号与发起业务数据的数据对象的身份标识的对应关系,建立矩阵列号与接收业务数据的数据对象的身份标识的对应关系;并根据所述业务数据确定出矩阵中相应的矩阵行号和矩阵列号的组合所指示的位置处的数据元素的数据值。
14.在一个实施例中,在根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵之后,所述方法还包括:将所述目标邻接矩阵以稀疏格式
存储于内存中。
15.在一个实施例中,根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量,包括:
16.根据预设的迭代规则,对所述目标邻接矩阵进行预设次数中的当前次的左乘迭代,得到当前次的左乘结果向量,包括:
17.获取上一次的左乘结果向量;
18.利用上一次的左乘结果向量,左乘所述目标邻接矩阵,得到当前次的左乘结果向量;其中,所述当前次的左乘结果向量用于指示在当前次所对应的关系深度下,在正向上存在临近数据对象通过业务数据指向的数据对象的身份标识;所述当前次小于等于预设次数。
19.在一个实施例中,根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量,包括:
20.根据预设的迭代规则,对所述目标邻接矩阵进行预设次数中的当前次的右乘迭代,得到当前次的右乘结果向量,包括:
21.获取上一次的右乘结果向量;
22.利用上一次的右乘结果向量的转置向量,右乘所述目标邻接矩阵,得到当前次的右乘结果向量;其中,所述当前次的右乘结果向量用于指示在当前次所对应的关系深度下,在反向上存在临近数据对象通过业务数据指向的数据对象的身份标识;所述当前次小于等于预设次数。
23.在一个实施例中,根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈,包括:
24.对所述目标左乘结果向量和所述目标右乘结果向量进行点乘处理,以确定出形成第一关系圈的第一数据对象的身份标识;其中,所述第一关系圈为关系深度小于等于预设的关系深度的关系圈;
25.根据所述第一数据对象的身份标识,从多个业务数据中筛选出涉及所述第一数据对象的业务数据,作为第一业务数据;
26.根据所述第一数据对象的身份标识,以及所述第一业务数据,确定出多个第一关系圈。
27.在一个实施例中,根据所述第一数据对象的身份标识,以及所述第一业务数据,确定出多个第一关系圈,包括:
28.通过预设的深度学习框架调用gpu根据所述第一数据对象的身份标识,以及所述第一业务数据,生成多个第一关系圈。
29.在一个实施例中,在通过预设的深度学习框架,调用gpu根据所述第一数据对象的身份标识,以及所述第一业务数据,生成多个第一关系圈之后,所述方法还包括:
30.根据所生成的多个第一关系圈,对所述第一数据对象的身份标识进行过滤处理。
31.在一个实施例中,在根据所述第一数据对象的身份标识,以及所述第一业务数据,确定出多个第一关系圈之后,所述方法还包括:
32.通过聚合迭代,从所述多个第一关系圈中确定出对应不同关系深度的关系圈。
33.在一个实施例中,所述业务数据包括转账交易数据,所述数据对象包括交易账户。
34.在一个实施例中,在根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈之后,所述方法还包括:
35.根据交易账户之间基于转账交易数据所形成的关系圈,确定所述交易账户是否存在预设的交易风险。
36.本书明书还提供了一种环形图的确定方法,包括:
37.获取节点数据和边数据;
38.根据预设的构建规则,利用所述边数据、所述节点数据,构建目标邻接矩阵;
39.根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的节点;
40.根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的节点;
41.根据所述目标左乘结果向量、所述目标右乘结果向量、所述节点数据、所述边数据,确定出由节点数据和边数据形成的环形图。
42.本说明书还提供了一种数据关系的确定装置,包括:
43.获取模块,用于获取多个业务数据;其中,所述多个业务数据中的各个业务数据分别携带有发起业务数据的数据对象的身份标识和接收业务数据的数据对象的身份标识,所述发起业务数据的数据对象通过所述业务数据指向所述接收业务数据的数据对象;
44.构建模块,用于根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵;
45.第一处理模块,用于根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的数据对象的身份标识,所述预设次数根据预设的关系深度确定;
46.第二处理模块,用于根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的数据对象的身份标识;
47.确定模块,用于根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈。
48.本说明书提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现获取多个业务数据;其中,所述多个业务数据中的各个业务数据分别携带有发起业务数据的数据对象的身份标识和接收业务数据的数据对象的身份标识,所述发起业务数据的数据对象通过所述业务数据指向所述接收业务数据的数据对象;根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵;根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的数据对象的身份标识,所述预设次数根据预设的关系深度确定;根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标
右乘结果向量中的数据元素用于指示沿反向满足要求的数据对象的身份标识;根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈。
49.本说明书提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现获取多个业务数据;其中,所述多个业务数据中的各个业务数据分别携带有发起业务数据的数据对象的身份标识和接收业务数据的数据对象的身份标识,所述发起业务数据的数据对象通过所述业务数据指向所述接收业务数据的数据对象;根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵;根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的数据对象的身份标识,所述预设次数根据预设的关系深度确定;根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的数据对象的身份标识;根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈。
50.本说明书提供的一种数据关系的确定方法、装置和服务器,在面对所接入的大量的业务数据时,先根据预设的构建规则,利用所获取的多个业务数据,构建得到与多个业务数据关联的目标邻接矩阵;再通过根据预设的迭代规则,分别对目标邻接矩阵进行预设次数的左乘迭代处理,和预设次数的右乘迭代处理,以得到能够指示沿正向满足要求的数据对象的身份标识的目标左乘结果向量,和能够指示沿反向满足要求的数据对象的身份标识的目标右乘结果向量;进而可以根据目标左乘结果向量、目标右乘结果向量,以及多个业务数据,快速地确定出数据对象之间基于业务数据所形成的关系圈。从而能够有效地降低数据处理量,高效地从大量业务数据中确定出数据对象之间的关系圈,准确地分析数据对象之间具体的数据关系,提高了处理效率,解决了现有方法中存在的数据处理量大,处理效率低的技术问题。
附图说明
51.为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
52.图1是应用本说明书实施例提供的数据关系的确定方法的系统的结构组成的一个实施例的示意图;
53.图2是本说明书的一个实施例提供的数据关系的确定方法的流程示意图;
54.图3是在一个场景示例中,应用本说明书实施例提供的数据关系的确定方法的一种实施例的示意图;
55.图4是在一个场景示例中,应用本说明书实施例提供的数据关系的确定方法的一种实施例的示意图;
56.图5是在一个场景示例中,应用本说明书实施例提供的数据关系的确定方法的一种实施例的示意图;
57.图6是本说明书的一个实施例提供的环形图的确定方法的流程示意图;
58.图7是本说明书的一个实施例提供的服务器的结构组成示意图;
59.图8是本说明书的一个实施例提供的数据关系的确定装置的结构组成示意图;
60.图9是在一个场景示例中,应用本说明书实施例提供的数据关系的确定方法的一种实施例的示意图;
61.图10是在一个场景示例中,应用本说明书实施例提供的数据关系的确定方法的一种实施例的示意图;
62.图11是在一个场景示例中,应用本说明书实施例提供的数据关系的确定方法的一种实施例的示意图。
具体实施方式
63.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
64.考虑到基于现有的数据关系的确定方法,具体实施时,往往是针对单个数据对象逐层级地逐个去遍历、搜索该数据对象与其他数据对象之间的直接或间接的相互关系。应用上述方法,当涉及到的数据对象较多,例如,大数据场景下涉及到的海量数据对象时,需要遍历、搜索的数据对象数量庞大;或者,当需要搜索的数据关系的深度较深时,势必都需要耗费大量的数据处理资源和处理时间,进行较大数据量的计算,才能搜索找到所要找的数据关系。因此,现有方法具体实施时,往往会存在数据处理量大、处理效率低的技术问题。
65.针对产生上述问题的根本原因,本说明书通过创造性的劳动后,考虑可以先基于大量的业务数据所涉及到的大量数据对象,构建一个与相关联的包含有所有数据对象,以及数据对象之间的交互数据信息的目标邻接矩阵;进而可以根据预设的迭代规则,对上述目标邻接矩阵进行多次的左乘迭代处理,以及多次的右乘迭代处理,得到能够指示出沿正向满足要求的批量数据对象的目标左乘结果向量,以及能够指示出沿负向满足要求的批量数据对象的目标右乘结果向量;进而可以根据上述目标左乘结果向量、目标右乘结果向量,以及相应的业务数据,批量地找出数据对象之间基于业务数据所形成的关系圈。从而能够有效地降低数据处理量,高效地从大量业务数据中找出数据对象之间的关系圈,提高了处理效率,解决了现有方法中存在的数据处理量大,处理效率低的技术问题。
66.本说明书实施例提供一种数据关系的确定方法。所述数据关系的确定方法具体可以应用于包含有服务器和前端设备的系统的中。具体可以参阅图1所示。系统中前端设备和服务器可以通过有线或无线的方式相连,以进行具体的数据交互。
67.具体实施时,前端设备可以接入多个业务数据;其中,所述多个业务数据中的各个业务数据分别携带有发起业务数据的数据对象的身份标识和接收业务数据的数据对象的身份标识,所述发起业务数据的数据对象通过所述业务数据指向所述接收业务数据的数据对象;并将所接入的多个业务数据发送至服务器。
68.服务器可以用于获取多个业务数据,并根据预设的构建规则,利用所述多个业务
数据,构建与所述多个业务数据关联的目标邻接矩阵。
69.进一步,服务器可以根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的数据对象的身份标识,所述预设次数根据预设的关系深度确定;同时,可以根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的数据对象的身份标识。
70.进而,服务器可以根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈。
71.在本实施例中,所述服务器具体可以包括一种应用于业务数据处理平台一侧,能够实现数据传输、数据处理等功能的后台服务器。具体的,所述服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述服务器的数量。所述服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
72.在本实施例中,所述前端设备具体可以包括一种应用于业务数据交互平台一侧,能够实现数据采集、数据传输等功能的前端电子设备。具体的,所述前端设备例如可以为台式电脑、平板电脑、笔记本电脑、智能手机等。或者,所述前端设备也可以为能够运行于上述电子设备中的软件应用。例如,可以是在手机上运行的某app等。
73.参阅图2所示,本说明书实施例提供了一种数据关系的确定方法。其中,该方法具体应用于服务器一侧。具体实施时,该方法可以包括以下内容。
74.s21:获取多个业务数据;其中,所述多个业务数据中的各个业务数据分别携带有发起业务数据的数据对象的身份标识和接收业务数据的数据对象的身份标识,所述发起业务数据的数据对象通过所述业务数据指向所述接收业务数据的数据对象。
75.s22:根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵。
76.s23:根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的数据对象的身份标识,所述预设次数根据预设的关系深度确定。
77.s24:根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的数据对象的身份标识。
78.s25:根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈。
79.通过上述实施例,避免了像现有方法那样采用遍历、搜索的方式逐层级逐个地查找各个数据对象与其他数据对象之间的数据关系,而是先构建了与多个业务数据关联的目标邻接矩阵;再通过根据预设的迭代规则,对上述目标邻接矩阵进行多次迭代处理,批量地来找出分别沿正向、反向满足要求的数据对象;进而可以基于上述数据对象,以及相应的业务数据确定出上述数据对象之间的关系圈,有效地降低数据处理量,提高了处理效率,能够
高效地从大量业务数据中找出数据对象之间的关系圈,解决了现有方法中存在的数据处理量大,处理效率低的技术问题。
80.在本实施例中,上述业务数据具体可以理解为是一种存在指向性的业务数据。具体的,每一个业务数据都可以携带有发起业务数据的数据对象(可以简记为发起对象)的身份标识,以及接收业务数据的数据对象(可以简记为接收对象)的身份标识,并且发起对象可以通过上述业务数据指向接收对象。
81.具体的,上述业务数据可以包括转账交易数据、汇款数据、邮件数据等等。相应的,上述数据对象具体可以包括参与转账交易的账户对象、参与邮件收发的邮箱对象等等。当然,需要说明的是,上述所列举的业务数据、数据对象只是一种示意性说明。具体实施时,根据具体的应用场景和处理需求,上述业务数据还可以包括其他类型的业务数据,相应的,上述数据对象还可以包括其他类型的数据对象。对此,本说明书不作限定。
82.在本实施例中,身份标识具体可以理解为一种能够指示数据对象的标识信息。具体的,上述身份标识可以是数据对象的名称、数据对象的编号、数据对象的地址参数等。
83.在一个实施例中,上述根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵,具体实施时,可以包括以下内容:建立矩阵行号与发起业务数据的数据对象的身份标识的对应关系,建立矩阵列号与接收业务数据的数据对象的身份标识的对应关系;并根据所述业务数据确定出矩阵中相应的矩阵行号和矩阵列号的组合所指示的位置处的数据元素的数据值。
84.在本实施例中,上述目标邻接矩阵具体可以包含有与所述多个业务数据相关的数据对象的身份标识相关,以及不同数据对象之间基于业务数据的指向关系相关的数据信息。
85.在本实施例中,具体根据预设的构建规则,构建目标邻接矩阵时,可以参阅图3所示。可以先确定出多个业务数据所涉及到的所有的数据对象(包括发起对象和接收对象),并获取上述数据对象的身份标识。
86.例如,根据所述多个业务数据找出总共n个数据对象,并获取上述n个数据对象中的各个数据对象的身份标识。
87.进一步,可以根据数据对象的身份标识建立矩阵的行和列。例如,参阅图3所示,可以根据n个数据对象的身份标识,构建得到n行n列的矩阵。其中,每一个矩阵行号具体与一个发起业务数据的数据对象的身份标识对应。每一个矩阵列号具体与一个接收业务数据的数据对象的身份标识对应。并且,一个矩阵行号和一个矩阵列号的组合可以指示该矩阵中位于相应行相应列位置处的一个数据元素。而矩阵中的任意一个数据元素又可以与一个业务数据对应,且该数据元素的数据值还可以是根据所对应的业务数据确定的。
88.因此,在确定矩阵中的各个数据元素时,可以先确定数据元素所对应的矩阵行号和矩阵列号的组合;再根据所获取的多个业务数据,检索并根据与上述矩阵行号和矩阵列号的组合对应的业务数据,以确定出该数据元素的具体数据值。
89.参阅图3所示,例如,矩阵行号1和矩阵列号3的组合(可以记为(1,3))用于指示该矩阵中位于1行3列位置处的数据元素。其中,上述矩阵行号1与数据对象a的身份标识对应,上述矩阵列号3与数据对象c的身份标识对应。因此,在矩阵中,与位于(1,3)所指示的位置处的数据元素对应的业务数据为一个由数据对象a发起,且由数据对象c接收的业务数据。
90.在具体确定(1,3)的数据元素的数据值时,可以检索所获取的多个业务数据,确定是否存在上述业务数据,即所携带的发起对象的身份标识指示的是数据对象a,且所携带的接收对象的身份标识指示的是数据对象b的业务数据。在从上述多个业务数据中检索到上述业务数据的情况下,将该数据元素的数据值设置为1。相反,在从上述多个业务数据中没有检索到上述对应的业务数据的情况下,将该数据元素的数据值设置为0。
91.通过上述实施例,根据多个业务数据构建得到包含有数据对象的身份标识,以及不同数据对象之间基于业务数据所产生的指向关系的目标邻接矩阵。这样后续进一步处理时,可以将对大量业务数据的处理,转化为对该目标邻接矩阵的处理,从而可以有效地降低后续的数据处理量,提高整体的数据处理效率。
92.在一个实施例中,参阅图3所示,进一步考虑到按照上述方式根据预设的构建规则所构建得到的目标邻接矩阵中的数据元素的数据值大多为1或0,属于一种稀疏矩阵。因此,可以利用稀疏矩阵的特点来对上述目标邻接矩阵进行存储和取用。
93.在一个实施例中,在根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵之后,所述方法具体实施时,还可以包括以下内容:将所述目标邻接矩阵以稀疏格式存储于内存中。
94.通过上述实施例,可以充分利用稀疏矩阵的特点来使用较少的存储资源存储目标邻接矩阵,同时也方便后续读取、使用该目标邻接矩阵进行相应的数据处理,进一步提高数据处理效率。
95.在本实施例中,具体存储目标邻接矩阵时,可以只存储数据值为1的数据元素的矩阵行号和矩阵列号(也可以称为数据元素在矩阵中的坐标)。具体的,可以构建一个2行m列的存储向量。其中,存储向量中的第一行用于存储数据值为1的数据元素的矩阵行号(或与矩阵行号对应的数据对象的身份标识),存储向量中的第二行用于存储数据值为1的数据元素的矩阵列号(或与矩阵列号对应的数据对象的身份标识)。
96.在一个实施例中,具体寻找存在数据关系的数据对象时,可以利用针对目标邻接矩阵的矩阵迭代运算,来代替现有方法所采用的遍历、搜索算法,高效地批量找出存在数据关系的多个数据对象。其中,上述存储在数据关系的多个数据对象具体可以理解为基于业务数据形成关系圈的数据对象。
97.其中,上述关系圈具体可以理解为一种环形的关系结构。该关系结构至少包含有两个数据对象,且不同的数据对象之间通过业务数据有向边相连,构成一个环形图。在该关系结构中的任意一个数据对象可以通过该关系结构中的其他数据对象,经由业务数据指回自身。
98.具体的,可以参阅图4所示。数据对象a、数据对象b、数据对象c,以及涉及上述数据对象的业务数据1(发起对象为数据对象a,接收对象为数据对象b)、业务数据2(发起对象为数据对象b,接收对象为数据对象c)、业务数据3(发起对象为数据对象c,接收对象为数据对象a)构成了一个关系圈。其中,数据对象a通过业务数据1指向了数据对象b,数据对象b又通过业务数据2指向了数据对象c,数据对象c通过业务数据3又指回了数据对象a。
99.在一个实施例中,具体实施时,可以先根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的数据对象的身份标识,所述预设次数根据预设的关系
深度确定;同时,根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的数据对象的身份标识;再根据所述目标左乘结果向量、所述目标右乘结果向量,确定出构成相应关系圈的数据对象的身份标识;进而可以根据上述构成相应的关系圈的数据对象的身份标识,以与上述数据对象相关的业务数据,确定出数据对象之间基于业务数据所形成的关系圈。
100.在一个实施例中,上述根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量,具体实施时,可以包括以下内容:根据预设的迭代规则,对所述目标邻接矩阵进行预设次数中的当前次的左乘迭代,得到当前次的左乘结果向量,包括:获取上一次的左乘结果向量;利用上一次的左乘结果向量,左乘所述目标邻接矩阵,得到当前次的左乘结果向量;其中,所述当前次的左乘结果向量用于指示在当前次所对应的关系深度下,在正向上存在临近数据对象通过业务数据指向的数据对象的身份标识;所述当前次小于等于预设次数。
101.在本实施例中,上述当前次的左乘结果向量具体可以包含有按顺序排列的多个数据元素。其中,上述当前次的左乘结果向量中所包含的数据元素的个数与数据对象的总数相同,且向量中的多个数据元素中的各个数据元素分别与一个数据对象的身份标识对应。
102.如果根据当前次的左乘结果向量,在确定向量中的某个数据元素的数据值为0时,可以确定与数据元素对应的数据对象,在当前次所对应的关系深度下,在正向(例如,正时针指向)上不存在指向自己的临近数据对象。相反,如果根据当前次的左乘结果向量,在确定向量中的某个数据元素的数据值为1时,可以确定与数据元素对应的数据对象,在当前次所对应的关系深度下,在正向上存在指向自己的临近数据对象。
103.在本实施例中,上述初始的左乘结果向量(即0次的左乘结果向量)可以为一个数据元素全为1的n维向量,其中,n为多个业务数据中所涉及到的数据对象的总数。
104.通过上述实施例,可以快速地找出在预设次数所对应的预设的关系深度下,在正向上存在其他临近数据对象通过业务数据指向的数据对象的身份标识。
105.具体的,例如,参阅图5所示,多个业务数据包括:业务数据1和业务数据2;其中,业务数据1的发起对象为a,接收对象为b,业务数据2的发起对象为b,接收对象为c。
106.这时,可以基于上述多个业务数据构建以下所示的目标邻接矩阵:
107.其中,矩阵中的矩阵行号1与发起对象a对应,矩阵行号2与发起对象b对应,矩阵行号3与发起对象c对应,矩阵列号1与接收对象a对应,矩阵列号2与接收对象b对应,矩阵列号3与接收对象c对应。矩阵中组合(1,2)所指示的数据元素对应于业务数据1,数据值为1。组合(2,3)所指示的数据元素对应于业务数据2,数据值为1。
108.生成初始的左乘结果向量为(1,1,1),在进行第一次左乘迭代处理时,可以根据预设的迭代规则,利用上一次的左乘结果向量(即,初始的左乘结果向量)左乘目标邻接矩阵,得到的结果向量作为当前次的左乘结果向量,即第一次的左乘结果向量。
109.具体可以参阅以下所示的算式,进行第一次左乘迭代处理:
[0110][0111]
基于上式,可以得到对应的第一次的左乘结果向量记为(0,1,1)。
[0112]
其中,该向量中的第一个数据元素的数据值为0,可以表示出在当前次(即第一次)所对应的关系深度(即1度)下,数据对象a在正向上没有其他数据对象(临近数据对象)指向。第二数据元素的数据值为1,可以表示出在当前次(即第一次)所对应的关系深度(即1度)下,数据对象b在正向上有其他数据对象指向(例如,数据对象a)。第三数据元素的数据值为1,可以表示出在当前次(即第一次)所对应的关系深度(即1度)下,数据对象c在正向上有其他数据对象指向(例如,数据对象b)。
[0113]
因此,基于上述第一次的左乘结果向量(0,1,1)可以指示出在第一次所对应的关系深度下,在正向上存在临近数据对象通过业务数据指向的数据对象的身份标识,从而可以保留下在正向上存在临近数据对象通过业务数据指向的数据对象的身份标识b和c,过滤掉已经不存在其他临近数据对象指向的数据对象的身份标识a。
[0114]
接着,按照类似的方式,获取并利用目标左乘结果向量,对目标邻接矩阵进行第二次的左乘得到,得到第二次的左乘结果向量。
[0115]
具体可以参阅以下所示的算式,进行第二次左乘迭代处理:
[0116][0117]
基于上式,可以得到对应的第二次的左乘结果向量记为(0,0,1)。
[0118]
其中,该向量中的第一个数据元素的数据值为0,可以表示出在当前次(即第二次)所对应的关系深度(即2度)下,数据对象a在正向上没有其他数据对象指向。第二数据元素的数据值为0,可以表示出在当前次(即第二次)所对应的关系深度(即2度)下,数据对象b在正向上也没有其他数据对象指向。第三数据元素的数据值为1,可以表示出在当前次(即第二次)所对应的关系深度(即2度)下,数据对象c在正向上有其他数据对象指向(例如,数据对象b)。
[0119]
因此,基于上述第二次的左乘结果向量(0,0,1)可以指示出在第二次所对应的关系深度下,在正向上存在临近数据对象通过业务数据指向的数据对象的身份标识,从而可以保留下在正向上存在临近数据对象通过业务数据指向的数据对象的身份标识c,进一步过滤掉已经不存在其他数据对象指向的数据对象的身份标识b。
[0120]
重复上述处理方式,对目标邻接矩阵进行预设次数的左乘迭代处理,得到对应的最后一次左乘结果向量作为目标左乘结果向量。
[0121]
其中,所述目标左乘结果向量中的各个数据元素的数据值用于指示所对应的数据对象在预设的关系深度下,沿正向是否存在指向自己的临近数据对象。
[0122]
具体实施时,可以根据目标左乘向量中的数据元素的数据值,从多个数据对象中筛选出在预设的关系深度下,沿正向还存在指向自己的临近数据对象的数据对象的身份标识作为所述沿正向满足要求的数据对象的身份标识。
[0123]
在本实施例中,上述预设次数的具体数值可以根据预设的关系深度确定。上述预设的关系深度具体可以根据应用场景和处理需求灵活设置。
[0124]
具体的,例如,预设的关系深度可以为3度,相应的,预设次数可以为3次。又例如,预设的关系深度可以为6度,相应的,预设次数可以为6次。
[0125]
其中,目标左乘结果向量类似于其他的左乘结果向量能够指示在预设次数所对应的预设的关系深度下,在正向上存在临近数据对象通过业务数据指向的数据对象的身份标识,即所述的沿正向满足要求的数据对象的身份标识。
[0126]
在一个实施例中,针对图5所示的数据关系,当进行到第三次左乘迭代处理时,所得到的左乘结果向量就变为了:(0,0,0,),基于该向量指示出在第三次所对应的关系深度下,在正向上所有数据对象都不存在其他数据对象通过业务数据指向了,过滤掉了所用的数据对象。进而可以判断出上述数据对象a、数据对象b和数据对象c,通过业务数据1和业务数据2无法形成关系圈。
[0127]
而针对图4所示的数据关系,根据预设的构建规则,所构建的目标邻接矩阵为:按照相同的方式根据预设的迭代规则,对该目标邻接矩阵进行第一次左乘迭代,得到第一次的左乘结果向量记为(1,1,1);对该目标邻接矩阵进行第二次左乘迭代,得到第二次的左乘结果向量为(1,1,1)
……
对该目标邻接矩阵进行第n次左乘迭代,得到第n次的左乘结果向量仍为(1,1,1)。这时,可见无论进行多少次的左乘迭代在正向上始终存在其他的数据对象指向数据对象a、数据对象b和数据对象c,数据对象a、数据对象b和数据对象无法通过对目标邻接矩阵的矩阵迭代过滤掉。进而可以判断出上述数据对象a、数据对象b和数据对象c,通过业务数据1和业务数据2形成了关系圈。
[0128]
在一个实施例中,上述根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量,具体实施实施,可以包括以下内容:根据预设的迭代规则,对所述目标邻接矩阵进行预设次数中的当前次的右乘迭代,得到当前次的右乘结果向量,包括:获取上一次的右乘结果向量;利用上一次的右乘结果向量的转置向量,右乘所述目标邻接矩阵,得到当前次的右乘结果向量;其中,所述当前次的右乘结果向量用于指示在当前次所对应的关系深度下,在反向上存在临近数据对象通过业务数据指向的数据对象的身份标识;所述当前次小于等于预设次数。
[0129]
在本实施例中,上述初始的右乘结果向量(即0次的右乘结果向量)可以为一个数据元素全为1的n维向量,其中,n为多个业务数据中所涉及到的数据对象的总数。
[0130]
在本实施例中,上述当前次的右乘结果向量具体可以包含有按顺序排列的多个数据元素。其中,上述当前次的右乘结果向量中所包含的数据元素的个数与数据对象的总数相同,且向量中的多个数据元素中的各个数据元素分别与一个数据对象的身份标识对应。
[0131]
如果根据当前次的右乘结果向量,在确定向量中的某个数据元素的数据值为0时,可以确定与数据元素对应的数据对象,在当前次所对应的关系深度下,在反向(例如,逆时针指向)上不存在指向自己的临近数据对象。相反,如果根据当前次的右乘结果向量,在确定向量中的某个数据元素的数据值为1时,可以确定与数据元素对应的数据对象,在当前次所对应的关系深度下,在反向上存在指向自己的临近数据对象。
[0132]
对目标邻接矩阵进行预设次数的右乘迭代处理的过程,类似于上述对目标邻接矩阵进行预设次数的左乘迭代处理的过程,可以参考对目标邻接矩阵进行预设次数的右乘迭代处理的实施例,本说明书不作赘述。
[0133]
重复上述处理方式,对目标邻接矩阵进行预设次数的右乘迭代处理,得到对应的最后一次右乘结果向量作为目标右乘结果向量。
[0134]
其中,所述目标右乘结果向量中的各个数据元素的数据值用于指示所对应的数据对象在预设的关系深度下,沿反向是否存在指向自己的临近数据对象。
[0135]
具体实施时,可以根据目标右乘向量中的数据元素的数据值,从多个数据对象中筛选出在预设的关系深度下,沿反向还存在指向自己的临近数据对象的数据对象的身份标识作为所述沿反向满足要求的数据对象的身份标识。
[0136]
通过上述实施例,可以快速地找出在预设次数所对应的预设的关系深度下,在负向上存在临近数据对象通过业务数据指向的数据对象的身份标识。
[0137]
在一个实施例中,上述根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈,具体实施时,可以包括以下内容:
[0138]
s1:对所述目标左乘结果向量和所述目标右乘结果向量进行点乘处理,以确定出形成第一关系圈的第一数据对象的身份标识;其中,所述第一关系圈为关系深度小于等于预设的关系深度的关系圈;
[0139]
s2:根据所述第一数据对象的身份标识,从多个业务数据中筛选出涉及所述第一数据对象的业务数据,作为第一业务数据;
[0140]
s3:根据所述第一数据对象的身份标识,以及所述第一业务数据,确定出多个第一关系圈。
[0141]
在本实施例中,通过对所述目标左乘结果向量和所述目标右乘结果向量进行点乘处理,可以对两种数据对象进行求交,以找出能够形成环结构的第一数据对象的身份标识。
[0142]
在本实施例中,需要说明的是,上述所确定出的第一关系圈具体可以包括对应预设的关系深度的关系圈,也可以包括对应比所述预设的关系深度小的关系深度的关系圈。
[0143]
具体的,例如,预设的关系深度为3,则上述确定出的第一关系圈中可以包括同时包括有2度的关系圈和3度的关系圈两种关系圈。
[0144]
通过上述实施例,可以高效地确定出基于业务数据所形成的多个第一关系圈。
[0145]
在一个实施例中,上述根据所述第一数据对象的身份标识,以及所述第一业务数据,确定出多个第一关系圈,具体实施时,可以包括以下内容:通过预设的深度学习框架调用gpu根据所述第一数据对象的身份标识,以及所述第一业务数据,绘制生成多个第一关系圈。
[0146]
其中,上述预设的深度学习框架具体可以包括tensorflow框架、pytorch框架等。其中,上述tensorflow具体为一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现。上述pytorch具体可以为一个开源的python机器学习库,基于torch,用于自然语言处理等应用程序。当然,上述所列举的预设的深度学习框架只是一种示意性说明。具体实施时,根据具体情况,还可以采用其他合适的深度学习框架。对此,本说明书不作限定。
[0147]
通过上述实施例,可以更加快速地根据所述第一数据对象的身份标识,以及所述第一业务数据,生成多个第一关系圈,以进一步提高整体的处理效率。
[0148]
在一个实施例中,在通过预设的深度学习框架,调用gpu根据所述第一数据对象的身份标识,以及所述第一业务数据,生成多个第一关系圈之后,所述方法具体实施时,还可以包括以下内容:根据所生成的多个第一关系圈,对所述第一数据对象的身份标识进行过滤处理。
[0149]
在本实施例中,具体实施时,还可以根据上述生成的第一关系圈返回来检查之前确定的第一数据对象中是否存在不构成关系圈的数据对象,并过滤上述不构成关系圈,或者自己指向自己的不满足要求的数据对象的身份标识,以减少上述数据对象引入的误差。
[0150]
在一个实施例中,在根据所述第一数据对象的身份标识,以及所述第一业务数据,确定出多个第一关系圈之后,所述方法具体实施时,还可以包括以下内容:通过聚合迭代,从所述多个第一关系圈中确定出对应不同关系深度的关系圈。
[0151]
通过上述实施例,可以高效、准确地从多个第一关系圈中进一步确定出各种对应不同关系深度的关系圈,以便支持更加精细的数据处理,满足用户更多样化的使用需求。
[0152]
具体的,例如,预设的关系深度为4。通过上述实施例,可以从第一关系圈中精细地拆分出关系深度为2的关系圈(关系圈里只包含2个数据对象)、关系深度为3的关系圈(关系圈里只包含3个数据对象),以及关系深度为4的关系圈(关系圈里只包含4个数据对象)。
[0153]
在本实施例中,具体进行聚合迭代时,可以按照以下算法执行,以依次输出分别对应2至n度的关系圈。其中,预设的关系深度为n。
[0154]
s1:为矩阵行号中的每一个位置点增加一个副编号(或者副的身份标识),用{id}集合表示。
[0155]
s2:根据终点对起点的副编号进行聚合(存储为key

value形式,key为终点的id;value为所有指向该终点的起点的副编号的集合)。其中,终点可以为第一关系圈中的标定的最后一个接收对象,起点可以为第一关系圈中标定的起始一个发起对象。
[0156]
s3:更新当前终点的副编号为聚合后的副编号集合。
[0157]
s4:判断每个点的编号是否属于其副编号集合,如果属于则输出这些点的标号id,表示这些编号的点属于一个i度环的一员。
[0158]
s5:重复执行步骤s2至s4,直至输出n度环。
[0159]
s6:根据s4输出的每一度下的环成员点和s3输出的点之间连接关系(边)文件复输出所有环,或直接输入可视化工具进行展现。
[0160]
在一个实施例中,所述业务数据具体可以包括转账交易数据,所述数据对象具体可以包括交易账户。
[0161]
在本实施例中,在银行或者其他金融机构的转账数据处理场景中,可以根据所获取的多个转账交易数据,按照本说明书所提供方法,确定出多个交易账户之间基于转账交易数据所形成的关系圈。从而可以高效地海量的转账交易数据进行处理,以挖掘出交易账户之间的关系圈,以便进行后续进一步的分析处理。
[0162]
在一个实施例中,在根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈之后,所述方法具体实施时,还可以包括以下内容:根据交易账户之间基于转账交易数据所形成的关系圈,确定
所述交易账户是否存在预设的交易风险。
[0163]
通过上述实施例,可以高效地分析处理银行或者其他金融机构的转账数据处理场景中大量的转账交易数据,以准确地找出存在预设的交易风险的交易账户。
[0164]
具体的,例如,根据图4所示,业务数据为转账交易数据,通过上述关系圈可知:数据对象a向数据对象b发起的转账交易数据,最终又通过数据对象c回流到了数据对象a。进而,可以结合其他相关的数据特征,初步判断出数据对象a、数据对象b和数据对象c之间存在相互通过转账交易进行例如洗钱等违规行为,进而可以判定上述数据对象a、数据对象b和数据对象c存在预设的交易风险的。
[0165]
进一步,可以对上述数据对象生成相应的风险提示信息,以便能够针对上述数据对象后续发起的转账交易数据进行更加严格的监测和分析。在确定确实存在交易风险的情况及时进行有效的惩处。
[0166]
由上可见,本说明书实施例提供的数据关系的确定方法,在处理大量的业务数据时,通过先根据预设的构建规则,利用所获取的多个业务数据,构建得到与多个业务数据关联的目标邻接矩阵;再通过根据预设的迭代规则,分别对目标邻接矩阵进行预设次数的左乘迭代处理,和预设次数的右乘迭代处理,得到相应的能够指示沿正向满足要求的数据对象的身份标识的目标左乘结果向量,和能够指示沿反向满足要求的数据对象的身份标识的目标右乘结果向量;进而可以通过根据目标左乘结果向量、目标右乘结果向量,以及多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈。从而能够有效地降低数据处理量,高效地从大量业务数据中找出数据对象之间的关系圈,准确地分析数据对象之间的数据关系,提高了处理效率,解决了现有方法中存在的数据处理量大,处理效率低的技术问题。
[0167]
参阅图6所示,本说明书实施例还提供了一种环形图的确定方法,以能够高效地找出相应的环形图。具体实施时,该方法可以包括以下内容。
[0168]
s61:获取节点数据和边数据。
[0169]
s62:根据预设的构建规则,利用所述边数据、所述节点数据,构建目标邻接矩阵。
[0170]
s63:根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的节点。
[0171]
s64:根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的节点。
[0172]
s65:根据所述目标左乘结果向量、所述目标右乘结果向量、所述节点数据、所述边数据,确定出由节点数据和边数据形成的环形图。
[0173]
在本实施例中,上述环形图具体可以理解为一种通过边数据将多个节点数据收尾相连构成环的图形。具体的,可以参阅图4所示。
[0174]
在本实施例中,上述环形图具体可以包括一种能够表征数据对象之间的数据关系的关系圈。结合不同的应用场景,上述关系圈可以包括朋友之间的交互圈,也可以包括交易账户之间的资金回流圈,还可以包括部门之间的通信圈等等。
[0175]
通过上述实施例,通过矩阵迭代的方式,可以有效地降低数据处理量,高效地根据
所获取的大量节点数据和边数据,找出相应的环形图。
[0176]
本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:获取多个业务数据;其中,所述多个业务数据中的各个业务数据分别携带有发起业务数据的数据对象的身份标识和接收业务数据的数据对象的身份标识,所述发起业务数据的数据对象通过所述业务数据指向所述接收业务数据的数据对象;根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵;根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的数据对象的身份标识,所述预设次数根据预设的关系深度确定;根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的数据对象的身份标识;根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈。
[0177]
为了能够更加准确地完成上述指令,参阅图7所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口71、处理器72以及存储器73,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
[0178]
其中,所述网络通信端口71,具体可以用于获取多个业务数据;其中,所述多个业务数据中的各个业务数据分别携带有发起业务数据的数据对象的身份标识和接收业务数据的数据对象的身份标识,所述发起业务数据的数据对象通过所述业务数据指向所述接收业务数据的数据对象。
[0179]
所述处理器72,具体可以用于根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵;根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的数据对象的身份标识,所述预设次数根据预设的关系深度确定;根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的数据对象的身份标识;根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈。
[0180]
所述存储器73,具体可以用于存储相应的指令程序。
[0181]
在本实施例中,所述网络通信端口71可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行ftp数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如gsm、cdma等;其还可以为wifi芯片;其还可以为蓝牙芯片。
[0182]
在本实施例中,所述处理器72可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
[0183]
在本实施例中,所述存储器73可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如ram、fifo等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、tf卡等。
[0184]
本说明书实施例还提供了一种基于上述数据关系的确定方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取多个业务数据;其中,所述多个业务数据中的各个业务数据分别携带有发起业务数据的数据对象的身份标识和接收业务数据的数据对象的身份标识,所述发起业务数据的数据对象通过所述业务数据指向所述接收业务数据的数据对象;根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵;根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的数据对象的身份标识,所述预设次数根据预设的关系深度确定;根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的数据对象的身份标识;根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈。
[0185]
在本实施例中,上述存储介质包括但不限于随机存取存储器(random access memory,ram)、只读存储器(read

only memory,rom)、缓存(cache)、硬盘(hard disk drive,hdd)或者存储卡(memory card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
[0186]
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
[0187]
参阅图8所示,在软件层面上,本说明书实施例还提供了一种数据关系的确定装置。该装置具体可以包括以下的结构模块。
[0188]
获取模块81,具体可以用于获取多个业务数据;其中,所述多个业务数据中的各个业务数据分别携带有发起业务数据的数据对象的身份标识和接收业务数据的数据对象的身份标识,所述发起业务数据的数据对象通过所述业务数据指向所述接收业务数据的数据对象;
[0189]
构建模块82,具体可以用于根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵;
[0190]
第一处理模块83,具体可以用于根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的数据对象的身份标识,所述预设次数根据预设的关系深度确定;
[0191]
第二处理模块84,具体可以用于根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的数据对象的身份标识;
[0192]
确定模块85,具体可以用于根据所述目标左乘结果向量、所述目标右乘结果向量,以及所述多个业务数据,确定出数据对象之间基于业务数据所形成的关系圈。
[0193]
在一个实施例中,上述构建模块82具体实施时,可以按照以下程序执行:建立矩阵行号与发起业务数据的数据对象的身份标识的对应关系,建立矩阵列号与接收业务数据的数据对象的身份标识的对应关系;并根据所述业务数据确定出矩阵中相应的矩阵行号和矩阵列号的组合所指示的位置处的数据元素的数据值。
[0194]
在一个实施例中,在根据预设的构建规则,利用所述多个业务数据,构建与所述多个业务数据关联的目标邻接矩阵之后,所述装置具体实施时,还用于将所述目标邻接矩阵以稀疏格式存储于内存中。
[0195]
在一个实施例中,上述第一处理模块83具体实施时,可以按照以下程序执行:根据预设的迭代规则,对所述目标邻接矩阵进行预设次数中的当前次的左乘迭代,得到当前次的左乘结果向量,包括:获取上一次的左乘结果向量;利用上一次的左乘结果向量,左乘所述目标邻接矩阵,得到当前次的左乘结果向量;其中,所述当前次的左乘结果向量用于指示在当前次所对应的关系深度下,在正向上存在临近数据对象通过业务数据指向的数据对象的身份标识;所述当前次小于等于预设次数。
[0196]
在一个实施例中,上述第二处理模块84具体实施时,可以按照以下程序执行:根据预设的迭代规则,对所述目标邻接矩阵进行预设次数中的当前次的右乘迭代,得到当前次的右乘结果向量,包括:获取上一次的右乘结果向量;利用上一次的右乘结果向量的转置向量,右乘所述目标邻接矩阵,得到当前次的右乘结果向量;其中,所述当前次的右乘结果向量用于指示在当前次所对应的关系深度下,在反向上存在临近数据对象通过业务数据指向的数据对象的身份标识;所述当前次小于等于预设次数。
[0197]
在一个实施例中,上述确定模块85具体实施时,可以按照以下程序执行:对所述目标左乘结果向量和所述目标右乘结果向量进行点乘处理,以确定出形成第一关系圈的第一数据对象的身份标识;其中,所述第一关系圈为关系深度小于等于预设的关系深度的关系圈;根据所述第一数据对象的身份标识,从多个业务数据中筛选出涉及所述第一数据对象的业务数据,作为第一业务数据;根据所述第一数据对象的身份标识,以及所述第一业务数据,确定出多个第一关系圈。
[0198]
在一个实施例中,上述确定模块85具体实施时,可以通过预设的深度学习框架调用gpu根据所述第一数据对象的身份标识,以及所述第一业务数据,生成多个第一关系圈。
[0199]
在一个实施例中,所述装置具体实施时,还用于根据所生成的多个第一关系圈,对所述第一数据对象的身份标识进行过滤处理。
[0200]
在一个实施例中,在根据所述第一数据对象的身份标识,以及所述第一业务数据,确定出多个第一关系圈之后,所述装置具体实施时,还可以用于通过聚合迭代,从所述多个第一关系圈中确定出对应不同关系深度的关系圈。
[0201]
在一个实施例中,所述业务数据具体可以包括转账交易数据等,所述数据对象具体可以包括交易账户等。
[0202]
在一个实施例中,所述装置具体实施时,还可以用于根据交易账户之间基于转账交易数据所形成的关系圈,确定所述交易账户是否存在预设的交易风险。
[0203]
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件
和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0204]
由上可见,本说明书实施例提供的数据关系的确定装置,可以有效地降低数据处理量,高效地从大量业务数据中找出数据对象之间的关系圈,提高了处理效率,解决了现有方法中存在的数据处理量大,处理效率低的技术问题。
[0205]
本说明书还提供了一种环形图的确定装置,具体可以包括以下的结构模块:获取模块,用于获取节点数据和边数据;构建模块,用于根据预设的构建规则,利用所述边数据、所述节点数据,构建目标邻接矩阵;第一处理模块,用于根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的左乘迭代处理,得到目标左乘结果向量;其中,所述目标左乘结果向量中的数据元素用于指示沿正向满足要求的节点;第二处理模块,用于根据预设的迭代规则,对所述目标邻接矩阵进行预设次数的右乘迭代处理,得到目标右乘结果向量;其中,所述目标右乘结果向量中的数据元素用于指示沿反向满足要求的节点;确定模块,用于根据所述目标左乘结果向量、所述目标右乘结果向量、所述节点数据、所述边数据,确定出由节点数据和边数据形成的环形图。
[0206]
在一个具体的场景示例中,可以基于本说明书提供的关系数据的确定方法,在信贷场景中,通过利用海量数据,高效地找出存在资金回流风险的资金关系圈环图,以便进行相应的风险管控。
[0207]
首先,现有方法大多采用的是传统环图查找,一般采取图计算引擎的工具实现(如graphx,neo4j等)。这类工具在环图(例如,环形图,例如图9所示)查找场景中,当数据量较大或环图度数较深时,此类图计算引擎的性能依然会遇到瓶颈。原因就在于这种算法逻辑下,环图查询的复杂度是随着深度呈指数增长的。
[0208]
而在本场景示例中提出并应用了一种崭新的、基于稀疏矩阵运算的方法通过查找环图找出存在资金回流的关系,具体的可以基于pytorch、tensorflow等深度学习框架调用gpu进行并行计算,提高计算速度,且无论要查询多少度的环都可以通过相应次数的迭代高效地实现。
[0209]
具体实施时,参阅图10所示,可以包括以下步骤。
[0210]
s101:将所有点从0开始编号,作为点id。其中,每一个点与一个账户的身份标识对应。
[0211]
s102:根据id和边数据构建一个形状为n
×
n的数据元素的数据值为0和1稀疏矩阵(邻接矩阵),用符号a表示。其中,n为账户的数量。
[0212]
具体的,比如有边0指向1,那么矩阵中对应的坐标(0,1)处的元素的值为1。如果点x与y之间不存在指向关系(即不存在上述指向关系的交易数据)那么坐标(x,y)处为0。实际中,会对此矩阵采取稀疏格式存储于内存中,只记录元素值为1的坐标。如:
[0213]
tensor(indices=tensor([[53259,32798,39160,...,666,37708,4313],
[0214]
[13625,32610,33357,...,21206,4190,4190]]),
[0215]
values=tensor([1,1,1,...,1,1,1]),
[0216]
size=(67632,67632),nnz=69618,layout=torch.sparse_coo)。
[0217]
其中,indices为一个2行m列的向量表示矩阵中值为1的元素的坐标,第一行是起点的编号列表,第二行为终点的编号列表。values为列数为边个数m的一个全为1的列表。对应indices中每个位置上的值。
[0218]
s103:根据如下的步骤进行迭代。找出构成环的点。该步骤具体实施时,可以包括以下内容。
[0219]
s103

1:初始化一个元素全为1的列向量u和一个元素全为1的行向量v。分别表示为以下形式:u=(1,1,....,1)

,v=(1,1,....,1)。
[0220]
s103

2:分别用邻接矩阵d右乘u、左乘v,得到新的u和v:u=σ(du)。
[0221]
这时候如果邻接矩阵中某些行(假设第i行)全为0那么(表示第i个点没有指向任何其他点),那么经过第一次迭代后,u向量的第i个元素的值将为0.表示这个点被过滤掉了。
[0222]
在进行右乘运算:v=σ(vd)。
[0223]
这时候如果邻接矩阵中某些列(假设第j列)全为0那么(表示没有任何其他点指向第j个点),那么经过第一次迭代后,v向量的第j个元素的值将为0。表示这个点也被过滤掉了。
[0224]
也就是说每次迭代就会对目前剩下来的点做一次过滤,过滤掉目前这个状态下,没有指向任何其他点的点和没有被任何其他点指向的点。
[0225]
上述的σ是一个0

1函数,对向量中的元素大于零时取1,否则取0。
[0226]
s103

3:反复执行n次步骤s302,n的个数就是想要得到的环的深度。
[0227]
s103

4:将迭代后的1
×
n维的向量与1
×
n维的向量做点乘:x=u

·
v。
[0228]
经过n次迭代后,再对u和v中剩下的点求交集,将只剩下两种情况的点被保留下来,一种是构成换的点(这些点会被环成员顺次循环表示,不会被过滤掉),另一种就是那些能连接两个环的点(由于构成环的点不会消失,它们既指向不会消失点,又被不会消失的点指向,所以也不会消失)。
[0229]
最终算出的向量x中不为0的元素对应的点,就是构成环或连接两个环的点。这一步可以借助tensorflow、pytorch等深度学习框架,调用gpu进行计算,1秒内就可以完成上百度的环查询。
[0230]
s104根据s103的几个步骤通过矩阵迭代筛选出点x(x中不为0的元素代表的点),过滤掉不成环的边。
[0231]
具体过滤方法就是只筛选出起点和终点都属于x的边(到此也可以直接进行可视化。全部展示出所有n度和n度以下的环)。本文试验了7万条边内的环查询,使用pytorch的gpu版本进行迭代。仅用9ms就输出了3度下所有圈。可以参阅图11所示,对矩阵迭代后筛出的边进行图可视化展示。
[0232]
s105:通过聚合迭代依次输出2至n度的环。具体的算法过程包括以下内容。
[0233]
s105

1:为x中每一个点增加一个副编号,用{id}集合表示。
[0234]
s105

2:根据终点对起点的副编号进行聚合(存储为key

value形式,key为终点的id;value为所有指向该终点的起点的副编号的集合)。
[0235]
s105

3:更新当前终点的副编号为聚合后的副编号集合。
[0236]
s105

4:判断每个点的编号是否属于其副编号集合,如果属于则输出这些点的标号id,表示这些编号的点属于一个i度环的一员。
[0237]
s105

5:重复执行步骤s502至s504,直至输出n度环。
[0238]
s106:根据s104输出的每一度下的环成员点和s103输出的点之间连接关系(边)文件复输出所有环,或直接输入可视化工具进行展现。
[0239]
进而可以根据所查找出的环,进一步分析是否存在资金回流的风险,并进行相应的风险管控。
[0240]
通过上述场景示例,验证了本说明书提供的方法具有以下特点:
[0241]
1.计算速度较快。基于矩阵迭代可以快速筛选出只构成环的点,可以调用gpu资源进行加速。
[0242]
2.可以输出任意度数的环。只需设置迭代次n数就可以一次性查找出两度到n度之间的所有环图。且计算速度只会线性增长,不会指数性增长。所用时间在秒级别。
[0243]
本说明书提供过的方法一方面可以直接应用于任意度数的环图查找场景;也可以用于对复杂环图查找(如有向时序环图、多路时序流转环图等)的环初筛,可以极大降低边搜索空间,只留下成环边,用于下游逻辑处理。极大提高各种环类图计算效率。
[0244]
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
[0245]
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0246]
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0247]
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本
质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
[0248]
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
[0249]
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1