内容简介:之前的文章讲了关于业务风控整体的一个架构和基本的思考方法,今天针对风控链路中的“风险发现”环节做一个系统的介绍,由此来帮助大家快速的发现异常,减少对应的业务损失,快速止血。在开始介绍之前,我们先来看一下在通常情况下,预警系统都是如何设计和实现的:
之前的文章讲了关于业务风控整体的一个架构和基本的思考方法,今天针对风控链路中的“风险发现”环节做一个系统的介绍,由此来帮助大家快速的发现异常,减少对应的业务损失,快速止血。
在开始介绍之前,我们先来看一下在通常情况下,预警系统都是如何设计和实现的:
一般的业务在做预警时,通常将 ” 快速发现异常 ” 作为核心问题去解决,通过一些预警规则的设置来进行异常的发现。
举个例子:
当发布量环比增加大于 15% ,同比增加大于 20% ,绝对值大于 3000 时给相关人员下发邮件 & 发短信 & 打电话进行预警。
这种预警方式有两个比较大的弊端:
1、预警规则配置相对死板,阈值大多通过运营或运维人员拍脑袋,预警规则本质上也跟风控规则一样,是需要提取有效特征并且持续保证准召率的。可是绝大部分的预警系统设计只有少的可怜的特征参考和几乎永远都不会去动的阈值。而且维护的指标越多,对应的运营成本越大,越到后面越难以维护。
2、这种预警方式只能定位 “异常”却无法确认“风险”。比如说,当某一天的发布量突然暴增,那么按照这种设计方法,运营人员一定会收到相应的报警邮件,可能经过定位后,发现实际上是业务端做了拉新或促活的活动。那这个时候,预警其实只是发现了今天的发布量是不同于平时的,但是关于这个异常到底是因为有黑产大规模攻击还是业务正常增量其实是无从得知的。
所以因为这两种弊端的存在,我们经常会在预警系统上线初期短暂的关注一下相关报警,时间长了以后,因为经常误报和漏报,我们逐渐的就忽略了报警的存在,那预警系统存在的意义也就大打折扣。
基于上面的例子我们发现,当我们只考虑如何快速发现异常的时候,预警系统的效果是很难到我们的预期的,所以要想搭建一套有效的预警体系必须要解决两个核心问题:
1. 如何快速发现异常
2. 如何准确定义风险
如何快速的发现异常
一、 通过核心指标的变化发现异常
无论我们在负责什么样的工作和项目,核心的指标趋势都是我们关注的重点,一般当核心指标的曲线发生大幅变化的时候,我们就会意识到一些事情发生了,所以关于指标曲线的分析和预测是我们第一个发现异常的方法。
在这里我们为了使异常点寻找的更准确,使用了一些算法的能力来达到对核心指标的预测与异常点 / 片段定位的能力。
智能预测与异常检测的技术架构
离线部分:
在这部分里,我们通过对一个指标原始数据进行标记,提取相应特征,通过回归模型做出预测,通过分类模型做模型的输出。
实时部分:
然后在实时的数据监控中调用离线产生的模型,标记出异常点和异常片段。
我们通过这种方法可以做到输入任何一个核心的指标数据,只要这个指标是基于时序的并且周期变化的,就能比较准确的定位到异常的发生。
给大家看一下在实际工作中产生的效果:
普通异常:
严重异常:
陡变异常:
通过这样的方法,我们可以几乎无成本的扩充我们的监控范围,可以将某一个指标继续进行细分到最细粒度,也可以大幅扩充不同的指标用来辅助监控。这样当发生异常的时候很容易被我们捕捉到并且定位到最细粒度。
二、 通过聚类手段发现异常
在风控领域,黑产或攻击者为了使收益最大化,会最大限度的利用已有资源,这个资源可以是一段内容,一张图片也可以是一个 ip ,一个手机号。所以因为这样的原因,当发生风险的时候,一般会产生比较集中的聚集行为,可能是一样的行为轨迹,一样的手法,一样的文本内容等等。所以聚类的分析也是一个发现异常的重要手段。
基于资源的聚类
当某一个资源频繁的出现并且进行一些业务操作时,比如一个手机号,一个账号。我们认为这存在一些异常行为。
基于内容的聚类
当某一段文本,某一张图片频繁的出现的UGC内容中时,我们认为里面存在一些异常行为。
基于行为的聚类
当某一种行为轨迹频繁的复现,我们也认为里面存在着一些异常行为。
基于属性或关系的聚类
通过一些社区挖掘或无监督学习的算法,将一些实体聚集成一个簇或一个群组。当这个簇变得非常大的时候,这里面有很大的可能性存在着异常行为。
通过聚类的方式,我们可以察觉到很多通过指标监测难以找到的异常,上面说的方法不是全部,可能还要根据更多维度的聚类行为都可以进行监测或者分析。这部分对于整个安全风险发现效果十分显著。
三、通过其他手段的异常发现
除了针对指标数据的预测和异常提取、通过聚类的异常定位,还有很多其他的手段用于异常发现,比如是否有流畅的反馈机制,是否有前台的巡检或抽检机制。这些机制都可以有效的帮助我们快速的发现异常,不同的手段覆盖的范围不尽相同,但是可以起到相互补充的作用,避免异常被隐藏造成业务影响。
这里如果有其他行之有效的异常发现方式,也欢迎大家私信交流共同进步。
以上就是关于异常发现及定位的方法,有了异常只是预警的第一步,这个异常到底业务的正常波动还是一个重大风险才是我们关注的内容。
如何准确的定义风险
上面我们已经通过各种途径获取到了异常,那么我们应该如何将这个异常做一个有效的定义呢?
说到定义,就一定会有人的参与,只有通过人的经验才能有效的判断出某次异常是不是个风险,但是如果定义的工作全部交于产品运营或者技术人员,人力的成本就会巨大,而且会被其他工作打断或搁置。那既然必须有人的参与,为何不让人力成本更低的审核人员或者标注人员在无感知的状态下完成异常的定义呢?所以我们采用的就是这样一个相对取巧的方式。
风险定义流程
我们将通过各种方式收集到所有的异常拿出来,找到异常对应的实体,比如是信息发布量的异常,就拿到这个异常片段中对应的信息;如果是聚类的异常,就会找到这个簇下的全部实体。将一次异常的实体进行实时的抽样直接流转入审核平台作为审核任务,审核人员就会在无感知的情况下去将相应实体进行审核,得出的审核结果就可以将这个异常对应的实体进行明确判断。这样就可以针对一次异常得出类似80%是虚假信息, 20% 是正常信息的结论。
得到结论后我们可以根据情况来灵活的调整正常信息与虚假信息比例的阈值,当阈值满足一定的条件时,我们就可以将异常直接定义为风险。甚至可以根据各种异常发现的手段来明确的说明风险发生在什么位置,有着什么样的具体表现。
以上就是关于风控预警体系搭建的一些心得和方法,我们通过“异常发现”和“定义风险”这两个核心部分来产出靠谱的报警,这套体系因为可以产出明确的结论以及对应的实体分布,在预警体系的下游还可以用一套智能分析引擎去承接,根据产出的明确的正负样本去自动结合现有风控特征进行计算,通过准召率的筛选,产出对应的风控策略推荐或生效策略。这是后话,后面有时间会逐步分享给大家。
欢迎各位风控领域的小伙伴一起探讨一起进步。
以上所述就是小编给大家介绍的《关于风控预警体系的搭建方案》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 漏洞预警 | Adobe ColdFusion远程命令执行漏洞预警(CVE-2018-15961)
- 讲讲用户的流失预警
- 讲讲用户的流失预警
- Influxdb 认证绕过漏洞预警
- Metrics 资料整理,多图预警
- libssh cve-2018-10993预警
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java 8函数式编程
[英] Richard Warburton / 王群锋 / 人民邮电出版社 / 2015-3 / 39.00元
通过每一章的练习快速掌握Java 8中的Lambda表达式 分析流、高级集合和其他Java 8类库的改进 利用多核CPU提高数据并发的性能 将现有代码库和库代码Lambda化 学习Lambda表达式单元测试和调试的实践解决方案 用Lambda表达式实现面向对象编程的SOLID原则 编写能有效执行消息传送和非阻塞I/O的并发应用一起来看看 《Java 8函数式编程》 这本书的介绍吧!