1
本文作者: 叨叨 | 2017-03-17 10:41 |
雷鋒網(wǎng)[AI科技評(píng)論]按:本文根據(jù)鄭宇教授在中國(guó)人工智能學(xué)會(huì)AIDL第二期人工智能前沿講習(xí)班*機(jī)器學(xué)習(xí)前沿所作報(bào)告《多源數(shù)據(jù)融合與時(shí)空數(shù)據(jù)》編輯整理而來(lái),雷鋒網(wǎng)在未改變?cè)獾幕A(chǔ)上略作了刪減。
鄭宇
鄭宇,微軟研究院城市計(jì)算領(lǐng)域負(fù)責(zé)人、資深主任研究員、上海交通大學(xué)講座教授、香港科技大學(xué)客座教授、人工智能國(guó)際權(quán)威期刊 ACM TIST 主編、美國(guó)計(jì)算機(jī)學(xué)會(huì)杰出科學(xué)家,ACM數(shù)據(jù)挖掘中國(guó)分會(huì)(KDD China)秘書(shū)長(zhǎng)。2013年被MIT Technology Reivew評(píng)為全球杰出青年創(chuàng)新者(TR35)。在國(guó)際頂尖會(huì)議和期刊上發(fā)表論文百余篇,論文被引用12000多次, H-Index 53(Google Scholar,截至2017-3-15),2016年論文單年被引用3200余次。
謝謝介紹,謝謝邀請(qǐng)!大家經(jīng)常聽(tīng)到的機(jī)器學(xué)習(xí)、人工智能這些概念,大部分應(yīng)用案例都是在圖形圖像以及自然語(yǔ)言處理方面,在城市里跟我們生活比較接近的,特別是應(yīng)用在時(shí)空數(shù)據(jù)的例子比較少。現(xiàn)在我就用城市大數(shù)據(jù)為例子,來(lái)說(shuō)明一下機(jī)器學(xué)習(xí)如何應(yīng)用于時(shí)空數(shù)據(jù)領(lǐng)域。
大家都知道我們現(xiàn)在生活越來(lái)越現(xiàn)代化,但是問(wèn)題越來(lái)越多:交通擁堵、環(huán)境惡化、能耗增加。要解決這些問(wèn)題在很多年前看似幾乎不可能,因?yàn)槌鞘性O(shè)置非常復(fù)雜,環(huán)環(huán)相扣,牽一發(fā)而動(dòng)全身,現(xiàn)在由于有了各種傳感器技術(shù)的成熟和云計(jì)算單元的成熟,使得我們有各種各樣的大數(shù)據(jù),從社交媒體到交通流量,從氣象條件到地理信息,如果使用得當(dāng)?shù)脑挘覀兙湍軌蛴眠@些數(shù)據(jù)來(lái)發(fā)現(xiàn)城市面臨的問(wèn)題,并進(jìn)一步通過(guò)組合這些數(shù)據(jù)來(lái)解決我們面臨的挑戰(zhàn)?;谶@樣的機(jī)遇和挑戰(zhàn),我們?cè)?008年就提出了城市計(jì)算這樣一個(gè)愿景,包括以下四個(gè)層面:從下往上(下圖)有城市感知數(shù)據(jù)獲取,城市數(shù)據(jù)的管理,城市數(shù)據(jù)的分析和挖掘到最后服務(wù)的提供。
雖然我們今天主題是叫機(jī)器學(xué)習(xí),但是我想你們肯定想,機(jī)器學(xué)習(xí)到底能解決什么城市問(wèn)題。在機(jī)器學(xué)習(xí)真正落地的過(guò)程中,可能還要依托于其他的平臺(tái)甚至于其他的學(xué)科,包括數(shù)據(jù)管理。我就成體系地講講到底機(jī)器學(xué)習(xí)算法怎么改變我們生活中的方方面面。
從最下面的層面來(lái)看,城市數(shù)據(jù)感知這部分,其實(shí)每個(gè)層面都發(fā)現(xiàn)我們都需要用機(jī)器學(xué)習(xí)的方法來(lái)做一些事情,這個(gè)層面是概念上劃分的,實(shí)際說(shuō)是互相有交集的。
我們看城市數(shù)據(jù)的獲取,獲取方式主要有兩種:
第一種,以傳統(tǒng)傳感器為感知的方法
第二種,以人為中心的感知方法
第一個(gè),以傳統(tǒng)傳感器的感知方法進(jìn)一步可以分成兩個(gè)子類,要么把傳感器放在一些固定的地方,要么把傳感器裝在一些移動(dòng)的物體上面,比如說(shuō)在公交車、出租車上裝傳感器,但是不管哪一種,一旦裝完之后人就不參與了,這個(gè)數(shù)據(jù)自動(dòng)傳到我們后臺(tái)。
另外一個(gè),以人為中心的感知,這是比較新的概念,也叫群體感知,這里面也分成兩個(gè)方面,一個(gè)叫做被動(dòng)式群體感知,一個(gè)叫主動(dòng)式群體感知。被動(dòng)式群體感知,每天每個(gè)人都在參與,我們并不知道我們打電話的時(shí)候,我們的數(shù)據(jù)可以拿去改進(jìn)通話網(wǎng)絡(luò)的質(zhì)量;我們并不知道我們公交車上下車刷卡的時(shí)候,這個(gè)數(shù)據(jù)可以幫助優(yōu)化我們的公交線路,改進(jìn)城市規(guī)劃。把每個(gè)人的數(shù)據(jù)收集在一起,感知城市的變化,最后解決問(wèn)題,這叫做被動(dòng)式群體感知。主動(dòng)式群體感知就是,任務(wù)是什么很明確,什么時(shí)間、什么地點(diǎn)、干什么事情、共享用什么數(shù)據(jù),這個(gè)數(shù)據(jù)拿來(lái)干什么用都很清楚,甚至還有激勵(lì)機(jī)制,你可以選擇什么時(shí)候加入或不加入。這是目前城市數(shù)據(jù)來(lái)源的四種方式。
城市感知之后我們會(huì)遇到什么樣的難點(diǎn)呢,特別是跟機(jī)器學(xué)習(xí)有什么相關(guān)性,我總結(jié)了四個(gè)方面的難點(diǎn),跟機(jī)器學(xué)習(xí)相關(guān)的難點(diǎn)。
第一,我們?cè)诔鞘袛?shù)據(jù)感知的時(shí)候,往往拿到的是采樣數(shù)據(jù),不是全集。
假設(shè)整個(gè)城市數(shù)據(jù)是灰色的點(diǎn),我們可能只拿到紅色的這一部分,某些屬性在這些采樣數(shù)據(jù)上分布跟在全集數(shù)據(jù)上的分布很不一樣。舉個(gè)實(shí)例,比如可以拿到出租車的GPS軌跡(數(shù)據(jù)),我們知道出租車只是整個(gè)城市里面車流的一小部分,出租車的分布跟我們私家車的分布可能很不一樣,有的地方可能很多出租車,但是沒(méi)有那么多私家車,反過(guò)來(lái),可能有的地方很多私家車,卻沒(méi)有什么出租車。所以你不能說(shuō)簡(jiǎn)單看到幾個(gè)出租車,乘一個(gè)系數(shù)就推斷有多少私家車,這個(gè)就是偏斜的分布問(wèn)題,不管哪個(gè)場(chǎng)景里,發(fā)現(xiàn)我們拿到的都是采樣,如何從這些采樣數(shù)據(jù)里面把全集的知識(shí)推斷出來(lái),比如說(shuō)怎么把整個(gè)城市里面所有車的車流量實(shí)時(shí)推斷出來(lái),這就是對(duì)應(yīng)的難點(diǎn)。這個(gè)地方有相應(yīng)的論文,如果你對(duì)這個(gè)問(wèn)題感興趣的話,類似的問(wèn)題可以從這些論文里找到相關(guān)的技術(shù),我先把它概述一下,這是第一個(gè)難點(diǎn)。
第二,Data Sparsity,我們的傳感器往往是很少的
舉個(gè)例子,我們北京市空氣質(zhì)量分析。北京市我們建了35個(gè)空氣質(zhì)量站點(diǎn),你知道北京那么大,光靠這35個(gè)空氣質(zhì)量站點(diǎn),怎么把整個(gè)北京市每個(gè)角落的空氣質(zhì)量都能夠感知到呢,這是一個(gè)數(shù)據(jù)稀疏的問(wèn)題,這里面要用到一些機(jī)器學(xué)習(xí)的方法來(lái)做。
第三,Data Missing的問(wèn)題
這個(gè)問(wèn)題可能很多人認(rèn)為跟Data Sparsity是同一個(gè)問(wèn)題,其實(shí)不是同一個(gè)問(wèn)題.。Data Sparsity是采樣點(diǎn)很少,Data Missing是說(shuō)本來(lái)就應(yīng)該有個(gè)點(diǎn),可是因?yàn)閭鞲衅鞒霈F(xiàn)故障,導(dǎo)致這個(gè)小時(shí)的數(shù)據(jù)會(huì)丟失。Data Missing是一個(gè)雪上加霜的問(wèn)題,不是同一個(gè)問(wèn)題,一個(gè)是說(shuō)傳感器少,一個(gè)說(shuō)我本來(lái)有傳感器可能還會(huì)丟,怎么去把這個(gè)丟失的數(shù)據(jù)填滿,這可能是很多問(wèn)題需要做的預(yù)處理的第一步,后面學(xué)習(xí)的時(shí)候就要填,怎么填一下等下我來(lái)講。Data Sparsity、Data Missing,這是第二和第三大挑戰(zhàn)。
第四,資源有限
如何用有限的資源做更多的事情,采更多的數(shù)據(jù),如何利用限的資源獲得更大的感知效果,這是非常困難的。為什么困難??jī)蓚€(gè)原因,第一,我們有很多候選集可以選,從很大的數(shù)據(jù)集里面選一部分?jǐn)?shù)據(jù)的時(shí)候,往往是一個(gè)NP的問(wèn)題。比如,我們城市那么大,每個(gè)路口都可以布充電樁或者加油站,而我只有錢(qián)布2到3個(gè)充電樁,我應(yīng)該放在什么位置,使得效果最大化。這就是一個(gè)maximum coverage的問(wèn)題。還有一個(gè)原因會(huì)導(dǎo)致問(wèn)題更難,即我們根本不知道Ground Truth。假設(shè)北京已經(jīng)有兩個(gè)空氣質(zhì)量監(jiān)測(cè)站點(diǎn),我們還要建4個(gè),我們要放在什么地方使得空氣質(zhì)量感知最大化,你沒(méi)有建站點(diǎn)之前不知道這個(gè)空氣質(zhì)量多少,根本不知道什么叫好、什么叫壞,這是難點(diǎn),里面都有相關(guān)的論文去解決這樣的問(wèn)題。
現(xiàn)在講完城市感知的一些挑戰(zhàn)和采集的方法之后,我們來(lái)看一個(gè)比較真實(shí)的例子。先看一個(gè)偏應(yīng)用的,再看一個(gè)偏理論的。先看比較偏應(yīng)用的。
我們都知道120系統(tǒng),病人打電話到急救中心,急救中心會(huì)從救護(hù)車站派車把人送到醫(yī)院,再返回到救護(hù)車站。救護(hù)車站并不都在醫(yī)院,有很多原因。
第一,救護(hù)車運(yùn)營(yíng)系統(tǒng)和醫(yī)院其實(shí)是兩個(gè)不同的系統(tǒng);
第二,很多時(shí)候我們必須要把救護(hù)車放在某個(gè)地方(不是在醫(yī)院),要保證對(duì)任何一個(gè)呼救,救護(hù)車能在規(guī)定的時(shí)間內(nèi)能夠到達(dá)搶救地點(diǎn)。如果車都放到醫(yī)院里面,必然有的地方就會(huì)太遠(yuǎn),使得救護(hù)車不能在規(guī)定時(shí)間內(nèi)到達(dá),搶救病人。
下圖是天津市的一個(gè)救護(hù)車站站點(diǎn)的分布圖。以前站點(diǎn)的選址,可以說(shuō)基本上是拍腦袋決定,比如根據(jù)一個(gè)地方大概的總?cè)丝跀?shù)、路網(wǎng)密度來(lái)布置站點(diǎn)。大家知道120的需求量跟人口數(shù)并不一定成比例,還跟人的身體健康狀況、年齡結(jié)構(gòu)有關(guān)。現(xiàn)在我們有了真實(shí)的120求救數(shù)據(jù),我們知道什么時(shí)間、什么地方,有多少人求救。以及救護(hù)車在急救過(guò)程中他們的GPS軌跡、花了多少時(shí)間,通過(guò)我們的方法、算法重新對(duì)站點(diǎn)的位置選址和布局,使得救護(hù)車救這么多病人平均搶救時(shí)間最小化。通過(guò)我們的算法重新選址后,我們能夠把搶救時(shí)間縮短30%。比如,以前救100個(gè)病人假設(shè)花100個(gè)小時(shí),現(xiàn)在只需要花70個(gè)小時(shí),還是那么多車、還是那么多站點(diǎn),我們卻能更快地把病人送到醫(yī)院。把時(shí)間節(jié)約下來(lái)留在在手術(shù)室搶救病人的生命,這是人命關(guān)天的事情,是資源調(diào)度優(yōu)化的問(wèn)題。這個(gè)站點(diǎn)如何部署就很有講究了,你放的好和不好就會(huì)有很大的區(qū)別。
第一步放完站點(diǎn)之后,第二步,這個(gè)站點(diǎn)里面的車的數(shù)量不是固定的,有的地方早上需求量較大,有的地方晚上需求量較大,不能說(shuō)車從早到晚一直放在某個(gè)站點(diǎn),浪費(fèi)了。這個(gè)車在站點(diǎn)之間如何動(dòng)態(tài)調(diào)配,使得我們的資源最大化,這是問(wèn)題。這是我們解決這個(gè)問(wèn)題里邊兩個(gè)研究的點(diǎn),這兩個(gè)技術(shù)分別干什么事情,第一個(gè)是選站點(diǎn),第二個(gè)是資源在站點(diǎn)之間的調(diào)配。你可以想象這是一類通用的問(wèn)題。找出一個(gè)點(diǎn),使得很多人到這個(gè)點(diǎn)的平均時(shí)間最短化。通俗的例子,比如我們10個(gè)同學(xué)聚會(huì),選擇哪個(gè)地方聚會(huì),使得大家去的平均時(shí)間最短,這就是一個(gè)例子。我們救護(hù)車站、火警,凡是時(shí)間因素非常關(guān)鍵的選址都可選用這類模式。
第二個(gè),偏理論的例子。我剛才說(shuō)數(shù)據(jù)會(huì)缺失,要填補(bǔ),怎么填補(bǔ)?這是一個(gè)非常基礎(chǔ)的問(wèn)題,幾乎我們做所有的機(jī)器學(xué)習(xí)的人在第一步拿出數(shù)據(jù)的時(shí)候會(huì)發(fā)現(xiàn),這個(gè)數(shù)據(jù)質(zhì)量不好,有一些缺失??赡軅鞲衅鲏牧?,或者數(shù)據(jù)沒(méi)傳過(guò)來(lái)。我們拿的很多數(shù)據(jù)都是有缺的,氣象數(shù)據(jù)有缺的,空氣質(zhì)量有缺的,甚至包括車聯(lián)網(wǎng)里面數(shù)據(jù)很多都是會(huì)出現(xiàn)殘缺的,怎么填?這是一個(gè)很重要的問(wèn)題。
我們?cè)趺醋瞿??我們基本上就是利用缺失點(diǎn)時(shí)序以及空間鄰居的數(shù)據(jù),一起來(lái)把這個(gè)數(shù)據(jù)填滿,而不是僅僅只看自己的時(shí)間臨近值。至于怎么用、怎么填是有講究的,是用前一小時(shí)的數(shù)據(jù)還是用周邊的數(shù)據(jù),這個(gè)其實(shí)是比較難決策的過(guò)程。
這個(gè)問(wèn)題有幾個(gè)難點(diǎn),為什么很難?
第一,我們并不知道什么時(shí)候、什么地方數(shù)據(jù)缺,缺的是隨機(jī)的,不是固定的,導(dǎo)致我們很多機(jī)器學(xué)習(xí)模型不能用。因?yàn)槲覀冎罊C(jī)器學(xué)習(xí)的輸入,一定是有輸入的特征、維度,各種維度是固定的,如果你不知道哪個(gè)地方會(huì)缺、哪個(gè)地方會(huì)有,你的目標(biāo)在哪里都不知道,所以很難用一個(gè)很好的固定模型來(lái)做。甚至有時(shí)候會(huì)出現(xiàn)整體缺失,比如說(shuō)6個(gè)小時(shí)斷電了,所有傳感器沒(méi)有了,或者某一個(gè)傳感器連續(xù)5、6個(gè)小時(shí)都沒(méi)有數(shù)據(jù),怎么辦,這是一個(gè)難點(diǎn),把缺失的數(shù)據(jù)填完是很難的。
第二,我們往往覺(jué)得用臨近的差值就好了,但是臨近差值并不一定就對(duì),在很多應(yīng)用場(chǎng)景里,特別是我們城市環(huán)境里面很多應(yīng)用是不對(duì)的。用空氣質(zhì)量站點(diǎn)為例子,你們看這幾個(gè)站點(diǎn)里面,這兩個(gè)站點(diǎn)更近一點(diǎn),這個(gè)站點(diǎn)更遠(yuǎn)一點(diǎn),按理來(lái)講空氣質(zhì)量缺失的是用近的代替更好一點(diǎn),但實(shí)際發(fā)現(xiàn),雖然這個(gè)站點(diǎn)距離近,但是這個(gè)站點(diǎn)是在森林里面,而兩外兩個(gè)站點(diǎn)都在商業(yè)區(qū),商業(yè)區(qū)的空氣質(zhì)量更像,隨著這兩個(gè)商業(yè)區(qū)的位置比較遠(yuǎn)。因此,并不是越近的越像,還要看這些位置所處的環(huán)境,這會(huì)打破常規(guī)規(guī)律。時(shí)間上也是一樣的,當(dāng)然在平穩(wěn)的時(shí)候,是越接近的時(shí)刻空氣質(zhì)量越像,比如,這一個(gè)小時(shí)可能跟未來(lái)一個(gè)小時(shí)的空氣質(zhì)量接近。當(dāng)遇到大風(fēng)、極端天氣,出現(xiàn)陡降的時(shí)候,下一個(gè)小時(shí)的值可能驟降,還不如找更遠(yuǎn)的時(shí)間的空氣質(zhì)量還替代此刻的缺失值。時(shí)空臨近不一定都是對(duì)的,可能大部分都是對(duì)的,但不一定都對(duì)。
我們用幾個(gè)方法來(lái)解決這個(gè)問(wèn)題:
第一,從時(shí)、空兩個(gè)角度來(lái)解決
空間角度,就是可以用周邊的站點(diǎn)數(shù)據(jù)。簡(jiǎn)單來(lái)說(shuō),把這個(gè)數(shù)據(jù)放在矩陣?yán)锩?,每一行是傳感器,每一列就是時(shí)間點(diǎn),每個(gè)值就是這個(gè)傳感器在這個(gè)時(shí)間點(diǎn)的讀數(shù),這個(gè)叉的就是缺的地方。這個(gè)缺的時(shí)候用周邊的填,相當(dāng)于用行間的關(guān)系把它填了。
時(shí)間角度,根據(jù)一個(gè)傳感器自己的值,就是說(shuō)前后的值、左右的值來(lái)填它,這個(gè)傳感器前后時(shí)間值就對(duì)應(yīng)這個(gè)矩陣?yán)锩孀笥倚械闹怠?/p>
第二,從局部、全局兩個(gè)角度來(lái)解決
局部,是用最近的數(shù)據(jù)來(lái)填,假設(shè)我把最近的數(shù)據(jù)形成一個(gè)小的矩陣,我們通過(guò)矩陣的關(guān)系來(lái)推斷這個(gè)數(shù)值。
全局,是根據(jù)一個(gè)很長(zhǎng)歷史數(shù)據(jù),找到經(jīng)驗(yàn)性規(guī)律來(lái)填。 什么是全局,根據(jù)地理學(xué)第一定律,地球上越近的地方越像,大部分時(shí)候是滿足這個(gè)規(guī)律的。隨著距離的增加,兩個(gè)點(diǎn)之間的空氣質(zhì)量相似點(diǎn)就應(yīng)該下降,這個(gè)是正常的。往往都會(huì)用這種方法來(lái)做,跟距離成反比的線性加權(quán)關(guān)系。根據(jù)時(shí)間的話,一般都認(rèn)為時(shí)間越遠(yuǎn)越不像,不像一般是指數(shù)衰減,一般是用SDS,β是一個(gè)小于1的系數(shù),越遠(yuǎn)的越不像。這個(gè)是經(jīng)驗(yàn)公式,不一定都滿足,剛剛講的例子就不滿足,比如剛剛這兩個(gè)地方雖然近,反而更遠(yuǎn)的更像,是因?yàn)檫@兩個(gè)都是酒吧商業(yè)街,不見(jiàn)得這個(gè)地方就像,而且這個(gè)地方臨近的時(shí)候也不見(jiàn)得像。這部分?jǐn)?shù)據(jù)怎么辦呢?就靠你最近一段時(shí)間的數(shù)據(jù),我們不看長(zhǎng)遠(yuǎn)的,就看最近一段時(shí)間里面的數(shù)據(jù),把它形成一個(gè)local view。大家如果學(xué)過(guò)協(xié)同過(guò)濾,就是一個(gè)推薦的方法,我們把人看成一個(gè)傳感器,你就可以用基于用戶的方法和基于這個(gè)方法來(lái)做一個(gè)協(xié)同過(guò)濾。
總的來(lái)說(shuō),從時(shí)空來(lái)看,從局部全局看,2×2就有四種方法,對(duì)應(yīng)四個(gè)模型,四個(gè)視角。用局部的時(shí)間、局部的空間和全局的時(shí)間、全局的空間,你分別都會(huì)有一個(gè)結(jié)果,這四個(gè)結(jié)果做一個(gè)多視角的學(xué)習(xí)(Multiview learning),得到最優(yōu)解。每個(gè)模型的權(quán)重都是通過(guò)學(xué)習(xí)獲得的。
總的來(lái)說(shuō),我們是要考慮局部、全局、時(shí)間、空間的關(guān)系,綜合來(lái)填補(bǔ)缺失值。這個(gè)方法可以認(rèn)為是目前在時(shí)空數(shù)據(jù)差值里面最好的方法,幾乎在所有的方法里比較過(guò)是最好的。只要大家以后做傳感器,做時(shí)空數(shù)據(jù)的時(shí)候,拿到數(shù)據(jù)第一步發(fā)現(xiàn)缺,你要填,就用這個(gè)方法。
回到我們的城市計(jì)算第二個(gè)層面,剛剛講了城市感知層面,我們要看城市數(shù)據(jù)管理。要管好城市大數(shù)據(jù)就是三方面的東西,第一,時(shí)空數(shù)據(jù),這是時(shí)空的屬性,不是一般的文本,也不是視頻。第二,就是這種增強(qiáng)性的云平臺(tái),不是普通的云平臺(tái)。第三,時(shí)空的索引,就是查詢和檢索算法。
我為什么要講數(shù)據(jù)管理呢?今天是機(jī)器學(xué)習(xí)的論壇,講數(shù)據(jù)管理干什么呢?其實(shí)在真正的場(chǎng)景里面,如果沒(méi)有這一層,很多機(jī)器學(xué)習(xí)的算法可能只能停留在論文上,很難在真實(shí)系統(tǒng)落地,數(shù)據(jù)管理的人本身跟機(jī)器學(xué)習(xí)的人應(yīng)該有很好的合作關(guān)系,不是敵人,應(yīng)該有機(jī)的合作。通過(guò)后面的這些例子,大家就會(huì)明白了,真正想把機(jī)器學(xué)習(xí)從理論變成實(shí)際,解決問(wèn)題的話,還需要有數(shù)據(jù)管理的知識(shí),要對(duì)平臺(tái)有了解。
我們城市里面數(shù)據(jù)可能成千上萬(wàn)個(gè),但是根據(jù)數(shù)據(jù)的結(jié)構(gòu)來(lái)分的話其實(shí)就兩種,一個(gè)是點(diǎn)數(shù)據(jù),另一個(gè)是網(wǎng)數(shù)據(jù)。
根據(jù)數(shù)據(jù)關(guān)聯(lián)的時(shí)空屬性的變與不變與否,可以分成三類:1)是時(shí)間和空間都不變的,屬性都不變,靜態(tài)數(shù)據(jù);2)是空間不變、時(shí)間變;3)時(shí)、空都變。
現(xiàn)在聽(tīng)起來(lái)比較抽象,所以說(shuō)2×3是6組數(shù)據(jù),你們可以想,你心目中所有的數(shù)據(jù),我都會(huì)告訴你在哪兒。比如說(shuō)我們的興趣點(diǎn)數(shù)據(jù),什么叫興趣點(diǎn)?一個(gè)車站、一個(gè)酒吧、一個(gè)學(xué)校就是興趣點(diǎn),有坐標(biāo)、有地址、有名稱,一旦某個(gè)商場(chǎng)建好之后空間就不變了,有多少層樓、多少個(gè)窗戶也是固定的,所以時(shí)間和空間都是靜態(tài)的,這是點(diǎn)數(shù)據(jù)。
我們把傳感器放在好,位置不變,是個(gè)點(diǎn),可是每個(gè)讀數(shù)隨著時(shí)間變化,屬于空間不變、時(shí)間變。
時(shí)間和空間都變是什么呢?就像我們?nèi)ヲT摩拜單車,去打Uber,坐滴滴,用戶的數(shù)據(jù)就屬于時(shí)空散點(diǎn)數(shù)據(jù),比如2點(diǎn)有用戶請(qǐng)求了,2點(diǎn)半有用戶在另一個(gè)地方請(qǐng)求了,位置和位置是變化的,并且時(shí)間也在變。
什么是網(wǎng)絡(luò)數(shù)據(jù)呢?路網(wǎng)是靜態(tài)的,這個(gè)不變,時(shí)空都是靜態(tài)的網(wǎng)絡(luò)結(jié)構(gòu)數(shù)據(jù),一旦把交通流量疊加上來(lái)之后,就變成了空間靜態(tài),但是時(shí)間動(dòng)態(tài)的數(shù)據(jù)。什么是時(shí)間和空間都動(dòng)態(tài)并且網(wǎng)絡(luò)結(jié)構(gòu)信息呢?就是軌跡。我們可以想象一下,滴滴的軌跡,摩拜的軌跡,都屬于這個(gè)數(shù)據(jù),人類手機(jī)信號(hào)也屬于這類數(shù)據(jù),我們騎行也屬于這個(gè)數(shù)據(jù)。
所以在摩拜和滴滴里面有兩個(gè)數(shù)據(jù),一個(gè)是用戶請(qǐng)求數(shù)據(jù),一個(gè)是騎行數(shù)據(jù)和開(kāi)車數(shù)據(jù)。你隨便想,任何一種數(shù)據(jù)都能放到這六種之一,為什么定義六種?因?yàn)椴幌M?千種數(shù)據(jù),做1千個(gè)模型,1千種算法,這樣我的系統(tǒng)沒(méi)辦法承擔(dān)。一旦定義好這六種之后,可以對(duì)每種數(shù)據(jù)設(shè)定特定的管理算法、挖掘算法和機(jī)器學(xué)習(xí)算法,一旦有了數(shù)據(jù)之后,就能用這種方法套進(jìn)去去做。這里面軌跡數(shù)據(jù)是最難的,是信息量最豐富的,人類的出行,打電話的記錄,車的記錄,飛機(jī)的記錄,候鳥(niǎo)飛翔,颶風(fēng)移動(dòng),都屬于軌跡數(shù)據(jù),因?yàn)闀r(shí)間、空間都在變。
講完數(shù)據(jù)之后,講講平臺(tái)。異構(gòu)、多源、多模,是三個(gè)不同的東西。異構(gòu)就是結(jié)構(gòu)和非結(jié)構(gòu)的;多源就是來(lái)自于不同的領(lǐng)域和數(shù)據(jù)源(比如氣象和交通);多模,就是有文本的、影像的、語(yǔ)音的。在城市大數(shù)據(jù)里面,這三個(gè)是全部具備的,那我們也會(huì)同時(shí)處理這些東西。我們的應(yīng)用不是城市級(jí)別的,不是說(shuō)某個(gè)攝像頭放在一個(gè)地方,或者在一條路上,那不叫城市計(jì)算。要做就是整個(gè)城市規(guī)模全做,需求量就是上百萬(wàn)級(jí)、上千萬(wàn)級(jí)用戶規(guī)模,這種大的應(yīng)用場(chǎng)景,這么多的數(shù)據(jù),沒(méi)有好的平臺(tái)是做不到的,所以我們首先就會(huì)想到用云計(jì)算平臺(tái)。但是非常抱歉的告訴大家,現(xiàn)在不管哪一家公司的云計(jì)算平臺(tái),都不能很好的支持時(shí)空大數(shù)據(jù),也就是我們城市大數(shù)據(jù),為什么呢?
有三個(gè)原因:
第一,時(shí)空數(shù)據(jù)的結(jié)構(gòu)跟文本、圖像是非常不一樣的。大家可以想象我們拍了一個(gè)照片之后,這個(gè)照片始終是20K,拍的時(shí)候20K,永遠(yuǎn)是20K,不會(huì)說(shuō)隨著時(shí)間的變化不停的在變。但一輛車的軌跡在開(kāi)車的過(guò)程中是不斷增加的,而且軌跡中兩個(gè)點(diǎn)不能隨便交換,不像我們一般記錄學(xué)生成績(jī),把兩個(gè)學(xué)生成績(jī)兩行交換一下,并不能影響這個(gè)表格的準(zhǔn)確性,時(shí)空數(shù)據(jù)就不能交換。
第二,我們以前查詢文本的時(shí)候,可以把包含關(guān)鍵詞的文本拿出來(lái),但是我們做時(shí)空數(shù)據(jù)查詢的時(shí)候,往往是靠一個(gè)時(shí)空范圍,比如說(shuō)查找我周邊最近2分鐘內(nèi)空駛的出租車,查找過(guò)去兩分鐘所有這個(gè)樓周邊的摩拜單車哪個(gè)是空的,這都是空間加時(shí)間范圍查詢,它不是一個(gè)Keyword Match的問(wèn)題。甚至比如說(shuō)在開(kāi)車的過(guò)程中查找最近的加油站在哪里,車的位置還在變的,這都是在云計(jì)算平臺(tái)里都不直接支持。
第三,真正要做城市大數(shù)據(jù)項(xiàng)目的時(shí)候,你發(fā)現(xiàn)絕對(duì)不是只用一種數(shù)據(jù),會(huì)用到多種數(shù)據(jù),而且還要把多種數(shù)據(jù)的知識(shí)融合在一起。要融合多源數(shù)據(jù)的話,先不把各類數(shù)據(jù)管理好,不把它有機(jī)的索引在一起,到時(shí)候根本來(lái)不及做快速融合的問(wèn)題,這就叫混合式索引,數(shù)據(jù)和數(shù)據(jù)關(guān)聯(lián)起來(lái),把不同領(lǐng)域數(shù)據(jù)融合在一起。
這三個(gè)技術(shù)在現(xiàn)在的云平臺(tái)里面都是缺失的。
基于這樣的挑戰(zhàn),2015年在貴陽(yáng)市,貴陽(yáng)是城市大數(shù)據(jù)示范基地,我們落地了中國(guó)第一個(gè)真正意義上的城市大數(shù)據(jù)平臺(tái)。
首先,我們定義了六種數(shù)據(jù)模型,剛剛介紹過(guò),根據(jù)數(shù)據(jù)結(jié)構(gòu)、時(shí)空屬性變與不變,2*3=6種模型,不管什么數(shù)據(jù),都能用這六種模型中的一種把數(shù)據(jù)裝進(jìn)去。我們利用了Azure本身的存儲(chǔ)機(jī)制,我們并不是什么都自己做,全部自己做沒(méi)有必要,我們是用這個(gè)來(lái)增強(qiáng)。這個(gè)很重要,我們?cè)谶@個(gè)層面上加入了一個(gè)中間層,我們針對(duì)不同的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)了空間索引和時(shí)間索引算法,以及針對(duì)于多源數(shù)據(jù)之間的跨域管理做了混合式索引,把時(shí)空索引算法集成到 Storm、Hadoop、Spark里面去,向上提供API給我們的機(jī)器學(xué)習(xí)算法來(lái)用,使得我們的機(jī)器學(xué)習(xí)算法能夠快速的訪問(wèn)大規(guī)模數(shù)據(jù)。如果你沒(méi)有這個(gè),你發(fā)現(xiàn)你真的上大系統(tǒng)的時(shí)候,我們連特征提取都還沒(méi)做,這個(gè)任務(wù)的時(shí)間期限就到了,等不及你了。因?yàn)楹芏鄷r(shí)候就是1秒鐘、2秒鐘就給我一個(gè)結(jié)果出來(lái),如果我們光做特征提取就需要花了一兩個(gè)小時(shí),模型怎么上線,所以必須要有平臺(tái)來(lái)支持。這里邊既有分布式,也有索引,以前大家都說(shuō),我們有分布式系統(tǒng)了,不要索引了,那是不對(duì)的,我們可以結(jié)合在一起。有的時(shí)候你用100臺(tái)機(jī)器學(xué)習(xí)做的事情,我可能2臺(tái)機(jī)器就能做,因?yàn)橛辛怂饕头植际降慕Y(jié)合。
為了看平臺(tái)的規(guī)律,給大家看幾個(gè)例子。
這個(gè)是在貴陽(yáng)市布充電樁的例子。假設(shè)根據(jù)過(guò)去一年車的軌跡信息,我們?cè)谶@個(gè)區(qū)域內(nèi)放五個(gè)充電樁,我應(yīng)該放在哪五個(gè)路口,使這五個(gè)路口加在一起,覆蓋的車的數(shù)量最大化,我強(qiáng)調(diào)一下,我們不是找最熱門(mén)的前五個(gè)路口,沒(méi)有意義,因?yàn)榭赡茏顭衢T(mén)的前五個(gè)路口都挨著,經(jīng)過(guò)第一個(gè)路口就經(jīng)過(guò)第二個(gè)路口,我是說(shuō)五個(gè)路口加在一起覆蓋的車總數(shù)最大化,就是不重復(fù)的車最大化。
以前做這個(gè)工作的時(shí)候,一輪結(jié)果計(jì)算需要8個(gè)小時(shí)到一天,因?yàn)橛?jì)算量非常大。現(xiàn)在有個(gè)平臺(tái),3秒鐘以內(nèi)做出來(lái),為什么需要做這么快呢?這又回到行業(yè)了,我們知道真正布充電樁的時(shí)候有很多因素要考慮,還有很多專業(yè)的要求,比如說(shuō)這邊是不是有空地,這周邊有沒(méi)有商場(chǎng),有沒(méi)有飯店來(lái)容納我們的人,我們充電2—3個(gè)小時(shí)人去哪里,不能讓他蹲在馬路邊,這些條件不符合的時(shí)候,可以允許用戶把這某個(gè)推薦的點(diǎn)刪掉,保留其他幾個(gè)點(diǎn),然后讓算法回去再算,直到我得到一個(gè)滿意的結(jié)果為止。
這個(gè)其實(shí)是變成一個(gè)新的概念——人機(jī)學(xué)習(xí)。新的時(shí)代已經(jīng)是人的智能加機(jī)器智能合在一起。要實(shí)現(xiàn)人機(jī)智能,一定要提供一個(gè)交互的方法,把人的智能帶進(jìn)去。這個(gè)例子里面就是,我們先給算法一些簡(jiǎn)單規(guī)則,讓算法找到一些初始的結(jié)果,讓行業(yè)專家去看這些結(jié)果,用他的經(jīng)驗(yàn)去判斷這個(gè)點(diǎn)是否合適,需要?jiǎng)h除掉還是加一個(gè)點(diǎn),這樣把人的知識(shí)和機(jī)器的知識(shí)融合在一起,同時(shí)把數(shù)據(jù)科學(xué)知識(shí)跟專業(yè)行業(yè)知識(shí)融合在一起。
這非常重要,往往我們做大數(shù)據(jù)、做機(jī)器學(xué)習(xí)的時(shí)候到會(huì)遇到最后一步落地困難的問(wèn)題,我們只有數(shù)據(jù)科學(xué)知識(shí),缺少行業(yè)知識(shí),但真正解決問(wèn)題兩者是缺一不可。行業(yè)的人往往不懂機(jī)器學(xué)習(xí)。此外,行業(yè)專家心中有很多復(fù)雜條件,他不一定能很好的量化和表達(dá)出來(lái)。此時(shí),利用機(jī)器學(xué)習(xí)驅(qū)動(dòng)的交互可視分析的方法可以彌補(bǔ)兩者之間的鴻溝。
正是因?yàn)橐ㄟ^(guò)迭代、交互才能實(shí)現(xiàn)人機(jī)融合,保證算法執(zhí)行的效率和性能就變得很重要。你想想,如果我們給算法一個(gè)反饋,要等一天才能看結(jié)果,人怎么能跟機(jī)器交互呢。只有像視頻里那樣,專家給出反饋,算法馬上出結(jié)果,才能做到真正的吧人機(jī)智能交互和融合。要想獲得這樣的性能,剛才展現(xiàn)的那個(gè)城市大數(shù)據(jù)平臺(tái)就變得必不可少。
這個(gè)問(wèn)題剛剛說(shuō)應(yīng)用是在充電樁的選址,實(shí)際上廣告牌的選址是一樣的。很多時(shí)候說(shuō)我們只有有限的錢(qián)放廣告牌,我們放在哪幾個(gè)路口使得覆蓋最大化呢。跟我前面講的救護(hù)車那個(gè)不一樣,那個(gè)是時(shí)間最優(yōu)化,這是一個(gè)覆蓋范圍最優(yōu)化的問(wèn)題。
沒(méi)有平臺(tái),別想交互,別想跟人機(jī)智能結(jié)合,那我們也解決不了實(shí)際的行業(yè)問(wèn)題,因?yàn)槟隳眠@個(gè)結(jié)果給專家看的時(shí)候,我們還有很多因素沒(méi)考慮呢,這個(gè)初步的結(jié)果可能根本沒(méi)用。所以這也是一個(gè)行業(yè)知識(shí)跟機(jī)器學(xué)習(xí)結(jié)合的例子。
關(guān)于鄭教授分享課報(bào)道的其他部分,敬請(qǐng)期待雷鋒網(wǎng)的后續(xù)報(bào)道。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。