热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

第一章聊聊风控什么是风控?

开篇词:作为一个母婴电商互联网公司风控从业者,始终觉得要输出一些风控相关东西,分享给大家。不管这篇文章有没有人看哈。打算去做一个系列,从0到1分享整个风控系统搭建的过程,以及风控系

开篇词:

作为一个母婴电商互联网公司风控从业者,始终觉得要输出一些风控相关东西,分享给大家。不管这篇文章有没有人看哈。打算去做一个系列,从0到1分享整个风控系统搭建的过程,以及风控系统的产品架构,技术架构,所需要的技术栈以及技术挑战。后面的几篇会深度分析风控在传统互联网公司(非金融,非TO C电商)的地位,以及整个风控行业未来的发展。

作为一个风控行业两年从业者,还是不够资深,希望大家有好的建议和想法指出来,大家多多沟通和交流。虽然这个文章不一定有人看哈。

遥想2017年11月份,当时搭建公司的风控系统之时,我也是很懵逼,什么是风控?架构是怎么样的?需要哪些技术栈?以下资料是2017年整理,现在修改精简而成。

第一个话题就是:什么是风控系统?会从几个大的层面进行分析:产品、技术、架构,大厂实践,以及搭建这么一套系统涉及到的技术栈。

1.产品层面

  1. 为业务系统保驾护航,实时发现潜在的风险,及时止损。比较痛点的业务风控场景:登录,注册,营销,支付,金融准入/支用/支付等。
  2. 无论是商业化的风控系统,还是(京东,美团,携程,有赞)等公司内的风控系统,都是基于某些固定的业务场景去做的。(找出有风险的业务场景)
  3. 风控的生命周期分为:事前,事中,事后。事前一般是结合结合实时计算系统(Spark,Flink),利用CEP+规则引擎去提前感知风险事件。事中一般是直接调用风控系统的接口,返回对应的风险等级给到业务系统。事后一般是利用数仓的能力,编写HIVE脚本生成相应的风险类报表。

2.技术层面

  1. 风控系统依赖的数据源比较多,包括实时数据,离线数据,外部数据。依赖的存储介质也比较多,例如:MySQL,Redis,HBase,Hdfs等。

  2. 风控系统严重依赖规则引擎系统,规则引擎系统要能支撑其复杂的决策规则,例如:决策流或者评分卡。

  3. 风控系统内的一次调用,可能其背后会有多个数据源,甚至包括外部数据,由于外部数据RT不容易保证,所以对于风控系统而言,稳定性以及高Qps低Rt是一个不小的挑战。

3.名词解释

  1. 风控事件:可以理解为具体的业务场景,例如登录事件,注册事件等。
  2. 风控策略:一个策略由多个规则组成,策略是规则的集合。规则与规则之间可以灵活配置关系,例如:或关系,且关系。
  3. 风控规则:简单可以理解为一条表达式。规则一般由三部分组成,输入因子,条件,被比较因子,权重分,动作等。例如:IP命中薅羊毛标签,currentIp是一个因子,条件 in,被比较因子riskIpList,即:currentIp in riskIpList,如果给这个规则设置一个权重分,或者设置具体的动作,这类是比较复杂的规则,暂不展开,只说,currentIp in riskIpList这条规则。
  4. 风控因子:根据第四条可知,条件的左侧、右侧变量都可以称之为因子,因子的来源一般由两种:外部系统传入,风控系统加载而来,例如:currentIp即外部系统传入,riskIpList即风控系统内部的风险IP列表。
  5. 风控数据源:根据来源不同,可分为外部数据源,以及内部数据源。外部数据源即需要借助第三方服务,例如查询企业是否失信,可能需要企查查或者天眼查的数据,内部数据源即系统内部沉淀的各类风控数据。例如:ip画像库,设备画像库,内部离线指标,实时日志指标,用户画像库等。复杂一些的系统,对应的不单单是数据库,可能是单独的一个系统,例如用户画像可能就会作为一个系统而存在。
  6. 评分卡:评分卡聚焦了多个规则,每个规则有固定的得分,简单的评分卡是把所有规则的分值sum起来,这也是最常见的。

4.风控产品架构

《第一章-聊聊风控-什么是风控?》

5.风控技术架构

《第一章-聊聊风控-什么是风控?》

6.大厂实践

让我们看下大厂在这方面的最佳实践,这里面既包括商业产品也包括自用产品

  • 有赞:https://tech.youzan.com/rules-engine/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
  • 携程风控,底层数据平台:https://mp.weixin.qq.com/s?__biz=MjM5MDI3MjA5MQ==&mid=2697266239&idx=1&sn=e37cbddb85874e1e21a54a9c0371f066&chksm=8376fb0bb401721db16826cac3cc1d0dc1dc9889dc930f512b5bcccef77081cf0c3233419ef8&mpshare=1&scene=1&srcid=0706EIiVUvHMNxoqEdDVONQl&pass_ticket=580cIAtQy5LwY9WhWvViVfUZVNqqgdCUDivy6XiTXyM=#rd
  • 携程在线风控:https://juejin.im/entry/59e08cf2f265da430c10d58b
  • 携程大数据实时风控:https://zhuanlan.zhihu.com/p/24795411
  • 小米商城风控:http://weibo.com/ttarticle/p/show?hmsr=toutiao.io&id=2309403989876822402671&utm_medium=toutiao.io&utm_source=toutiao.io
  • 宝藏风控资料合集:https://zhuanlan.zhihu.com/p/107975044
  • 京东风控:http://www.infoq.com/cn/articles/jingdong-risk-control-system-architecture-based-on-spark

7.技术栈

整体风控系统涉及的技术栈比较多,如果是小团队风控,那么必须是一人多专。罗列下需要到的技术栈:

  1. 数据分析洞察能力,熟练使用Hive SQL,Linux日志分析能力,对各类shell脚本命令比较熟练。
  2. 策略建模分析能力,这块目前我也不具备,一般大厂有专职角色。
  3. Apache Dubbo
  4. Kafka
  5. Flume 或者阿里云sls
  6. Hbase、Redis
  7. Hive SQL
  8. 在没有流平台的前提下,Flink Job能力,熟悉各类算子,窗口,source,sink等,可开发简单的实时任务Job。
  9. 规则引擎。非常重要,不论是自研还是开源,要改造为能适应自己业务的规则引擎,自研就是坑,除非大厂才这么玩。Drools尽量别用。
  10. 领域分析能力,设计模式,风控系统往往需要多个数据源,N多因子,N多规则,这些在代码内如何组织,必须通过领域分析能力外加一定设计模式,将风控知识包含在核心域中。最终才能呈现出的是一个清晰,干净的系统。
  11. 灰度系统,风控后期需要。如何验证一个规则或者策略是否有效,往往需要借助灰度系统对流量进行一部分copy,在预发布阶段能提前验证,得出具体的数据指标,进行评估。
  12. Flink CEP,事前风控必备。
  13. JVM,代码优化,性能优化等。

推荐阅读
  • 伸缩性|发生_分布式文件系统设计,该从哪些方面考虑?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了分布式文件系统设计,该从哪些方面考虑?相关的知识,希望对你有一定的参考价值。点击上方关注“ ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
  • 前言折腾了一段时间hadoop的部署管理,写下此系列博客记录一下。为了避免各位做部署这种重复性的劳动,我已经把部署的步骤写成脚本,各位只需要按着本文把脚本执行完,整个环境基本就部署 ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • 物联网、工业互联网大数据的特点-随着数据通讯成本的急剧下降,以及各种传感技术和智能设备的出现,从手环、共享出行、智能电表、环境监测设备到电梯、数控机床、挖掘机、工业生产线等都在源 ... [详细]
author-avatar
永远的菜鸟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有