自动建模 (Auto ML) 产品综述
什么是自动建模?
自动建模也称为自动化机器学习,自动化 ML 或 AutoML,它是将机器学习模型开发过程中耗时的反复性任务自动化的过程。 业务人员、初学者、数据科学家、分析师和开发人员都可以使用它来生成高度可缩放、高效且高产能的 ML 模型,同时保证模型的质量。 传统的机器学习模型开发是资源密集型的,需要具备丰富的领域知识,并需要花费大量的时间来生成和比较数十个模型。 使用自动化机器学习可以缩减生成生产就绪型 ML 模型所需的时间,同时使工作变得更轻松高效。
以典型的机器学习过程为例,通常包括业务理解,数据理解,数据准备,数据预处理,模型搭建,模型评估,模型部署应用几个环节。如果是手工敲代码的建模方式,每一个环节都需要人工去调,比如缺失值如何处理,异常值如何处理,哪种算法效果好,参数如何设置等等,一方面对工程师的要求门槛较高既要会编程又要懂算法,还要懂业务,另一方面建模效率也很低,并且一旦数据变了,整个流程又要重来一遍。而 Auto AI 就是将建模环节中复杂的数据预处理,模型搭建,模型评估和应用等环节交给 Auto AI 工具来自动完成,工程师只要能够正确理解业务和数据,知道选用哪些数据来建模就可以了。
为什么需要自动建模?
(1) 提高生产效率
目前,由于数据挖掘技术的门槛较高,实现起来复杂度较大,因此一般一个数据挖掘项目通常就是建立一个模型,这个模型要尽量有更广泛的应用范围。而实际上在场景需求侧,模型的需求量很大,就是一个业务问题也往往不是一个模型就能完全解决的,而是需要一系列的模型,通常多个模型适用效果就远远好于一个模型。
例如在精准营销场景中,使用模型可以帮助我们快速的定位潜在目标客户,提高营销成功率。通常的做法是简单的建一个全国所有客户的模型,但是各地区的营销政策和消费特点可能不同,即使同一地区,不同客户群体的关注点也是不一样的,这样一个模型用所有的结果就是放到哪里都不太适用。而如果能分地区、分客群的建立多个模型,适用性就会提高很多,况且一般需要营销的产品也不是只有一种,可能是几十种甚至更多,这样需要的模型量就更多了。
显然仅靠手工建模是很难实现短时间内建立多个模型,以探索不同的方案来解决业务问题,这也正是很多模型落地效果不尽人意的重要原因。而自动建模则可以快速构建多个模型,大幅度提高生产效率,将数据科学解放出来,进行更有意义的研究。
(2) 降低成本
采用手工建模的方式,完成一个模型通常需要几周到几个月的时间,一年下来也做不了几个模型,并且在人才市场上数据工程师的人力成本也是高居不下,这样就造成模型成本异常的高。
以下表中三家美国公司数据分析团队的模型成本为例,我们很保守的估计一个数据挖掘人员的年薪是 10 万美金(实际上远不止这么低),每个公司的模型产量如表中所示,计算下来单个模型成本至少要在 5 万美金以上。如果采用自动建模,模型的生产周期会缩短为几小时到几天,同时需要的人力资源也会减少,这样单个模型的成本至少下降几倍。
自动建模会取代数据科学家吗?
答案是不会。
尽管 AutoML 擅长构建模型,但它们仍然无法胜任大部分数据科学家的工作内容。对于业务问题,我们仍然需要数据科学家们来定义。我们仍然需要数据科学家们运用他们的领域知识来提出更多有用的特征。现在来说,AutoML 只能处理有限几种类型的问题,例如分类和回归。目前,它们还无法建立推荐(recommendation)和排名(ranking)模型。最重要的是,我们仍然需要数据科学家们从数据中提取出具有可行性的洞见,而仅凭 AutoML 做不到这一点。
实际上,数据科学家们肩上的责任太重大了,压得人喘不过气。对一名数据科学家来说,时间可能是最宝贵的资源了。与利益相关者(产品经理,业务部门的员工,以及客户)开会,维护现有模型,收集 / 清洗数据,为下一次会议做准备,以及等等其他事情会把您的一天塞得满满当当。Auto ML 可以在很大程度上减少数据工程师的工作量,将他们从比较耗时的数据预处理还有选模型调参等工作中解放出来,从而可以放更多的精力在业务的理解,建模方案的优化,而很多事实也证明准确的业务理解,优良的建模方案对模型的落地效果要远好于花费大量时间在模型本身的优化。AutoML 可以被当做一个节省时间的好工具,点几下鼠标就可以训练出具有足够性能的模型,数据科学家可以更专注于那些能产生最大价值的任务。
市场上可用的自动建模产品有哪些?
在人工智能领域 Google 的名气是比较大的,它的 automl 在业界也是备受关注。Google automl 是基于 Google cloud 建立的一个端到端的机器学习平台,流程上主要包括准备数据,训练模型,预测结果三大部分。准备数据就是使用 BigQuery 和 Cloud Storage 准备和存储数据集,然后使用 Data Labeling Service 为训练数据添加标签,数据格式支持图片、视频、表格和文本数据。数据准备好后选择 automl 功能进行自动建模,自动建模之前需要指定模型类型(分类,回归),目标变量,训练集和验证集划分方式,训练时间(最少 1 小时)和优化指标,搭建模型的过程由 automl 自动完成。模型训练好以后可以看到模型的表现指标和变量的重要度,如果模型达到要求就可以用来部署和预测了。整个流程和界面体验来说是非常友好的,操作也很简单,可以做到不用编程也能建出优质模型,普通小白也能使用。
Google 的 automl 采用基于 Tensorflow 的神经网络模型,模型精度较好,但是需要海量的算力支持,背后是 Google 强大的计算机工程,建立成百上千 cpu、gpu 集群才行,一般的企业和个人很难落地投产,即使是购买 Google 的服务收费也是比较贵的。
在场景方面深度学习适合于计算机视觉、语音识别、记忆网络、自然语言处理等领域。
RapidMiner
RapidMiner 公司总部位于美国马萨诸塞州剑桥,是一款基于 Java 开发的数据挖掘软件。自动建模是 RapidMiner studio 中的重要功能,可以帮助初学者快速构建模型。Studio 的自动建模可以解决预测(分类和回归),聚类和异常值检测三大类问题。使用自动建模,用户只需要简单几步设置:导入数据,选择任务,准备目标变量、选择输入变量、选择模型算法、运行结果,就可以完成模型构建,初学者和小白都能够使用。
Studio 的自动建模还有一大亮点就是可以将自动建模的流程转化为设计视图,即图形化的操作界面,然后用户可以在这个界面对建模流程进行修改和优化。这对于数据科学家非常友好,可以将自动建模作为基础模型进行个性化的优化,即提高了生产力,又能满足特殊优化需求。
RapidMiner studio 安装包支持 Windows,Linux,MaxOS,有免费版和商业版,其中免费版对于数据量有限制,最多可运行 10000 行数据。Studio 安装包和授权可在官网申请下载。
易明建模 YModel
YModel 是由易明公司开发的一款专注于自动建模的软件,在自动建模领域表现非常不错。
YModel 基于 Java 和 Python 开发,支持 Windows 和 Linux。与大多数重量级的平台类建模产品不同的是 YModel 是一款轻巧便捷的工具,使用灵活,安装简单,可以独立安装,也可以嵌入到企业的自有系统。
在算法上,YModel 支持分类、回归和时间序列的常用算法。YModel 的自动建模最大的特点就是不仅模型精准,而且由于它的寻参方式采用自主研发的智能寻参,因此建模速度很快,非常节省计算资源。例如大多数的自动建模时间至少以小时起计算,而 YModel 可能几分钟就建好了。为保证模型的泛化能力,YModel 会将几个优质模型自动融合,这也是几乎所有自动建模产品所不具备的功能。
在操作方式上 YModel 也非常简单,用户只需要配置好目标变量,就可以实现一键式操作,既数据预处理,算法选择调参,模型选择和评估等一系列流程完全由软件自动完成。这对于初级用户来说是非常友好的,也很适合没有专业数据团队中、小企业快速实现数字化应用。
YModel 产品分为个人版和企业版,个人版是完全免费的,数据量和功能上也没有限制,只是不能连接数据库。企业版虽然是收费的但与大多数重量级平台相比,价格也是十分便宜。
总体来讲,YModel 的优势就是自动化能力强,轻巧便捷部署方便,经济性强,适合中小企业、初学者和普通职场人士使用。
Azure automl
Azure AutoML 是微软在 2018 年发布的自动建模平台,支持模型结构搜索和超参数搜索。在算法上支持分类、回归和时序预测的常用算法。在训练期间,Azure 机器学习会创建多个尝试不同算法和参数的并行管道。 该服务将迭代与特征选择配对的 ML 算法,每次迭代都会生成带有训练评分的模型。 模型的评分越高,则认为它可以更好地“拟合”数据。 一旦达到试验中定义的退出条件,机器学习就会停止。在训练之前用户需要配置自动化机器学习参数,用于确定要对不同模型运行的迭代次数、超参数设置、高级预处理 / 特征化,以及在确定最佳模型时要查看的具体指标。
与 Google automl 相比,Azure 的模型透明度更高,用户可以清楚的知道用了什么模型和哪些些处理方法,但是 Azure 在一些大的数据集上运行时容易出现错误,而 Goggle 则会相对稳定一些。
H2O.ai
H2O.ai 是初创公司 Oxdata 于 2014 年推出的一个机器学习平台,它是一个开源的分布式内存机器学习平台,具有线性可扩展性。 虽然 H2O 是开源的但其实还是一个商用的机器学习平台,用户需要付费使用。H2O 有安装版和云服务,其中安装版只支持 Linux。Driverless 是 H2O 的自动建模平台。
在 Driverless 上,可以向用户展示数据中变量的多种统计指标,和一些可视化的图形。使用 Driverless 基本实现自动建模,但需要注意的是 Driverless 还是要求用户自己会设置一些参数,比如要训练的模型个数上线或最长训练时间,因为自动建模的底层会尝试对用户所选择的模型的参数进行 GridSearch(网格搜索),以此来进行模型超参的调优。若没有设置好模型个数上线或最长训练时间,可能会出现跑了很久依然没有结束的情况。这种类似于暴力搜索的寻参方式虽然可以自动建模但是缺点也比较明显,一方面耗时长,投入计算资源较大,经济型差,另一方面对于无建模经验的人士也不太友好,初学者对这些要设置的参数是没有概念的。Driverless 提供 2 个小时的免费使用,之后就要付费试用。
以下是 Driverless 的界面截图:
腾讯智能钛机器学习平台
腾讯智能钛机器学习平台是为 AI 工程师打造的一站式机器学习服务平台,为用户提供从数据预处理、模型构建、模型训练到模型评估的全流程开发支持。自动建模是平台的一个功能模块,在 AutoML 节点的参数栏中,用户需要指定输入路径,进行相关的参数设置(迭代次数 / 迭代时间等)和资源参数设置,便可完成建模流程。腾讯的自动建模并不是平台的主打功能,做的相对比较简单,主要用户对象还是有一定经验的数据工程师,不太适合初学者和小白。
TI-ONE 支持从传统的机器学习算法到深度学习,图片分类、GAN、目标检测、NLP 等。同时,支持用户自定义算法到 TI 平台执行,给专业用户带来很大的灵活性。
腾讯智能钛机器学习平台提供按量计费的付费模式,按实际使用的时长付费,按小时结算。
第四范式
第四范式是一家提供人工智能解决方案的创业公司。4Paradigm Sage EE 先知系统是其开发的人工智能平台,自动建模也是其平台主推的功能之一。第四范式的自动建模最大的特点就是可以进行高维度的特征衍生和特征组合扩展,这种方式优点就是可以充分挖掘数据的变量特征,但是高维度的计算会使得计算成本上升,计算时间增加,造成很多不必要的资源浪费。
在算法上第四范式支持分类、回归、分类和深度学习。有自主研发的超高维 AI 算法,模型维度可达万亿,优点是可以提高模型精度,但是同样会比较耗费计算资源和时间。 平台支持分布式计算。
总体来讲第四范式的自动建模功能可以在很大程度上降低人才门槛,节省人才成本。在特征工程上可以方便的生产大量特征,但是各种高维度的计算使得计算成本上升,计算时间增加,同时平台部署和维护起来也比较麻烦,综合性价比并不高。
DataRobot
DataRobot 是一家美国创业公司开发的自动化建模平台,它是一个端到端自动化机器学习平台。从使用流程上看,包含三大模块,首先使用 Paxata 来准备数据,其实就是制作宽表的过程,宽表准备好以后将数据导入 ML Development 模块来搭建模型,模型建好后再使用 ML Operations 来部署模型,进行预测。技术层面,DataRobot 使用大规模并行处理来训练和评估 R、Python、Spark MLlib、H2O 和其他开源库中的 1,000 个模型,支持用户一次性构建上百个模型。因此 DataRobot 是一个比较庞大的自动化建模平台,各种功能比较完善,用户能够实现一个机器学习项目从项目管理到模型部署监测的每一个环节,但是缺点也显而易见。首先界面操作比较复杂,三大模块分别有不同的主界面,每个主界面上又有非常多的子功能,需要经过专门的培训才能上手。其次,建模过程需要耗费大量的的算力,无形中又增加了成本,同时如此庞大的系统部署和维护起来也会比较麻烦。