银行作为金融支付体系中的核心支柱,长期以来积累了大量的客户交易数据
。这部分数据中隐藏着客户的交易行为与习惯
、
客户间的资金往来关系
、
客户间的资金流向及规律等高价值信息。通过深入分析客户间的资金网络关系,可以从中找出具有较高影响力或潜在营销价值的重点客户;通过分析资金网络内部的整体交易行为,可以发现隐蔽的可疑交易线索;通过分析客户间交易关系的行为模式和演变规律,可以对客户的资金使用习惯做出更准确的预测。
在实现以上分析工作的过程中,往往需要先通过交易流水探查出客户间的资金网络关系。由于银行每日的交易流水可达几百万甚至上千万笔,观察期内的总交易流水量更会多达数十亿笔。如此庞大的基础数据量,使得普通的资金网络关系发现算法无法快速探查海量客户资金网络关系,为深入挖掘数据资产价值需要一个更简洁高效的网络关系发现算法。
普通的资金网络关系发现算法的复杂度,一般会随网络层级深度的增加,对时间和计算资源的消耗呈指数级增长,在遇到大规模复杂网络时会出现计算时间过长,甚至计算资源不足等情况。为此,本文设计了一种新型高效的复杂资金网络关系发现算法,其时间复杂度随网络发现层级增长呈线性增长;算法所处理的资金网络规模越庞大、内部结构越复杂,其计算效率越高、算法的执行效果越好。
网络特征分析及常用
算法介绍
1.
资金网络关系特征分析
网络包括相互关联的节点和节点间的关系,客户资金网络由直接或间接关系的客户以及客户间交易关系构成,资金网络关系体现的是一种客户间的资金关系。在计算资金网络关系时,首先需要将时间段内两两客户间的多笔交易进行轧差,合并成每两个客户间唯一的一条资金关系。
每位在银行办理业务产生过交易的客户,都存在着自己与其他行内、外多个客户进行资金往来而形成的资金网络。每个产生交易信息的客户也都会唯一归属于某个资金网络内。资金网络间是彼此相互独立的,如果有交集则可以合并成一个更大的资金网络。
在一个资金网络内部,会存在着一个交易主体对应多个交易对手或者一个交易对手对应多个交易主体的情况。如果出现这种情况则判定它们一定存在于同一个资金网络,由此可以进一步推导出本文的复杂资金网络关系发现算法。
2.
传统
资金网络关系发现算法介绍
探查客户间的资金网络关系是银行数据分析过程中经常会遇到的场景,常见的网络关系发现算法有广度优先算法(BFS)、随机游走算法(RWS)和最大度算法(HDS)。这些算法的原理都是基于不同的网络路径遍历策略实现的,下面以广度优先网络关系发现算法为例进行说明。
在获得所有客户间的交易关系后,首先随机抽取一个客户,寻找并判断该客户是否存在有第一层的对手客户。如果存在,则基于第一层的对手客户逐一寻找第二层的对手客户,以此类推。如果所有层都找不到新的对手客户,则第一个客户的资金网络关系发现完毕。然后从待发现的客户关系中再随机抽取出一位客户进行计算,直到所有的客户都被归组。
该算法在随机抽取第一个客户时,该客户的资金网络初始状态只有他自己一个人,如果该客户有10个对手,在算到第一层资金关系时网络内有1+10=11个人,如果这十个对手每个人又有10个对手,在算到第二层资金网络时内有1+10+10*9=101个人。通过这个例子可以看到,每次随着网络关系层级每往外多扩展一层,资金网络内发现的客户数就会出现指数级的快速增长,如果一个资金网络的深度有几十层,在计算到较外层的时候,网络内的客户数就会变得极其庞大,所需计算量也非常惊人。
随着网络层级的扩展,资金网络内节点的数量会出现指数级的增长。该算法往往应用于发现有限层级的网络关系,或指定某些重点客户的网络关系,并不适合海量客户间资金网络关系发现。
一种高效
的复杂资金网络关系发现算法
本文提出一种高效的复杂资金网络关系发现算法,旨在从海量的客户交易流水中将直接或间接资金关系的客户进行快速关联。
在同一个资金网络中,一个主体客户可能会对应多个对手客户,同样一个对手客户也会对应多个主体客户。首先从主体的角度看,可将具有相同对手的主体客户打一个标识合并至一个临时组,再从对手的角度看,将具有相同主体的对手客户再打一个标识,合并至另一个临时组中,这样就通过资金关系的二元属性完成了第一层客户资金关系的合并。接下来基于由合并后客户组成的临时资金网络关系继续合并,直至不存在一个主体有多个对手,或一个对手有多个主体的情况。
举例说明,原始客户资金关系如下所示:
序号
|
主体客户(资金转出)
|
对手客户(资金转入)
|
1
|
A
|
B
|
2
|
A
|
C
|
3
|
A
|
D
|
4
|
B
|
C
|
5
|
B
|
E
|
6
|
B
|
F
|
7
|
E
|
C
|
8
|
E
|
D
|
9
|
E
|
F
|
具体算法步骤分别如下:
第一步
、将具有公共主体的对手客户进行合并,并以合并后的最小客户名称作为第一次合并后对手的标识,如序号1、2、3对手的主体都是A,则B、C、D合并为B;序号4、5、6对手的主体都是B,则C、E、F合并为C;序号7、8、9对手的主体都是E,则C、D、F合并为C;合并后的结果见下表
原始层级
|
第一层合并
|
序号
|
主体客户
|
对手客户
|
第一层
主体标识
|
第一层
对手标识
|
1
|
A
|
B
|
|
B
|
2
|
A
|
C
|
|
B
|
3
|
A
|
D
|
|
B
|
4
|
B
|
C
|
|
C
|
5
|
B
|
E
|
|
C
|
6
|
B
|
F
|
|
C
|
7
|
E
|
C
|
|
C
|
8
|
E
|
D
|
|
C
|
9
|
E
|
F
|
|
C
|
注:如果在手机上阅读,可将手机横过来
第二步
、将具有公共对手的主体客户进行合并,并以合并后的最小客户名称作为第一次合并后主体的标识,如序号1主体的对手只有B,则A对应为A;序号2、4、7主体的对手都是C,则A、B、E合并为A;序号3、8主体的对手都是D,则A、E合并为A;序号5主体的对手是E,则B对应B;序号6、9主体的对手都是F,则B、E合并为B;合并后的结果见下表
原始层级
|
第一层合并
|
序号
|
主体客户
|
对手客户
|
第一层
主体标识
|
第一层
对手标识
|
1
|
A
|
B
|
A
|
B
|
2
|
A
|
C
|
A
|
B
|
3
|
A
|
D
|
A
|
B
|
4
|
B
|
C
|
A
|
C
|
5
|
B
|
E
|
B
|
C
|
6
|
B
|
F
|
B
|
C
|
7
|
E
|
C
|
A
|
C
|
8
|
E
|
D
|
A
|
C
|
9
|
E
|
F
|
B
|
C
|
第三步
、通过观察,看到合并后的第一层,仍有主体对应多个对手的情况,需要继续合并。同步骤一,将具有公共主体的对手客户进行合并,并以合并后的最小客户名称作为第一次合并后对手的标识,如序号1、2、3、4、7、8对手的主体都是A,则B、C、合并为B;序号5、6、9对手的主体都是B,则C对应为C;合并后的结果见下表
原始层级
|
第一层合并
|
第二层合并
|
序号
|
主体客户
|
对手客户
|
第一层主体标识
|
第一层对手标识
|
第二层主体标识
|
第二层对手标识
|
1
|
A
|
B
|
A
|
B
|
|
B
|
2
|
A
|
C
|
A
|
B
|
|
B
|
3
|
A
|
D
|
A
|
B
|
|
B
|
4
|
B
|
C
|
A
|
C
|
|
B
|
5
|
B
|
E
|
B
|
C
|
|
C
|
6
|
B
|
F
|
B
|
C
|
|
C
|
7
|
E
|
C
|
A
|
C
|
|
B
|
8
|
E
|
D
|
A
|
C
|
|
B
|
9
|
E
|
F
|
B
|
C
|
|
C
|
第四步
、同步骤二,将具有公共对手的主体客户进行合并,并以合并后的最小客户名称作为第一次合并后主体的标识,如序号1、2、3主体的对手只有B,则A对应为A;序号4、5、6、7、8、9主体的对手都是C,则A、B合并为A;合并后的结果见下表
|
第一层合并
|
第二层合并
|
序号
|
主体客户
|
对手客户
|
第一层主体标识
|
第一层对手标识
|
第二层主体标识
|
第二层对手标识
|
1
|
A
|
B
|
A
|
B
|
A
|
B
|
2
|
A
|
C
|
A
|
B
|
A
|
B
|
3
|
A
|
D
|
A
|
B
|
A
|
B
|
4
|
B
|
C
|
A
|
C
|
A
|
B
|
5
|
B
|
E
|
B
|
C
|
A
|
C
|
6
|
B
|
F
|
B
|
C
|
A
|
C
|
7
|
E
|
C
|
A
|
C
|
A
|
B
|
8
|
E
|
D
|
A
|
C
|
A
|
B
|
9
|
E
|
F
|
B
|
C
|
A
|
C
|
第五步
、通过观察,看到合并后的第二层,仍有主体对应多个对手的情况,需要继续合并。同步骤三,将具有公共主体的对手客户进行合并,并以合并后的最小客户名称作为第一次合并后对手的标识,如序号1、2、3、4、5、6、7、8、9对手的主体都是A,则B、C、合并为B;合并后的结果见下表
原始层级
|
第一层合并
|
第二层合并
|
第三层合并
|
序号
|
主体客户
|
对手客户
|
第一层
主体标识
|
第一层
对手标识
|
第二层
主体标识
|
第二层
对手标识
|
第三层
主体标识
|
第三层
对手标识
|
1
|
A
|
B
|
A
|
B
|
A
|
B
|
|
B
|
2
|
A
|
C
|
A
|
B
|
A
|
B
|
|
B
|
3
|
A
|
D
|
A
|
B
|
A
|
B
|
|
B
|
4
|
B
|
C
|
A
|
C
|
A
|
B
|
|
B
|
5
|
B
|
E
|
B
|
C
|
A
|
C
|
|
B
|
6
|
B
|
F
|
B
|
C
|
A
|
C
|
|
B
|
7
|
E
|
C
|
A
|
C
|
A
|
B
|
|
B
|
8
|
E
|
D
|
A
|
C
|
A
|
B
|
|
B
|
9
|
E
|