雷锋网AI科技评论按:6月24日下午,钛媒体和杉数科技主办的2017 AI 大师论坛在京举行,论坛邀请了五位算法优化、机器学习领域的顶尖教授、学者出席并发表学术演讲,雷锋网记者也对论坛进行了跟踪报道。本篇内容根据机器学习领域专家李建的论坛分享实录整理而成。
李建,清华大学交叉信息研究院助理教授、杉数科技科学家,美国马里兰大学博士、国内机器学习领域最顶尖的前沿科学家之一,国际学术会议VLDB 2009和ESA 2010最佳论文奖获得者,清华211基础研究青年人才支持计划以及教育部新世纪人才支持计划青年学者,主要研究方向为算法设计与分析、机器学习与深度学习、随机优化与组合优化等。
清华大学交叉信息研究院:该院于2011年成立,由姚期智院士建立,姚期智院士是我国唯一的图灵奖获得者(图灵奖是计算机科学最高奖)。他在2005年从普林斯顿大学辞去终身教职职位,回国全职到清华创立姚班,也就是交叉信息研究院的本科生班,也被称为清华大学计算机科学实验班。
以下为李建在论坛的分享实录,雷锋网做了不改动原意的编辑整理:
时空大数据,顾名思义,有时间的属性和空间的属性两个维度。比如说,GPS数据,首先有定位点,定位点就是空间的属性,进入的时间就是时间的属性。还有网约车的订单数据,发的这个订单数据就有当时的时间和空间,也是时空大数据典型的例子。
另外库存管理产生的数据页是时空大数据,杉数科技主要的一个业务就是供应链,用来做库存管理。其中包含很多步骤,在线的电商数据,社交网络的数据,也都是典型的时空大数据。
金融数据在某种意义上也是时空大数据。首先有时间的属性,时间序列,另外比如说不同的板块,不同的类型,不同的行业,有不同的空间属性,也是比较典型的时空大数据。
时空大数据的特点是,既有时间的属性也有空间的属性,就像谈到深度学习,经常谈到比如说图像识别,其中很重要一点就是识别图象的空间属性。如果大家对深度学习有一点了解,做图像识别是需要用CNN(卷积神经网络)的,主要挖掘的就是空间的多变性,所以时空大数据是跟图像识别有共通的。还有一个时间的属性,RNN,也就是递推神经网络处理序列的数据。同时包含时间和空间的这两个属性,就对时空大数据提出很多新的挑战。
同时,另一个时空大数据的特点是有很多类型的数据。要解决一个问题要用到方方面面的信息,比如说预测网约车订单供需量的应用,数据的类型就包含很多种,像GPS,订单的数据,天气的数据还有附近的路况数据,可以用的数据非常多种。这跟原来深度学习所处理的问题不一样,做图像识别只需要图像就够了,要做语音识别,只需要语音就够了,而时空大数据要有各种各样的数据,这些数据都是不同质的,需要组合起来,然后来进行学习和预测。
李建认为目前深度学习在比如说图像识别、语音识别这些领域,都可以说比较成功,也有很成功的商业化模式,但深度学习在时空大数据方面的研究,只是刚刚起步还没有非常成熟的一套方法论。他刚好研究这个方向就做了一系列的工作,相当于是一个初步的尝试,而且也应用到了企业级的应用项目上。其中包含和杉数的一些合作项目。
他认为将深度学习应用在时空大数据的分析上有非常广阔的前景。
基于深度学习的网约车订单预测。网约车订单的问题,是要解决什么样的问题呢?首先想做的事情是预测未来比如说15分钟或者半个小时,在一个指定的区域内会有多少网约车订单。也就是说,你发一个订单,这是一个预测目标,有多少的订单,就相当于是我们的需求。另外一个想预测的就是有多少需求不会满足,对网约车平台来说也是一个很重要的应用,如果在一个地区预计将来比如说半个小时有很多的订单不会满足的话,就可能会事先派一些车到这个区域或者说经过这个区域,另外还会动态的调价,这对他们预测问题是非常重要的课题。
这个问题的难点就像刚才讲的是时空大数据典型的应用,各种各样的数据页都可以应用在里面,比如说GPS的数据、天气、路况都非常有影响。可以看这个图,红色代表这个地方的需求量特别大,绿色代表需求量不是很大,可以看到不同区域的需求量是非常不一样的。随着时间的变化,它的需求也是非常不一样的,比如上图随着时间从00点到20点,可以看到上班的时候有一个明显的高峰,下班的时候也有明显的高峰,这显然是一个工作的区域。另一个区域就不一样,是一个居民区,下班的时候才会有比较好的高峰。随着时间的变化,周一周二周三周四节假日对这个图也都会有非常大的影响。
如何用深度学习解决这个问题,传统的学习方法是把很多数据源的不同数据挖掘出它们的特征,需要不同的组合、创造力或者说特殊的方法对这些数据挖掘,然后做一些统计量把它们拼到一起放在机器模型里。这个过程通常是要花很多很多的时间,精力和人员的。
现在的想法就是利用深度学习自动的从不同的数据里面挖掘特征。因为深度学习有一个自动的特征挖掘能力。但是现在深度学习在时空大数据中自动挖掘特征还没有一个非常好的模式,我们希望做一个深度学习这样的一个框架,能够从各种不同的数据源挖掘特征,把这些特征组合在一起,然后有这样的一个框架来进行预测。
这是经过一段时间探索得到的深度学习框架,这里面有很多的细节我都没有刻画,但是大致的思想是这样的。首先它是一个弯道模型,经过简单的处理,就可以输入到网络里,而且这个网络可以容纳不同类型的数据,比如说订单数据,天气数据,交通数据。从这个数据里面抓取有用的信息来帮助预测,这是预测的输出。处理每个不同的数据需要不同的网络板块和节奏,简单的说就叫ID模块,想预测不同的区域,这个区域就有一个ID,area ID,把它输入进去,然后想预测什么时间,把时间的ID输进去,然后哪个周,把周输入进去。一般神经网络是处理连续性的数据,不擅于处理离散性数据,这就需要嵌入这样的技术,把离散的变成连续性的,然后再输入下一步神经网络里。
另外构造模块的处理,订单的数据,是复杂的模块,因为订单首先数量非常非常的大。每个订单包含的属性非常多,但是这里面是受到传统的时间序列模型启发。比如说时间序列,如果时间序列模型做一下插分会有更好的预测,在神经网络就有这样的思想,预测经过插分的序列,然后把订单数据整合起来。
这个图片是讲的嵌入操作的功能,在做传统机器学习的时候,比如说,现在想预测周一某一个时间段的供需,周一和周二的预测是不一样的,现在想法是把历史上周一的数据拿出来做一下训练,周二的数据再拿出来训练另外的模型,训练不同的模型,因为这个非常不一样,把它们融在一起训练一个模型效果并不太好。现在深度神经网络就希望把所有的数据拿出来练一个模型,通过嵌入操作对这些数据,这个点进行归类,看这两个曲线的时间序列,然后就会发现这个高峰非常的相似,这是自动的进行归类,一定时间中他们也非常相近。
这是深度神经网络得到的预测的效果,和传统的方法比了一下——比如说LASSO,GBDT也是非常常见的一个方法,还有RF,也都是大家常用的。团队有一个Basic DeepSD,这个是简单版本,滴滴做这个项目举办了一场大数据竞赛,全球有1000多个队伍参加,Basic DeepSD获得第二名,当时给的数据比较少,模型还可以有进一步的提升,后来研发了Advanced DeepSD,结果很明显得到了提升。
这个虚线绿的是真实值,红线是传统的非常好的GBDT方法,蓝线的是DeepSD新方法,红线的预测多了,蓝的预测的好一点,有些地方是红线预测的少,像红的是传统方法预测的就比正常的少,但是我们算法要好一点。
第二个场景是出行时间预测,比如说在百度地图里面从A点走到B点,然后想预测,开车要开多久。当时从8点开车,当时这个地方非常非常堵,预测要花很多的时间,等开到这个附近已经不堵了,实际上花的时间没这么多了。当时不堵,开到这边就堵了,在当时计算的时间也不一样。这里面就是计算加预测的问题。
这里面也有很多的挑战,不光是有路况,也有地点的属性,要处理新的数据,也就叫做trajectory 数据,另外还包括具体的司机的属性,根据一些历史信息,对这个新的司机开一个新的路会花多久进行预测。某种意义上是学习司机的习惯。
这是团队研发的深度学习框架,大致的数据理念跟刚才一样的,有一系列的模块,不同的模块处理不同的数据源。像上面提到的这个也有ID数据。完全不一样的是这个数据是序列数据类型,是一个新的模块,新的模块我们用的是LSTM(长短记忆模型),这个在深度学习里面是非常重要的模块应用,是用来做序列学习非常重要且很有力的工具。团队把这个通过一系列的方式组合起来进行预测。
这是中间一个序列模块,用来预测这个序列。
另外针对提到的有很多辅助信息,发展了一个辅助内容的模块。虽然说想预测从A点到B点花的时间,结果就是一个数值,但实际有很多信息的,从A到B走每一段小路都是有时间的,知道走多长时间,这些都是辅助信息。如果把这些辅助信息丢掉预测的话就有点浪费,所以就专门用一个模块来利用这些辅助信息把预测做到更好。
下面是商店选址,传统的商店选址是通过优化的方法,或者说通过问卷调查的方法,在一个地方发一些问卷,看这个地方有多少人进这个商店,这种成本代价比较高,而且并不是非常准确。团队就跟百度大数据实验室合作进行一个项目,利用百度的大数据来确定帮助进行商店选址。大致就是,首先进行用户的需求分析,分析什么地方会有很多用户需求,然后就在用户去的多的地方进行选址会比较好一点。这个需求实际上是从百度的移动端里面挖掘的,比如在百度地图里面搜了一下想去星巴克,那么就代表有一个单位的需求,或者说专门搜了一下咖啡也是代表有需求,或者说想吃饭、海底捞、饭馆。首先总结这些需求,一种是非常具体的需求,比如说星巴克,就想去星巴克的这个店,另外一种比如说想喝咖啡,这样的需求。
利用这些需求知道哪些需求比较多哪些需求比较少,然后就会有这样的一个数据。
现有的商店数据。因为比如说想开咖啡店,这已经有三五个咖啡店就不想再在这里开咖啡店,现有的咖啡店的数据也是有的,每个咖啡店也有自己的数据,能够服务大概多少的需求,就是希望看看剩下的哪些需求还没有被满足,比如说这个例子中有很多的供给,这个供给已经可以满足需求了,有这样的模型,一个供给可以满足多少需求,剩下的这些需求进行一个聚类,然后大数据分析得到一些中心点,这就是后选的一些选址的位置。最后做机器学习找出最好的中心点。上面的图是是根据距离、店的大小判断去掉已经有的需求。
这里有一个实地的案例分析,就是用上面提到的方法去进行选址,比如说第一个图,是海底捞,后来发现,在不远处就刚刚开了这样的一个店,开店的人并不知道是大数据选的址。大数据选址可能跟他们选的也差不多,但是会给出很多的后选的地点。
这个是到访预测。走到一个购物商场,有很多的店,那么实际上到了哪一个店这是想要的数据。到了购物商场会连到这个wifi,这个数据页是要用的数据。也有一些现有的工作,基于这个距离的,还用一些传统的learning-to-rank,这个效果都一般,比如说这个人,想去哪一个地方,下一步会有一个偏好,如果光看一个人的话并不能抓住这些特点。这个框架跟刚才的类似,有一个不同就是用了贝叶斯方法,可以处理一个难点,就是GPS的数据比较多,但是check in比较少的情况下,推断去哪些点,然后把这个推断分到深度学习框架里,这个预测的准确率还是不错的。最后的是这个准确率模型,简单的贝叶斯的方法基本上可以做到。如果预测5个,5个中间有一个是对的概率基本上是80%;预测3个,70%的概率3个中间有一个是对的。
最后讲研发的这个深度学习框架,是用来做出入仓预测的。大型物流公司一般都需要做一下出入仓流量预测,会方便他们排班或者事先规划。这个框架大致也跟团队研究的框架很相似。
谢谢大家!
雷锋网整理编辑