前言

众所周知,快速的城市化使得很多人的生活变得现代化,同时也产生了很多挑战,如交通拥挤、能源消耗和空气污染。

城市的复杂性使得应对这些挑战看起来几乎是不可能的。近来,传感技术和大规模计算基础设施的进步产生了各种各样的大数据,从社会化媒体数据到交通数据,从地理数据到气象数据。如果使用得当,我们可以使用这些数据去应对城市中面临的各种挑战。

受到这个机会的激励,我们提出了城市计算的解决方案。它把城市传感、城市数据管理、城市数据分析和服务提供变成一个对人的生活、城市运行系统和环境进行不断重复但不显眼的改进的循环。 
大数据学习笔记·城市计算(1)-风君雪科技博客 
我们需要交通数据、人口数据甚至污染数据。所以,如何从不同领域中的多个数据集中释放知识的力量成为了一个新的挑战,这使得城市计算在本质上有别于传统的数据挖掘和机器学习任务。我会介绍城市计算的概念、方法和应用,分别展示城市传感、城市数据管理和城市数据分析方面的代表性研究。这些研究的应用场景包括交通、城市规划、环境和能源消耗。

城市大数据分类

1. 空间维度和时间维度上的静态数据

这类数据可以分为三个子类:点、线和图。例如,一个兴趣点是一个静态的数据点,其价值不随时间改变;一条路线可以使用一条线来建模;一个路网可以使用一个图来建模。

点数据 
大数据学习笔记·城市计算(1)-风君雪科技博客 
上图中展示了两类兴趣点数据的分布,黄色的点表示电影院,蓝色的点表示酒吧。在过去五年,北京市区电影院的数量在持续增长,达到260个。这意味着越来越多的人喜欢到电影院看电影,而不是买DVD。通过挖掘连续几年的数据,还可以讲出来很多这样的故事。线数据 
大数据学习笔记·城市计算(1)-风君雪科技博客 
这幅图展示了北京的路网。其中,红色的线表示连接北京和其他城市的高速公路,蓝色的线表示北京的环路,黑色的线表示北京的主干道。有了连续几年的数据,你们可以看到一个城市的路网是如何扩张的。

2. 空间静态时间动态数据

与第一类数据不同,这些数据中与每个点关联的数值会随时间变化。我们称之为时间动态性。传感网络数据就是这类城市大数据。

比如空气质量数据。很多城市都设置了地面的空气质量监测站,目的是每小时向人们报告一次环境空气质量。每个空气质量检测站都有静态的空间信息。但是,每个站点的空气质量会随时间变化,我们称它是时间动态但是空间静态的: 
大数据学习笔记·城市计算(1)-风君雪科技博客 
再是气象数据,如刮风、温度、湿度等。城市中有很多气象监测站。就像空气质量的例子,每个站点都有固定的地理位置,但是气象数据的读数会随时间变化。还有房地产市场,每个住宅地产都有一个固定的地理位置。但是,它的价格和属性会随时间变化。

这幅图展示了北京的动态热图: 
大数据学习笔记·城市计算(1)-风君雪科技博客 
它描述了每段时间段内每个区域中的出租车到达量。颜色越深表示给定时间段内这个区域的到达人数越多。首先,北京北部相对来说比北京的其他区域更受欢迎。这是北京的CBD。通过比较两个不同类型的日子中的相似区域,我们可以看到,工作日比节假日有更多人到达北京的中心区域,因为节假日中大部分人都会离开城市旅行。

3. 空间维度和时间维度上的动态数据

这类数据再空间维度和时间维度上都是动态的。这类数据中数据结构最复杂的是轨迹。

我们有很多点。每个点都关联了一个地理信息,如X坐标、Y坐标和时间戳。按照时间顺序收集这些数据,我们就可以形成一个轨迹。 

有很多来源可以产生轨迹数据,如人的移动。我们可以通过使用GPS记录仪来追踪我们的旅行经历。我们还可以通过分析我们的轨迹来分析体育活动。签到数据也是一种轨迹。车辆的运动也可以被记录为轨迹,如出租车轨迹、公交车轨迹;动物的迁徙也是一类轨迹数据,飓风、龙卷风等自然现象的运动也可以被看成是轨迹。 
大数据学习笔记·城市计算(1)-风君雪科技博客 
这幅图展示了北京的3000多辆出租车产生的GPS轨迹的热图。这些数据不仅告诉了我们地面上的交通模式,而且包括城市中人的移动性模式,因为我们知道人们上出租车和下出租车的地方。

概念,框架和挑战

城市计算的概念

我们先通过一个例子说明什么是城市计算。 
大数据学习笔记·城市计算(1)-风君雪科技博客 
现在,空气污染是一个全球性的问题,特别是在发展中国家中。很多城市都建设了地面上的空气质量监测站,它们每小时会向人们报告一次环境空气质量。在这幅图中,每个图标表示一个空气质量监测站,与每个图标关联的数字是这个空气质量监测站测得的空气质量指数。这个数字越小,表示空气质量越好;这个数字越大,表示空气质量越差。

我们可以看到,即使是在同一时刻,不同站点测得空气质量都可能相差很大。这个现象并不令人觉得奇怪,因为空气质量受到很多复杂因素的影响,如交通流、能源消耗以及建筑物、工厂、公园或者区域的分布。这些因素在城市中的不同部分是不同的。所以,如果没有空气质量监测站,我们就无法准确地知道一个地方的空气质量。

我们不能使用线性差值方法来计算这个地方的空气质量,因为空气质量在城市中的分布是高度非线性和有偏的。我们也不能使用这些站点的平均读数来表示这个地方的空气质量。为了解决这个问题,我们通过使用两部分大数据来推测整个城市实时、细粒度的空气质量。

第一部分大数据是已有的站点获得的空气质量的实时读数和历史读数。第二部分大数据包括五个其他数据源:气象数据,如刮风、温度、湿度等;交通流;人的移动性数据;兴趣点的数据,如这里的餐馆数量、工厂数量,一个特定区域的建筑物密度;以及路网数据,如一个给定区域有多少个路口,多少个交通信号灯,高速公路里程是多少。

使用机器学习和数据挖掘技术,我们可以在一个区域中观察到的数据和这个区域的空气质量之间建立一个网络。这里是一个全市的空气质量的精细的结果。它是非线性的。有了这样精细的空气质量信息,我们就可以影响人们的决策制定,如去哪里远足,什么时候关窗户。同时,这也是在未来找到空气污染的根本原因方面前进了一步。

城市计算的框架和挑战

大数据学习笔记·城市计算(1)-风君雪科技博客 
可以看到,城市计算的框架主要有数据收集、管理、分析和输出。在不同层次有不同的挑战。

城市传感中的挑战 

数据缺失和稀疏性 
我们只有抽样数据,基于抽样数据生成整个数据的真实分布是一个挑战。

有偏分布 
我们有部分用户的一些签到数据,但是我们要获得整个城市范围内的人的移动性模式。很显然,这些抽样数据并不是城市范围内真实的人的移动性模式。这就是所谓的有偏分布。

有限的来源 
我们只有有限的资源、预算或者人力来鼓励人们贡献他们的数据。 

例如,我们有出租车的轨迹数据,但是我们想要估计路面上所有行驶车辆的交通流。出租车的分布可能不同于所有车辆的轨迹分布。所以,我们需要基于抽样数据生成整体交通分布的能力。 

城市空气项目中,我们在城市中只建立了有限数量的空气质量监测站。我们只有从这些空气质量监测站获得的样本数据。这些数据是非常稀疏的,但是我们想要复原整个城市的数据。 

有两种类型的数据收集策略。第一种策略是静态感知,即在固定位置部署一些传感器。这种策略的问题是在什么地方部署站点可以最大化知识的收益。第二种是动态激励,对于基于群体感知的策略,我们想要把正确的激励放到正确的地方以获得更多的数据。

城市数据管理中的挑战

多模态数据 
这些数据有不同的表示形式、使用不同的单位,具有不同的密度。

动态、高速、海量的数据 
我们必须考虑如何频繁地更新数据。

在城市空气项目中,我们需要使用五个不同的数据集,包括气象数据、交通数据和兴趣点数据。这些数据是完全不同的。它们都是多模态数据,具有不同的度量、密度和表示方法。大部分数据都有相关联的空间和时间信息。其中一部分是类别数据,另一部分是数值数据。所以,在这个项目中,我们需要快速提取给定时间段内给定区域中的各种数据。我们需要索引结构来更好地管理多模态数据。

另外,我们需要考虑数据的更新频率和数据量。首先,数据更新非常频繁。所以我们需要一些灵活的索引结构,以便数据能够非常频繁地更新。其次,不同数据集的更新频率是不同的。如果我们简单的把不同类型的数据集组织到一个数据索引结构中,那么就会面临一些大的挑战。当一类数据集中的一个数据片有了更新时,我们就需要更新整个数据结构,这将会是一个灾难。第三,数据是海量的。我们无法在一台机器上存储所有数据。所以如何把数据分组并分布到不同的机器上,以便进行并行计算是数据管理的一个新挑战。

识别不同领域的多个数据源之间的关联模式 
跨多个领域的关联模式背后有巨大的价值。识别这样的关联模式非常有挑战。

首先,这里面没有清晰的交易概念。例如,超市的交易记录中会记录人们同时买牛奶、面包和尿布。但是,这里我们有不同的数据源,其中并没有清晰的并发的概念。所以我们必须定义不同数据源的并发的含义是什么。第二个原因是我们有很多数据源,每个数据源都有很多属性,所以不同的数据源和不同的属性就可能有很多种组合。这是一个非常耗时的过程。第三,我们需要处理不同模态之间的交叉。发现不同类别之间的交叉非常容易。这就是传统的关联规则方法处理交易数据的方式。但是,如果数值数据和数值数据在一起或者数值数据和类别数据在一起,那么是什么样的呢?这是一个我们需要解决的新挑战。

城市数据分析中的挑战

空间和时空数据分析 
传统的数据挖掘和机器学习技术通常是处理文本和图像数据的。但是现在我们有空间和时空数据。这是一个我们需要去探索的新领域。跨域数据融合 
我们有跨多个域的多个数据源。如何从来自不同域的多个数据集中释放知识的力量是一个新的挑战。这也是一个端到端的服务,需要集成不同的技术,包括机器学习、数据管理和可视化。我们需要把这些技术聚合在一起。(更多关于跨域数据融合的内容在下文)

城市数据输出中的挑战 

它必须是城市范围内的动态的决策制定和服务提供。它不能只是一个路段上的服务。这是一个城市范围内的服务,它需要影响人们的决策制定。为预测未来使用一些服务,为理解历史使用一些服务。 

例如,我们想要推断整个城市的细粒度的空气质量。这可以作为一个服务,用来理解城市中当前的空气质量。我们还可以预测未来的空气质量。所以,这是一种对未来的理解。有时候,我们需要看看历史来理解我们的数据。例如,什么是城市中空气污染的根本原因。

基础技术

城市传感中的技术

了解城市传感需要了解传感网络和移动传感,以及传感器网络中的数据是如何产生和收集或者通过移动电话传输的。 
最近,出现了称为群体感知或者叫基于众包的感知的新兴概念和技术。群体感知有两种类型。

被动感知,另一种类型称为参与式感知。在被动感知中,人们在不知道数据是什么的情况下被动地生成数据。

人们乘坐地铁时需要刷卡进出地铁站。刷卡数据是被动产生的。我们可以聚合不同人产生的数据来搞清楚地铁系统中的流量。之后,我们可以分配正确的资源或者对地铁进行重新调度以更加有效地搭载更多的乘客。

参与式感知或者主动感知 
人们主动提供他们的数据。他们知道数据是什么,也知道任务的目的。

他们提供了GPS手机的移动速度。随后,我们聚合个人用户的信息。然后,我就可以理解整个城市的交通模式。人们知道他们的信息会被用来 
帮助理解交通状况。

.

数据管理的技术

我们需要了解空间数据库和空间-时间数据库。还需要学习一些索引结构,如我们提出的KD树。

关于三维数据,如空间-时间数据,其中两个维度是空间信息,一个维度是时间戳。我们有多个版本的R树或者三维R树。有一本可以作为参考的空间数据库的书《空间数据库》。 
大数据学习笔记·城市计算(1)-风君雪科技博客 
有两类查询。 
1. 最近邻查询。例如,上图中,我们想要找出距离红色的点最近的点。 
2. 范围查询:找出这个范围中的对象。

在空间-时间数据库中,存在一类称为轨迹的更复杂的数据结构。怎样有效、高效的管理轨迹是一个问题。有一篇论文,题目是《轨迹数据挖掘》,里面展示了其中提到的框架。还有一本书,《空间轨迹计算》,其中介绍了轨迹数据管理、数据挖掘的基本技术及其在社交网络、交通分析、位置不确定性或者旅行规划中的高级应用。

数据分析的技术

我们需要一些基本的数据挖掘和机器学习知识,如回归、频繁模式挖掘、序列模式挖掘、聚类、分类、概率图模型、矩阵分解、张量分解等。我们还需要一些高级技术,如跨域数据融合。我们需要优化技术,如线性规划、L-1最小化、L-2最小化。我们需要可视化技术来把在数据中发现的知识可视化。在城市计算中,我们很可能需要交互式可视化技术或者可视化数据分析。我们从基本的可视化中发现了一些线索,然后使用这些线索进一步处理数据并生成可以进一步可视化的新知识。

跨域数据融合方法分成三类。

使用一个任务不同阶段的不同数据集。我们首先用路网将城市分成一些区域,然后使用交通数据来分析不同区域之间的通勤模式。这被称为基于阶段的数据融合。融合不同特征水平的数据。我们从不同数据集中提取特征,把数据收集在一起作为一个新的特征向量并把他们作为一个分类或者信息检索任务。高级的基于特征水平的融合方法使用深度神经网络学习从不同数据集中提取的特征的新的表示。基于语义含义的方法。我们需要理解数据的语义含义。这类方法有四个子类。 
多视角学习。我们把不同数据集看成是同一个对象的不同视角。通过融合不同对象的视角,我们能够更好地理解对象。协同训练是一个多视角学习的例子。基于概率依赖的方法,如图模型。每个节点表示一个变量,边表示概率依赖。基于相似度的方法,如联合矩阵分解、联合张量分解或者可感知情境的张量分解。我们理解不同条目或者不同对象之间的相似性。所以,我们想要基于一个对象和其他对象之间的相似性填充这个对象的缺失值。基于转移学习的方法。我们想要把A领域中的知识转移到B领域,如从交通数据中转移到空气质量数据中。

附: 
1. 城市空气项目主页:http://urbanair.msra.cn/ 
2. 城市空气项目论文:http://research.microsoft.com/en-us/projects/urbanair/default.aspx 
3. 更多关于城市计算的内容和数据下载:http://research.microsoft.com/en-us/projects/urbancomputing/