随着互联网广告与营销业务的发展和风险对抗的不断升级演变,传统的规则引擎方式在应对人工智能时代的新风险上显得越来越力不从心。与此同时,大数据和机器学习给风控从业者提供了更为强大的支撑,依托于此,我们可以有效防御风险并给予黑灰产打击。为了更高效、可持续、规模化、自动化地和黑灰产对抗,需要一套围绕人工智能底座持续迭代并服务于风控业务的系统,这就是风控MLOps。
1 什么是风控MLOps
在互联网领域,MLOps并非一个新鲜词汇,它是一种将机器学习(ML)与运维(Ops)相结合的方法。广告与营销风控业务应用MLOps旨在通过标准化、自动化流程提高风险控制的效率,促进风险识别模型的敏捷迭代、交付,同时增强了风控后链路效果的持续跟踪,并通过后链路反馈不断促进风控模型的迭代升级。具体来看,MLOps对于广告与营销风控业务的作用体现在以下几个方面。
1)高效风控模型开发与迭代。MLOps通过自动化流程,加速了风控模型的开发和迭代。基于标准化的MLOps平台,风控团队可以更快地响应来自黑灰产的风险对抗和变种,持续改进模型,以更快的速度形成线上生产可用的风险拦截能力。
2)实时效果监测与反馈。MLOps系统能够实时监测模型在生产环境中的表现,包括风控业务效果层面指标、风控系统层面监控。一旦模型开始出现性能下降或误报率上升,系统会自动发出警报,使风控运营和技术能够及时采取应对措施。
3)自动化风险决策与响应。基于MLOps的自动化决策系统可以快速响应风险事件,包括通过模型识别自动封禁恶意账户、暂停同人关联套利广告主BP(Business Proposal,商业提案)后台广告推广活动、预警潜在违规行为等。
2 风控MLOps流水线
图3-16展示了一个经典的风控MLOps流水线,风控MLOps是一个包含多个环节的完整系统。借助MLOps,我们可以将机器学习模型有效地集成到广告与营销业务的各种风险对抗场景中,同时保障风控模型的高效运营、管理和持续迭代交付。
图3-16 风控MLOps流水线
对于广告与营销风控业务而言,风控MLOps的基本流程可以归纳为以下几个阶段。
1)风险业务分析。为了能够将业务风险和风控系统能力连接起来,我们首先需要对业务风险进行分析。比如,识别风险来源,是源自广告主,还是真人众包的刷手,或者是渠道引流的媒体端。充分理解业务才能定义和表达管控诉求,这是风控MLOps的业务起点。
2)风险事件接入。在分析并理解业务后,通过在线API、实时消息订阅、离线批量表等方式对接需要管控的风险事件。风险事件可以来自多个渠道,如用户广告曝光日志、点击日志、活动参与日志等。在这个阶段,风控MLOps系统需要建立一套SOP,从流量接入的入口规范化风险事件。
3)特征工程。一般来讲,广告投放引擎、广告点击服务器等业务侧传入的原始风险事件是非结构化或半结构化的,无法直接被风控算法模型使用,所以需要经过MLOps特征工程处理,包括最基本的对数据进行清洗、去重、去噪、归一化和标准化,以及根据不同业务特点进行复杂计算加工衍生特征。比如,恶意点击用户行为风控业务需要通过复杂的IO密集型窗口聚合计算获得用户上下文点击统计特征,广告主营销内容风控业务需要使用GPU计算密集型的深度学习模型提取创意主图、推广文案等的内容特征。特征工程中,最重要的一点是需要保障离线和在线的特征一致性,业界有诸如Feast、Tecton、Feathr等的解决方案。
4)模型训练。经过MLOps特征工程的精细化处理,风控数据科学家和算法工程师得以利用这些准备好的数据来训练和优化风控模型。当然,不同的业务场景面临着不同的挑战,模型开发也并非一成不变,在这个阶段会根据MLOps前序过程的业务分析、特征工程按需选择对应的风控模型。比如:对于流量反作弊场景使用经典的基于概率统计的模型;对于刷单薅羊毛业务场景使用图关联算法,如标签传播、连通分量等;对于广告创意Logo品牌侵权使用YOLO等目标检测模型。与此同时,为了确保模型的最佳效果,我们需要进行多次训练和调优,不断迭代和优化模型参数。这个环节是风控MLOps的核心部分,它将前期的业务分析、风险事件接入和特征工程工作成果转化为可实际生产环境应用且可持续迭代交付线上的模型,为业务风险控制提供有力的支持。
5)模型评测。模型评测是介于离线模型训练和在线模型推理之间的关键步骤。为了确保应用的在线生产环境风控模型的可靠性和鲁棒性,离线训练好的模型需要进行全面的指标评测,只有达到评测准入的标准的模型,才能进入MLOps流水线的下一个模型部署阶段。模型评测通常包括风控模型效果和效率两个方面,风控模型效果一般通过业务沉淀风险数据集上风险召回的准确率、召回率、AUC、F1-Score等指标进行度量;风控模型效率度量包括模型推理的QPS(每秒查询率)、Latency(延迟)、GPU/CPU利用率等维度。通过离线风控模型评测,风控业务团队可以有效地把模型部署到生产前的异常情况中进行提前识别处理,确保线上交付风控模型稳定可靠。
6)模型部署。经过离线模型开发、模型评测任务后,风控模型已经具备发布到生产环境中的条件。模型部署就是将离线风控算法实验得到的模型借助分布式文件导出和分发工具部署到在线生产集群的过程。关于模型部署,业界有很多成熟的解决方案,如Tensorflow Serving、PyTorch TorchServe等。风控业务由于其面临风险的多样性和对抗性,往往会采用多种不同的模型框架(如TensorFlow、XGBoost、Scikit-Learn、PyTorch和ONNX等),在模型部署阶段就要求我们设计的系统更加具有通用性,基于一套统一的风险识别模型标准对外提供RPC(远程过程调用)或者REST API服务。Kubernetes社区开源的KServe便是MLOps流水线中解决此类问题的一种相对完善的解决方案。
7)实时监测。部署到生产环境中的模型,风控MLOps流水线需要进行实时效果监测。一方面包括业务层面对于风险的召回率、准确性,同时还需要考虑风险召回后对应下游人工审核模块流入的审核工单量,这将直接影响营销平台的人工审核预算成本;另一方面需要监测系统层面的指标变化,如广告计划维度流量的分布变化、模型GPU/CPU水位变化等,从而实时识别异常攻击流量的波动,以秒级甚至毫秒级时延发现作弊风险,也能够及时发现因为营销平台大促活动、分布式攻击等引起的模型容量不足等系统问题。
8)模型持续更新与迭代。通过风控MLOps流水线的实时风控业务效果和系统流量指标监测,风控系统得以获得更多的模型上线的后链路反馈信息,让风控技术和运营感知线上风控模型的短板在何处。同时也由于广告与营销风控业务的对抗性,也需要不断改进和升级模型,以适应新的风险对抗和持续变种。可见,MLOps提供了完整的模型后链路反馈到模型再生产的持续更新和迭代能力,帮助风控系统能够不断应对新作弊风险和挑战。