世界实时:阿里云机器学习 AutoML 引擎介绍与应用

2023-02-23 11:00:24 来源:DataFunTalk

导读 在算法行业有这样一种说法,80% 的时间用在做数据清洗和特征工程,仅有 20% 的时间用来做算法建模,其核心是在说明数据和特征所占比重之大。与此同时,越来越多的数据从业者们也希望能够降低机器学习的入门门槛,尤其是降低对特定领域的业务经验要求、算法调参经验等。基于这一背景,AutoML 应运而生。


(相关资料图)

本文将介绍:

1. 什么是 AutoML

2. 超参调优(HPO)

3. 自动特征工程(AutoFE)

4. 网络结构搜索(NAS)

5. AutoML - 其它

分享嘉宾|孔维丹 阿里巴巴 高级技术专家

编辑整理|胡回 中南大学

出品社区|DataFun

01

什么是 AutoML

1. 典型的机器学习流程图

典型的机器学习流程包括:

数据采集和预处理。 特征工程。 模型选择,在有了待 training 的数据之后我们会选择一个模型来进行训练。 模型调参,在模型训练过程中有很多参数需要调整。 模型压缩,为了提升推理效率(inference efficiency),要考虑对模型进行一些压缩。 模型评估 & 部署,对压缩后的模型进行评估,然后上线。

在这一流程中,有很多模块都可以应用机器来进行优化:

Hyperparameter Optimization(HPO)超参调优 ,主要针对模型调参,当然 HPO 也可以运用到整个流程中的各个阶段。 AutoFE ,主要针对特征工程。 Neural Architecture Search (NAS) ,主要针对模型选择模块,在做模型选择的时候,可以考虑选择现成的经典模型和经典模型的改造,也可以考虑从无到有创造出更适合应用的模型。

2. 阿里巴巴计算平台 PAI 架构图

通过以下架构图可以看到 AutoML 在整个 PAI 计算平台中的位置。

PAI 架构中最下面是基础硬件层、分布式的优化、调度层,基于此构建了各类计算引擎的框架,比如深度学习框架 TensorFlow 、Pytorch,流式机器学习框架 Alink 等。 AutoML 引擎则是构建在计算引擎之上,为更上层的算法、产品和业务提供服务,起到了承上启下的作用。

--

02

超参调优(HPO)

1. HPO -目标

通常一个模型,会有很多参数需要进行调整,这些超参的范围构成了一个搜索的空间。HPO 的目标就是 在这个空间里找到最优的超参组合,并提供训练完成的模型。

2. HPO - 搜索空间

参数类型举例:

树模型:

树的数量(10,50,100)

树的深度(5,6,7)

特征采样率(0.6,0.7,0.8)

训练数据采样率(0.6~0.8)

仅仅这几个参数,就已经存在一个很大的搜索空间待选择,对人工调参来说并不友好。

深度模型:Learning rate、batch_size、Learning rate decay、网络深度、卷积核大小等等。

深度模型中待选的超参更多,这些参数组合起来则会是一个巨大的搜索空间。如何在巨大的搜索空间中高效快速地找到最优的超参,是 HPO 要研究的核心问题。

3. HPO-搜索策略

穷举法

搜索策略里最常见的办法,包括随机选择超参、按次序穷举超参。

概率模型

利用训练过程中得到的数据,基于概率模型,来做贝叶斯优化算法,或者做 TPE 算法,帮助我们更大概率的搜到更好的超参。

采样算法

PAI team 提出的一种更高级的模型。当面临很大数据量去进行训练的时候,时间成本是非常大的。考虑到搜索空间里边有大量的很早就可以排除掉的参数组合,如果能够用非常低的采样率,比如说百分之一甚至千分之一、万分之一的数据量,通过训练就能够提前排除大量低质超参,就可以大大地提高训练效率。然后逐步将采样率提高,对剩下的超参进行细化调整,这样就可以在提高训练的效率的同时尝试更多的超参组合。实验证明,与概率模型做了一些对比,采样算法有更好的提升。

4. HPO-EarlyStop 策略

为进一步提高 HPO 训练的效率,我们也会使用 EarlyStop 策略。 EarlyStop 策略参考下图。

图上 每一条曲线是一个训练的具体任务,横轴是 epoch,可以看到部分任务训练的曲线到了最后,而更多的任务则是训练了几个 epoch 之后,就提前被停止放弃。这样也可以 大大提高训练效率,节省训练开销。

5. PAI-AutoML HPO

AutoML 在 PAI studio 上有具体产品的透出。对于用户而言,只需要在 UI 上选择具体的算法,然后提供参数选择就可以轻松使用 AutoML HPO 的功能。

6. HPO-业务案例

0号:阿里内部的一个业务团队,在使用 HPO 之前人工选择的的超参。 1号、2号、3号:是通过使用 HPO 的服务以后,得到的超参的组合。 2号实验有着最优的效果,1 号实验在最终效果与 baseline 接近的情况下,使用的 tree_num 大幅减少。这也就意味着,在线上运行的时候会有更高的效率。

7. 在线数据分时实验

内部业务线分时实验 ,对比如下:

2 号实验优于 0 号 baseline,如果业务方更关注线上的效果,那可以选择 2 号实验。 如果业务有性能或者资源限制的考量,可以选择 1 号的实验。 HPO 除了能够帮找到最优的超参之外,还给我们提供了相同 metric 下性能效率更高的选项。

8. HPO - 合作伙伴案例

椰子科技在使用 PAI AutoML 的调参服务,大大地提高了效率,节省了人力。

--

03

自动特征工程(AutoFE)

1. 为什么需要特征工程?

数据和特征 本身决定了机器学习的上限,而模型和算法是逼近这个上限。深度模型也不例外。所以当有更好的数据,更优的特征的时候,会提高最终的效果。

在互联网行业, CTR 预估、模型推荐场景的需求还是重中之重,在这两个场景下面,绝大部分的特征还是 表格数据 ,而自动特征工程,恰恰可以应用在这些表格数据之上。

另一方面,金融行业对模型最终的可解释性要求比较高,对于 Deep learning 这样的 model 会有一些心理上的抗拒,通过特征工程进行优化,可以使特征有更好的可解释性。

与 HPO 类似,AutoFE 的研究方向也是两个,一个是 搜索空间 ,一个是 搜索策略。

2. AutoFE – 搜索空间 - 操作与候选特征

搜索空间关注的一个是 用什么样的操作 ,另一个是 选取哪些特征。

(1)一元的操作符

离散化。 归一化。 数学运算。 统计特征,计数、最大值、最小值等。在推荐场景中,统计特征会有很好的效果。

(2)二元的操作

数学运算。 比如关注的是一个人是胖还是瘦,通常会使用 BMI 指标,这样的指标就是典型的二元操作。 逻辑运算。 比如有一列特征是性别,还有一列特征是年龄,那么性别是男,且年龄在20 到 30 岁之间,这就是一个典型的交叉的逻辑特征。 统计特征。 比如 Average A Group By Label,对于这个特征而言,关注它和 Label 列直接的关系。这个特征和 Label 直接交叉之后,可能会得到一个很强的特征。

3. AutoFE – 搜索策略 -候选特征选择

FeatureTools 与 DFS (Deep Feature Synthesis)

开源项目,通过定义表格上的 entity、entity 的 ID 以及 entity 之间的关系,作用于多个表格,表格往往都是关系性数据库的表格,然后去分析获得特征的组合,包括一些统计特征。

PAI – AutoFE:SAFE (Scalable Automatic Feature Engineering)

来自蚂蚁的一篇 paper,面向的场景是大宽表。这个算法基于 Alink 引擎,可以很容易地处理海量的数据,也可以充分地依赖于 Alink 提供的各种算法和算子。FeatureTools 是需要代码开发的工作,使用上有一定的难度。而 PAI-AutoFE 在设计时,就考虑以配置驱动,无需代码开发,只需要提供简单的配置,就可以端到端地做自动的特征工程。

4. PAI-AutoFE - SAFE 算法

可以从端到端来看,用户输入是一个原始的表格以及 label 列。最终输出到用户的还是原始的那个表格,记忆新加的特征,并且明确地告诉用户这些特征的计算方式,比如 A 列加 B 列、group by A 列、B 列的最大值等等。

整个过程分 两个阶段:

阶段一:找到候选的特征。 阶段二:在这些候选特征里面剔除掉效果不好的特征,保留效果好的特征,然后再把它加到最终的表格里面去。

具体细节:

运行 GBDT,得到多棵树,以及每棵树上会有一些分裂节点、具体的分裂值。 特征组合筛选。通过分析 GBDT 树的分支,可以得到特征交叉的候选组合。而使用 GBDT 则可以把特征组合候选量大幅降低。在有了这些候选特征组合之后,还可以进一步地去做过滤,GBDT 给了数据集的划分,对数据的特征组合,可以去计算 IGR(信息增益率),通过保留信息增益率比较高的组合,可以进一步的减少组合的特征。 特征生成。得到了这些优秀的特征以后,再通过执行操作符,生成新的特征。 移除无用特征,进一步优化。比如计算 information value(信息价值),把 IV 值比较高的特征给留下来。 再次运行 GBDT, 让 GBDT 给每个特征打分,通过 GBDT 得到的 feature importance(特征重要性),保留最终特征。

整个流程下来,不会对用户的原始数据增加很多,但是却会得到很好的效果。

5. AutoFE – PAI 平台推荐解决方案 EasyRec + AutoFE

在推荐领域,PAI 平台做了一个推荐的解决方案:EasyRec。这个解决方案里使用了各种 deep model, 帮用户做了基础的特征工程,端到端帮助用户生成模型。EasyRec 集成有 HPO 和 AutoFE 模块 ,打开这些功能,可以让用户的特征效果得到进一步的提升。

上图 是视频领域某客户的案例,2022年5月13-15 日三天的数据,红色框是 baseline, 是 EasyRec 的效果,v5 是表明已经迭代到了第五版。黑色框里的是使用了 AutoFE 之后的实验结果。

可以看到, 使用 AutoFE 之后的效果显著优于 baseline, 最大会有十个点以上的提升。点击率、视频观看时长都有明显的提升。尽管 AutoFE 使用了传统的机器学习的方法进行自动特征工程,但在 Deep learning model 上同样有着很优秀的表现。

--

04

网络结构搜索(NAS)

1. 背景

深度学习打开了 AI 的大门之后,各个领域的专业问题都可以用深度学习来进行优化。不管是在 CV、NLP,还是在其他不同的领域,都会需要到不同的模型。

2. NAS – 终极目标

机器学习的终极目标: 用户只需要提供数据和 label, NAS 系统便能够使用尽可能少的资源资源的情况下,快速的给出一个便于用户理解的模型。

3. NAS – 组成部分

与 HPO 和 AutoFE 类似,NAS 首先也是要定义一个网络结构的搜索空间,因为搜索空间很大,所以同时需要研究出更高效的搜索策略,更巧妙的加速方案。

搜索空间:

有向无环图; 块单元; 元结构。

搜索的算法 ,目的是更快更高效地找到最优的模型,包括:

强化学习 进化算法 梯度优化 贝叶斯优化

加速的方案有:

全部训练 部分训练 全值共享 网络态射 超网络

4. NAS – 强化学习典型方案

经典 NAS 的处理过程使用了 强化学习(reinforcement learning) 的方法。 使用参数推荐出的一个模型进行训练并得到 metric,然后给到控制器(controller),在已有模型的基础上推荐下一个潜在具有最优 metric 的模型,然后把该模型给到右边这个 child network ,再从零开始训练。 这样又可以得到下一组模型和 metric 的组合,循环往复,最终选出一个最好的网络。

这一方案最大的 缺点 是,每次训练都需要从零开始,不同模型之间做了大量重复训练,却没有共享训练成果的, 所以效率非常地下。

5. NAS – OneShot - ENAS/DARTS

此基础之上,出现了很多 OneShot 方法。

(1)优化点

ENAS 方法做了不同模型之间的权值共享,训练不再从零开始,大大地提高了训练的效率。 DARTS 方案,不再使用 reinforcement learning 的方法,而是重新设计了一个可微的网络,通过梯度下降的方法去寻找一个最优的网络结构。

(2)问题点

OneShot 方法依旧需要大量的训练。 搜索的空间大:搜索空间是一个 super net 超网络,而结果是在这个超网络上的一个子网络。

6. NAS – 主干网络搜索

回归到实际用户使用场景, 用户做训练时,并非都是从零开始。 一种情形是,用户已经使用了经典模型,但是希望有更好的效果。另一种情形是,用户已经设计了一个网络,并且希望能够在此基础之上,能够有一些微调,以得到更优的效果。

针对这类需求,一部分 NAS 研究工作的重心,落到了 model 里的 backbone 主干网络的搜索。主干网络消耗了训练中的绝大部分的时间,所以 主干网络的优化,能够大幅提高训练效率。

案例

NAS-FPN 和 DetNAS,共同点是都使用了 FPN(Feature Pyramid Network)方法。在基础网络之上,通过设计 FPN 把原网络的特征层抽取出来,合并成新的特征,再加回到待抽取的网络特征里。这样搜索空间就是用户自己的 backbone,同时能提取出高阶的特征。

然而,这类方法还存在一个问题,它仍然是一类 OneShot 方法,依旧需要训练原有的数据,训练开销还是比较大。

7. NAS-MaE-NAS

针对上述主干网络搜索存在的问题,达摩院提出了 MaE-NAS 的方法。 它是 Zero-shot 的方法,不再需要训练数据,而是通过评价网络的结构来确定网络需要怎样修改。

其 优势 在于:

无需训练网络参数,搜索代价几乎为 0。 效率非常高。 在精度,模型大小,推理速度,计算量等指标上全面超越主流网络结构。

(1)MaE-NAS 核心算法

MaE-NAS 核心算法 本质上是把原有的 CNN 网络看成是一个信息系统,通过计算网络输出层的熵,熵越大,则代表着这个网络的表达能力就越强,效果就越好。通过这样的方法来训练网络结构,相比 OneShot 方法更加高效。

(2)MaE-NAS 案例

在拍立淘的案例中, 通过使用 MaE-NAS 方法,可以把模型大大的压缩,部署到客户端。 在这种情况下,同样是输入一张图片,客户端就已经对商品进行了检测,只把商品的热区,也就是我们关注的一小部分抠出来上传到服务器,再通过服务器的特征提取,最终返回检索结果,使用户搜索时延大幅降低。

--

05

AutoML – 其他

AutoML 也会有很多其他领域的研究,比如 Transfer-learning,欢迎大家观看。

--

06

问答环节

Q1:Auto FE 里 IV 值高的特征和 GBDT 选出的特征有什么关系,能相互印证吗?

A1:在计算 IV 的时候,如果一些特征比较强,跟其他特征组合的时候,它会在多个特征下面表现出IV值都很高,但是可能是重复的。而在 GBDT 有一个特点,如果两个特征一模一样,那么一个特征很强的时候,另一个特征的权重就会直接打到零。所以从这个角度上讲, IV 值高不一定代表 GBDT 这边最后选出来的特征会是强。但是如果把上述情况剔除掉,那么 IV 值高在 GBDT 的 importance 也相对高。

今天的分享就到这里,谢谢大家。

|分享嘉宾|

孔维丹|阿里巴巴 高级技术专家

阿里巴巴高级技术专家,目前在阿里巴巴计算平台事业部任高级技术专家,专注于 AutoML 领域,包括 HPO、AutoFE、NAS 等方面的工作,负责阿里巴巴 AutoML 服务。此前先后就职于微软、小米等公司。

|《数据智能知识地图》下载|

上下滑动⬆️⬇️,查看《数据智能知识地图》 预训练模块 ,完整版请 关注公众号“大话数智 ” 下载

点击链接,可查看详情,并快速下载:

|DataFun新媒体矩阵|

|关于DataFun|

专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100+线下和100+线上沙龙、论坛及峰会,已邀请超过2000位专家和学者参与分享。其公众号 DataFunTalk 累计生产原创文章900+,百万+阅读,16万+精准粉丝。

x 广告
x 广告

Copyright @  2015-2022 大众晚报网版权所有  备案号: 豫ICP备20014643号-14   联系邮箱: 905 14 41 07@qq.com