*** 攻防定义_ *** 攻防模型算法优化

hacker|
119

如何构建一个反电信 *** 诈骗基础模型

金融服务机构认为欺诈事件是经营的必要成本之一,基于此,金融机构主要关注如何降低欺诈事件带来的损失。当前金融服务行业的欺诈热点有三个,分别是洗钱、合规和内部金融欺诈。比起之前,欺诈者更倾向于通过秉承以往有效的集团犯罪形式,向金融服务机构的系统漏洞发起攻击。很多金融机构在新产品刚上线的头几天,就被欺诈者迅速攻破,导致这类企业承受巨大经济损失。同时,基于合规考虑和欺诈攻击扩展速度,金融类机构必须摒弃欺诈成本预算这个观念。与之相反,金融类机构必须考虑主动投资反欺诈的技术手段、防控工具和策略,从而达到有效预防欺诈的效果,减少欺诈带来的风险损失和资本损失。

在欺诈者眼中,网贷行业是个大蛋糕。如今,不管是线下的贷款中介代办包装还是线上的盗号刷单等类似的黑产从业者,都盯上了在线贷款。反欺诈能否做好,是网贷行业的一条生死线。

首先简单普及下行业知识。欺诈模式可以分为一方欺诈和三方欺诈:一方欺诈通常指申请者包装自己信息且贷款后没有还款意愿造成违约,三方欺诈指欺诈分子借用冒用他人身份或协助他人伪造申请信息进行骗贷。三方欺诈通常以团伙作案的形式出现,给网贷机构造成的损失十分严重。而且,团伙欺诈往往会有意识地分析网贷机构的反欺诈策略,不断升级欺诈手段,仿佛病毒变种一般,如果缺乏有效手段,就很容易被他们攻破反欺诈系统。

对于欺诈团伙,目前行之有效的是采用大数据手段进行防范,下面重点介绍下数据科学在识别三方欺诈中的一个应用:“关系 *** 发现”用于识别组团进件。

制定反欺诈策略存在一个基本的假设,即“骗子的朋友是骗子”的概率更大,且我们要对不良的贷款中介要进行识别。因为中介骗子会帮很多还款意愿不强的人通过提供虚假、伪造、包装申请信息的方式进行骗贷,同时还会教申请人如何应对。通过中介(或者本身就是团伙)进行集中贷款申请的风险非常高,是一种常见的欺诈类型,分析发现社交 *** 分析和其他交叉检验 *** 能有效识别上述欺诈模式。

我们定义用户和用户之间如果共用某些核心信息,那么他们之间就存在紧密联系,这些核心信息可以是手机设备、 *** 号码、身份证、银行卡号、邮箱等。以这些信息作为点,信息之间的关系作为边就可以构造出类似下面的图 *** :

如上图,图中有两个用户通过手机申请贷款,一个放款成功,一个放款失败,通过用户申请中提供的信息,将其核心信息构建成一个 *** 图,可以看到两个用户一共关联到3个手机号,3部手机设备,两个用户是通过一个公用的手机设备联系起来的。上图的真实业务场景是尾号979的用户来申请时,发现与其强相关的用户已经成功放款,并且通过图上的关系已经申请调查出尾号979的用户是之前放款用户的配偶,若批准尾号979的贷款申请则将增加两人整体负债,所以最终审判拒绝掉了这笔贷款申请。

上面是一个简单例子,真实业务中欺诈与反欺诈是道高一尺魔高一丈的博弈过程,简单的反欺诈策略很容易被真正的欺诈分子发现并规避,简单策略的效果会不断下降。事实上欺诈很难被完全解决,反欺诈的一个重要思路就是不断的提高欺诈分子作弊的成本,并且保证策略准确性情况下使反欺诈策略更智能并且更复杂。

这种思路下同样是通过社交 *** 反欺诈,我们需要更全面地描述每个用户之间的关系,用户之间关系的定义也不止是上述这些强关系,还包括很多弱关系,比如用户间打过 *** ,用户间是同一单位,用户家庭住址在同一区域,用户之前是 *** 好友等,这些更多的关系与关系的叠加很容易出现下面类似的用户间非常复杂的关联 *** 。

构建图的同时,对每个点还可以赋予不同的属性,这些属性可以用于后续的特征工程提取。举个例子,对图中用户身份证类型的顶点,可以设置多个属性,如是否黑名单、用户资产、是否有房。后续特征工程中就可以根据顶点属性衍生出具体的特征,如一度关联的身份证是黑名单的顶点个数。用户关系 *** 图构建的最终目的是提升欺诈团伙的识别准确度以及实现自动化的反欺诈决策,即提升欺诈识别的效果和效率。我们希望通过社交 *** 挖掘出用户更多的特征用于反欺诈模型和策略的训练,所以对于这种复杂的用户关系 *** 图,接下来我们要进行两件事,其一,用户特征提取;其二,点属性标签的补全。

用户特征提取

每个用户都可以通过手机、身份证等关键信息点,获取单个用户 *** 的连通图(事实上对10亿级节点的图的查询效率已经非常低了,在实时决策的场景下需要通过算法优化来解决响应时间的问题,比如图入库的锁问题,异常点的查询超时)。对每个点计算其在图中常用的属性特征,比如度、接近中心度、page rank中心度、betweenness中心度。这个过程可以看作是对给定用户,通过图数据进行特征工程。大部分策略和模型的效果往往由特征工程的质量决定,甚至特征工程 *** 也成了各家公司不可泄露的核心内容,数据算法工程师的苦逼日子也由此开始……举几个例子,除了简单的点中心度相关的直接特征还能直接想到非常多的特征,比如用户n度关联点的关联手机号数、用户关联到的设备号占所有关联点的比例、用户关联的黑名单身份证号数等等。上述举例的特征计算大部分可以实现标准化,通过开发单独特征工程模型实现上万特征的衍生计算。这样能极大提升模型开发的效率。

点属性标签的补全

在策略分析和特征计算中,我们需要很多点的标签属性,比如对某一身份证是否是黑名单,身份证是否有房,身份证是否信用卡额度超过3万等等。但是实际上往往对于大部分用户标签属性是缺失的,比如用户申请到一半就流失了,用户最终放弃了,我们都没法准确收集这些标签。怎么办?我们通过图相关的社群发现算法进行标签补全,比如最常用标签传播算法LPA(Lable PropagationAlgorithm),还有类似的算法,比如SLPA、HANP、DCLP等等。

针对行业发展的最新情况,算话征信推出的反欺诈云服务现已完成全面升级,依据其提供的欺诈评级以及欺诈判断的补充信息,信贷机构再结合各自已有的欺诈策略同时部署应用,就能实现欺诈防范效果更优化。在此前各合作机构的运行过程中,算话反欺诈云服务已建立了信贷行业反欺诈联盟,在实现行业联防联控、打击欺诈团伙多机构流窜攻击等方面取得了理想效果。

据统计,算话反欺诈云服务上线运行的6个多月中,已为70余家合作机构的数百万信贷申请提供欺诈预警服务,协助信贷机构发现欺诈损失数千万元。

在原有基础上,算话反欺诈云服务的三大产品优势将更加明显,即海量的征信资源数据、卓越的关系 *** 算法、优异的中文模糊匹配功能,算话反欺诈云服务能够以卓越算法行之有效地建立起关系 *** ,这是因为我们使用直接基于“点”和“线”存储的图形化建模方式,结合DMR *** 关系发现算法,极大提升了欺诈关系发现能力和效率。系统具有欺诈关系 *** 发现无延迟、实时探测计算、覆盖每笔欺诈申请等特点;更重要的是定义了多重关联关系,以此挖掘团伙案件的潜在关联,使其无处遁形。

优化 *** 总结

神经 *** 模型中有多种优化算法,优化算法的作用用来优化更新参数。

对于优化算法而言,主要的框架如下。

参数: 目标函数: 学习率 。

对于每个epoch t:

step1: 计算当前梯度

step2: 计算动量。

     一阶动量:

     二阶动量:

step3: 计算当前时刻下降梯度

step4: 更新参数

对于不同的优化算法而言,区别主要在于之一步和第二步。对于梯度的计算,一阶动量的计算,和二阶动量的计算存在差别。

三、四步的计算更新,各个算法之间都是相同的。

最常见的SGD

直接没有step2,没有引入动量。

在实际的实现中,可能会对学习率 进行改变,会使用衰减学习率。

SGD的缺点是 1 收敛速度慢,2 有可能会困在局部更优解。

也就是SGD+ Momentum。这里引入了一阶动量。

从直观理解就是加入了一个惯性,在坡度比较陡的地方,会有较大的惯性,这是下降的多。坡度平缓的地方,惯性较小,下降的会比较慢。

修改SGD中的一阶动量为

等式右边有两部分,加号左边的部分为之前积累的下降方向,加号右边为当前的梯度。两者的权重用参数来控制。

越大,说明下降的方向越依赖于以往的惯性。可以减少方向的突变。

NAG是:Nesterov Accelerated Gradient

这里是针对SGD会陷在局部更优附近的缺点进行改进。

在前面针对收敛慢改,引进一阶动量后,这里着眼于step1里的梯度计算。通常 会设的比较大,这就说明下降方向主要由历史方向积累决定,那么在step1里,不看当前的梯度,而是看下一步时刻的梯度。直观理解为多看一步,计算下一步的梯度。

用下一个点的梯度下降方向,与历史累积动量结合,计算step2里的一阶动量。

计算公式如下

前面的优化算法主要着眼于一阶动量的设计,从AdaGrad开始,将引入二阶动量。参数的二阶动量在这里表示为当前维度上,历史积累的全部的梯度的平方和。

将step3里的公式修改一下顺序,那前面的部分可以看成学习率。这里的分母是二阶动量。这里的学习率(包含二阶动量)会随着二阶动量的积累而逐渐变化,这就是‘自适应学习’。

宏观来分析,这里参数更新时,希望从少更新的维度多学习,经常更新的参数那里少学习一点。对于频繁更新的的参数,二阶动量迅速积累,会使的学习率降低,那么在同一次更新中,模型会学到比较少的内容。而不频繁更新的参数,学习率会比较大,每次更新时学到的东西比较多。

Ada算法的缺点也很明显,二阶动量是历史梯度的积累,是个单调递增的值,当分母越来越大时,整个的学习率会趋于0,会提前停止学习。

为了改进AdaGrad中的二阶动量会不断增加的缺点,这里提出了一个时间窗口。计算二阶动量的时候只计算这个时间窗口内的动量。避免了二阶动量的持续积累。

二阶动量的计算公式如下

SGD-M 引入了一阶动量,AdaG 引入了二阶动量。

二者结合就是Adam,同时考虑一阶动量和二阶动量。

二者的计算公式如下:

回头看最初的优化框架,已经分别在一阶动量和二阶动量做了研究。还剩下当前的梯度可以进行尝试。参考前面的NAG,Nadam就是Adam+Nesterov。

在Adam的基础上保持其他计算公式不变,更改当前梯度的计算公式为

从前面的介绍可以看出,Adam系列的算法表面上更优秀,针对原本的SGD的缺点做了各种改变。但是对于Adam算法,目前也存在着缺点。

其中一个很严重的问题是Adam算法有可能不收敛。因为二阶动量取决于一段时间内的梯度的积累。这段时间内的数据如果有异常,会导致这个二阶动量极不稳定。在学习的后期,学习率有可能不断震荡,导致整个模型无法收敛。

同时因为动量的引入,在学习的后期,存在可能使一步过大,错过更优解。

综上所述,虽然Adam看着很完美,但在实际应用中还是存在着缺点。所以到底是各种优化器要如何选择,还是要取决于具体的情况和个人的调参经验。

后续会逐渐更新个人的调参经验。

[1] 一个框架看懂优化算法之异同 SGD/AdaGrad/Adam

[2] Adam的两宗罪

[3] 如何理解随机梯度下降(Stochastic gradient descent,SGD)?

算法优化的意义

算法优化的意义:

一般来说,算法优化是进行网站建设或者是数据模型建设时,常用的一种优化模式。算法优化的目的和意义在于:提升网站的面向能力、图片的展现能力、以及提升读者的便利性。

优化算法有很多,关键是针对不同的优化问题,例如可行解变量的取值(连续还是离散)、目标函数和约束条件的复杂程度(线性还是非线性)等,应用不同的算法。

对于连续和线性等较简单的问题,可以选择一些经典算法,如梯度、矩阵、乘数、单纯形法、梯度下降法等,而这些也是算法优化和另猫电商中比较常见的。而对于更复杂的问题,则可考虑用一些智能优化算法,如遗传算法和蚁群算法,此外还包括模拟、禁忌搜索、粒子群算法等。

0条大神的评论

发表评论