分享到微博 分享到人人 分享到LinkedIn 分享到Email
机器学习中的乐趣与挑战

原文作者:微软高级副总裁Joseph Sirosh

译者:宋代伟

机器学习在企业应用中的巨大潜力鲜有人知。我非常幸运,在第一份工作开始的几个月时间里,就逐渐体会到了它的魅力。时值1995年,信用卡发行商正启动神经网络模型来监测实时信用卡欺诈事件,每当人们使用信用卡,交易数据将会从零售商系统发送到信用发行商授权系统,届时神经网络会对此次交易进行欺诈概率评分,概率评分较高的交易就会被即时取消。我当时正是创建这类模型的科学家之一。在我最早搭建的模型中,有一套被一家南美银行正式使用。当模型部署完毕,银行监测到许多早期未发现的诈骗事件,涉案金额累计高达一百万美元,这令我们瞠目结舌。从那之后,我便不断见证着机器学习在不同领域的应用中大放异彩,例如需求预测,故障和异常事件检测,广告对象预测,在线推荐,以及像微软小娜(Cortana)一类的虚拟助手的诞生。在企业的系统中嵌入机器学习,可以改善企业的客户体验,降低系统故障风险,从而实现收益增长、有效节省开支的目标。

但是,创建机器学习系统是一个非常缓慢的过程,耗时长并容易出错。即使我们可以对巨大的数据集进行分析并配置最大交易处理率,仍有一些瓶颈问题亟待突破:

  • 机器学习系统的开发需要精深的专业知识。即使其核心原理如今已广为人知,但领域内的数据专家仍像20年前一样稀缺。
  • 从业者不得不使用不同的工具对数据进行收集、清理、合并和分析。这些工具有着较高的学习成本并且尚未形成体系。商业机器学习软件的部署和维护仍然十分昂贵。
  • 建立和检测模型需要大量的实验。这些实验产生出的庞大的新数据,往往会受到计算量和内存的限制。
  • 软件工具不支持可扩展实验或用于组织实验运行的方法。实验团队的协作、派生变量和脚本的共享等行为,无法凭借工具,仅能依靠点对点的手动操作来实现。因此,数据模型的评价和调试仍是一项巨大的挑战。

为解决上述这些局限性,数据科学家们编写自定义程序,以显著提升机器学习实验执行时的普遍性能,但这导致部署阶段的开展愈加艰难。在关键商务流程中,如实时诈骗预防或广告目标定位等任务的部署,往往需要面临如下几项复杂的工程:

  • 通常,过去离线开发的机器学习模型如今需要通过如C++,C#或Java等面向对象编程语言重新实现。
  • 监测交易数据传输渠道,离线数据模型中使用到的数据转换和变量往往需要重构并编译。
  • 上述重构免不了产生错误,因此需要确保模型仍如原始设计的模型一样运转。
  • 需要通过适当的监控、度量和记录,重构这些模型的定制容器。
  • 高级部署需要运用A/B测试框架对替换模型解决方案并行评估。当部署一个设备控制模型的切换开关时,最好避免重新编译和配置整个应用。
  • 需要确保候选模型也能如原始设计一样运转,并通过统计测试。
  • 系统的自动化决策和业务结果需记录下来以便完善和监控机器学习模型。
  • 服务项目设计需要符合高可靠性、灾难恢复和临近终端等要求。
  • 当服务项目扩张到需要满足高交易处理率和/或低延时的问题时,还需要进一步在新的硬件设备和在新机器上部署扩展服务等工作。

所有这些都是十分耗时且工程密集的,需要耗费较大的人力物力。端对端的工程和机器学习应用产品的维护对团队的技术很高,目前很少有组织可以创建并维持这样的团队。

微软的Azure ML (Azure 机器学习云服务)便是为了解决如下问题而设计的:

  • 它是一个全面管理的云服务平台,用户使用时无需考虑软件安装、硬件管理、操作系统版本或开发环境等问题。
  • 仅凭一个浏览器,数据科学家便能从任何地方登录到Azure,开发机器学习模型。Azure的内存也几乎可以存储无限数量的文件。
  • 为机器学习搭建一个综合开发环境的机器学习工作室(ML Studio),让你仅用简单的拖拉连接等操作,创建例如简单数据流图等实验。使数据科学家免于大量程序日常繁琐的任务,从而集中精力于实验设计和版本的迭代。
  • Azure为机器学习提供了各种各样的模板,使人们更容易上手。
  • Azure内置了一系列微软开发的最佳组合算法,并支持自定义R语言代码。目前,在Azure机器学习云服务平台上能安全可靠的使用超过350个开源的R语言代码包。
  • 数据流图在并行运行时能自动创建多条路径,这使得科学家能摆脱传统计算约束,执行更复杂的计算,对结果进行并行对比。
  • 实验易共享给他人,以便他人能在你离开后继续你的工作。

Azure机器学习云服务简化了批量创建产品部署的过程。提前训练过的机器学习模型可以合并到一个评分系统的工作流中,轻松几步点击,就能创建一个新的云端REST应用接口(REST API,以响应低延迟的问题。无需任何重载或移植,这便是Azure机器学习云服务较之传统数据分析软件的关键优势。无论是笔记本、网页、移动设备、可穿戴设备、连接设备,或是互联网其他任何地方的数据都可传输到这份新创建的应用接口里来获取预测结果。例如,数据科学家能创建一个欺诈监测的应用接口,并以交易信息作为输入,以低/中/高的风险指标作为输出。如此种种,仅需部署在云上,应用接口便能接收到任何开发者设定好的软件服务请求。其富有弹性的后台扩展,保证了当交易率猛增时,Azure机器学习服务依然可以自动处理负载。实际上数据科学家在云上创建和部署的机器学习应用接口可以是无限多的,并且所有接口不需要依赖任何工程。对于工程和IT来说,使用REST 应用接口,集成新的机器学习模型变得十分简单,模型的多重并行测试也变得十分容易,这一低成本显著的改善了敏捷性。Azure提供了扩展和管理产品中应用接口的机制,包括衡量其可用性、延迟性和性能等。一个功能稳定、可用性高、可靠性强的机器学习系统和对产品部署的有效管理,会使企业经营变得更快、更经济、更简便,从而带来巨大的收益。

我们相信Azure机器学习服务平台改变了游戏规则,它激发了创业公司和传统大公司获取机器学习服务的无限潜力。创业公司同样可以享用到以前仅高端企业才能具备的功能。而大企业则能通过挖掘隐藏在大数据背后的更多价值,来获取更多的收益。综上,Azure机器学习服务平台使得数据实验的迭代成为了可能,并促进了企业的快速革新,也为云端连接设备的智能化发展铺平了道路。

在1995年我刚刚进入职场时,我们需要一个庞大的组织来创建和部署信用卡欺诈监测系统。如今,凭借Azure机器学习平台等云服务的力量,只需一位有资质的数据科学家便能完成这同样的壮举,实在是令人振奋。