当前位置:   article > 正文

郑宇:多源数据融合与时空数据挖掘(转载)_多域、多源数据的汇聚、挖掘与可视化

多域、多源数据的汇聚、挖掘与可视化

来自:

https://mp.weixin.qq.com/s?__biz=MzAwMTA3MzM4Nw==&mid=2649440531&idx=1&sn=d9c92b1f157ee37c7c6e185919a3ffbb&chksm=82c0a897b5b721810f4d795cc144d309086274a9071515e727f9f420d7ffb7f06c9b376557ee&scene=21#wechat_redirect

https://blog.csdn.net/chognzhihong_seu/article/details/70799927

原文太长,简要摘记学习一下。

城市数据的获取,获取方式主要有两种

●  第一种,以传统传感器为感知的方法

●  第二种,以人为中心的感知方法

第一个,以传统传感器的感知方法进一步可以分成两个子类,要么把传感器放在一些固定的地方,要么把传感器装在一些移动的物体上面,比如说在公交车、出租车上装传感器,但是不管哪一种,一旦装完之后人就不参与了,这个数据自动传到我们后台。

另外一个,以人为中心的感知,这是比较新的概念,也叫群体感知,这里面也分成两个方面,一个叫做被动式群体感知,一个叫主动式群体感知。被动式群体感知,每天每个人都在参与,我们并不知道我们打电话的时候,我们的数据可以拿去改进通话网络的质量;我们并不知道我们公交车上下车刷卡的时候,这个数据可以帮助优化我们的公交线路,改进城市规划。把每个人的数据收集在一起,感知城市的变化,最后解决问题,这叫做被动式群体感知。主动式群体感知就是,任务是什么很明确,什么时间、什么地点、干什么事情、共享用什么数据,这个数据拿来干什么用都很清楚,甚至还有激励机制,你可以选择什么时候加入或不加入。这是目前城市数据来源的四种方式。

根据数据关联的时空属性的变与不变与否,可以分成三类:1)是时间和空间都不变的,属性都不变,静态数据;2)是空间不变、时间变;3)时、空都变。

现在听起来比较抽象,所以说2×3是6组数据,你们可以想,你心目中所有的数据,我都会告诉你在哪儿。比如说我们的兴趣点数据,什么叫兴趣点?一个车站、一个酒吧、一个学校就是兴趣点,有坐标、有地址、有名称,一旦某个商场建好之后空间就不变了,有多少层楼、多少个窗户也是固定的,所以时间和空间都是静态的,这是点数据。

我们把传感器放在好,位置不变,是个点,可是每个读数随着时间变化,属于空间不变、时间变。

时间和空间都变是什么呢?就像我们去骑摩拜单车,去打Uber,坐滴滴,用户的数据就属于时空散点数据,比如2点有用户请求了,2点半有用户在另一个地方请求了,位置和位置是变化的,并且时间也在变。

什么是网络数据呢?路网是静态的,这个不变,时空都是静态的网络结构数据,一旦把交通流量叠加上来之后,就变成了空间静态,但是时间动态的数据。什么是时间和空间都动态并且网络结构信息呢?就是轨迹。我们可以想象一下,滴滴的轨迹,摩拜的轨迹,都属于这个数据,人类手机信号也属于这类数据,我们骑行也属于这个数据。

轨迹数据是最难的,是信息量最丰富的,人类的出行,打电话的记录,车的记录,飞机的记录,候鸟飞翔,飓风移动,都属于轨迹数据,因为时间、空间都在变。

平台。异构、多源、多模,是三个不同的东西。异构就是结构和非结构的;多源就是来自于不同的领域和数据源(比如气象和交通);多模,就是有文本的、影像的、语音的。在城市大数据里面,这三个是全部具备的,那我们也会同时处理这些东西。我们的应用不是城市级别的,不是说某个摄像头放在一个地方,或者在一条路上,那不叫城市计算。要做就是整个城市规模全做,需求量就是上百万级、上千万级用户规模,这种大的应用场景,这么多的数据,没有好的平台是做不到的,所以我们首先就会想到用云计算平台。但是非常抱歉的告诉大家,现在不管哪一家公司的云计算平台,都不能很好的支持时空大数据,也就是我们城市大数据,为什么呢?

有三个原因:

●  第一,时空数据的结构跟文本、图像是非常不一样的。大家可以想象我们拍了一个照片之后,这个照片始终是20K,拍的时候20K,永远是20K,不会说随着时间的变化不停的在变。但一辆车的轨迹在开车的过程中是不断增加的,而且轨迹中两个点不能随便交换,不像我们一般记录学生成绩,把两个学生成绩两行交换一下,并不能影响这个表格的准确性,时空数据就不能交换。

●  第二,我们以前查询文本的时候,可以把包含关键词的文本拿出来,但是我们做时空数据查询的时候,往往是靠一个时空范围,比如说查找我周边最近2分钟内空驶的出租车,查找过去两分钟所有这个楼周边的摩拜单车哪个是空的,这都是空间加时间范围查询,它不是一个Keyword Match的问题。甚至比如说在开车的过程中查找最近的加油站在哪里,车的位置还在变的,这都是在云计算平台里都不直接支持。

●  第三,真正要做城市大数据项目的时候,你发现绝对不是只用一种数据,会用到多种数据,而且还要把多种数据的知识融合在一起。要融合多源数据的话,先不把各类数据管理好,不把它有机的索引在一起,到时候根本来不及做快速融合的问题,这就叫混合式索引,数据和数据关联起来,把不同领域数据融合在一起。

首先,我们定义了六种数据模型,刚刚介绍过,根据数据结构、时空属性变与不变,2*3=6种模型,不管什么数据,都能用这六种模型中的一种把数据装进去。我们利用了Azure本身的存储机制,我们并不是什么都自己做,全部自己做没有必要,我们是用这个来增强。这个很重要,我们在这个层面上加入了一个中间层,我们针对不同的数据结构设计了空间索引和时间索引算法,以及针对于多源数据之间的跨域管理做了混合式索引,把时空索引算法集成到 Storm、Hadoop、Spark里面去,向上提供API给我们的机器学习算法来用,使得我们的机器学习算法能够快速的访问大规模数据。如果你没有这个,你发现你真的上大系统的时候,我们连特征提取都还没做,这个任务的时间期限就到了,等不及你了。因为很多时候就是1秒钟、2秒钟就给我一个结果出来,如果我们光做特征提取就需要花了一两个小时,模型怎么上线,所以必须要有平台来支持。这里边既有分布式,也有索引,以前大家都说,我们有分布式系统了,不要索引了,那是不对的,我们可以结合在一起。有的时候你用100台机器学习做的事情,我可能2台机器就能做,因为有了索引和分布式的结合。

为了看平台的规律,给大家看几个例子。

这个是在贵阳市布充电桩的例子。假设根据过去一年车的轨迹信息,我们在这个区域内放五个充电桩,我应该放在哪五个路口,使这五个路口加在一起,覆盖的车的数量最大化,我强调一下,我们不是找最热门的前五个路口,没有意义,因为可能最热门的前五个路口都挨着,经过第一个路口就经过第二个路口,我是说五个路口加在一起覆盖的车总数最大化,就是不重复的车最大化。

以前做这个工作的时候,一轮结果计算需要8个小时到一天,因为计算量非常大。现在有个平台,3秒钟以内做出来,为什么需要做这么快呢?这又回到行业了,我们知道真正布充电桩的时候有很多因素要考虑,还有很多专业的要求,比如说这边是不是有空地,这周边有没有商场,有没有饭店来容纳我们的人,我们充电2—3个小时人去哪里,不能让他蹲在马路边,这些条件不符合的时候,可以允许用户把这某个推荐的点删掉,保留其他几个点,然后让算法回去再算,直到我得到一个满意的结果为止

这个其实是变成一个新的概念——人机学习。新的时代已经是人的智能加机器智能合在一起。要实现人机智能,一定要提供一个交互的方法,把人的智能带进去。这个例子里面就是,我们先给算法一些简单规则,让算法找到一些初始的结果,让行业专家去看这些结果,用他的经验去判断这个点是否合适,需要删除掉还是加一个点,这样把人的知识和机器的知识融合在一起,同时把数据科学知识跟专业行业知识融合在一起。

这非常重要,往往我们做大数据、做机器学习的时候到会遇到最后一步落地困难的问题,我们只有数据科学知识,缺少行业知识,但真正解决问题两者是缺一不可。行业的人往往不懂机器学习。此外,行业专家心中有很多复杂条件,他不一定能很好的量化和表达出来。此时,利用机器学习驱动的交互可视分析的方法可以弥补两者之间的鸿沟。

正是因为要通过迭代、交互才能实现人机融合,保证算法执行的效率和性能就变得很重要。你想想,如果我们给算法一个反馈,要等一天才能看结果,人怎么能跟机器交互呢。只有像视频里那样,专家给出反馈,算法马上出结果,才能做到真正的吧人机智能交互和融合。要想获得这样的性能,刚才展现的那个城市大数据平台就变得必不可少。

这个问题刚刚说应用是在充电桩的选址,实际上广告牌的选址是一样的。很多时候说我们只有有限的钱放广告牌,我们放在哪几个路口使得覆盖最大化呢。跟我前面讲的救护车那个不一样,那个是时间最优化,这是一个覆盖范围最优化的问题。

没有平台,别想交互,别想跟人机智能结合,那我们也解决不了实际的行业问题,因为你拿这个结果给专家看的时候,我们还有很多因素没考虑呢,这个初步的结果可能根本没用。所以这也是一个行业知识跟机器学习结合的例子。

由于各种传感器技术的成熟以及云计算单位的成熟,我们有了社交媒体、交通流量、气象、地理等多种大数据。

在城市数据分析层面会遇到四个方面的挑战。

第一个方面,我们以前很多做机器学习的人,他们提出算法的时候往往都是在video、graphic、text中,现在要把这些算法adapt到时空数据上来。如何将它转换过来是一个难点。

第二个方面,在于多源数据的融合。以前做数据挖掘的时候,往往只是挖掘单一数据。现在我们发现做一个应用需要把多个数据的知识融合在一起。这是一个新的难点,我认为也是大数据里面,相对来说比那个“大”更加有意思更加难的问题。

第三个方面,我们以前做database和machine learning的人是两拨人,相互之间的交集比较少。但是只有将data base以及machine learning的方法有机地融合在一起,做得又快又好才能把系统落地。

第四个难点,以前做挖掘的时候往往是一个单向过程,就是简单静态挖掘。现在变成了交互可视挖掘,英文叫做interactive visual data analytics,就是交互可视分析。刚才所讲就是一个例子,把人带进去交互可视,人机交互,把人的智能也融合进去。

多源数据融合的方法按照已有的工作可以分成三大类。第一类是阶段性的方法,先用一种数据再用一种数据。第二个是基于特征拼接的方法。我们所熟知的深度学习方法,还有传统的特征串联加上一些正则化方法,都是属于这里面的分支。相对于第二个方法来说,第三类是基于语义信息融合的方法。这里面包括了多视角、基于概率学模型的方法、基于相似度的方法、以及迁移学习的方法。在这一方法里面我们要搞清楚每一纬特征是什么含义,以及特征和特征之间的关联关系、它们的语义信息。在做特征融合的时候则不必。另外这方法是根据人的思维方式设计的类人思考的方法。所以说是基于语义信息的方法。

时空数据,它跟视频、图象、语音是不同的。这也导致传统的深度学习模型不能直接拿来用。首先,时空数据有空间属性,包括两方面,一个叫空间的距离,一个叫空间的层次。所谓空间距离,根据地理学第一定律很容易理解。另外空间有层次。比如一个城市包括几个区,几个区包括几个街道,每个层次都有特别的语义信息。不像象素里面,虽然有四个象素合并成一个象素,但在四个象素合并成一个象素的时候并没有明确的语义信息。第二个,时间属性。有三个方面的不一样。第一,时间有平滑性,就是这个小时的交通量跟上个小时的比较接近。

第二,时空数据有周期性,交通流量、人群流量都会有周期。这种周期性在视频、语音和文本里面都没有。比如说今天早上八点钟的交通流量可能跟昨天早上八点钟的交通流量很像,但跟今天中午12点钟的交通流量就很不像,隔得远的反而像,这打破了第一点的约束,导致很多算法不能应用。

第三,趋势性。周期绝对不是固定的。随着天亮的时间越来越早,大家出门的时间也越来越早,因此早高峰来临的时间越来越早。早高峰来得时间会有一个趋势性的上扬的过程,这个趋势、周期是很特别的,所以空间加时间这些因素导致了时空数据跟普通的文本、视频不同。我们把城市分成均匀的网格,然后把过去和实时收到的车子GPS轨迹信息投影到网格里面,去计算每个格子里面多少人进出,将其转化成一个矩阵,矩阵中每个单位是一个二元组,进和出,相当于每个象素有RGB一样,它就变成了一个二维的热力图,越红的地方人越多。如果我们有很多不同时间的数据就构成了这样一个像视频流的strain,并且加上事件和天气信息。这是数据的输入。

数据的应用,则是首先把相邻几个小时的数据放到一个深度卷积神经网络里面,来模拟相邻时间的时序的平滑性。然后把几天内一时刻对应的数据输入到一个相同结构的深度卷积神经网络里面,来模拟周期性。再把更大时间范围内同一时间点对应的数据做一个输入,来模拟趋势性。然后这三个数据先做一个融合,融合的时候引入权重系数,因为三个因素的输出结果并不是在每个地方都一样。比如有的地方周期性特别强,像这种主干道。有的地方周期性不是那么强,它的时间临近性就比较重要。

其次需要考虑外部的因素,比如气象事件。把这些数据融合以后,我们去反馈学习下一帧的数据,所以我们要预测下一帧这个时刻的状况。它是一个整体预测,不是分开预测。因为格子和格子之间一定有相关性,我们是同时一下预测出来每个区域有多少人进出。另外是抓住了时空的属性。时间临近性、周期性、趋势性都被抓住了,然后在内部通过深度卷积网络抓取空间性。卷积网络通过一次卷积可以把一个区域的值卷积到一个点上面,描述近距离的空间的局部相关性。经过多次卷积以后可以把越来越远的地方卷积到一起,描述距离较远的空间的相关性。当深度卷积网络比较深的时候它的训练效果就变得很差。

为了解决这一问题,我们引入深度残差神经网络,整个架构称为时空残差网络。这个比较新的模型相对于以前LSTM的模型,不需要进行连续的数据输入,只需要抽取关键帧。这样的结构大大优化了网络结构,只需要用几十帧就达到原先的模型里几百帧、几千帧的效果,甚至更好。这种深度时空残差网络,在人口流动的预测上有很大的应用前景。

用大数据的方法来做实时细粒度空气质量分析。实时是每个小时做一次,细粒度是一公里乘一公里范围这么细的状况。用了两部分大数据,一部分是已有站点的实时和历史空气质量读数,另外一部分分为五个数据源,包括气象比如风速、风向、湿度,以及车的平均速度、速度方差,人的移动性,单位时间多少人进出,区域的POI的数目,有多少酒吧、多少餐饮、多少厂矿以及房屋的密度,以及道路结构有多少高速路多少红绿灯路口等。然后采用机器学习算法来建立一个地方空气质量跟这个地方周边对应的这些数据的关系。在模型建好以后便以这个模型推断其他地方的空气质量。

首先一个地方的空气质量有时序相关性,用纵向的箭头表示,也就是说如果这个小时空气质量不好会影响到下个小时空气质量。第二,不同地方的空气质量有空间相关性,用红色箭头表示,因为污染物会传播飘散。一个好的空气质量模型一定能够同时对一个地方的空气质量的时序相关性以及不同地方的空气质量的空间相关性进行建模。

这里有一个空间分类器和时间分类器。空间分类器可以通过周边的值来计算中心值,而时序预测则根据它自己的读数预测它未来的数值。因为污染物的来源有三:一是外部进入,二是本地排放,三是外部进入的污染物和本地排放在一定的环境因素下面发生了二次化学污染。这三个因素相当于上面提到的空间相关性、时序相关性以及它们两个时空分类器的一个迭代学习的过程。

从污染物成因的角度讲,因为有空间传播和本地排放,所以既要有行业知识也要有数据科学知识,完美结合以后才能定制一个模型让两方面的人都认可。污染物有物理传播过程也有化学过程,原来的方法单一的物理过程或者单一的化学过程都不能解决问题。现在通过数据分析的方法同时考虑到物理过程和化学过程以及它们之间的交互,所以能够把这个问题解决得很好。这个工作在2013年发表论文以后,2015年在环保部落地。

最后跟大家分享一个观念。什么是数据科学家?很多公司招聘数据科学家其实都不是招真正的数据科学家,而是数据分析师。数据分析师是什么概念?他有明确的任务,数据明确、任务明确、结果也明确,他会用一些工具去跑一些报表,然后提交结果。

数据科学家完全不一样。一个很简单的例子,银行发信用卡,我们有用户提交的表格,上面有各种信息,我们拿个人的信用记录去训练一个模型然后做分配器,决定是否发信用卡。这就是数据分析师。

最近北京市建副中心在通州,政府需要知道北京的政府搬到通州以后对北京整个的经济、环境、交通有什么影响。没有具体问题也没有具体数据,这就是数据科学家应该解决的问题,数据科学家要自己找题目。所以最高境界的数据科学家甚至要自己想好,先做出模型,政府觉得好就会实施。

所以,数据科学家首先要懂得行业问题,比如说他要知道雾霾跟什么因素相关,从别人的方法里面怎么吸取经验来定义模式设计特征,也从别人的方法中吸取教训,还要知道怎么去跟行业的人沟通。要知己知彼百战不殆。

第二,在你知道这个行业问题之后,你要知道用什么数据解决这个问题,要懂得数据背后的隐含信息。比如说路面上出租车的GPS轨迹不光反映了路面的交通流量信息和速度,它也反映了人们的出行规律,人们的出行规律进一步反映了这个地方的经济环境和社会功能。只有经过这样的关联和联想才能把领域A的数据拿来解决领域B的问题。你会发现在大数据时代我们真的不再缺数据了,缺的是我们的思维不够开放。只有你的思维够开放、对这个问题理解够深刻以后才能把别的数据背后的知识拿过来做融合,这个很关键。

第三,你要对各种模型都很清楚,要懂得把它们组合在一起。还要对云计算平台有一定的了解。好的数据科学家是站在云平台上面看问题、想数据、关联模型,把这些模型有机组合起来部署到云平台上面,产生鲜活的知识,解决行业问题,这个才是大数据。

要做到这三点才是大数据科学家。很多时候项目推动不了不是人数不够,而是因为缺乏中间灵魂的头脑。培养这样的人其实是非常困难的。以我个人的经验至少七到十年才能培养出这样一个可以解决很多问题的真正的数据科学家来。所以我鼓励大家,你至少读一个五年PHD加两年的实战经验,基本上可以来做这样的事情。

最后总结一下。今天我们在数据科学院还是要讲讲大数据。大数据在我看来是一种从数据的采集、管理、分析、挖掘到可视化这种端到端的服务,解决行业的一种能力。它需要平台的支撑,也需要各种算法,包括数据管理和挖掘分析算法、机器学习算法,还有行业知识,跟行业结合。最后我相信,人工智能在我们的城市领域,在我们的时空大数据领域还大有作为,谢谢大家。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号