ICBC机器学习平台框架![](../assets/微信图片_20170922205018.jpg)
1、框架综述
1)基础设施层:提供机器学习最基础的环境设施,包含监控、负载均衡、数据、CPU、GPU等集群管理功能。其中,灾备、监控、负载均衡等基于大数据技术框架现有相关功能实现。
2)数据接入层:提供Hadoop、Mppdb、图数据库、本地数据、结构/非结构化各种类型的数据接入
3)计算框架层:包括MLP机器学习计算框架、MLP深度学习计算框架、批量特征工程计算框架、实时特征工程计算框架、图计算框架。其中,MLP机器学习计算框架、MLP深度学习计算框架、实时特征工程计算框架、图计算框架,由F-MLP实现;批量特征工程计算框架,基于大数据技术框架Spark、M/R、MPPDB等技术组件实现。
4)算法资源层:F-MLP实现,包括GLM/LR、GBM/BGDT、随机森林、SVM、朴素贝叶斯、深度神经网络等算法。
5)建模引擎层:F-MLP实现,主要包括模型训练、模型预测、模型评估、模型对比、模型超参数调优、模型交叉验证等功能。拟基于开源的H2O机器学习框架实现,运行环境基于大数据技术框架组件,需申请集群资源,集群资源可合并部署到F-BDSP中。
6)服务输出层:F-MLP实现,包括批量模型预估服务、联机模型预估服务、模型生命周期管理、模型版本和发布服务管理等功能。
7)系统管理:包括用户权限管理、系统配置管理、任务调度管理、服务监控管理、日志管理等功能,基于F-MLP实现,现阶段以H2O的Steam产品为基础,实现用户权限管理、系统配置管理、日志管理功能。需对用户权限管理等功能进行改造,实现与统一认证对接。同时,由于F-MLP的模型训练等核心功能不属于F-BDSP的集群中,需要各业务系统同时在F-MLP、F-BDSP中申请用户,后续考虑用户申请流程整合。
2、机器学习平台和数据湖
机器学习平台共享使用大数据服务云中F-BDP数据湖中的贴源数据,并与F-EDI、F-EDW等共享公共数据区的数据。公共数据区的数据为F-EDI数据集成,F-EDW数据仓库、F-MLP机器学习平台加工后的数据。为实现数据共享,F-MLP、F-BDP将与F-BDSP集群集中部署。
3、机器学习平台集群部署
机器学习平台部署方面,总共分为两个集群。一是H2O集群,用于实现数据预处理、特征工程、模型训练、模型预估等核心功能;另一个是H2O Steam集群,用于模型预估服务、用户权限管理等功能。具体部署图如下:
4、业务系统与机器学习平台对接模式
机器学习平台提供以下三种与业务系统对接模式
1)导出模型服务:首先,业务系统的开发人员通过机器学习平台提供的前台界面,通过python对数据湖进行预处理、特征工程等,生成特征工程数据;其次,业务系统的开发人员登录机器学习平台提供的交互式页面,引入特征工程数据,并进行模型训练,训练完成后导出模型(可导出java文件、二进制文件);再次,业务系统开发人员基于业务系统开发环境,开发特征工程、使用模型进行预估以及业务系统其余功能,并将模型随版本一起发布至生产;最后,业务系统投产后,即实现模型部署和预测。
2)联机预估服务:首先,业务系统开发人员在业务系统开发环境中完成特征工程开发,以及联机调用机器学习平台联机预估服务等开发工作;其次,业务系统开发人员在机器学习生产环境中完成特征工程、模型训练、模型发布等工作;最后,业务系统投产后,由业务系统完成特征加工,并通过调用机器学习平台的预估服务接口,将特征数据、待预测数据按照一定格式发送给机器学习平台,机器学习平台对数据进行预估,并将预估结果返回给业务系统。
3)批量预估服务:首先,业务系统的开发人员登陆机器学习平台提供的前台界面,通过python、spark脚本等对数据湖的数据进行预处理、特征工程等,生成特征工程数据;其次,业务系统的开发人员登录机器学习平台提供的交互式页面,引入特征工程数据,并进行模型训练和发布;再次,业务系统的开发人员基于F-MLP的开发环境,完成待预测数据的预测处理。
对比 | 输出模型服务(联机) | 输出模型服务(批量) | 输出模型文件 |
---|---|---|---|
部署方式 | 集中部署 | 集中部署 | 分散部署 |
业务应用代码修改 | 接口调用,仅涉及http数据传输和接收 | UDS或点对点文件传输 | 参考Java Doc进行开发,且Java类编译内存与特征数量和取值丰富程度正相关,需考虑业务系统JVM参数 |
更新方式 | 模型ID不变的情况下,业务系统无需改动 | 接口不变的情况下,业务系统无需改动 | 替换业务系统Java文件或Jar包 |
特征工程 | 在F-MLP中上传特征工程python脚本 | 在F-MLP中上传特征工程python脚本或者基于大数据技术框架完成特征工程 | 业务系统 |
网络消耗 | 需考虑网络调用时间 | 需考虑网络调用时间 | 无 |
使用建议 | 优先推荐,在业务场景可接受网络耗时的情况下,作为建议方案 | 仅在特征工程和预估服务时间超出联机要求失效作为建议方案 | 仅在对时效要求较高,无法承受网络耗时的情况下作为建议方案。且业务系统同时做好JVM参数设计及在业务系统完成特征工程。 |
以精准营销、手机银行语音菜单导航两个场景为例分别介绍模型批量预测、模型实时预测。
营销场景:机器学习平台每日夜间通过批量模型预测方式,对营销客户进行评分,并将评分结果经UDS传输给个人客户关系管理系统,个人客户关系管理系统根据模型评分结果并结合预先设置好的策略,生成营销名单进行营销活动。
手机银行语音菜单导航:手机银行系统先将语音转换为文字,将语音文本发送给集团信息库应用,集团信息库应用对语音文本进行分析、词向量编码后,调用机器学习平台上的语音导航识别服务对文字所要导航的菜单项进行判别,机器学习平台语音导航识别服务返回该文本对应的菜单项,集团信息库将菜单项返回给手机银行,通过手机银行对用户展现对应菜单。
5、与第四范式机器学习平台、SystemG以及清华Gemini图计算框架的整合规划
机器学习平台的数据预处理、特征工程模块基于第四范式先知、大数据技术框架实现。经过数据预处理、特征工程后的数据可提供给H2O、Gemini、SystemG等平台使用。
计算框架方面,LR、GBDT、FM、SVM、朴素贝叶斯、DNN等算法基于第四范式先知系统实现,KMeans、随机森林、word2vec等先知平台不支持的算法基于H2O实现,图特征计算通过Gemini实现,对于需要可视化展现的图分析场景使用IBM SystemG实现。
模型输出、可视化等功能与计算框架耦合度较高,因此,机器学习平台保留并集成第四范式先知、H2O的相关功能,为不同模型算法提供可视化和服务输出功能。具体如下图:
1、数据接入层
F-MLP机器学习平台归属于大数据服务云,共享使用大数据服务云中数据湖中的数据,支持HDFS、MPPDB等文件格式的引入。同时F-MLP基于大数据技术框架中的HIVE、Spark、MPPDB等组件实现数据预处理完成特征工程,特征工程处理后的宽表数据存储于F-MLP平台中,在训练前加载至H2O集群内存中。
机器学习特征工程包括2方面:一是模型训练前的特征工程,二是预估服务前的特征工程。 a)对于模型训练前的特征工程以及批量预估服务需求,拟基于Jupyter实现,通过将Jupyter notebook界面集成于F-MLP中,对接大数据技术框架中Hive、Spark、MPPDB等数据处理组件。除Jupyter外,F-MLP还提供数据操作功能,如合并数据集(按行或者按列)、分割数据集(按行或列)、数据缺失处理、数据集划分(分为训练集、测试集、验证集);b)对于联机预估服务的特征工程,F-MLP提供python预处理脚本方式实现。若预估服务存在强实效性要求,且需要访问历史数据信息,本期暂不实现。后续版本拟在F-MLP或业务应用自身提供内存数据库和时序数据库,从数据湖中引入历史数据确保数据获取的响应效率。
后续拟研究lambda技术,实现批量处理程序到实时处理程序的转换。
2、计算框架层
F-MLP在分布式环境下使用Yarn作为底层集群资源管理平台,F-MLP所需的运行环境(例如CPU、内存、网络通讯)均由Yarn提供。Yarn是大数据技术框架的基础组件,可直接将F-MLP作为Yarn上的job来运行。
F-MLP实现支撑机器学习建模和提供智能服务底层计算框架,包括MLP机器学习计算框架、MLP深度学习计算框架、批量特征工程计算框架、实时特征工程计算框架、图计算框架。其中,MLP机器学习计算框架、MLP深度学习计算框架,基于H2O框架在F-MLP实现;批量特征工程计算框架,基于大数据技术框架Spark、M/R、MPPDB等技术组件实现;实时特征工程计算框架,基于F-MLP实现,自主研发实现。图计算框架,基于F-MLP实现,视图计算技术研究项目原型验证情况,安排后续版本实现。
3、算法资源层
4、建模引擎层
F-MLP提供训练集在各算法上的训练环境,包括使用超参数调优,帮助发现算法最佳参数,获得更优的训练模型。
对于模型性能评估,F-MLP提供主流的机器学习模型评估方法例如MSE、ROC曲线、AUC曲线、召回率、准确率等。
5、服务输出层
提供两种模型使用方式:1)提供以jar包形式导出,直接部署于业务应用中,此种方式预估前特征工程由业务应用自行实现。2)模型一键发布于机器学习平台中,业务系统通过DSF联机预估服务接口或UDS方式提供批量服务。
当业务数据发生变化后,可复用现有特征工程、模型训练全流程逻辑,完成模型的在线更新。
6、其他配套功能
F-MLP基于H2O steam提供用户管理功能,其用户名必须和F-BDSP yarn上的H2O一致,通过角色和用户组的管理,设定用户对于项目、集群、模型等不同的访问权限,基于Steam的用户管理功能实现,暂不与统一认证对接。
F-MLP应支持三类用户:1)、管理员 具有超级权限,可新增、修改、删除用户、管理集群、训练模型、部署模型等;2)模型训练用户包括访问集群、访问数据、训练模型、部署模型的权限;3)模型使用用户仅能调用已部署模型的接口信息。
6、总结与展望
7、使用的业务场景
(1)客户营销:
应用场景1:个性化产品推荐
建模分析客户画像及社交圈、交易记录,结合产品特性以及历史营销记录,预测客户营销响应率最高的产品及营销方式、渠道,开展个性化营销。
应用场景2:潜力长尾客户激活
建模分析提取影响不动户转换为活跃客户的特征,据此在全部不动户中找到未来有可能被唤醒的客户,并结合其行为特征,有针对地制定营销策略。
应用场景3:客户流失预测挽回
建模分析已流失客户信息、历史交易数据及挽留记录等,发觉客户流失核心原因,预测现有客户流失概率,制定差异化的挽留策略,辅助客户经理开展客户挽留。
(2)风险防控:
应用场景1:信用审批及风险预警
建模分析历史风险事件、客户、交易等数据,提取核心风险特征变量,准确识别银行卡客户、资金流动异常客户特征,预测客户违约概率,在潜在风险客户申请办理信用卡、专项分期、个人贷款等业务时进行预警,辅助各类个人信贷产品的审核发放。
应用场景2:欺诈风险识别
建模分析客户各类关联关系、历史欺诈风险事件、客户、交易、资金流向等数据,提取核心风险特征变量,识别银行卡盗刷、恶意透支、大额套现等欺诈交易,以及诈骗汇款、支付等风险事件,技术进行事中干预。
(3)客户服务:
应用场景1:智能语音导航
实现融e行、电话银行智能语音导航,自动识别客户语音中的业务办理信息,简化客户录入操作,智能化引导、辅助客户办理业务。
应用场景2:人工座席客服质检
运用语音识别、机器学习等技术,从客服录音中识别客户服务评价关键字及情感变化情况,智能化评价座席服务质量。
应用场景3:智能机器人
利用涵盖计算机视觉、自然语言处理、机器学习等人工智能技术的智能机器人进行业务引导和客户服务,减少人工成本,增强对客户吸引力。
(4)经营管理:
应用场景1:智能投顾
运用人工智能算法构建量化投资模型,结合个人客户风险偏好和投资目标,为其在线提供个性化产品投资组合建议,帮助客户合理规划和配置资金。
应用场景2:网点撤并和科学选址
对我行各地区网点业务规模和综合效益、区域内经济发展情况、客户资源分布和金融需求等数据、运用机器学习方法,分析测算区域内最优网点配置数量,分析预测未来3-5年内网点业绩表现,提出各地区网点撤并和选址等资源优化配置方案,提升网点布局和规划的科学性、合理性。