如何在机器学习实战的路上与时俱进?
author:一佰互联 2019-05-26   click:166

尚未结束的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服务的公司,这样生命会更加长久而不会因为机器学习技术的普及而消失。当然,拥有大数据和机器学习技术的公司会更加强大,正如大数据技术发展的一样。