互联网的开放性极大地促进了互联网产业的发展,也给人们的生活带来了诸多便利。然而,随之而来的高风险性-账号盗用、虚假交易、金融欺诈等-也让大家闻之色变。在当今互联网+的时代,如何构建强劲的风险控制系统,保障交易、信用、资金等的安全,是任何一个从事互联网业务公司的头等大事。
为此,我们采访了苏宁IT总部安全研发技术总监,请他为读者们介绍互联网安全架构的个中精要以及苏宁安全团队在应对“11.11”等大规模活动时的努力。
受访嘉宾
季虎,苏宁IT总部安全研发技术总监,主导构建了苏宁电商和金融的风控技术体系。在此之前,季虎曾任阿里集团安全部高级技术专家,参与了AE、金融和集团的风控系统建设,并致力推进风控自动化和大数据风控实践。
以下是InfoQ记者对苏宁IT总部安全研发技术总监季虎的专访:
InfoQ:季虎你好,请给我们介绍一下业界有哪些常见的风险行为及识别技术吧。
季虎:在电商这一块,常见的风险行为包括垃圾账号注册、账号盗用、虚假交易、盗卡、广告的点击欺诈,信用炒作、DDOS攻击等等,这些是行为方面的风险。我们用到的识别技术有基于用户行为,作特征分析,辅助以大数据模型,构建用户画像;有利用统计模型和规则引擎作事中控制的;甚至还会对用户做主动探测。
在苏宁,风控还包括了内容合规,比如色情,暴力等,也包括版权方面的事情,需要确保开放平台商户不能销售违反国家法律法规的商品,也有用户会发表违禁的评价等等。这里面用到的技术会有自然语言识别,图像识别,这些都依赖机器学习的技术; 此外,不同的行业也会有些特有的风险类型,如游戏,会遇到挂机的问题,P2P会有征信方面的需求,也各有不同的识别方法。
InfoQ:风控的技术门槛在哪?业界是否有一些开源系统可以使用?
季虎:风控最大的难点在于它跟具体的业务模式息息相关,很难有一个通用的方法。就以黄牛抢购爆款来说,仅抢购的业务形态就有很多,比如秒杀,预约等等,多样性对系统的架构是一个挑战;另一个难点(对电商),事中的风险识别是用户体验最好的,这就在性能上有很高的要求。以苏宁为例,下单过程中的风控识别的时间只留了50ms,这对性能有很高的挑战。
如果是从头搭建一个新的风控系统,初期可以选择开源的规则引擎(drools等)做二次开发,后期按照实际情况再作调整。
InfoQ:通常在业务场景中风控系统采用什么样的指标进行评估,如何评价一个风控系统的优劣?
季虎:风控系统的评估,跟大多数的后端系统评估没太多差别,具体包括:灵活性,体现在一个新业务上线,一个新规则的变更,一个新模型的调整,要多久,投入多少人力;性能,是不是满足业务需要;易用性,风控系统跟业务结合紧密,能不能支撑业务需求的变更;还有一个重要的指标-效果,不同的业务形态,评估指标不同,可能是资损,可能是坏账率等,通过数据来说话。
InfoQ:风控计算会不会带来很大的额外计算压力?在苏宁,我们采用什么样的技术手段来降低风控计算对业务的影响?
季虎:这个必须会!风控系统内部称这为指标计算。压力主要在两方面,一个是CPU(GPU),一个是内存;具体的手段有不少,在马上召开的ArchSummit大会上我会分享一些具体的例子, 到时候大家可以一听。
大致的思路有两个方向:一是预先处理,另一个就是保证计算尽量在内存中进行,根据计算的类型,把计算拆分成多个阶段,以均值为例,M(n)=((n-1)×M(n-1)+M(n))/n,这样计算形式的转换,把求均值变成可以累加计算,一部分预先处理好(可以离线处理),这样风控系统中的计算量就尽可能的减少。不能拆分的计算类型,就尽可能把数据预先加载到内存中,我们曾经在一个信用卡盗卡的模型中使用过单机250G以上内存容量的服务器。另外还有一个小技巧,根据实际的模型设计,可以考虑降低计算精度,一些特殊的数据结构可以做到计算精度降低1个点,需要的计算量降低10,甚至更多。这是些简单逻辑运算,更复杂的,如矩阵运算,我们采用高性能GPU代替通用CPU,图像识别是典型场景。
上面说的是提高计算能力的方法,此外,还需要考虑把指标计算的部分独立出来做成微服务。这样既可以降低与规则引擎系统和模型的耦合性,也能更好的在系统之间共享风险指标。
InfoQ:对于初创公司来说,如果公司需要构建自己风控系统,有哪些因素需要特别考虑?
季虎:优先组建业务风控团队,优先组建业务风控团队,优先组建业务风控团队,重要的事说三遍。
回到系统本身,有一些个人体会可以分享下:
1)初期就要考虑的数据沉淀和再利用。风险判断的准确性要么看规则的合理性,要么看模型的准确性,这两个都需要数据支撑进行评价和改良。
2)系统要提供效果评估评价的功能。他的点只关系到系统能不能做好,这个关系到风控业务能不能做好。
3)不要过度追求规则和模型的灵活性,适当降低架构设计的目标设定,灵活性是个无底洞。
4)风控系统只是辅助决策系统,不要串联到业务流程中,要旁路。
InfoQ:从苏宁的风控系统实践的经验来说,风控系统架构的瓶颈会在什么地方?
季虎:主要可能有三个方面:
1)第一个会遇到的瓶颈,都是灵活性。实际上,我参与过的风控系统建设,都会经常性做重构,基本上一年一版。我们做得好的地方在于,设计的时候采用了微服务化的思路,重构的时候不需要全盘推到重来。最近一次重构,重构了模型部分--因为spark等技术的发展,性能上已经满足实时需求,我们就仅仅重构了这个部分。其他的如风险指标的计算,处罚等服务,可以维持原样。
2)活动期间的性能问题,一般系统的性能冗余留一倍就差不多了,但是风控不行,我们活动期间的容量需求是平时的几十倍左右,方便的scale out是必须的,这点苏宁的私有云技术提供了很好的技术支撑。在11.11等活动期间,我们能做到一键扩容,动态资源回收。PS:真不是替苏宁云打广告,私有云方面,整个业界苏宁应该是走在前列的。
3)离线模型的支持,要保证线上线下数据一致性,这在架构设计上有一定难度,netflix定义的online,nearline和offline的三线协作模型是很好的参考。
InfoQ:随着业务的飞速发展,你认为风控系统的下一步发展方向将是?
季虎:从两个维度说说我的认识,从风控系统本身来看,自动化应该是一个很重要的需求,自动训练,学习,评估,我们也正在作深度学习方面的探索,特别是无监督学习的尝试;在整个行业的高度看,就要借用我前同事的一个词语“联防联控”,通过云的方式,交付风控的技术能力,并达到整个行业的能力共享。