摘要:本文作者彭明德,控实介绍了钱大妈与阿里云 Flink 实时计算团队共建实时风控规则引擎,妈基精确识别羊毛党以防营销预算流失。时风主要内容包括:
目前钱大妈基于云原生大数据组件(DataWorks、妈基MaxCompute、时风Flink、控实Hologres)构建了离线和实时数据一体化的妈基全渠道数据中台,为各业务线提供 BI 报表及数据接口支持。时风除了数仓的控实分析场景以外,钱大妈面临着业务系统中的风控需求,例如每季度的营销费用中被不少的羊毛党薅走正常用户的利益,其中羊毛党一方面可能导致用户的口碑下降,另一方面也会影响原有的活动运营预算迅速攀升从而导致资损。钱大妈与阿里云 Flink 实时计算团队共建实时风控规则引擎,精确识别羊毛党以防营销预算流失。
图一:钱大妈实时风控流程示意图
钱大妈风控业务架构如图二所示总共分为四个部分:事件接入、风险感知、风险应对、风险回溯。通过 Flink 在线 ETL 加工处理的实时用户画像标签和销售事实指标,除了作为线上 BI 指标和实时大屏数据展示,也为实时规则引擎的事件接入提供重要的数据支持。
图二:钱大妈实时风控业务架构图
风控业务专员通过产品界面简单配置即可实时动态发布风控规则,同时对在线 Flink 作业的规则进行新增、更新以及删除,其中风控规则模型主要分为统计型规则和序列型规则,相同模型支持子规则的嵌套,不同模型之间可以通过与、或关系进行组合。
图三:钱大妈Flink作业DAG抽象图
以下为规则组合中需要动态配置能力的配置项:
1)分组字段。不同字段分组、多字段分组的情况在风控规则的应用中非常常见。有如下规则样例:
2)聚合函数。聚合函数包括业务常用的聚合逻辑,规则引擎依赖 Flink 内置丰富的累加器,并在 Accumulator 接口的基础上进行了根据需求场景的自定义实现。样例规则如下:
3)窗口周期。窗口周期也即每个窗口的大小,如业务方可能希望在持续 30 分钟的秒杀活动周期内运行规则,或者希望重点关注异常时段。
4)窗口类型。为了面对不同的业务需求,我们将业务规则中常见的窗口类型集成到规则引擎内部。其中包括滑动窗口、累计窗口、甚至是无窗口(即时触发)。
5)聚合前的过滤条件:
6)聚合后的过滤条件:
7)计算表达式。风控规则的字段口径通常是需要组合计算的,我们在表达式计算和编译中集成了更轻便和更高性能的 Aviator 表达式引擎。规则样例如下:
8)行为序列。行为序列其实也是事件与事件之间的组合,他打破了以往风控规则只能基于单事件维度描述事实的壁垒,在事件与事件之间的事实信息也将被规则引擎捕捉。规则样例如下:
图四:实时风控规则配置业务逻辑简图
针对规则模型的流式序列型数据,我们选择 Flink CEP 处理事件序列匹配,由于我们整个风控作业使用 Flink 实现,并且 Flink CEP 作为 Flink 官方原生支持的 Library,集成度高无需引用额外组件即可满足事件序列匹配的需求。作业预期是允许用户在产品界面上热发布规则的,但是基于开源的 Flink CEP,实现规则动态更新能力存在以下困难点:
阿里云 Flink 实时计算团队和钱大妈工程师共同攻坚,在 Flink 社区发起如下两个 FLIP 提案并且在阿里云实时计算产品上面输出相应功能解决此问题:
阿里云实时计算产品输出的支持多规则和动态规则变更、支持 Pattern 定义事件之间的超时以及支持基于 IterativeCondition 的累加器功能拓宽 Flink 在实时风控的能力,并且上述功能已经在钱大妈生产环境落地实践。其中 Flink CEP 动态更新 Pattern 机制中内部各组件的交互总览如下:
图五:社区Flink CEP动态Pattern机制
风控规则由产品界面作为入口,规则写入到 Hologres 中,同时 JDBCPatternProcessorDiscover 周期性轮询发现规则的变更。其中规则表的数据结构如下:
图六:社区Flink动态CEP规则表
基于 Flink 的实时风控解决方案已接应用于钱大妈集团内部生产环境,在此解决方案里未引入新的技术组件和编程语言,最大化复用 Flink 资源实现实时风控场景需求,极大降低新组件引入存在的潜在运维风险。另一方面也极大降低研发团队的学习成本,高效释放实时计算的人力资源,并且对于研发和业务应用上面带来如下好处:
后续钱大妈将和阿里云实时计算产品团队,继续共建完善基于 Flink 的实时风控风控解决方案,其中在 Flink CEP 的未来规划将围绕以下三个主要方向展开:
(责任编辑:百科)
ipo审核是什么意思?股票市场上常常被提到的IPO的意思是什么?