我的位置:首页 > 技术文章 > 正文

Oceanus-ML:端到端的在线机器学习能力

2019-08-26 分类:Oceanus

一、背景介绍

从应用场景划分,流式应用主要可分为两种:一是实时计算;二是在线学习。实时计算应用于ETL、实时报表、监控预警等实时流数据分析场景。在线学习应用于在线推荐、实时搜索等机器学习场景。Oceanus 作为一站式可视化高性能流计算平台,自上线以来,凭借其灵活易用,维护简单性能优越,兼备低延时高吞吐的特点,很好地满足公司内实时计算的业务场景。现在,依托于Oceanus实时的计算能力,我们正式上线Oceanus-ML,支持在线学习的能力,满足业务方在线机器学习的场景。

1

现实中,很多场景下会产生海量且时效性很强的数据,比如热点新闻、用户的兴趣点等,往往变化很快。对于离线训练而言,通常天级甚至月级对模型进行更新,时效性得不到保证。而在线学习可以实时更新模型,将数据的变化即时反应在模型之上。

Oceanus-ML旨在提供一套端到端(数据接入-数据处理-特征工程-模型训练-模型评估)的在线学习解决方案。Oceanus-ML,包含多样的数据处理函数,集成丰富的在线学习及深度学习算法(ftrl-lr,ftrl-fm,deepfm等),用户通过简单的拖拽、填写参数,即可搭建起完整的训练框架,并可轻松完成模型的训练、评估、部署整个流程。

 

二、功能特色

1、拖拽式画布,轻松构建在线学习应用

2

如上图所示,Oceanus-ML根据机器学习的流程,将算子分为6类:

  • (1)数据源
  • (2)数据预处理
  • (3)特征工程
  • (4)算法
  • (5)验证
  • (6)输出

对于用户而言,构建应用逻辑时,只需向画布拖拽算子、填写参数、按逻辑连接算子 ,即可生成一个在线学习画布应用。我们以使用DeepFM算法解决CTR预测问题为例。我们使用算法竞赛常用的criteo数据集(来自欧盟criteo的大型互联网广告数据集),作为经典权威的广告点击日志,数据集大小达到了TB级别。我们把criteo数据集经过特征处理后得到百万维的数据,生成样本流,作为算法的数据输入。

3

如上图,画布中包含数据源(TDBank),DeepFM算法,模型验证以及模型输出算子。画布中的在线DeepFM算法会实时消费TDBank数据,更新模型参数。模型输出会定时将最新的模型保存到HDFS。而模型验证会拉取部分数据对产生的模型验证,并将验证的结果即时保存在HDFS。

通过构拖拽配置画布流的逻辑,我们即可构建一个典型的CTR算法训练及评估的任务。

 

2、丰富的算子,涵盖多样化业务逻辑

如下图所示,在Oceanus-ML的画布中,我们提供了6类共计24种算子,用户只需根据业务逻辑,拖拽连接相应的算子,即可构建画布流。

4

2.1 数据源

结合Oceanus,可以方便的支持各种数据源作为输入和输出,如Tube、Hippo、Kafka以及HDFS、Mysql、HBase等等, 一键无缝对接现有数据源,而且数据源支持直接使用CSV以及LibSVM格式。

5

2.2 预处理

类似于spark,我们同样能够对数据流进行各种聚合和划分,Oceanus提供了众多的预处理算子,得益于Flink非常完善的窗口机制,我们能做到远比Spark Streaming粒度更细的操作,比如构建基于事件时间的滚动窗口来处理数据。

6

 

2.3 算法

我们还在不断的增加机器学习和深度学习算法,现已覆盖常用的在线学习算法,包括FTRL、FTRL-FM、DeepFM、特征值分解、核密度分析,包含有监督算法以及无监督算法。我们可以快速方便的定义算法结构而无需考虑其梯度如何计算,比如FM算法,举例如下:

企业微信截图_15668205859020

3、实时训练模型,3步部署模型服务

当应用训练出模型后,只需3步,即可部署模型服务:

  • (1)根据auc评估合适的模型,进行部署7
  • (2)选择模型服务组,填写资源参数8
  • (3)选择是否需要落地模型9

部署后在“模型服务”中,可对模型进行管理,也可进行调试、查看模型评估报告等,方便的对比模型间的差异、效果及趋势。

如下图所示,以上文中的DeepFM为例,我们部署了3个不同时间生成的模型,通过评估报告,我们可以对比3个模型的效果。从AUC趋势可以看到,随着时间的推移,生成的模型越来越准确,最新的模型对于用户广告点击的预测会更加精准,部署到线上后广告点击率更高。10

 

三、应用场景

实时检测应用异常

指标智能监控预警(增量多元核密度估计算法)

异常点检测(Outlier detection),又称为离群点检测,是找出与预期对象的行为差异较大的对象的一个检测过程。这些被检测出的对象被称为异常点或者离群点。异常点检测在生产生活中有着广泛应用,比如信用卡反欺诈、工业损毁检测、广告点击反作弊等。

核密度估计是一种非参数密度估计算法。与参数方法相比,非参数方法对真实分布做更少的假设。比如数据是多峰的,那么我们用单峰的正态分布去拟合效果一定不好,但非参数方法却可以取得不错的效果。

核密度估计的优点是“训练”阶段不需要计算,只需要存储训练集。同时,这也反映出这种方法的缺点,即计算概率密度值时的开销随数据集大小线性增长。我们对此进行了优化,将算法修改为增量形式,可以很方便的进行在线计算,同时不再需要储存相应的数据集。具体步骤如下:

11

 

  • (1)将新样本更新到模型
  • (2)重新计算模型带宽
  • (3)重新构建和压缩模型;

12

K(.)为核函数(非负、积分为1,符合概率密度性质,并且均值为0),h>0为一个平滑参数,称作带宽(bandwidth)。Kh(x) = 1/h K(x/h). 为缩放核函数(scaled Kernel)

13

基于此,我们将该能力落地到Oceanus自身的监控模块上,用画布模式搭建了一个Oceanus全平台异常检测的ML任务,整体逻辑如下:

14

在Oceanus的集群上,每个任务在运行过程中会定时上报任务的指标以及机器节点的状态,储存在tdbank里,我们可以通过Oceanus ML模块,通过画布创建对应用、机器的指标异常检测,画布整体逻辑如下:

  • (1)source节点对应tdbank的数据,在select节点可对数据进行解析,解析出任务id、指标类型、指标状态值等15
  • (2)通过split节点及streamSelect节点挑选我们想要监控的指标类型16
  • (3)通过join节点可以从mysql、hbase、redis等获取必要的配置参数,合并处理后输入到算法节点里,指定特征对应的列,配置相应的参数即可,当在索引列指定任务id时,可以针对每个任务生成相应的模型17
  • (4)最后从算法节点能拿到相应预测结果,根据输出可作进一步推送预警,让业务提前预知可能会发生的风险,减少成本损失。

目前,智能监控预警已在Oceanus平台上开放,只需在告警配置里边一键勾选,即可体验指标智能监控,提前预知指标异常风险。

18

四、总结与展望

模型的升级路线往往为人工规则发展到线性模型,再到非线性模型以及集成学习,然后到深度学习和在线学习。总体上复杂度越来越高,时效性越来越强,收益也在不断提升。

通过Oceanus-ML,用户可以高效快捷搭建起在线学习的任务,轻松完成模型的训练、评估及部署整个流程,且模型定期落地,可直接用于线上预测。

后续,我们也将继续对平台进行优化及改进,包括:

  • (1)将迁移社区更多的算法及优化器,提供更丰富的算法算子
  • (2)引进基于Yarn的参数服务器,提供大规模模型在线训练的能力
  • (3)近期也将兼容Tensorflow框架和算法,提供相应的算子,方便灵活提供不同业务的支持
  • (4)对模型及结果提供更方便多样的可视化展示
  • (5)……
TOP
返回顶部
在线咨询