应用数据科学的现状
近期观察机器学习实际应用的趋势和对关键瓶颈的探讨
编者注:想了解更多的近期数据科学的实际运用的趋势,请参考Strata Data纽约大会里的数据科学和机器学习主题
同时也请关注2018年4月10-13日人工智能北京大会

现在已经进入2017年的下半年,是时候来看看对使用数据科学和机器学习(ML)有兴趣的企业所面临的常见挑战了。让我们假定你的机构已经收集了足够大的数据来为引入数据分析工具做辩护,而且你也已经识别出和确定了数据科学可以扮演变革力量的使用场景(包括改进决策制定、业务运营和提升销售额等等)的优先级。数据收集和识别有趣的问题不是无足轻重的,不过假定你在这些方面已经有了一个不错的开始,那么后续的挑战是什么哪?

数据科学是一个很大的题目,因此我这里给一个免责声明:这篇博文主要是关于当前使用监督机器学习的,其内容来自于过去几个月里的一系列对话。对于人工智能系统,我会在后续的博文里更多地讨论,这样的系统明显不仅仅依赖于监督学习

一切都始于(训练)数据

即便假定你已经有了一个团队来处理数据收集和整理,并有一个团队来维护数据平台(“真实的来源”),新的数据源还是会持续出现,而行业专家有责任来强调它们的存在。更进一步,因为我们主要是关注监督学习,毫不惊讶的发现是缺乏训练数据依然是机器学习项目的最主要的瓶颈。

已经出现了一些好的研究项目和工具来快速地创建大型训练数据集(或是增强现有的)。斯坦福大学的研究人员已经展示了可以使用弱监督和数据编程在没法得到大量人工标注的训练数据的情况下来训练模型。生成模型(来自深度学习研究人员)的初步工作已经显示了在计算机视觉和其他领域使用无监督学习能产生有希望的结果。

格言“关注特征而不是算法”是另外一个有用的方法,可以在机器学习的场景里评估数据。这里有一个有情提示:数据增强可以提升你现有的模型的表现。在某些情况下,这甚至可以帮助解决冷启动的问题。大部分数据科学家可能已经使用来自公开或是第三方数据提供商的数据来增强他们自己的数据。但我的发现是有时数据增强被忽视了。获取外部数据,正则化它,然后用它来进行试验,这些活动一般不如开发模型和算法那样被觉得有魅力。

完成从原型到产品

在很多业务场景里,目标是产品化一个数据科学项目。我们已经指出机器学习工程师作为一个新的工作角色近期已经开始出现来实现这一过程。另外也有新的工具集来帮助让从原型到产品的过渡更容易,同时也帮助跟踪与分析产品相伴随的上下文和元数据

我们依然处于把机器学习部署到产品里的早期阶段。相应的最佳实践也刚刚开始出现。伴随着先进的分析模型得到广泛地使用,下述几点需要被关注,包括:

  • 部署的环境:你将有可能需要和现有的日志或A/B测试设施进行集成。除了能部署一个鲁棒和表现好的模型到服务器上以外,环境问题还扩大到如何以及何时把模型部署到边缘设备上(移动设备是一个常见的例子)。已经有一些新的可以部署模型到边缘设备的工具策略
  • 规模、延迟和更新:训练模型需要多少数据?模型进行推断的响应时间为多少是合理的?多久模型应该被再次训练并且训练数据集需要被更新?后者意味着你已经有可再生的数据管道就位了。
  • 偏移:如果你的训练数据已经不能代表当前的总体样本了,你将得到很糟的(甚至是不公平的)结果。在某些情况下,你可能可以使用倾向评分其他的方法来相应地调整你的数据集。
  • 监控模型:我认为人们低估了监控模型的重要性,而这就是那些有统计学背景的人有竞争优势的地方。发现何时模型的表现降低了以及已经降低了多少是很棘手的。在分类的场景里,一种策略是比较模型预测的类别的分布和观察到的预测的类别的分布。也可能你的业务目标和用来评估机器学习模型的指标是非常不同的。比如,一个推荐系统可能是被用来帮助提升“不常见和长尾的”内容。
  • 关键任务的应用:部署在关键任务场景下的模型需要比典型的消费应用更加强壮。另外,在这样的场景里的机器学习应用需要被设计来“持续地”运行很多月(比如不能有内存泄漏)。
  • 隐私和安全:通常来说,如果你能让用户和企业相信他们的数据是安全的,他们会更喜欢分享数据。如我前面所说的,用额外特征增强的数据一般会带来更好的结果。对于在欧盟做生意的企业,短期内就会出现的一个问题是2018年5月GDPR就要生效了。在另外一边,对抗机器学习和安全机器学习(包括能够使用加密的数据)的实际研究也正在出现。

模型的开发

模型和算法的开发已经得到了很多的媒体报道,但是当你和数据科学家交谈时,大部分将会告诉你缺乏训练数据和能产品化数据科学才是更需要考虑的。通常有很多足够直接的应用场景可以开始使用你喜欢(基础或高级)的算法,后续可以修改或是替换它们。

因为工具已经让部署算法变得很容易,所以作为第一步,最好还是先看看《如何评估机器学习模型的结果》。按这个电子书里说的,永远不要丢失你的业务指标和目标,因为他们不必完全和最佳调优的或最佳表现的模型一致。与公平透明相关的开发也已经开始被研究人员和企业所关注和讨论。对隐私的关注和各种边缘设备的大量增加和使用也带来了不完全依赖于集中的数据集的技术的兴起。

深度学习正在慢慢地成为数据科学家们需要了解的算法集合的一部分。深度学习最初是被用于计算机视觉和语音识别,不过已经开始有了与数据科学家相关的数据类型和问题的案例和应用场景。挑战包括选择正确的网络架构(架构工程师就是新的特征工程师)、超参数调优把问题以及数据变换成深度学习可用的形式。(偶然地,我今年碰到的非常有趣的大规模数据产品之一就不是基于深度学习的)

在很多场景里,用户更倾向和喜欢模型是可以被解释的(在某些情况下,黑盒模型是不可接收的)。考虑到可解释的模型的基本机制在某种程度上可以被理解,可解释的模型可能也更容易被改进。随着近期深度学习的兴起,我已经看到有企业在使用一些工具来解释模式是如何生成它们的预测的,以及一些工具通过从学习算法和训练数据里追踪预测的过程来解释模型的产生过程。

工具

在这里我不想创建一个完整的工具列表,是因为有太多的工具了。整个生态系统的工具能帮你完成数据导入、集成、处理、准备和存储,以及模型部署的工作。所有的这些步骤都很关键。下面是一小部分机器学习的工具:

  • Python和R是最流行的语言。Kera是那些想使用深度学习的人用的最流行的入门工具(现在你安装TensorFlow的时候Keras也会被包括装进去
  • 目前Jupyter Notebook看来是最流行的模型开发工具之选,但在R用户里IDE很流行。
  • 有非常多的常用机器学习和深度学习的库可用。其中一些善于完成从原型到产品的转移。
  • 能很容易地从笔记本扩展到集群的能力也是一个重要的考虑点,而Apache Spark则是让这种情形能发生的最流行的执行框架。另外一种很常见的场景是,在经过一系列的数据整理步骤后,你也能把所有数据导入到一个单独的超强的服务器。
  • 供应商已经开始支持开发合作与版本控制。
  • 在一天结束的时候,你可能需要数据科学工具能够无缝地把你现有的生态系统和数据平台集成起来。

对企业来说,现在是一个非常好的时间点来评估机器学习里出现的问题和业务场景。我这里试图去总结一些近期的趋势、存在的瓶颈。你能立刻采用的主要建议就是:开始使用机器学习吧。从一个你已经有数据的问题开始,然后再去追逐时髦的模型。

感谢David Talby对本博文草稿的评论和建议。

相关内容:

 

Ben Lorica

本·罗瑞卡是O'Reilly的首席数据科学家和关于数据方面的内容策略主管。在多个领域里(包括直销市场、消费者和市场研究、精准广告、文本挖掘和金融工程),他曾经进行了商业智能、数据挖掘、机器学习和统计分析的工作。他曾效力于投资管理公司、互联网创业企业和金融服务公司。

Pendulum (source: Pixabay)