Josh Wills 谈机器学习的生产环境

  • 张天雷

2014 年 10 月 11 日

话题:语言 & 开发架构机器学习

大数据加快商业化步伐,使互联网行业出现了新岗位与新环境。“数据科学家”是大数据时代互联网行业的新型专门人才,而机器学习的工业化基础设施是互联网行业新的生产环境。

在 2014 年 6 月的 Midwest.io 会议上,数据科学家 Josh Wills 做了一场名为“从实验室走向工厂:建设机器学习的生产环境”的主题演讲,旨在讨论这种机器学习的工业环境如何实现。

Josh Wills 将“数据科学家”分为两类,一类是善于编写程序的统计学家,另一类是选对了项目的软件工程师,他关注数据挖掘的程序实现,从理论与实践两个层次看待机器学习。Josh 将机器学习也分为两类,即理论性机器学习与工业机器学习。

在演讲中,Josh Wills 指出,理论性的机器学习就是应用数学,甚至就是最优化理论的应用。到目前,这仍然是机器学习的教科书设定,但工业机器学习与之并不完全相同。工业机器学习的特点体现在:

  1. 整体性高于准确性。理论性机器学习中准确性最为重要,这需要耗费长时间的计算。而在工业环境中速度为王,为了体现系统的整体性,准确性让位给速度,只能屈居下首。
  2. 多重复杂性。机器学习理论主要就是在最优化目标函数,而要找到真正简单干净的目标函数并不现实。大部分时候,目标函数都很繁多而且包含冲突,需要用 Pareto 的多目标方法,在不消极影响其他目标的同时整合成一个目标函数。而从整体上看,工业机器学习系统非常复杂,以至于很难能够看透整个系统。
  3. 通过检验过程优化。建立假设的过程将检验这个过程本身并改造整个机器学习系统,检验过程本身提供知识,而这种知识远比检验结果更重要。

Josh Wills 同时提出,工业机器学习的基本框架是“一个模型与两种模式”,他举了 Oryx、Airbnb 以及 Etsy 的例子说明这一框架。Airbnb 是一家房屋租赁社区,他们发表的博文“建构风险评估的机器学习系统”中,他们建立机器学习系统的经验是,离线建立并存储分析模型,再上传到生产环境中使用。手工艺品商店 Etsy 的经验与之类似,他们的工业机器学习系统称为 Conjecture,是在 Hadoop 上搭建的可升级机器学习系统,Conjecture 以 JSON 格式定义离线准备模型,从而转化为 PHP 代码运行。Josh 指出这些系统将数据当作“键值”管理的共性,以及离线准备模型的“分析模式”、转换模型在生产环境中使用的“生产模式”。

现阶段的机器学习生产环境,其分析模式与生产模式中完全不同的数据使用方式实际上非常低效。尽管 Josh 目前还无法实现,但他认为特征设计将成为解决这一问题的关键。模型的分析准备是把零星的图表拼凑成所需的整体数据,生产用的数据只能从用户处或从调查中得到,所以需要一种简单的方法将离线数据转换为在线数据。这种方法的核心问题在于数据的模型,它需要以特定的、重复的属性的数据来刻画用户实体的模型,所谓的用户实体必须规范化储存,且实体的数据如交易记录等重复性数据需以数组形式储存。Josh 以 JSON 格式数据为例进行了说明,并将这种模式称为“超新星”模式。

Josh Wills 为深入研究工业机器学习环境提供了一种思路,从行业应用的实际出发,机器学习的设计方式还可以继续优化。


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

语言 & 开发架构机器学习