2020腾讯广告算法大赛专题直播周是由腾讯广告打造的一档大咖直播活动,特邀2020腾讯广告算法大赛的专家评委,针对联邦学习、机器学习、大数据等前沿领域的核心话题进行分享,并为算法爱好者们答疑解惑。我们特此将本次直播周的三期内容提炼成问答集锦,帮助算法爱好者们快速了解直播干货,学习算法知识,加深对前沿技术与应用的全面理解。
崔斌
北京大学计算机系副主任、长江学者特聘教授、网络与信息系统研究所所长、中国计算机学会杰出会员
《自动化机器学习:挑战、技术及系统》
从系统层面讲述自动化机器学习的全新方案,包括利用强化学习、元学习以及迁移学习技术来自适应地缩小搜索空间以及加速机器学习流程的验证和搜索等,揭开自动化机器学习的面纱。
在这个人工智能、大数据的时代,很多领域都使用了机器学习技术,机器学习在图像识别、商品推荐、金融市场分析等问题中都发挥了重要作用。但机器学习技术始终离不开专家来设计和操作,否则就没有办法达到良好的效果。为了减少对机器学习领域专家的依赖,自动化机器学习技术成为了工业界和学术界讨论的热门话题。
在这期直播中,崔斌老师从传统机器学习的专业技能需求、自动化机器学习的特点、特色技术、应用和发展等多个方面介绍了自动化机器学习这个领域的现状以及他们团队设计的自动化机器学习解决方案SolnML,让机器学习更简单,让每个人都有机会感受机器学习的力量。未来,SolnML也将支持Angel(腾讯大数据自研并开源的高性能分布式机器学习框架),完成大规模的、稀疏的、图模型的自动设计和训练。
Q:机器学习现在有哪些应用?用机器学习处理问题的步骤是什么样的?
A:机器学习的应用已经覆盖了商品推荐、金融市场分析、图像识别等许多领域,而且效果很好。在这次2020腾讯广告算法大赛中也用来根据用户点击广告的行为,反过来判断用户的年龄和性别。这许许多多的成功案例都说明了机器学习有很强的数据分析和预测能力。
想要用机器学习解决某个具体的问题,首先需要有经验的机器学习专家协助,而且机器学习流程也需要设计、优化,整体周期较长。从数据收集与清洗,到特征提取、特征选择,然后进行模型调参、训练,到最后的模型评估,一轮下来需要几个月时间。而且这还只是开始,机器学习是一个不断迭代改进的过程,需要多轮的调试才能使模型表现的更好。
Q:用机器学习分析数据,有哪些关键技术?
A:主要有五项技术:超参数调优、特征工程、算法选择、模型验证优化、神经网络架构搜索。前四种技术对Kaggle等数据科学比赛的参赛者、机器学习应用人员都非常重要。正是靠对每一种技术的掌握,细节上的尝试和改进,整个机器学习模型的表现才可以被调整得越来越好。如果有很多的硬件资源,也可以选择深度神经网络,并且用神经网络架构搜索找到最优的架构。
Q:为什么需要自动化机器学习?
A:因为我们希望让更多的人运用机器学习来解决问题。机器学习很强大,有能力发掘数据中隐藏很深的信息,但目前只有机器学习领域的专业人士、有充足的实践经验的人才能用好机器学习,发挥出它高超的分析预测能力。自动化机器学习可以把上面提到的五项技术自动化完成,提升迭代开发的效率,减少对机器学习专家的需求,让不熟悉机器学习的人也能借助机器学习的力量做出好的数据分析。
Q:目前自动化机器学习的应用并不广泛,这是为什么?
A:目前开源的自动化机器学习系统有很多,此外,谷歌云、亚马逊云、微软Azure云还提供AutoML云服务,但自动化机器学习仍然有好几个方面的问题需要解决。
1. 搜索空间巨大。超参数调优、特征工程、算法选择、模型验证优化四种机器学习关键技术对应的是多种选择,不同的组合会带来大相径庭的结果。
2. 数据利用效率低下,有“冷启动”问题。对于每一个任务,自动化机器学习系统都需要从超参数调优、特征工程、算法选择、模型验证优化四个方面做选择,然后进行组合尝试。如果是和以前类似的任务、数据,技术人员会尝试模仿之前的组合,有机会节省时间、资源,且获得好的表现。但当前的系统一般都忽略这种做法,使得数据利用效率无法得到大幅提升。
3. 验证模型的代价越来越高。现在整个领域都流行使用很大的模型,但大模型训练一次非常耗时。当下热门的BERT模型训练一次需要三天时间,需要训练多次得到多个结果才能验证配置是否合理。
这三点都限制了自动化机器学习乃至机器学习的广泛应用。目前研究者们仍然在积极地开发更强大、更易用的机器学习系统。
Q:SolnML相比以往的自动化机器学习系统有哪些优势?
A:1. 高效性:可以主动压缩搜索空间,并且自适应地把资源分配给表现较好的模型。
2. 通用性:普通的机器学习和深度学习都能支持,分布不均衡的数据集也可以支持。
3. 高可拓展性:不仅能自动化地帮新手得到好的结果,专业用户也可以自己添加和定制功能。
4. 易用性:简单的命令就可以开始执行,能够提供分析详尽、丰富的结果。
5. 有长期学习的能力:会学习如何为不同的任务找到最合适的配置。
Q:SolnML中有哪些特色技术?
A:1. 主动搜索空间压缩技术。
尝试自适应地对搜索空间进行压缩,在小的搜索空间里优化流程,减少尝试次数。
2. 基于元学习的算法推荐技术。
利用跨数据集和算法性能的历史,给当前任务推荐一个合适的算法侯选,在这个算法里做后续的验证。
3. 基于迁移学习的超参数优化技术。
利用历史任务的超参数信息,加速当前任务的算法调参。
4. 基于多精度优化的模型验证技术。
利用低精度信息加速模型的验证。
5. 自适应资源分配技术。
根据算法或者子组件的提升表现进行资源分配。例如表现好的算法应该获得更多的资源用于其调参和特征工程,表现不好的算法应减少或避免对其分配资源。
Q:SolnML的数据利用效率如何?有“冷启动”问题吗?
A:SolnML能够记录每次搜索模型的调参历史,然后通过一个算法推荐模块提前预测不同模型的性能,优先推荐更适合的模型以及模型的超参数。这样的设计不仅能避免早期搜索时“冷启动”的低效率问题,还可以不断积累经验、不断学习,更准确地推荐出最好的模型和参数组合,就像人能积累调参经验一样,逐渐就可以在更少的尝试次数中获得表现更好的整体配置。SolnML的数据利用效率也比以往方法更高。
Q:SolnML对GPU、CPU、TPU、FPGA等计算硬件的支持如何?
A:SolnML以及以往的各种自动化机器学习系统都是比较上层的应用软件,并不需要实现底层的、和硬件接触的计算框架。目前机器学习应用以及竞赛中常用的Tensorflow、Pytorch、XGBoost等等都是底层计算框架,SolnML可以选用这些不同的底层计算框架。如果有深度学习系统可以很好地支持各类硬件,那SolnML自动化机器学习系统就可以把底层框架切换成对应的系统。
Q:SolnML能不能检查和维护数据集,检查里面的标注错误?实际应用中可能会有不断增加的标注数据,怎么做长期的学习?
A:SolnML目前的数据预处理模块能够支持对数据集的一些检查和预处理。这部分类似于原来数据管理领域做数据清洗、数据质量方面的工作。即便对专门进行数据质量研究的人来说,这都是有难度的问题。SolnML目前针对检查和维护数据集设计了一些功能,不过还有很大的提升改善空间。
Q:深度学习和机器学习的区别是什么?SolnML对神经架构搜索的支持如何?
A:深度学习和机器学习在实际使用中有一些区别,主要在于深度学习模型不需要很多的特征工程操作,模型本身就有很强的特征提取和表示能力。但同时深度学习模型的训练、验证开销要比传统机器学习高得多,训练一个模型就需要几小时甚至几天。所以SolnML也支持深度学习,但它会把自动化深度学习看作单独的一件事,目前有一些初步的设计。
对于神经架构搜索而言,完全的神经架构搜索需要的计算资源太大,而性能收益相比之下太小。目前来说,从已有的神经网络架构中自动搜索最优的架构是更好的选择,不仅可以避免大模型带来的一系列问题,一些现有模型也已经分别对不同的使用场景做了较好的优化,直接使用就会有不错的效果。
Q:SolnML对各种机器学习平台支持如何?能不能在现有的大规模机器学习平台上使用?
A:SolnML本身的设计是与平台无关,可以在一般的Scikit-learn、PyTorch机器学习平台上使用。而腾讯大数据自研并开源的高性能分布式机器学习框架Angel有很好的集合调度,可以支持千亿参数级别的模型,适合图网络模型的处理,而且也提供了很多现成的功能和算法库可以直接调用。SolnML就计划在未来支持腾讯大数据Angel深度学习引擎,支持整个系统上的AutoML模块。
Q:SolnML现在能完全替代机器学习专家吗?机器学习专家未来的生存空间如何?
A:自动化机器学习目前还并不能完全替代机器学习专家。目前,SoInML跟最高水平的机器学习专家、专业参加比赛的选手还有一定距离。它最大的优势是可以提高机器学习的生产效率,比如你大概了解某个模型算法很好,接下来让它做自动化的参数调优,这个SoInML可以做得很好,但特征工程、模型选择方面跟参加竞赛的同学相比还是有一定距离的。
从这个角度上看,自动化机器学习更加完善以后,未来可能会代替一小部分专家。但目前机器学习专家跟自动化机器学习系统的定位还是不一样的,自动化机器学习系统可以给专家提供一些自动化搜索的结果,可以做一些参考或者提供一些建议,专家也可以根据业务的定义提供更高效的搜索空间。
Q:学习自动化的本科生是应该继续读研还是进入工作?
A:目前这个问题没有标准答案,如果学有余力可以读研,能够更好地发掘自己的潜力。
Q:对自动化机器学习有兴趣的话,如何深入了解更多知识?
A:自动化机器学习相关的教材相对来说比较少,但现在外面开源的系统还是很丰富的,包括论文。我建议大家可以看看Auto-Weka、Transmogrif AI、Auto-Sklearn、Auto-Keras,这些系统都有开源代码和文章。
Q:和H2o机器学习平台对比,SolnML有哪些优势劣势?
A:SoInML刚开源,目前做了自动化的模型选择和超参调优、自动化特征工程,很重要的是系统能不断积累知识,性能可以不断提升。我多次提到利用元学习或者用迁移学习的方法,因为在训练的过程中、系统长期使用的过程中会发现,对于某类任务,什么样的数据、模型、算法比较好是有一定规律的;在超参调优的过程中,假设用贝叶斯做优化,应该往什么方面去优化,这都可以通过历史数据学到一些知识。SoInML有一个很重要的特点,可以在使用的过程中把整个学习的知识以及训练的过程累计下来,系统越用越强,支持后续自动化机器学习性能的调优。
还想了解更多精彩内容?点击直播链接,即可观看《自动化机器学习:挑战、技术及系统》直播回放。更多2020腾讯广告算法大赛专题直播周问答集锦即将放送,敬请期待!
【问答集锦】联邦学习让隐私保护和海量数据学习兼得!