《2024金融风控反欺诈图行算法.docx》由会员分享,可在线阅读,更多相关《2024金融风控反欺诈图行算法.docx(17页珍藏版)》请在三一办公上搜索。
1、金融风控反欺诈图算法先介绍下金融借贷业务流程:用户前来申请借贷,会先经过欺诈识别,把欺诈团伙和主观欺诈的个人拒绝掉,然后对通过的人做信用评估,最后根据额度模型,算出利润最大化时放款金额。刚才提到了团队欺诈,举个真实的例子。宜人贷在他们的财报中公布的,他们被一个团伙成功指走了2000多单,当时宜人贷的件均4w,一下损失了8OOOw!那么如何防范这种风险呢。这就是今天要分享的图算法。图可以将这些一个个有良好记录的个体关联起来,一网打尽。再举一些团伙欺诈的行为。比如一个团伙,注册真实的淘宝商家,然后刷出良好的淘宝购物记录。或者来回转账,刷出良好的银行流水。刚才前两位老师都没有提到额度模型,简单介绍下
2、,如果只给用户放款5000,可能坏账风险很小,但是利息也少,如果放款100OO,利息虽然收到利息多了,Graph简介G=(V,E)G=(V,E) V:vertexset E:edgeset(有向,无向,有权重和没有权重)举例,两个人之间的联系,A给B买了东西,A和B之间的通话次数时长多于A和C之间。度中心性(DegreeCentrality)-表示连接到某节点的边数。在有向图中,我们可以有2个度中心性度量:流入和流出。一个节点的节点度越大就意味着该节点在网络中就越重要。 接近中心性(QOSeneSSCentrality)-从某节点到所有其他节点的最短路径的平均长度。反映在网络中某一节点与其他节
3、点之间的接近程度。 介中心性(BetWeenneSSCentrality)-某节点在多少对节点的最短路径上。介数中心性是比较能体现节点在图中桥梁作用的中心性度量方法。介数反映了相应的节点或者边在整个网络中的作用和影响力,具有很强的现实意义。例如,在交通网络中,介数较高的道路拥挤的概率很大;在电力网络中,介数较高的输电线路和节点容易发生危险。社团发现算法一般有: 最小割,正则化割:通过计算图的最小割,即将网络划分为预定的分组数,并使连接各分组的边的条数最少。 非负矩阵分解:基本原理是将原始矩阵分解得到社区指示矩阵和基矩阵 基于模块度的社区划分 基于节点相似性的社区划分最小割算法广泛应用在分布式计
4、算的负载均衡中,对集群节点的分组有利于减少不相关节点之间的通信。然而由于该算法限定了网络最终分组的个数,而不能通过算法发现”节点间的内在联系并自然地构成若干个社区,因此最小割算法应用较为局限。本文主要分享这两类的主要算法,基于模块度的IOUVain和基于信息烙infomap,基于相似度的node2vec模块度(MOdUIarity)公式及简化优化目标:一般认为社团内部的点之间的连接相对稠密,而不同社团的点之间的连接相对稀疏。所以模块度也可以理解是社区内部边的权重减去所有与社区节点相连的边的权重和,对无向图更好理解,即社区内部边的度数(内部的连线数)减去社区内节点的总度数。kikj2m6(4c7
5、)赤1.2,J2ik,Ejkjkj2m3。7模块度公式的解释4。节点i和节点j之间边的权重,网络不是带权图时,所有边的权重可以看做是1;区=4/表示所有与节点i相连的边的权重之和(度数);G:表示节点i所属的社区;m2J可表示所有边的权重之和(边的数目)。其中m表示社区C内的边的权重之和,力。力表示与社区C内的节点相连的边的权重之和,即社区C节点的度之和(包含与其他社区相连边的度)。从概率的角度去看:C表示实际情况下,(:社区内产生边的概率。*C表不在一种理想情况下,给定任意节点i的的度ki,对节点i和节点j进行随机连边,边属于社区C的概率期望。于是上式就表示了社区内连边数与随机期望的一个差值
6、。连边数比随机期望值越高,表明社区划分的越好。一般使用后面简化的公式,简化后的公式删除了判断两个节点是否划为同一个社区的函数,所以在一定程度上大大减少了Q值计算量。1.ouvain1.ouvain算法的思想很简单: 将图中的每个也七行成一个独立的社区,此时社区的数I。节也个数相同; 对每个节点I,依次尝试把节点i分配到其每点所在舟在区,计第配前与分配后的模块度变化Q,并记录Q最大的那个邻居节点,如果maxAQ0则把节点i分配Q最大的那个邻居节点所在的社区,否则保持不变; 7复2,H到所有节点的所属社区不再变化; Jk缩,招所1在同一个社区的节点压缩1.点之间的边的权重转化为新节点的环的权重,社
7、区间的边权重转化为新节点间的边权重,然后重复2,3; M复24,到整个图的模块咬木,发生变化第一阶段称为ModularityOptimization,主要是将每个节点划分到与其邻接的节点所在的社区中,以使得模块度的值不断变大;第二阶段称为CommunityAggregation,主要是将第一步划分出来的社区聚合成为一个点,即根据上一步生成的社区结构重新构造网络。重复以上的过程,直到网络中的结构不再改变为止。移动Ql-m(2m)+m(2m)=Ec+E_to,232-m2mJQ=Q2-Qi_infei,in_(toAggregatiinfomap从信息论的角度出发,假设一个randomworker
8、在图上进行随机游走,那么怎么用最少的编码长度来表示其路径呢?如果节点存在社区结构,那么社区内的节点就可以共享社区的bit位码,可以得到更小的平均比特,所以社区划分的越好,那么表示任意一条随机游走的路径所需的平均比特就越小。如果我们能够计算出每个节点的到达概率,就可以依据信息熠的公式来量化平均比特了:1.(P)=H(P)三-aPaIOgPa怎么计算每个点的到达概率呢?一个暴力的办法是在图上进行长时间的随机游走,最后统计每个节点的出现概率。太暴力了。利用Pagerank思路,初始化了每个节点的到达概率之后,就可以不断地迭代更新每个节点的到达概率,这个结果会很快趋于收敛。其实这过程就是一个马尔科夫随
9、机过程,随机初始化起始值,然后随机游走就相当于不停地用概率转移矩阵相乘,最后就可以达到马尔科夫稳态。把随机游走事件归为三类:进入某个社团,离开某个社团,再社团内部游走。定义清楚各类事件的发生概率,依据信息燃公式,就可以得到此时编码所需的平均比特了,其本质就是从信息论的角度出发。E(M)=qcH(Q)+ZP&H()1.(M)将图划分成m个社区,编码随机游走路径时的平均比特;qc=kIqS产生进入社区这种事件的总概率;H(Q)=-E3(qs9c)bg(qsqc)进入社区事件发生的信息嫡;PiC)=aEiPa+9icrandomWorker在社区i内部的概率,这里包括了在社区内跳转和离开该社区两类事
10、件;H(Pt)=-irvP)log(P)-(PPi)log(paPz)randomworker下一步事件发生在社区i内部的信息嫡;Infomap算法的迭代过程1,初始化,对每个节点都视作独立的社区;2.WhiIe平均比特的值不再下降;3,对图里的节点随机采样出一个序列,按顺序依次尝试将每个节点赋给邻居节点所在的社区,取平均比特下降最大时的社区赋给该节点,如果没有下降,该节点的社区不变。参考链接1. Themapequationhttp:/www.mapequation.org/apps/MapDemo.html2. https:/mp.weixin.qq.eom/s/qllxMesQA-edS
11、yHeudQRRGA3. DEEPGRAPHINFOMAX阅读笔t己https:/zhuanlan.zhihu.eom/p/58682802GraphembeddingsDeepwalk1,使用随机游走(RandomWaIk)的方式在图中进行节点采样获得节点共关系,2,使用SkiP-gram,根据步骤1中生成的节点序列学习每个节点的向量表示。skip-gram就是根据给定输入的节点,预测上下文节点。DeePWaIk有多不足,比如泛化能力,有新节点加入时,它必须重新训练模型以表示该节点。其中一个就是采样,从其邻居中随机采样节点作为下一个访问节点,是一种可重复访问已访问节点的深度优先遍历算法。no
12、de2vec是一种综合考虑DFS邻域和BFS邻域的graphembedding方法node2vec优化目标:maxEilogPMNS()Q)条件独立假设:Pr(Ns(u)f(u)=I1.iENS尸为(U)特征空间的对称性:Rglf)=T/唠%vVexp(v)(u)优化目标:m;Xwv-lgZu+E%6Ns3)/(电).刎】Jzu=wvexp(Q)/()计算量非常大,所以论文采用负采样(negativeSamPIe)进行近似计算。这个node2vec优化目标函数,因为它跟大名鼎鼎的WOrd2vec是样。我们最初是用一个Python写的包,跑一遍算法需要一周。后来想,既然优化目标是一样的,那能不能
13、用word2vec包,因为word2vec用C写的,而且还采用了HierarchicalSoftmax,negativesampling力口速。然后在网上找到了一个套用word2vec实现的node2vec包,速度快很多。随机游走的方式复杂网络处理的任务其实离不开两种特性,前面也提到过:一种是同质性,就是之前所说的社区。一种就是结构相似性,值得注意的是,结构相似的两个点未必相连,可以是相距很远的两个节点。能不能改进DeepWaIk中随机游走的方式,使它综合DFS和BFS的特性呢?所以本文引入了两个参数用来控制随机游走产生的方式。P(G=/*=if(v,x)E(0otherwise(IHdtx=
14、OQpq(士,冗)1ifdtx=1Uif4,=2Z是分子的归一化常数如果已经采样了(t,v),也就是说现在停留在节点V上,那么下一个要采样的节点X是哪个?作者定义了一个概率分布,也就是一个节点到它的不同邻居的转移概率:直观的解释一下这个分布:1 如果t与X相等,那么采样X的概率为P; 如果t与X相连,那么采样X的概率1:1 如果t与X不相连,那么采样X概率为q参数p、q的意义分别如下:返回概率p:DataFunTaIk成就百万数据科学家! 如果pmax(qzl),那么采样会尽量不往回走,对应上图的情况,就是下一个节点不太可能是上一个访问的节点to 如果pl,那么游走会倾向于在起始点周围的节点之
15、间跑,可以反映出一个节点的BFS特性。 如果qvl,那么游走会倾向于往远处跑,反映出DFS特性。 当p=l,q=l时,游走方式就等同于DeePWaIk中的随机游走。简而言之:参数P控制重复访问刚刚访问过的顶点的概率,参数q控制着游走是向外还是向内,若qb随机游走倾向于访问和t接近的顶点(偏向BFS)o若q00通过一个混合高斯模型将节=呵W%)+年JB1.帆。川=-levvjecl4OBrall=-(hvj)GE(Jj3QJ03=rE仲。g(j.fc),.社区检测和社区嵌入。这篇论文比较创新的一点,就是将社区嵌入定义为低维空间中的多元高斯分布。即对于社区k来说(AW1,.,K),它在d维空间下的
16、社区嵌入是一个多元高斯分布M(物t,),其中kRd表示的是社区内节点的平均向量(即中心点),kRdtd表示的是协方差矩阵。整篇文章最大的难点在于,如何用统一的目标函数来使得社区嵌入、社区检测和节点嵌入三者问题得到最优化的结果。由于社区嵌入是由多元高斯分布来表达的,因此就可以通过高斯混合模型来完成。假设每一个节点的嵌入向量i可以由该节点所在社区的多元高斯分布产生,这样一来,就可以得到一个似然目标函数:IH11g=k)p(yizi=A他,次,)i=lA=I其中,P(Zi=k)表示的是节点幼属于社区k的概率。方便表示,可以将这个概率表达为11ik:11ik0,1,ETriA=1。在社区发现问题中,这
17、个概率是未知的。k=l而p(vjzj=fc;i,V,fc)=f(0iI耽;,EQ表Tn的是多兀高斯分布。在社区嵌入问题中,,a是未知的。综上,将公式1对上述三个未知变量求导,就可以同时实现社区检测和嵌入。优化目标中前面两项跟UNE定义的相似度相似:1st对于每一条无向边G,j),定义顶点叫和叼之间的联合概率为:P(i,j)=exp(-,jjr砧为顶点%的低维向量表示(可以看作一个内积模型,计算两个item之间的匹配程度)同时定义经验分布底=.VF=X(2)wEt优化目标为最小化:O1=d(p(,),P(,)d(,)是两个分布的距离,常用的衡量两个概率分布差异的指标为K1.散度,使用K1.散度并
18、忽略常数项后有Q=-(ij)Ew1.earningCommunityEmbeddingwithCommunityDetectionandNodeEmbeddingonGraphshttps:/zhuanlan.zhihu.eom/p/369247891.earningCommunityEmbeddingwithCommunityDetectionandNodeEmbeddingonGraphsgPi(.vj)1storder相似度只能用于无向图当中.2nd这里对于每个顶点维护两个embedding向量,一个是该顶点本身的表示向量,一个是该点作为其他顶点的上下文顶点时的表示向对于有向边(,j),
19、定义给定顶点心条件下,产生上下文(邻居)顶点叼的概率为P2(vjv,)=f-.其中IVrl为上下文顶点的个数优化目标为O2=EiwAd(Q2(E),p2(奶),其中为控制节点重要性的因子,可以通过顶点的度数或者PageRank等方法估计得到.经验分布定义为:%(叫E)=,叫J是边仙力的边权,4是顶点叫的出度,对于帝权图,4=&n阴*使用K1.散度并设=4,忽略常数项,有O2=-(ij)eEWljlogp2i)评价指标Modularity标准化互信息NMI(NormalizedMutualInformation)NMl(U,V)=MIt7,V)yH(UH(V)M3,苣磊)(口y(Nui11vj-阳叼)假设对于N个样本点的两种标签划分为U和V.炳为划分集的不准确性H(S=-EBiPG)Iog(PR)H(W=P(J)Iog(PU)p(i)=IaI/N表示任取一个样本划分为的概率P(J)=MI/N