机器学习作为人工智能领域广受关注的技术一直倍受学习者的追捧,但其较高的技术门槛和对学习者时间、精力的要求又使人望而却步,这篇来自Airbnb的文章就将教你自动化机器学习的实现方法。
Airbnb的数据科学项目涉及大量的机器学习,而众所周知,机器学习的流程其实有许多重复的任务,其中包括了(但不局限于)以下几项内容:
- 探索性数据分析:对数据进行可视化是机器学习建模前的关键步骤。自动化这些任务可以节省数据科学家的大量时间,比如自动绘制全部变量对要预测的目标变量的关系图(例如散布图Scatter Plot),以及自动计算总结性的统计数字(例如平均值和标准差)。
- 特征变换:在如何编码分类变量、填补缺失值、编码序列和文本等问题上有各种各样的特征变换方法可供选择,但其中不少方法其实已经可以在非常可靠的情况下标准化地应用于许多问题。
- 算法选择以及调整模型参数:丰富的算法以及模型参数时混乱的方向往往令人眼花缭乱。但其实让自动化的流程去实现这些任务会更好。
- 模型诊断:自动生成学习曲线、部分依赖图、特征重要性图表、ROC曲线等模型用来诊断图表将会非常实用。
AML时代来临
越来越多的社区开始创建各种工具来自动化上述及其他机器学习的工作流程。包含了类似范式的概念,这些流程常常被称为自动化的机器学习(以下简称为AML)
自动化的机器学习引起热议
实践中的AML
对于AML,迄今为止还没有公认的范畴,但那些常在年度ICML会议上组织AML研讨会的专家们在他们的网站上定义了一个合理的AML范畴,其中包括了前文中提到的所有重复型任务的自动化。
这个对AML范畴的定义看起来很有野心,但AML在实践中真的有效吗?答案取决于你如何使用它。AML很难完全取代数据科学家,因此我们需要特定领域的专业知识加上人为判断来正确配置大部分的机器学习问题。
我们还发现AML工具对使用表格式数据集的回归和分类问题最有效。AML领域正在迅速发展。总的来说,可以相信AML在某些情况下能成倍地提高数据科学家的生产率。
在Airbnb中AML已经形成了以下成果:
(1)设定标杆
- 客观地展示“挑战者”模型:AML可以使用与现有模型相同的训练数据集来快速展示大量“挑战者”模型。这可以帮助数据科学家选择***的模型。
(2)诊断和探索
- 检测数据泄漏问题:因为AML可迅速地自动建立候选模型,所以我们可以在建模生命周期中更早地检测出数据泄漏。
- 诊断:如上所述,AML可自动产生诊断的标准,包括学习曲线、部分依赖图、特征值重要性图表等等。
(3)自动化
- 在某种程度上,AML能自动完成如探索性数据分析、数据预处理、超参数调参、模型选择以及把模型用于生产这些任务。
AML工具
目前市面上有很多商业版本的或开源的AML工具。我们最喜欢的AML平台之一是DataRobot。这是个建立在很多为大家熟知的开源算法基础上的商业化平台。Airbnb正在进行的很多项目都使用了DataRobot。
Airbnb也尝试过以下正在开发中的开源AML工具:
- TPOT
- Auto-Sklearn
- Auto-Weka
- Machine-JS
案例研究:顾客终身价值模型的竞争基准
Airbnb使用了机器学习来建立房客和房主的终身价值(LTV(lifetime value))模型。这些模型可以帮助Airbnb用预期回报来精细地校准营销花费(最细可到单个用户水平)。
对于房客,LTV模型被定义成一个标准的回归问题,目标变量是在每个房客在某段时间跨度内的消费。这个模型的特征包括:人口,地理位置,以及从Airbnb网络和移动应用获取的活动信息。这个模型中有许多可变更的部分可以解释供需弹性、预期成本和其他变量。
建模过程中重要的一点是数据科学家需要客观地选择算法。例如,一个复杂的模型可能比起简单的模型可以得到一个很小的增量效益,这种取舍就需要仔细斟酌。再比如,在建立LTV模型的过程中,我们倾向去使用 eXtreme gradient boosted trees (XGBoost),这是基于以下几点原因:
- 这个算法在解决类似问题上往往有不错的效果。
- 在特设的交叉验证(cross validation)中,XGBoost有***的结果。
- 时间有限。项目需要花费很多时间在特征工程(feature engineering)、数据清洗、以及将模型应用到生产系统这些模块上。这样就没有很多时间去做算法选择和参数调整。
当Airbnb意识到这些偏见后,他们通过了AML平台(datarobot)对原始训练数据执行了完整性检查来设置模型的误差基准。
下图列出了这些基准。这个图表显示了各种模型的时间交叉验证集的均方根误差(RMSE)分布。y轴对应不同的“蓝图”,它是算法和特征工程步骤的结合。虽然我们不会讨论每个蓝图的细节,但下面的图表展示给读者了一个概况,以便读者了解现代AML系统能够完成的算法选择的任务范围。
DataRobot制作的蓝图基准
使用AML,可以很快得到另一种观点:线性模型对于这个问题非常有竞争力。事实上,AML平台可以测试很多特征工程步骤,以及进行更严格的超参数调整,而我们通常没有时间手动探索这些功能。此外,这些发现使得Airbnb改变了原来的算法,减少了超过5%的模型误差。
结论
AML能帮助我们快速探索数据,以及通过更有效的调参和诊断来提高模型的准确率。上述案例研究充分展示了AML提高模型准确率的能力,但AML也兼具其他优势。对于适合AML的问题,可以认为AML能够提供有效的建模方式,因为只要有训练数据AML就很容易上手。但要注意的是,AML并不能保证100%更优结果,但有技巧地使用AML往往能产生很不错的结果。
来源:
https://medium.com/airbnb-engineering/automated-machine-learning-a-paradigm-shift-that-accelerates-data-scientist-productivity-airbnb-f1f8a10d61f8?from=singlemessage&isappinstalled=0
【本文是51CTO专栏机构大数据文摘的原创译文,微信公众号“大数据文摘( id: BigDataDigest)”】