社交网络分析(SNA)算法并不新鲜,且已经广泛应用于社交人物影响力计算、好友和商品推荐、社交圈子分析等领域。近几年,社交网络分析算法的应用不断拓展,已经开始应用于各种金融反欺诈领域,且效果很好。

为了讲解基于SNA的反欺诈,本文先简单介绍下SNA的基本原理,然后介绍几种典型的SNA方法,最后是在金融领域的反欺诈场景应用。为了方便理解,文章会直接忽略若干细节,以下内容都是为了有助于理解反欺诈建模,想了解SNA更系统的知识请参看其他材料。

社交网络分析的基本原理

一、基础知识

1、节点和边

社交网络,顾名思义,就是表现人和人之间关系的网络。类似的,社交网络分析算法,也就是为了研究节点(可以理解成人)和节点关系(边,可以理解成人和人之间的关系)的算法。通过对关系的研究,可以对节点关系做梳理,从而聚成团。为了方便对下文指标的理解,我们定义节点数 N = |V|, 边数 M = |E|

2、图,有向图,无向图

用边把节点连接起来形成的网络,称为图。图又可以分成无向图和有向图,分别如下图所示:

社交网络智能优化算法机器学习 社交网络分析算法应用_数据

无向图仅表示节点和节点之间是否有关系,例如:在P2P行业反欺诈建模中,可以通过申请者通讯录去获取其社会关系,例如,如果张三和李四的通讯录都有老赖王五,那么,张三和李四的贷款申请违约风险就会比较高。

有向图相比于无向图会携带方向信息,一个最简单的例子就是传销图。传销有非常成熟的上下线制度,是发展团队十分迅速有效的手法,也被互联网公司广泛用于发展用户——好友邀请制度,此外,保险销售公司也有类似的提成机制。如被不法分子利用规则,对互联网公司,产生的后果就是大规模虚假注册;对保险销售公司,产生的后果就是内外勾结骗取额外提成。

3、社区,非重叠社区,重叠社区

社区可以理解成UML中的群组,也就是同一个社区中节点和节点关系紧密,而社区和社区之间关系稀疏。如果任意两个社区的节点集合的交集为空则被称为非重叠社区,否则称为重叠社区。

4、派系,完全子图

派系是指任意两个点都相连的节点的集合,又称为完全子图。

社交网络智能优化算法机器学习 社交网络分析算法应用_数据_02

 

二、常用分析指标

1、度

简单来讲,度就是指从你这个节点发散出去了多少条边,或者可以理解成你有多少个朋友。

2、度中心性

我们在每个节点上都标注上其度的值大小,如下图所示:

社交网络智能优化算法机器学习 社交网络分析算法应用_数据_03

 

我们接下来做标准化处理,用度除以最大连接可能(N-1),则得到:

社交网络智能优化算法机器学习 社交网络分析算法应用_数据_04

 

形象来说,中心性指越高,表示与你有联系的人越多,或者说,你的社交人物影响力就大。这是一个社交网站分析用户行为时一个常用的指标。

3、集中度

集中度表示一个群体的紧密程度,或者可以理解成密度。集中度又可以分为度集中度,紧密集中度和介数集中度,还有图集中度、特征向量集中度等,以下我们主要介绍前三种。

度集中度(Degree centrality)度量集中度的方式有很多,例如,基尼系数、标准差和Freeman集中度公式。以下,我们以Freeman集中度通用公式为例计算如下两图的度集中度:

社交网络智能优化算法机器学习 社交网络分析算法应用_社交网络_05

 

紧密集中度(Closeness centrality)依赖于从一个结点出发到其它所有结点的最短路径长度,并被定义为总长度的倒数。通常我们讲节点i的紧密中心度,是指其标准化形式,也即总距离长除以(N-1)。

社交网络智能优化算法机器学习 社交网络分析算法应用_社交网络_06

 

介数集中度(betweenness centrality)直观理解,介数就是多少个节点对必须经过本节点实现最小跳数互达。还是以上面两图作为示例来计算介数集中度:

社交网络智能优化算法机器学习 社交网络分析算法应用_社交网络智能优化算法机器学习_07

常用社交网络分析算法

一、PageRank算法

PageRank算法用一句古文来讲,就是“近朱者赤,近墨者黑”,也就是被高质量网页引用的网页也是高质量网页,或者被用户访问越多的网页可能质量越高。我们在大学写论文投期刊的时候,也会看到类似的数字,比如:期刊的影响因子、被引用次数。影响因子和被引用次数越高,表示这个期刊越好,如果被这样的期刊录用,也表示你的学术水平得到了极大的认可。再比如,相信每个支付宝用户都受到过芝麻信用的善意提醒:多结交信用度高的朋友,有助于提高自己的芝麻分,也是一样的道理。《黑镜》第三季第一集便是把信用评分社会夸张到极致,也是对社交网络的一种诠释。

PageRank算法被广泛用于搜索引擎结果排序,而为了抵御Spam,各搜索引擎采用的排名算法实际上是保密的,PageRank的具体计算方法也不尽相同。

 

二、社区发现算法

社区发现算法的思路就是在复杂网络中发现连接紧密的节点簇(社区结构),与聚类的思路如出一辙。发现这些社区结构的方式有很多中,本文主要介绍几种简单但常用的算法:GN算法,Louvain算法,LPA算法和SLPA算法。

1)GN(Girvan-Newman)算法

GN算法是一个最经典的社区发现算法,属于分裂的层次聚类算法(自上而下)。因最初由Michelle Girvan和Mark Newman提出而得名。GN算法的基本思想是不断删除网络中具有相对于所有源节点的最大边介数的边,然后,再重新计算网络中剩余的边的相对于所有源节点的边介数,重复这个过程,直到网络中所有的边都被删除。怎么理解呢?通过介数的定义我们知道,介数是多少个节点对必须经过本节点实现最小跳数互达的值,而介数高的边必然要比介数低的边更可能是社区之间的边(两个社区中的节点之间的最短路径都要经过那些社区之间的边,所以它们的介数会很高)。为了方便理解,可以参看下图,方块节点和圆形节点的最短路径,必然要经过边AB,因此边AB的介数最大,拆除这条边,就可以将其分成1#和2#两个团体了,或者称之为两个社区。然而,虽然GN算法的准确率很高,但是计算量大,时间复杂度也很高。

社交网络智能优化算法机器学习 社交网络分析算法应用_社交网络智能优化算法机器学习_08

 

2)Louvain算法

Louvain可以理解成GN的逆过程,GN的思路是不断拆边,类似于自上而下的层次聚类。而Louvain则是不断凝聚,类似于自下而上的层次聚类。为了理解Louvain算法的过程,先来学习一个社区评价指标——模块度。模块度用来衡量一个社区的划分是不是相对比较好的结果。一个相对好的结果在社区内部的节点相似度较高,而在社区外部节点的相似度较低。

模块度的大小定义为社区内部的总边数和网络中总边数的比例减去一个期望值,该期望值是将网络设定为随机网络时同样的社区分配所形成的社区内部的总边数和网络中总边数的比例的大小。模块度为Q为,在进行每次划分的时候计算Q值,Q取值最大的时候则是此网路较理想的划分。Q值的范围在0-1之间,Q值越大说明网络划分的社区结构准确度越高,在实际的网络分析中,Q值的最高点一般出现在0.3-0.7之间。

介绍完模块度,我们就可以开始使用Louvain算法了。首先,我们把每一个节点当作一个独立的社区,假如我们把V1和V2加入到i都会使其模块度增加, 我们比较两者的数值,选择增量较大的一个加入到i社区中。如此这般反复迭代,直到模块度Q的值不再增加为止。

3)LPA(Label Propagation Algorithm)

LPA算法的稳定性不是很好,但优点是可扩展性强,时间复杂度接近线性,且可以控制迭代次数来划分节点类别,不需要预先给定社区数量,适合处理大规模复杂网络。LPA的计算步骤也十分简单:

第一步:为所有节点指定一个唯一标签;

第二步:刷新标签:对于某一个节点,考察其所有邻居节点的标签,并进行统计,将出现个数最多的那个标签赋给当前节点(如果最多的标签不唯一,随机选择一个);

第三步:重复步骤二,直到收敛为止。

4)SLPA (Speaker-listener Label Propagation Algorithm)

SLPA是一种改进的LPA,是一种重叠社区发现算法,其中涉及一个重要的阈值参数r。通过对r的适当选取,可将其退化为非重叠型。

社交网络智能优化算法机器学习 社交网络分析算法应用_社交网络智能优化算法机器学习_09

 

SLPA中引入了listener和speaker两个比较形象的概念。可以这么理解:在刷新节点的过程中,我们讲要被刷新的节点定义为listener,其临近节点就是它的speaker,speaker通常不止一个,在众多speaker七嘴八舌时,listener该听谁的呢?这时我们就要制定一个规则。

在LPA中,我们以出险次数最多的标签来做决断,这其实就是一种规则。只不过在SLPA框架里,规则的选取方式多由用户指定(通常结合业务逻辑和场景决定)。与LPA相比,SLPA最大的特点在于它不是仅仅的刷新替代原标签,而是记录每一个节点在刷新迭代过程中的历史标签序列(例如迭代T此,则每一个节点将保留一个长度为T的序列,见上面著名的手绘图)。当迭代停止时,对每一个节点历史标签序列中各标签出现的频率做统计,按照某一个给定的阈值过滤掉那些出现概率小的标签,剩下的标签为该节点的标签(通常有多个)。

 

反欺诈应用场景

一、消费金融反欺诈

近年来,消费金融行业快速发展,相比于传统商业银行,形成了自己独特的优势:填写字段少、在线操作、审核速度快、放贷及时。这类申请人群通常因缺乏征信信息(一是客户年轻化,而是一些消费金融公司不具有查询征信的资格)而给消费金融企业带来了巨大的信用和欺诈风险。

如何在有限信用记录甚至是“零”信用记录下进行更准确的风险控制和欺诈识别是消费金融公司降本增效的关键问题。解决这个问题通常有两种方案,一是运用商业银行广泛使用的成熟的评分卡模型;二是新兴的基于机器学习的信用预测(评分)模型。事实上,巧妙利用机器学习,可以将两种方案结合,互为补充。

机器学习的原料是数据,数据主要分为三类:一是用户主动提交的申请表信息;二是企业主动获取的信息,如:用户行为数据,设备数据,通讯录等;三是第三方数据(征信公司、运营商、社保公积金中心、法院执行、医院等)。有了数据,第二步就是要进行特征工程,这也是整个算法中最核心的一步。第三步,跑模型。由于本文我们的主角是SNA,我们看下面一个典型社区。

社交网络智能优化算法机器学习 社交网络分析算法应用_数据_10

图中,红色的点代表被拒绝的用户,黑色的点代表穿越用户(通过申请但有逾期表现的用户),绿色的点代表通过且表现良好的用户。总结一下,该团伙的拒绝率达到66.8%,说明该团伙的平均用户信用值较低;穿越用户占所有通过用户的91.4%,进一步验证了该团伙的欺诈性。

特别地,在利用SNA进行社区分析时,派系图具有更高的风险性。这种图的背后通常是多人协作的团伙作案,其两两互通表示两两认识,背后的目的多为相互勾结,伪造信息以达到消费金融借贷审核要求,且这类社群多有内外勾结的情况,需要重点关注。

社交网络智能优化算法机器学习 社交网络分析算法应用_数据_11

二、信用卡申请反欺诈

信用卡申请欺诈与消费金融类似,只是目前信用卡线上化平均水平只有70%,且有些银行甚至还没有开始采集设备信息,因此缺乏一些在线电子化信息。但由于信用卡中心具有查询用户征信数据的资质,所以相比于消费金融会增加征信数据,对模型输入是一个很好的补充。

三、保险理赔反欺诈

SNA应用于保险理赔反欺诈已经有几年的时间了,据某保险公司产险风控部专家透露,自其上线SNA算法后,每年可提高预检率2%,多识别出400+欺诈团伙,为公司节约2亿+虚假理赔款。

车险理赔欺诈案件的识别,通常是利用车辆涉案人员、包括司机、报案人、受益人和伤者,以及修理厂、报案电话、检修地点、GPS信息等数据进行SNA分析,识别可能的骗保团伙。例如,平安保险林晟副总经理在2015年分享的一个案例:有两个上海车牌车辆与两个江苏车牌车辆发生了碰撞事故,单看感觉每个案件都很正常,但把他们放到SNA网络时,发现这个车的司机是那个案件的伤者,而一个案件的报案人又是另一个案件的司机。通过进一步调查分析,发现两个驾驶员驾驶不同车辆,一年内共5次。

还有一个典型案例,可以与大家分享。一修理厂员工通过驾驶道具车,充当三者,故意制造双方事故,短期内高频出险,利用交警“微损案件快速处理”的漏洞,自行拍摄车辆损失代替现场勘查,骗取保险赔款。通过SNA分析,除了修理厂的赵某某和蔡某某外,还发现了其他7名驾驶员,一举拿下这个骗保团伙。

 

社交网络智能优化算法机器学习 社交网络分析算法应用_GN_12

由于现在各保险公司的价格都已经不断趋于同质化,而对于保险人选择保险公司的依据也早已不是单独的价格敏感了,快速理赔已经成为保险公司吸引保险人的重要因素之一了。因此有不法分子利用小额(<5000元)理赔便利,进行高频出险骗保,SNA网络可以有效识别这一类骗保行为,将骗保团伙一网打尽。

四、销售网络反欺诈

销售网络反欺诈是有向图的一个典型应用。为了促进销售量,很多公司在促销产品和服务时,都有发展二级代理或更下级代理的提成策略。而通常下级代理在卖出产品或服务时,上级代理会得到销售公司的额外奖励。例如,某保险销售公司,如果二级代理销售出一份保险,上级代理可获得销售公司额外的1%提成。如此,上级代理便利用这个规则,将自己的保单全部挂在二级代理上,以此获得不法收入。据统计,仅一年时间,某销售网点就利用销售提成奖励机制获取800万额外提成(涉案金额8000万元人民币)

PS:反欺诈是金融行业永恒的主题,尤其是进入大数据、人工智能时代,欺诈风险逐渐成为信用风险之外的一个主要风险;为此需要深入应用社交网络分析等智能化算法,将反欺诈手段进行持续升级和优化。