多源数据融合与时空数据挖掘

  • A+
所属分类:学习心得

 

郑宇另外一篇发在IEEE Transaction on Big Data创刊的文章《Methodologies for cross-domain data fusion: An Overview》就介绍了数据的整合。

随着各种传感器技术的成熟和云计算单元的成熟,产生了社交媒体、交通流量、气象、地理信息等多种大数据。基于这些数据解决城市面临的问题,并进一步通过组合这些数据来解决所面临的挑战。郑宇团队自2008年就提出了城市计算这样一个愿景,包括以下四个层面:从下往上有城市感知数据获取,城市数据管理,城市数据分析和挖掘、服务。

城市数据感知

对于城市数据的获取,主要有两种方法:

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

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

对于与机器学习方法结合,主要有四个难点:

第一,我们在城市数据感知的时候,往往拿到的是采样数据,不是全集。如何从这些采样数据里面把全集的知识推断出来,比如说怎么把整个城市里面所有车的车流量实时推断出来,这就是对应的难点。

第二,数据稀疏。如采集城市空气质量数据,传感器不可能布满整个城市,导致采样点较少。

第三,数据缺失。传感器出现故障,将导致部分数据未采集到,需要在预处理时,填充丢失的数据。

第四,资源有限。如何布置有限的传感器,使得城市数据感知的效果最大化。

对于数据缺失,郑宇尝试用几个方法来解决这个问题:

第一,从时、空两个角度来解决:用周边的站点数据或传感器自己前后时间的值填充。

第二,从局部、全局两个角度来解决:用最近的数据来填;基于传感器自己与其他传感器,在很长历史数据上做协同过滤。

总的来说,结合时空和局部全局的四个模型,做多视角学习(Multiview learning),学习每个模型的权重,可以得到最优解。

城市数据管理

有效的城市数据管理包括三个方面:

1.时空数据;

2.增强性的云平台;

3.时空的索引,即查询和检索算法。

城市大数据具有异构、多源、多模特点:

异构:结构和非结构的;多源:来自于不同的领域和数据源(比如气象和交通);多模:比如文本、影像、语音。

目前所有云计算平台公司,都不能很好的支持时空大数据/城市大数据,原因是:

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

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

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

基于这样的挑战,微软亚洲研究院2015年在贵阳市落地了中国第一个真正意义上的城市大数据平台:

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

数据分析和挖掘

在城市数据分析层面主要有三个方面的挑战:

第一,机器学习与时空数据如何结合。

第二,多源数据的融合。

第三,交互可视挖掘(Interactive visual data analytics)。简单静态挖掘是一个单向过程,交互可视分析结合人的智能。

对于多源数据融合,主要分为三类方法:

(1)阶段性的方法。先用一种数据再用一种数据。

(2)基于特征拼接的方法。比如深度学习方法、传统的特征串联以及一些正则化方法。

(3)基于语义信息融合的方法。包括了多视角、基于概率学模型的方法、基于相似度的方法、以及迁移学习的方法。此方法要求知道每一维特征的含义,以及特征和特征之间的关联关系、语义信息。

[3]就基于语义信息融合的方法做了举例:

预测房价时,高价值的房子涨的时候涨得更快,跌得时候跌得更少。因此,在同样一个环境里面摒弃自然因素和政策因素,用房屋的涨幅除以它的基数得到涨幅比,然后按照涨幅比排序。根据这个值做一个量化把城市房子分成五等。但有时候一类房和五类房隔得很近。李嘉诚说过,房屋的价值靠地段。

地段其实可以用数据量化。第一个地段就是周边的各类设施水平,这个可以通过POI和路网数据得到。但同样是学区,好学区和坏学区对房子价值拉动有明显区别。

所以还要看第二个数据:Popularity。比如社交媒体上对这个地方的点评,以及人们出行的规律等,这往往反映了地域的价值。

我们可以从每一种数据里面都抽取特征,再进行计算。对于这些特征,以前的方法是简单拼成一个向量然后做一些回归,比如线性回归,欧米伽是系数,X是向量,后面是误差。但这种方法不是很有效,因为特征之间不是完全独立的。

因此郑宇团队又加了两个约束:

第一个约束是加上Pair-wised constrain,把它变成一个Learing to rank的问题,即排序学习,不仅希望每个房子单独预测要准,还希望两个房子之间的顺序不要搞错。这边简单用两个房屋的涨幅比做差,再通过一个Sigmoid函数变换到(0,1)之间的数值。如果A真的排在B前面的话,那么A本身应该涨得比B多,那么它减出来的值是正的,函数的话是这样值通过Sigmoid函数作用后,输出值比较大,而且越大越接近于1,相当于对正确排序的一个加分。反之,如果A排在B的前面,但B的单点预测值却大于了A,那么A-B的预测结果就是负值,通过Sigmoid函数变换后,就会产生一个小值,而且越小越趋近于零。相当于对错误排序的一个惩罚。

第二个约束,系数约束,某些特征可能不发挥作用,希望这些冗余的特征权重特别小,所以对系数加上约束,是希望其欧米伽分布符合均值为零且方差非常小的高斯分布,这样大部分系数在零的附近,也允许个别的欧米伽以比较小的概率取得比较大的权重。在这一计算中还存在一个有趣的现象,就是真正的高端房子有没有地铁不在乎,但是希望交通很便利开车上下班。这个东西怎么验证呢?他们用2013和2014年的数据做学习来训练模型,然后预测2014年房屋涨幅排序,等到2014年结束后就可以知道这个结果对不对。

而另一个方法就是前面《Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction》中提出的深度学习方法。

多源数据融合问题:基于大数据的城市实时细粒度空气质量分析

如图,每个图标表示一个真实的站点。上面的数字是AQI污染指数,可以看到同一时刻不同地方的空气质量读数差别非常大,有时候只差一两个街区读数可以差几百。因为空气污染指数是由很多复杂因素决定的,包括地面交通流量、周边是不是有厂矿、周边的扩散条件等。这些因素在城市里面都是非线性、非均匀变化的,所以整个城市的空气质量是不均匀的。

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

在模型建好以后便以这个模型推断其他地方的空气质量。即便这个地方没有建站点,因为这些数据在城市里已经全部有了,不需要额外建任何传感器。

如图,每个白圈是政府已有的站点,该区域的空气质量是已知的,蓝色圈是要预测的地方的空气质量是多少,是未知的。平行四边形表示时间点。首先一个地方的空气质量有时序相关性,用纵向的箭头表示,也就是说如果这个小时空气质量不好会影响到下个小时空气质量。第二,不同地方的空气质量有空间相关性,用红色箭头表示,因为污染物会传播飘散。一个好的空气质量模型一定能够同时对一个地方的空气质量的时序相关性以及不同地方的空气质量的空间相关性进行建模。

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

进一步,郑宇团队设计了城市细粒度空气质量预测,这是一个空间细粒度加时间细粒度的预测,影响因素多,另外,在空气污染物中有一个拐点,就是当出现极端天气状况的时候,空气污染指数可能会从500瞬间变成50。这个拐点是一个小样本事件,因而预测非常困难。而拐点会直接影响到国家的决策。比如APEC期间为保证空气质量,要以北京为圆心关闭一个圈里面所有的工厂,造成的损失可能上百亿。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: