风控算法(1)业务风控常用算法归纳

业务风控常用算法归纳

风控碎碎念:https://www.zhihu.com/column/c_1483570023214510080

求是汪在路上:https://www.zhihu.com/column/c_1156982447794233344

前言

本篇文章在这里主要是做一个综述性的文章简单介绍一下,做一个归纳性质的文章:风控最核心的算法,按我的理解可以分解为以下几类

  • 有监督的去评价用户各个场景的风险层级:欺诈类风险,信用类风险等;给用户一个评分,作为用户后续策略的基础;【LR、XGB、LGB】
  • 无监督的去挖掘用户的社区关系:社区发现类算法,最主要的适用于数据标签的扩散,通过用户的相似性或者用户的关联性,达到增加覆盖的目的
  • 发现数据中的异常值:往往用于日常的风险感知和监控之中,可以有最简单的箱线图,也可以有单分类的孤立森林;
  • 行为序列的发现:最简单的可以是频繁项集,复杂的可以用各类用于序列挖掘的深度学习模型,可以作为模型的一个特征,也可以作为风险行为的发现;
  • 内容风控中:往往从正则和规则开始,有复杂的深度学习模型来cover,这一块了解较少;

一、风控算法场景

1.1 用于用户风险评级的算法

这里不考虑冷启动阶段所涉及的一些专家规则和头脑风暴,一般评级往往存在于项目运行了一段时间,有了比较可靠的数据积累之后,这时候往往需要我们更精确的根据场景进行用户的划分,最为人熟知的便是信贷中常用的信用分的那一套东西,这一块的知识,我常常是看这个博主 求是汪在路上;这一块的算法或者说这一类的算法,这位大佬讲的已经十分清楚了,有兴趣的可以翻出来看看;

这一类的算法,主要是以有监督为准,难点主要集中在,正负样本不平衡,正负样本的选择,样本的观察期,表现期,观察点等的选择。一般涉及到的算法,主要以lr,xgb为主,那么在实际使用中,xgb和lightGBM因为其效果出色,特征工程的东西往往比较简单,往往在使用中用的更多一些。

这一类场景,往往目标相对明确,用途相对明确,做起来,工作量主要集中在特征工程上,一般来说特征工程做好了,这一类模型都可以做出还可以的效果;

1.2 用于社区挖掘的算法

社区挖掘,其实和聚类有点点像,也有点像推荐中的基于用户相似的推荐,本质就是将有关系,有联系的各类用户放到一起,用以达到用户分群的目的,这一块写的比较好的文章,我推荐:

  1. 怎么去找边与边之间的关联:

2、 社区挖掘的算法有哪些:

基本社区发现就是在于如何发现用户之间,边与边之间的关系,可以是直接关系可以是相似关系,然后将边连成图,进行图挖掘,一般来说一个庞大的图大多数会先选择做连通图,再到连通图下做二次挖掘,用以增速提效。前期的数据探索,我比较推荐gephi软件,如果你习惯用python,networkx也是很好的选择,你只需要定义好点和边,便可以大致看出数据的分布和图的密度,选择合适的算法进行愉快的聚类咯。

其实这一块,我觉得和推荐场景有一点点像,推荐是猜你喜欢,风控是猜你会干坏事,只是标签不一样,要做的事情是一样的,所有用于推荐相关的算法,也可以类比的用于风控,往往会有出其不意的效果

1.3 异常值相关的发现算法

异常值算法,其实和不平衡数据集(pu-learning)的解决方法类似,因为对于风控来讲,风控本身针对的用户在平台或者在用户群中,占比就非常非常低,部分场景可能连千分之一,万分之一都不到,对于大数据集来讲,本身就算是一种异常值了,所以往往异常值发现的算法,在实际使用当中,往往会有意想不到的好效果;

说到异常值发现,日常的监控可能是一个方面,比如同比环比,比例异常,用户群占比异常等;除此之外还有一些,xgbod,iforest的半监督或者单分类的模型可以用于此类场景,这类场景,推荐可以参考:

xiaobo Xie:异常检测用于不平衡数据的二分类

我个人觉得这是一类对于风控来讲非常好的思考方式,就是当我们很难刻画黑用户的特征的时候,我们能尽可能好的描述好白用户的特征,我们一样可以解决问题,这一类问题的模型解决也往往是朝着这个思路来做的;

1.4 行为序列相关的算法

行为序列作为风控行为挖掘的重要组成部分,在部分场景往往有着意想不到的作用,举个例子,电商场景,正常人从搜索到下单,往往有着复杂的序列,至少大部分用户会有复杂的序列,而黑灰产往往会点击某些固定的链接直接进入商详,或者搜索固定的词进入商品,下单购买一气呵成,而如果一个非营销类商品大多数聚集着这样的序列,可能往往就存在一些问题,如果这个问题深入探讨下去,便是行为序列的挖掘;

从简入深,可以有频繁项集(前后无关联,只要频繁反复出现某类行为即为有问题),往深了做,可以有rnn及其改进的lstm相关的算法,进行进一步的建模,可以更加准确。在业务前期,我们可以先用频繁项集提取一些有价值的规则,在满足前期需求之后,可以进一步使用模型对当前场景进行优化,已达到提升召回和准确的作用。

同样我也在这里推荐一篇知乎上的文章:

没什么大不了:浅谈行为序列建模

1.5 内容风控相关算法

这一部分是我的一个知识盲区,我自己大约只能做到正则,基于同义词的正则相关的策略,其余更深入的算法探索,我没有做过,也没有相关经验,也就不班门弄斧了,毕业以来做深度学习的东西比较少,理论大约停留在表面,不太深入,也没做过什么实践,就不赘述了;网上也没找到什么比较深入探讨的资料,如果有小伙伴推荐的话,我也希望可以评论或者私信告知,不甚荣幸。