机器学习应用在几种形态下落地的问题和参考架构

前言

       机器学习是人工智能研究领域的一个重要分支,近十年因为以深度学习为代表的研究方向在图像识别,语音识别,文本翻译及深度强化学习在围棋等游戏应用中的重大突破而又重新兴起,变成新的技术浪潮。但是机器学习还没有达到实现人工智能的阶段,无法像人一样快速学习新技能,掌握新领域,进行创造性活动。机器学习还仅仅是弱人工智能,即在特定领域,在给定的业务问题边界,充分的数据支撑条件下,通过专家的特征工程和面向业务目标构建的反馈优化方法上来实现达到或者超过人类专家的行为能力。因此机器学习应用的落地绝不是一蹴而就的,需要不断的解决机器学习应用落地过程中的各种问题,包括数据,特征,目标,反馈优化以及机器学习应用系统的性能,维护和可扩展问题,这些问题本身有时又会交织在一起,需要我们系统性的思考,平衡和解决。

 

机器学习应用形态划分

        我们根据机器学习应用的使用者不同,可以把应用形态划分为面向人的辅助支撑工具offline形态和面向设备,系统的持续运行分析的online形态,当然online形态中因为一些系统性能等方面的需要,通常都会结合offline形态的能力,因此也可以把offline,online看作机器学习应用的第一阶段和第二阶段。典型的工业offline应用有基站设备扩容预测(非云化设备场景),存储和光器件设备老化预测等,这些应用支撑业务人员完成具体的决策和物理活动;典型的online应用则包括了故障类型识别,UE主频智能切换等。

 

       在online形态中,我们根据应用场景要求的机器学习模型时效性不同,即机器学习模型的更新周期不同,又可以将应用形态划分为online predict和online learning两种形态,前者的机器学习模型主要为离线建模,模型按天/周/月更新,在线仅仅是应用模型进行预测;后者则需要进行在线建模,在线预测,模型更新的周期需要达到小时/分钟。Online learning的典型应用则例如根据预测分钟级别的业务流量进行基站节能,根据带宽流量预测进行数据中心间的带宽利用率提升和边缘视频码率的选择。

       根据应用场景的地域部署特性要求,即对机器学习模型的泛化能力要求不同,可以划分为local Learning和Global learning。Local learning只需要模型在一个地域适应一组数据源的样本,虽然随着时间的变化,部分数据及关联特征的分布也会出现变化,但总体来说是缓慢的,对模型来讲,仅需要具备弱泛化能力;Global learning则需要模型进行全球部署,需要模型能够适应在不同地域数据和特征的剧烈变化,如大部分特征的消失或增加。Global Learning的典型应用即上述应用形态在全球部署的延伸,可见的成功案例主要有Google的广告推荐,Netflix的视频推荐。

小结一下,根据机器学习应用的使用角色,时效性以及地域性要求,我们可以将机器学习应用划分为offline,online predict,online learning,local learning和Global learning等多种形态。不同形态下不同的技术实现路径我们将面临不同的挑战和问题。

 

应用形态和技术架构

接下来,我们从核心的架构质量属性的角度看看各种应用形态的挑战和问题。

 

Offline

从最简单的offline应用开始,如图1,因offline条件下,训练和预测对于性能一般情况下均没有严格强调响应时间,所以多数情况下,大家仅需要考虑batch的批量执行模式。训练和预测在接入原始数据后的数据准备,特征工程等数据处理部分和基于模型的预测部分可以完全复用训练阶段的能力。

 

图1. offline机器学习应用技术架构

 

因为训练和预测均为离线,所以两者可以复用相同的特征处理过程,一般情况下可以复用统一的特征存储能力,例如HDFS。

 

 Online Predict

那么online predict形态会有什么不同?

1、首先因为在线预测部分对于响应时间的要求,即需要在实际预测前准备好可以提前处理的数据特征;

2、因为在线预测部分多数按照事件方式请求,所以对预测对象如基站小区等的特征访问不是batch模式,而是按key 访问,所以需要引入KV存储;

3、同时在online predict形态下,可以引入一些更具有时效性的特征,这些特征的处理在训练时仍然可以使用离线处理方法,但是在线部分就需要引入新的流处理能力;

4、因为引入online predict后,模型的更新就需要更多的系统流程来替代offline模式下人的许多手工动作,如模型的更新,模型的版本管理,模型的评估,模型的对比测试等。所以需要额外引入模型管理,如图2。

 

图2. Online Predict机器学习应用技术架构

 

       上图中红色部分圈中的特征库-KV存储,是典型的机器学习应用领域中,面向业务对象构建的可复用的基础特征库,可以在多个相同领域的机器学习中应用,在机器学习平台类软件中,是领域机器学习平台的重要组成部分。模型管理部分用于持续评估和管理模型,可以提供相对通用的机器学习框架来解决模型的闭环反馈更新问题。常见的模型更新方式有多种:

1、简单的使用滑动数据集方式,重新训练模型;

2、采用模型Wrapper的方式持续叠加新的模型,类似RandomForrest,GBDT等算法;

3、采用机器学习函数求解的增量迭代方式;

4、针对反馈数据单独使用分类模型,特别是针对训练模型本身为非监督模型的算法,采用GAN方式进行持续优化。

       在线数据处理-Spark Streaming部分区别于离线数据准备,需要为算法提供更具时效性的特征,例如事件级别,分钟级别的统计特征,如15分钟的基站视频协议业务流量等。PredictServer部分主要提供在线的模型测试框架,支持同时存在的多个模型组进行对比测试,并提供详细的对比测试记录给训练模型。以上两种形态,Train和Predict部分都是可以网络隔离的,因为Train部分的数据都是可以离线的,可以采用人工、非自动化的方式从生产系统中以抽样的方式离线导出来训练的。

 

Online learning

更具挑战的则是online learning,在算法和系统会有更复杂的要求:

1、首先模型在线更新导致模型审核一般不再由人工来完成,需要系统自动完成;

2、因为在线更新,所以每次仅能基于增量的数据;

3、因为1,2的原因,系统必须避免模型因为当前窗口数据导致的剧烈变化,能够在历史模型参数和当前模型参数间进行平滑;

4,长期online的系统除了考虑特征随时间变化而产生分布变化的弱泛华要求,也需要考虑系统环境变化如硬件、软件版本升级导致的特征(包括关键特征)增加、删除的剧烈变化;

5、工程上需要匹配算法,支持特征的柔性变化,做到特征更新无需版本更新。这些都需要引入online training的处理能力,在线处理组件从kafka等消息或流系统中实时增量获取数据,本地训练后讲算法中间状态保存在状态数据库中,状态的数据主要也是KV结构的数据,需要引入KV存储。需要注意的是,如果offline Training还可以使用一些传统的数据挖掘类算法如Decision Tree,Bayesian等方法,那么online Training就要求基于目标损失函数,采用增量、迭代的方式进行函数优化,持续更新优化。参考技术架构如图3。

图3. Online Learning机器学习应用技术架构

 

        在线学习部分的输入数据包括kafka输出的在线算法特征和特征库—KV存储中保存的已预计算的历史特征。在线学习过程中的模型迭代参数需要持续更新到状态库-KV存储中(个别非模型的增量迭代计算可能需要保存中间计算结果)。在线学习部分还有一个重要分支就是强化学习,强化学习方向无论是早期的q-learning,saras,还是近期的DQN,DDPG等算法,典型的结构如图4。

 

图4. ReinforcementLearning机器学习交互结构

 

上述架构中

       Agent表示智能体,即执行强化学习算法的**服务,根据外部输入的状态参数选择最优的执行动作,并根据动作执行后的环境状态和报酬优化动作选择算法。此处未展开多智能体学习结构,原则上可以认为是Agent内部的层次结构。Environment表示执行环境,持续输出环境参数给Agent,并从Agent接收并执行Action。State Store表示状态存储,在面向传统的离散状态和Action时,State Store中保存State、Action、Reward的映射表,在面向新兴的连续Action和State时,保存DQN等神经网络的回放样本数据,也是表示为(St,at,St+1,rt+1)将强化学习合入已有架构后参考如下图5,其中算法执行框架部分可以利用已有的Tensorflow框架,状态存储可以复用已有的KV存储,外部环境代理EnvironmentProxy部分则将Agent的算法逻辑与具体的业务网元交互逻辑解耦出来,特别当外部网元交互模式、协议、部署复杂时。

图5. Online Learning(含RL)机器学习应用技术架构

 

 

 Local learning and Global Learning

最后再看看Global Learning和Local Learning,Local Learning可以理解为上述offline,online的应用形态。Global learning有多种实现方式:简单实现可以是多个**的Local learning,Netflix初期在十几个国家推广运营时,实际上就是类似运作方式,好处就是系统简单,易复制;复杂实现由两种方式,如图6

图6. Online Predict机器学习应用技术架构

 

1、Global data share, data share方式与online learning非常相似,全球多地部署的系统可以仅理解为数据采集,真正的学习则还是部署在中心区域,各地的数据通过流的方式持续的发送到中心区域。Google和Netflix目前都是data share(视野所限,没有发现公开的论文讨论如何解决模型共享的问题),将全球各地的数据统一采集汇总到某一个数据中心统一进行模型训练,将不同国家,语言,文化,种族相关的特征引入统一的模型,在统一的模型基础上再进行校正和纠偏[1][2];

2、model share方式则解决data share方式的限制,即解决数据安全隐私导致的无法共享问题。这样需要在各个区域,国家部署本地学习能力,然后将模型与中心区域及其它各区域做交换。中心区域逻辑上充分利用领域知识、全球各区域的数据和模型来最大程度的优化模型,特别是针对部分区域数据缺乏的问题。目前主要有学术研究,周志华老师2016年提出过learn ware及相关的一些基础研究[3][4],主要就是解决在数据不共享的条件下,如何实现模型的可重用,可演进,可了解等重要问题。

免责声明:信息仅供参考,不构成投资及交易建议。投资者据此操作,风险自担。
如果觉得文章对你有用,请随意赞赏收藏
1人赞赏收藏
相关推荐
相关下载
登录后评论
Copyright © 2019 宽客在线