热门标签 | 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,代码优化,性能优化等。

推荐阅读
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • SSAS入门指南:基础知识与核心概念解析
    ### SSAS入门指南:基础知识与核心概念解析Analysis Services 是一种专为决策支持和商业智能(BI)解决方案设计的数据引擎。该引擎能够为报告和客户端应用提供高效的分析数据,并支持在多维数据模型中构建高性能的分析应用。通过其强大的数据处理能力和灵活的数据建模功能,Analysis Services 成为了现代 BI 系统的重要组成部分。 ... [详细]
  • 美团优选推荐系统架构师 L7/L8:算法与工程深度融合 ... [详细]
  • 在第二课中,我们将深入探讨Scala的面向对象编程核心概念及其在Spark源码中的应用。首先,通过详细的实战案例,全面解析Scala中的类和对象。作为一门纯面向对象的语言,Scala的类设计和对象使用是理解其面向对象特性的关键。此外,我们还将介绍如何通过阅读Spark源码来进一步巩固对这些概念的理解。这不仅有助于提升编程技能,还能为后续的高级应用开发打下坚实的基础。 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • 本文深入探讨了NoSQL数据库的四大主要类型:键值对存储、文档存储、列式存储和图数据库。NoSQL(Not Only SQL)是指一系列非关系型数据库系统,它们不依赖于固定模式的数据存储方式,能够灵活处理大规模、高并发的数据需求。键值对存储适用于简单的数据结构;文档存储支持复杂的数据对象;列式存储优化了大数据量的读写性能;而图数据库则擅长处理复杂的关系网络。每种类型的NoSQL数据库都有其独特的优势和应用场景,本文将详细分析它们的特点及应用实例。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 在使用sbt构建项目时,遇到了“对象apache不是org软件包的成员”的错误。本文详细分析了该问题的原因,并提供了有效的解决方案,包括检查依赖配置、清理缓存和更新sbt插件等步骤,帮助开发者快速解决问题。 ... [详细]
  • HTML5大文件传输技术深度解析与实践分享
    本文深入探讨了HTML5在Web前端开发中实现大文件上传的技术细节与实践方法。通过实例分析,详细讲解了如何利用HTML5的相关特性高效、稳定地处理大文件传输问题,并提供了可供参考的代码示例和解决方案。此外,文章还讨论了常见的技术挑战及优化策略,旨在帮助开发者更好地理解和应用HTML5大文件上传技术。 ... [详细]
  • 大数据深度解读系列官网资源分享 ... [详细]
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社区 版权所有