写点什么

落地机器学习前,我们应该思考清楚的几个问题

  • 2017-10-04
  • 本文字数:2863 字

    阅读完需:约 9 分钟

随着大数据技术的普及和发展,机器学习技术从搜索引擎开始,伴随着互联网、移动互联和共享经济的发展,日益成为改善用户体验、提高产品质量的核心组件。机器学习技术不仅给互联网带来了源源不断的收入(互联网广告),甚至也在改善每一位用户的日常电商购物、交通出行、旅游等方方面面的体验。那如何在已有的系统或者业务中落地机器学习相关实践呢?在开始使用机器学习之前,企业应该有哪些准备?带着这些问题,InfoQ 记者采访了 PayPal 大数据研发架构师张彭善。另外,张彭善也将会在 10 月 17 日举行的 QCon 全球软件开发大会上分享相关话题,欢迎关注。

InfoQ:机器学习现在非常火热,很多企业也逐步开始考虑在业务中实践机器学习,你认为机器学习适合解决什么样的问题?

张彭善:抛开 AI 不谈,机器学习在很多领域已经证明了其具有非常巨大的价值,尤其是在互联网领域,无论是杀手级应用互联网广告、还是电商内容平台推荐、风控欺诈识别以及共享出行,机器学习已经成为互联网变现提高盈利的重要手段。从这些主流应用中可以看出目前的机器学习主要是在解决复杂的预测优化问题,所以对于企业来讲,应当思考业务环节中任何涉及优化策略的业务都可以尝试实践机器学习,比如新产品目标用户推广、销售策略优化、客户流失预警等等。

InfoQ:那在落地机器学习之前,企业应该有哪些准备?什么样的团队适合实践机器学习?

张彭善:我和很多企业聊过,这个问题和第一个问题构成目前企业应用机器学习最大的痛点。对于大部分企业来讲不会像互联网企业一样有强大的数据科学和工程团队,但是我也注意到很多传统企业也是有数据分析和业务开发团队的,这是一个很好的基础,利用这些团队可以组建或培训适应机器学习应用的数据科学团队。然后可以着手先尝试以最小成本构建起端到端的机器学习管道,这包括基础平台的构建、收集数据的渠道、特征工程和模型开发的流程以及最终模型的部署上线,有了这样的管道和平台,就可以持续不断的优化性能进而达到预期的业务目标,然后可以慢慢尝试应用到其它业务场景。

InfoQ:结合你的工作经验以及业界的一些实践,你认为企业落地机器学习的最佳路径是什么?

张彭善:始终以业务优化作为指导,无论是任何一个步骤,都需要思考是否是有利于达到最终的优化目标。最佳路径是在构建整个流程管道和平台的同时,力争快速部署模型到系统中去。当模型部署上去之后,通过反馈结果再持续的迭代和改进机器学习平台和整个管道,此过程中没有必要去追求完美的模型和完美的系统,快速响应业务和持续演进能力是关键。

InfoQ:在落地机器学习的过程中,企业应该注意避开哪些坑?

张彭善:落地机器学习的过程,确实会有很多的坑,比如:

  1. 学习目标应尽可能的简单以及可以量化,如果目标定义模棱两可,很难想像能做出很好性能的模型。
  2. 应当首先从简单线性模型开始,不要上来就盲目迷信复杂的非线性和深度模型,事实上每一个模型都有其适用场景和优缺点,从线性模型出发首先可以提供一个好的基准,其次也能帮助发现数据中存在的问题,比如说剔除一些噪音数据,解释一些复杂的特征数据等等。
  3. 确保训练数据、测试数据和线上数据的分布一致,这个说起来简单,实际上随着业务的复杂性增加,很多情况下训练数据和线上数据并不一致。有可能是业务调整导致线上预测只是之前的一小部分数据集,也有可能训练数据集只是取的业务其中有偏差的一部分数据。
  4. 始终以机器学习平台管道构建为目标,不要局限于短期的性能改善,作为一个优化系统,更多的尝试意味着更大可能的性能提高,有了平台的基础,才能持续稳定的改善机器学习模型的性能,提高业务收益。

InfoQ:在一个相对完整的机器学习平台中,你认为应该包含哪些技术栈?

张彭善:机器学习平台是一个相对复杂的系统,主要包括离线、近线、在线三个方向的技术栈。

  1. 离线系统的技术栈主要是构建在 Hadoop 系统,如日志数据存储(HDFS)、特征数据仓库(Hive,SparkSQL,…)、ETL 计算、MapReduce 特征工程、模型训练和评估,目前一些主流的基于 GPU 的深度学习也可以统一到 YARN、Kubernetes 等系统中进行统一的调度管理。
  2. 近线主要涉及到一些流式的计算,如计算各个产品维度的滚动值、历史值等,涉及到的技术栈包括消息系统如 Kafka、流失计算如 Storm、Flink、Spark Streaming 等。
  3. 在线主要涉及到在线特征管理和计算以及模型执行,在线系统对于系统的可用性有很高的要求,主要涉及的技术栈包括各种 NoSQL 数据库用来管理和快速存取特征,Rest 或微服务架构管理各种模型和所依赖的特征。除模型预测外,在线系统还可能包括策略系统:主要根据模型预测做相应的策略,此系统一般会和业务系统结合也是偏向服务化的技术栈。

除此之外,还会有监控、日志收集、调度等系统辅助整个平台的运行,这些技术栈并不是特别固定,可以根据实际需要选取和研发。

InfoQ:做应用的时候,大家都经常喜欢说架构。机器学习平台有架构之类的说法吗?

张彭善:机器学习平台并没有脱离软件工程,架构在整个平台依然扮演着非常重要的作用。

  1. 和传统应用一致,在线机器学习平台目前主要也是分层的微服务架构,通过微服务可以把数据存取及模型执行以及策略执行做很好的解耦,数据服务通过数据库存取一般是 IO 密集型的,模型和特征计算是 CPU 密集型,各服务和应用可以单独优化和部署,进而提高整个在线系统的性能和可用性。如果在线系统涉及到模型增量运算,对于在线系统还需要做好线上模型更新和隔离,这时分层和服务架构更加重要而且对层次划分也更细致。
  2. 机器学习平台还涉及到很重要的离线数据平台,底层一般是构建在 Hadoop/YARN 之上的资源管理系统,数据和特征存储在上层的 HDFS/Hive 或其它 Hadoop 数据仓库,此外构建基于内存的分布式迭代计算框架,也可以使用 Spark 或者 TensorFlow 等主流框架,再上层构建完整的机器学习特征工程和模型训练的管道。

InfoQ:你认为一个机器学习从业人员和传统的应用工程师(程序员)最大的区别是什么?他们的能力侧重点各是什么?

张彭善:从机器学习的应用来看对于传统的应用工程师也提出了新的挑战,首先机器学习应用是一个融合了离线平台和在线平台的更加复杂的应用,机器学习从业者主要包括数据科学家和机器学习工程师,他们往往是围绕数据和优化目标来设计系统,而为了很好的达到优化目标和业务预期,实际机器学习从业者需要对业务、统计和机器学习以及工程领域都要有很好的理解,而他们的相对弱势是对于系统架构如可用性和服务化等的掌握。传统的应用工程师在这方面较有优势,工程能力是一个很好的基础,也可以帮助他们扩展到面向数据和业务的机器学习应用系统。

InfoQ:在 QCon 上海全球软件开发大会上,你会重点为参会者分享哪些技术点?

张彭善:这次也是我第一次作为出品人参加 QCon,出品专题是《机器学习应用与实践》,主要是由来自携程、PayPal、美团点评以及唯品金融的机器学习专家分享他们在各自公司运用机器学习技术提升业务价值的实践和经验。我觉得这些议题具有相当的代表性,各位专家也是从另一个角度来帮助我回答上面的一些问题。从应用出发,使用机器学习去驱动业务,不是为了用而用,也是出品这个专题的初衷。

2017-10-04 03:084918
用户头像

发布了 219 篇内容, 共 150.4 次阅读, 收获喜欢 195 次。

关注

评论

发布
暂无评论
发现更多内容

Java入门视频教程,尚学堂大数据全套教程百度云,Java多线程并发面试题

Java 程序员 后端

Java基础72问:黑马程序员java教程,漫谈MySQL权限安全

Java 程序员 后端

Java基础入门教程,尚硅谷和黑马深圳,Java中级面试含答案

Java 程序员 后端

Java基础入门视频,kafka基础教程,最新Java开发面试解答

Java 程序员 后端

SQL 笔记

越锋利

sql 课程

Java五年工作经验面试题,极客学院和黑马,深入linux内核架构面试

Java 程序员 后端

Java基础知识梳理,java最新技术栈百度网盘,大厂面试必问

Java 程序员 后端

架构实战营模块1课后作业

断水风春

架构实战营

Java基础教程百度云,java教程百度云下载,你不懂还不学?

Java 程序员 后端

Java基础知识梳理,渡一教育java百度云资源,帮你快速拿Offer

Java 程序员 后端

Java基础笔试题,mysql教程入门到精通,Java程序员

Java 程序员 后端

不会吧?!新版本longhorn部署需要k8s.gcr.io镜像?

远鹏

Kubernetes CloudNative cncf longhorn

Java中级笔试题百度文库,牛客网java笔试题库,从底层开始带你了解并发编程

Java 程序员 后端

2021 Qcon 前端专场精彩回顾

程序员海军

大前端 可视化 vite Qcon

Java入门,spring框架教程,Java开发知识体系

Java 程序员 后端

Java400道面试题通关宝典助你进大厂,Java后端工程师需要掌握的知识

Java 程序员 后端

Prometheus 内置函数(四)

耳东@Erdong

Prometheus PromQL 10月月更

Java二叉树面试题总结,马哥linux视频教程百度云,GitHub重磅官宣

Java 程序员 后端

Java外包是如何转正华为的,2021最新网易Java面试题目

Java 程序员 后端

Javaweb面试问题,java教程马士兵全集,设计思想解读开源框架

Java 程序员 后端

Java中高级面试技术问题,mysql优化视频教程,Java全栈知识体系

Java 程序员 后端

Java从入门到精通百度云,java教学百度网盘,思维导图+源代码+笔记+项目

Java 程序员 后端

Java入门基础,千锋教育java教程,深度剖析原理

Java 程序员 后端

Java基础学习百度云,尚硅谷linux,深入linux内核架构面试

Java 程序员 后端

Java基础笔试题,尚硅谷和尚学堂大数据,彻底帮你搞懂

Java 程序员 后端

Java外包是如何转正网易的,面试阿里的时候一定会问到的

Java 程序员 后端

Javaweb框架面试题,尚学堂java全套资料百度云,附高频面试题合集

Java 程序员 后端

Java中级笔试题百度文库,java架构师直通车百度云,使用指南

Java 程序员 后端

Java入门,java黑马程序员课后答案第二版第八章,如何成为杰出的程序员

Java 程序员 后端

Java基础72问,极客时间数据结构与算法,原理解析

Java 程序员 后端

Java基础笔试题,rabbitmq教程go,netty框架工作原理

Java 程序员 后端

落地机器学习前,我们应该思考清楚的几个问题_大数据_小盖_InfoQ精选文章