写点什么

如何在机器学习实战的路上与时俱进?

  • 2016-10-27
  • 本文字数:3815 字

    阅读完需:约 13 分钟

尚未结束的 2016 年国际却发生了多起有关机器学习的并购,例如 eBay 收购以色列的预测分析企业 SalesPredict,苹果收购了印度机器学习公司 Tuplejump,Twitter 收购了英国机器学习公司 Magic Pony 等等,互联网巨头们为何纷纷选择布局机器学习?机器学习背后搭建和使用了怎样的架构平台和训练算法?为了激活沉淀已久的互联网海量数据,机器学习发挥了怎样的作用?

2016 年 12 月 2 日 -3 日, ArchSummit 全球架构师峰会将在北京举行。本届大会组委会策划了“机器学习实战”专题,并邀请了京东研发总监李鹏涛老师担任该专题出品人,我们借此机会采访了李鹏涛老师,他为我们分享了目前对机器学习中的趋势见解和实践经验,希望可以为大家带来启发,如果读者对机器学习有疑问,也欢迎报名参加ArchSummit 北京站,与现场的机器学习专家一同交流讨论。

受访嘉宾介绍

李鹏涛,拥有清华大学工商管理硕士和软件工程硕士学位,在大型分布式系统、电子商务和物流领域具有丰富的实践经验。2012 年加入京东,担任研发总监,领导京东核心业务系统——物流配送(青龙)系统的研发。在青龙系统设计、研发、推广、升级过程中做出重大贡献,荣获公司最佳舵手等多项奖励,并且勇于创新,带领团队提出60 余项技术专利,本人已经获得4 项专利。他积极参加技术交流,乐于进行分享,先后在ArchSummit 全球架构师峰会,QCon 全球软件开发大会发表重要演讲,并获得QCon 明星讲师称号。个人具有广泛的兴趣爱好,特别喜欢旅游、历史和音乐。

InfoQ:目前京东机器学习的技术团队是如何进行团队划分的?京东机器学习队伍经历了怎样的发展?对于有志于投入机器学习的技术人,您希望他能掌握哪些知识点?

李鹏涛:目前和大型互联网公司一样,京东机器学习的技术团队也划分为平台研发团队和各个应用研发团队。平台研发团队负责机器学习通用平台、算法工具的研发以及通用模型和产品,各个应用研发团队根据平台产品和自己的应用场景进行具体的应用研发,如智能客服机器人研发团队、物流系统研发团队。

京东最开始时各个应用研发团队和大数据团队对机器学习技术都有自己探索和应用,并取得一些成果,发展起来以后大家也形成共识,应该把机器学习通用技术沉淀到平台团队,由各个应用研发团队使用平台开发自己的应用,这样能够做到技术共享,并且各取所长。

对于有志于投入机器学习或人工智能的技术人,至少可以分两类:

  • 一类是普通技术人员,应该对机器学习的理论有所了解,掌握不同机器学习算法特点,会使用机器学习的工具进行项目研发;
  • 另外一类是高级技术人员,应该对机器学习算法深入了解,在必要的情况下能够根据自己的场景进行调优,甚至重新编写算法工具。

目前我主要看中技术人员的学习能力和创新精神,目前技术更迭很快,如果不具有学习精神那么很难掌握最新技术,同样不具有创新精神,也是很难把最新的技术应用到自己的业务中并做出成绩。

InfoQ:您谈到机器学习理论的复杂度让很多人望而却步,能否结合您自身实践通俗地为大家解释物流中如何使用机器学习,并产生了怎样的效果?

李鹏涛:机器学习目前发展很快,主要得益于大数据和云计算相关技术走向成熟,我们能够方便廉价地拿到计算资源和大量的训练数据。机器学习理论相对复杂,普及还需要一定的时间,就如 2010 年我们使用 Spring 相关技术来开发 Web 应用一样,当时也是少数人掌握的核心技术,但是到现在已经成为相关程序员必须具备的技能了。我相信机器学习技术也一样,两三年以后,随着技术、算法、特别是应用场景的成熟,也会从阳春白雪走进寻常人家。

京东物流发展到今天,业务已经非常复杂,数据也基本上是海量数据,对于某些应用场景而言,人为制定规则已经不能满足需求,或者说开始不能适应业务快速变化,这些场景恰恰是机器学习比较擅长的,例如用于应对具有大量的训练数据、规则不明确、规则在不断变化的场景等。我们目前也处于探索阶段,也取得了一些成果。

拿京东物流(青龙)系统来说,这是一个非常复杂的专家系统,包括了分拣中心系统、TMS、最后一公里配送系统、物流开放平台、BMS 等子系统,这天然存在很多需要人工进行识别分类的场景,不仅工作量大,而且存在准确率低的问题,这些场景我们都逐步采用机器学习算法进行解决。

我们不仅组织研发人员对机器学习进行了研究,也进行了一些测试和应用,包括物流系统中用户地址的识别、动态路由的优化、资金应收风险预警等。我们的目的并不是取代目前的物流专家系统,而是作为补充,希望在某些场景下让专家系统更加聪明地工作,或者让人工操作能够更加简单。

InfoQ:有人认为不能因为机器学习火就投入机器学习,您认为使用机器学习的出发点是什么?在怎样的场景或遇到什么问题时研究机器学习才有意义?

李鹏涛:追求最先进的技术是技术人员的天性,这本身没有错,并且恰恰是应该鼓励的。我个人不太建议的是,工作本身缺乏机器学习的场景,为了学习机器学习而影响目前自身的工作,这就有些得不偿失了。如果本身对机器学习感兴趣,工作中有对应的场景,那么和实践结合起来应该是最好的。

拿两类适用于机器学习的场景进行说明:

  1. 需要大量人工介入进行识别分类等非常繁杂的工作,例如之前提到的在物流系统中对用户地址的识别分类;
  2. 规则不容易确定的场景,例如专家凭空想象的规则,该规则可能需要被验证后才能使用,如经典的信用卡评分问题。

InfoQ:据了解:数据科学家 80% 的时间用来准备数据。能否谈谈你们是如何进行数据搜集和清洗的,如何提高数据的质量?

李鹏涛:关于数据的收集,本身就有很多方法,例如从业务系统抽取数据、数据交换和购买、从互联网抓取数据等;而数据清洗是很复杂的工作,但也有很多的研究成果可以使用。好在机器学习有很多算法,本身就容忍一定的噪音,一定程度上防止了垃圾数据的干扰。

目前有很多成熟的机器学习算法,有些算法可能是穷极有天赋的研究人员一生精力的发明。我们中大部分人不大会重新发明某个分类算法,我们需要做的是搞清楚算法的应用场景,针对我们的问题选择合适算法并且对算法的参数进行优化,或者把几个算法集成起来达到我们需要的效果。

InfoQ:训练模型中,你们参考和采用了哪些业界流行的算法,各自的作用是什么?如何寻找最优算法?未来是否会存在大一统的机器学习方案?

李鹏涛:我们主要在监督学习的分类算法方面进行了研究和探索,主流的算法包括KNN、SVM、Boosting、Bayes、决策树、神经网络等。目前在网上都可以查到各个算法比较详细的理论说明,甚至可实现的源代码。

机器学习也在发展过程中,并且机器学习解决的问题都相对比较复杂,用户的场景和数据都有一定的特殊性,考虑到算法本身的复杂度和效率,这样很难确定哪个算法是最优算法。并且现在的最优算法可能会根据场景的变化和数据的变化而变化,因此一般要对多个适合的算法进行测试和调优,再进行算法集成,从而达到更好的效果。

当前阶段我们针对不同的应用场景有不同的机器学习算法,我们需要选择、甚至尝试和比较才能找到符合要求的结果方案,未来有可能出现统一的机器学习方案,或者没有,但可以预见的是会有越来越多的优秀机器学习工具出现,让机器学习技术能够更好的被技术人员掌握并落地实施。

InfoQ:机器学习有分在线、离线学习,能否谈谈这两者的区别和使用的场景?

李鹏涛:目前主流的机器学习算法都是以统计学作为基础,而统计学都是以独立同分布作为前提,因此大部分的算法都是以离线学习为主,特别是数据需要清洗的情况下。

那在线学习呢?机器学习中模型的建立都需要一个过程,一般还需要进行验证,验证通过的情况下才会使用,因为在线学习算法能够对模型进行动态修正,这样对于结果就存在不确定性,对于很多需要准确分类的监督学习场景就不合适。但是在线学习这种特点是有一定的应用场景,也就是能够接受模型修正风险,并且需要及时更新的场景下,就可以使用。

在线学习能够克服离线学习的一些问题,但是目前技术和实施上也存在一些问题,特别是对于对模型数据要求相对严谨的领域,随着机器学习技术的发展,预计在线学习也会得到更多的应用场景。

InfoQ:业界在机器学习平台上有兼顾规模化和灵活性的挑战,在您看来如何平衡这两个需求?

李鹏涛:机器学习技术的发展一直存在这个问题,也就是通用性和专用性的选择,并且解决思路也是一致的。平台方和普通的使用者要选择通用的解决方案。

对于平台提供方,如果能够提供一定的定制化功能就更好了。对于有实力的企业,对于效率和效果有高要求的,可以选择定制化的解决方案,这都是考虑投入产出比的自然结果。

InfoQ:目前有论点谈到机器学习受众已经出现两极化,您认为小型企业如何解决获取数据难的问题?能否为该类企业总结一套系统的经验指导?

李鹏涛:机器学习的发展和大数据技术一样,市场会出现提供机器学习技术、咨询和实施的公司,甚至还有直接提供大数据的公司,他们各自都有自己的发展空间。随着数据的开放,数据获取成本的下降,提供机器学习技术服务的小公司会有自己的舞台并且继续发展,他们还有机会转成提供领域内 SAAS 服务的公司,这样生命会更加长久而不会因为机器学习技术的普及而消失。当然,拥有大数据和机器学习技术的公司会更加强大,正如大数据技术发展的一样。

InfoQ:感谢李鹏涛老师接受我们的采访,期待 ArchSummit 全球架构师峰会上您策划的机器学习实战专题。


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-10-27 19:002447
用户头像

发布了 26 篇内容, 共 91383 次阅读, 收获喜欢 4 次。

关注

评论

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

什么是区块链?| 社区征文

TiAmo

区块链 以太坊 年中技术盘点

MyBatis查询所有

猫九

mybatis

PyTorch模型创建与nn.Module

timerring

PyTorch

langchain:Prompt在手,天下我有

程序那些事

#LangChain AI大语言模型 大语言模型

【ACL2023】基于电商多模态概念知识图谱增强的电商场景图文模型FashionKLIP

阿里云大数据AI技术

人工智能 自然语言处理 nlp 企业号 7 月 PK 榜

Istio与Mcp Server服务器讲解与搭建演示

谐云

istio

vue基础知识

猫九

Vue

AI 2.0来袭,AIGC如何重新定义招聘?

用友BIP

招聘

Boundless Hackathon @Stanford 主题黑客松活动闭幕,一文回顾

大瞿科技

架构师的核心工作:价值放大

高鹏

Java 深度思考 架构 架构师

Java程序性能分析:内存

javalover123

Java 性能优化 性能 性能分析 性能监控

华为云CodeArts DevSecOps系列插件——助力更高效的软件研发

华为云PaaS服务小智

华为 软件开发 华为云 华为开发者大会

代码随想录 Day13 - 栈与队列(下)

jjn0703

Linux查看进程PID的方法?

百度搜索:蓝易云

Linux 运维 云服务器 PID 虚拟主机

Ubuntu、CentOS修改时区、设置24小时时间格式教程。

百度搜索:蓝易云

云计算 Linux ubuntu centos 运维

成长力量 | 神州数码:我们和阿里云是市场和技术的共同体

新云力量

数字经济 神州数码 成长力量

C++中set的用法学习

梦笔生花

一些有用的资料

Joseph295

websocket和http有什么不同?以及websocket协议如何实现?

百度搜索:蓝易云

Linux 运维 HTTP websocket

10分钟入门Flink--了解Flink

程序员半支烟

Java 大数据 flink

D3可视化

猫九

D3

权衡矩阵-《敏捷实战-破解敏捷落地的60个难题》读后感

Bruce Talk

业务系统技术债治理终极指南

高鹏

Java 架构

Centos8升级到Centos 8 stream教程。

百度搜索:蓝易云

Linux 运维 服务器 云服务器 ECS

AI写代码靠谱吗?

石云升

ChatGPT AI编码

率先布局 RWA 赛道,PoseiSwap 成为最具先进性的 DEX

大瞿科技

机器学习洞察 | 分布式训练让机器学习更加快速准确

亚马逊云科技 (Amazon Web Services)

机器学习 分布式

Linux系统下如何在防火墙开放指定端口

百度搜索:蓝易云

Linux 运维 服务器 云服务器 运维、

Linux系统Tomcat安装与配置。

百度搜索:蓝易云

tomcat Linux 运维 云服务器 云服务器ECS

支付宝小程序云产品发布会:6大产品20项亮点全揭秘

陈橘又青

小程序 云开发

百度 App 启动性能优化实践篇

百度Geek说

百度 性能优化 企业号 7 月 PK 榜

如何在机器学习实战的路上与时俱进?_架构_李东辉_InfoQ精选文章