天天看點

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

3月3日,中國人工智能學會aidl第二期【人工智能前沿講習班】在北京中科院自動化所舉行,本期講習班的主題為【機器學習前沿】。周志華教授擔任學術主任,前來授課的嘉賓均為中國機器學習界一流專家、資深科研人員和企業精英,包括:耿新、郭天佑、劉鐵岩、王立威、葉傑平、于劍、餘揚、張長水、鄭宇、朱軍。
分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)
分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

 鄭宇

微軟研究院城市計算領域負責人、資深主任研究員、上海交通大學講座教授、香港科技大學客座教授、人工智能國際權威期刊 acm tist 主編、美國計算機學會傑出科學家,acm資料挖掘中國分會(kdd china)秘書長。2013年被mit technology reivew評為全球傑出青年創新者(tr35)。在國際頂尖會議和期刊上發表論文百餘篇,論文被引用12000多次, h-index  53(google scholar,截至2017-3-15),2016年論文單年被引用3200餘次。

本文根據鄭宇教授在中國人工智能學會aidl第二期人工智能前沿講習班*機器學習前沿所作報告《多源資料融合與時空資料》編輯整理而來,本文在未改變原意的基礎上略作了删減。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

謝謝介紹,謝謝邀請!大家經常聽到的機器學習、人工智能這些概念,大部分應用案例都是在圖形圖像以及自然語言處理方面,在城市裡跟我們生活比較接近的,特别是應用在時空資料的例子比較少。現在我就用城市大資料為例子,來說明一下機器學習如何應用于時空資料領域。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

雖然我們今天主題是叫機器學習,但是我想你們肯定想,機器學習到底能解決什麼城市問題。在機器學習真正落地的過程中,可能還要依托于其他的平台甚至于其他的學科,包括資料管理。我就成體系地講講到底機器學習算法怎麼改變我們生活中的方方面面。

從最下面的層面來看,城市資料感覺這部分,其實每個層面都發現我們都需要用機器學習的方法來做一些事情,這個層面是概念上劃分的,實際說是互相有交集的。

我們看城市資料的擷取,擷取方式主要有兩種:

第一種,以傳統傳感器為感覺的方法

第二種,以人為中心的感覺方法

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

第一個,以傳統傳感器的感覺方法進一步可以分成兩個子類,要麼把傳感器放在一些固定的地方,要麼把傳感器裝在一些移動的物體上面,比如說在公共汽車、計程車上裝傳感器,但是不管哪一種,一旦裝完之後人就不參與了,這個資料自動傳到我們背景。

另外一個,以人為中心的感覺,這是比較新的概念,也叫群體感覺,這裡面也分成兩個方面,一個叫做被動式群體感覺,一個叫主動式群體感覺。被動式群體感覺,每天每個人都在參與,我們并不知道我們打電話的時候,我們的資料可以拿去改進通話網絡的品質;我們并不知道我們公共汽車上下車刷卡的時候,這個資料可以幫助優化我們的公交線路,改進城市規劃。把每個人的資料收集在一起,感覺城市的變化,最後解決問題,這叫做被動式群體感覺。主動式群體感覺就是,任務是什麼很明确,什麼時間、什麼地點、幹什麼事情、共享用什麼資料,這個資料拿來幹什麼用都很清楚,甚至還有激勵機制,你可以選擇什麼時候加入或不加入。這是目前城市資料來源的四種方式。

城市感覺之後我們會遇到什麼樣的難點呢,特别是跟機器學習有什麼相關性,我總結了四個方面的難點,跟機器學習相關的難點。

第一,我們在城市資料感覺的時候,往往拿到的是采樣資料,不是全集。

假設整個城市資料是灰色的點,我們可能隻拿到紅色的這一部分,某些屬性在這些采樣資料上分布跟在全集資料上的分布很不一樣。舉個執行個體,比如可以拿到計程車的gps軌迹(資料),我們知道計程車隻是整個城市裡面車流的一小部分,計程車的分布跟我們私家車的分布可能很不一樣,有的地方可能很多計程車,但是沒有那麼多私家車,反過來,可能有的地方很多私家車,卻沒有什麼計程車。是以你不能說簡單看到幾個計程車,乘一個系數就推斷有多少私家車,這個就是偏斜的分布問題,不管哪個場景裡,發現我們拿到的都是采樣,如何從這些采樣資料裡面把全集的知識推斷出來,比如說怎麼把整個城市裡面所有車的車流量實時推斷出來,這就是對應的難點。這個地方有相應的論文,如果你對這個問題感興趣的話,類似的問題可以從這些論文裡找到相關的技術,我先把它概述一下,這是第一個難點。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

第二,data sparsity,我們的傳感器往往是很少的

舉個例子,我們北京市空氣品質分析。北京市我們建了35個空氣品質站點,你知道北京那麼大,光靠這35個空氣品質站點,怎麼把整個北京市每個角落的空氣品質都能夠感覺到呢,這是一個資料稀疏的問題,這裡面要用到一些機器學習的方法來做。

第三,data missing的問題

這個問題可能很多人認為跟data sparsity是同一個問題,其實不是同一個問題.。data sparsity是采樣點很少,data missing是說本來就應該有個點,可是因為傳感器出現故障,導緻這個小時的資料會丢失。data missing是一個雪上加霜的問題,不是同一個問題,一個是說傳感器少,一個說我本來有傳感器可能還會丢,怎麼去把這個丢失的資料填滿,這可能是很多問題需要做的預處理的第一步,後面學習的時候就要填,怎麼填一下等下我來講。data sparsity、data missing,這是第二和第三大挑戰。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

第四,資源有限

如何用有限的資源做更多的事情,采更多的資料,如何利用限的資源獲得更大的感覺效果,這是非常困難的。為什麼困難?兩個原因,第一,我們有很多候選集可以選,從很大的資料集裡面選一部分資料的時候,往往是一個np的問題。比如,我們城市那麼大,每個路口都可以布充電樁或者加油站,而我隻有錢布2到3個充電樁,我應該放在什麼位置,使得效果最大化。這就是一個maximum coverage的問題。還有一個原因會導緻問題更難,即我們根本不知道ground truth。假設北京已經有兩個空氣品質監測站點,我們還要建4個,我們要放在什麼地方使得空氣品質感覺最大化,你沒有建站點之前不知道這個空氣品質多少,根本不知道什麼叫好、什麼叫壞,這是難點,裡面都有相關的論文去解決這樣的問題。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

現在講完城市感覺的一些挑戰和采集的方法之後,我們來看一個比較真實的例子。先看一個偏應用的,再看一個偏理論的。先看比較偏應用的。

我們都知道120系統,病人打電話到急救中心,急救中心會從救護車站派車把人送到醫院,再傳回到救護車站。救護車站并不都在醫院,有很多原因。

第一,救護車營運系統和醫院其實是兩個不同的系統; 第二,很多時候我們必須要把救護車放在某個地方(不是在醫院),要保證對任何一個呼救,救護車能在規定的時間内能夠到達搶救地點。如果車都放到醫院裡面,必然有的地方就會太遠,使得救護車不能在規定時間内到達,搶救病人。

下圖是天津市的一個救護車站站點的分布圖。以前站點的選址,可以說基本上是拍腦袋決定,比如根據一個地方大概的總人口數、路網密度來布置站點。大家知道120的需求量跟人口數并不一定成比例,還跟人的身體健康狀況、年齡結構有關。現在我們有了真實的120求救資料,我們知道什麼時間、什麼地方,有多少人求救。以及救護車在急救過程中他們的gps軌迹、花了多少時間,通過我們的方法、算法重新對站點的位置選址和布局,使得救護車救這麼多病人平均搶救時間最小化。通過我們的算法重新選址後,我們能夠把搶救時間縮短30%。比如,以前救100個病人假設花100個小時,現在隻需要花70個小時,還是那麼多車、還是那麼多站點,我們卻能更快地把病人送到醫院。把時間節約下來留在在手術室搶救病人的生命,這是人命關天的事情,是資源排程優化的問題。這個站點如何部署就很有講究了,你放的好和不好就會有很大的差別。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

第一步放完站點之後,第二步,這個站點裡面的車的數量不是固定的,有的地方早上需求量較大,有的地方晚上需求量較大,不能說車從早到晚一直放在某個站點,浪費了。這個車在站點之間如何動态調配,使得我們的資源最大化,這是問題。這是我們解決這個問題裡邊兩個研究的點,這兩個技術分别幹什麼事情,第一個是選站點,第二個是資源在站點之間的調配。你可以想象這是一類通用的問題。找出一個點,使得很多人到這個點的平均時間最短化。通俗的例子,比如我們10個同學聚會,選擇哪個地方聚會,使得大家去的平均時間最短,這就是一個例子。我們救護車站、火警,凡是時間因素非常關鍵的選址都可選用這類模式。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

我們怎麼做呢?我們基本上就是利用缺失點時序以及空間鄰居的資料,一起來把這個資料填滿,而不是僅僅隻看自己的時間臨近值。至于怎麼用、怎麼填是有講究的,是用前一小時的資料還是用周邊的資料,這個其實是比較難決策的過程。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

這個問題有幾個難點,為什麼很難?

第一,我們并不知道什麼時候、什麼地方資料缺,缺的是随機的,不是固定的,導緻我們很多機器學習模型不能用。因為我們知道機器學習的輸入,一定是有輸入的特征、次元,各種次元是固定的,如果你不知道哪個地方會缺、哪個地方會有,你的目标在哪裡都不知道,是以很難用一個很好的固定模型來做。甚至有時候會出現整體缺失,比如說6個小時斷電了,所有傳感器沒有了,或者某一個傳感器連續5、6個小時都沒有資料,怎麼辦,這是一個難點,把缺失的資料填完是很難的。

第二,我們往往覺得用臨近的內插補點就好了,但是臨近內插補點并不一定就對,在很多應用場景裡,特别是我們城市環境裡面很多應用是不對的。用空氣品質站點為例子,你們看這幾個站點裡面,這兩個站點更近一點,這個站點更遠一點,按理來講空氣品質缺失的是用近的代替更好一點,但實際發現,雖然這個站點距離近,但是這個站點是在森林裡面,而兩外兩個站點都在商業區,商業區的空氣品質更像,随着這兩個商業區的位置比較遠。是以,并不是越近的越像,還要看這些位置所處的環境,這會打破正常規律。時間上也是一樣的,當然在平穩的時候,是越接近的時刻空氣品質越像,比如,這一個小時可能跟未來一個小時的空氣品質接近。當遇到大風、極端天氣,出現陡降的時候,下一個小時的值可能驟降,還不如找更遠的時間的空氣品質還替代此刻的缺失值。時空臨近不一定都是對的,可能大部分都是對的,但不一定都對。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

我們用幾個方法來解決這個問題:

第一,從時、空兩個角度來解決

空間角度,就是可以用周邊的站點資料。簡單來說,把這個資料放在矩陣裡面,每一行是傳感器,每一列就是時間點,每個值就是這個傳感器在這個時間點的讀數,這個叉的就是缺的地方。這個缺的時候用周邊的填,相當于用行間的關系把它填了。

時間角度,根據一個傳感器自己的值,就是說前後的值、左右的值來填它,這個傳感器前後時間值就對應這個矩陣裡面左右行的值。

第二,從局部、全局兩個角度來解決

局部,是用最近的資料來填,假設我把最近的資料形成一個小的矩陣,我們通過矩陣的關系來推斷這個數值。

全局,是根據一個很長曆史資料,找到經驗性規律來填。 什麼是全局,根據地理學第一定律,地球上越近的地方越像,大部分時候是滿足這個規律的。随着距離的增加,兩個點之間的空氣品質相似點就應該下降,這個是正常的。往往都會用這種方法來做,跟距離成反比的線性權重關系。根據時間的話,一般都認為時間越遠越不像,不像一般是指數衰減,一般是用sds,β是一個小于1的系數,越遠的越不像。這個是經驗公式,不一定都滿足,剛剛講的例子就不滿足,比如剛剛這兩個地方雖然近,反而更遠的更像,是因為這兩個都是酒吧商業街,不見得這個地方就像,而且這個地方臨近的時候也不見得像。這部分資料怎麼辦呢?就靠你最近一段時間的資料,我們不看長遠的,就看最近一段時間裡面的資料,把它形成一個local view。大家如果學過協同過濾,就是一個推薦的方法,我們把人看成一個傳感器,你就可以用基于使用者的方法和基于這個方法來做一個協同過濾。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

總的來說,從時空來看,從局部全局看,2×2就有四種方法,對應四個模型,四個視角。用局部的時間、局部的空間和全局的時間、全局的空間,你分别都會有一個結果,這四個結果做一個多視角的學習(multiview learning),得到最優解。每個模型的權重都是通過學習獲得的。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

總的來說,我們是要考慮局部、全局、時間、空間的關系,綜合來填補缺失值。這個方法可以認為是目前在時空資料內插補點裡面最好的方法,幾乎在所有的方法裡比較過是最好的。隻要大家以後做傳感器,做時空資料的時候,拿到資料第一步發現缺,你要填,就用這個方法。

回到我們的城市計算第二個層面,剛剛講了城市感覺層面,我們要看城市資料管理。要管好城市大資料就是三方面的東西,第一,時空資料,這是時空的屬性,不是一般的文本,也不是視訊。第二,就是這種增強性的雲平台,不是普通的雲平台。第三,時空的索引,就是查詢和檢索算法。

我為什麼要講資料管理呢?今天是機器學習的論壇,講資料管理幹什麼呢?其實在真正的場景裡面,如果沒有這一層,很多機器學習的算法可能隻能停留在論文上,很難在真實系統落地,資料管理的人本身跟機器學習的人應該有很好的合作關系,不是敵人,應該有機的合作。通過後面的這些例子,大家就會明白了,真正想把機器學習從理論變成實際,解決問題的話,還需要有資料管理的知識,要對平台有了解。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

我們城市裡面資料可能成千上萬個,但是根據資料的結構來分的話其實就兩種,一個是點資料,另一個是網資料。

根據資料關聯的時空屬性的變與不變與否,可以分成三類:1)是時間和空間都不變的,屬性都不變,靜态資料;2)是空間不變、時間變;3)時、空都變。

現在聽起來比較抽象,是以說2×3是6組資料,你們可以想,你心目中所有的資料,我都會告訴你在哪兒。比如說我們的興趣點資料,什麼叫興趣點?一個車站、一個酒吧、一個學校就是興趣點,有坐标、有位址、有名稱,一旦某個商場建好之後空間就不變了,有多少層樓、多少個窗戶也是固定的,是以時間和空間都是靜态的,這是點資料。

我們把傳感器放在好,位置不變,是個點,可是每個讀數随着時間變化,屬于空間不變、時間變。

什麼是網絡資料呢?路網是靜态的,這個不變,時空都是靜态的網絡結構資料,一旦把交通流量疊加上來之後,就變成了空間靜态,但是時間動态的資料。什麼是時間和空間都動态并且網絡結構資訊呢?就是軌迹。我們可以想象一下,滴滴的軌迹,摩拜的軌迹,都屬于這個資料,人類手機信号也屬于這類資料,我們騎行也屬于這個資料。

是以在摩拜和滴滴裡面有兩個資料,一個是使用者請求資料,一個是騎行資料和開車資料。你随便想,任何一種資料都能放到這六種之一,為什麼定義六種?因為不希望拿1千種資料,做1千個模型,1千種算法,這樣我的系統沒辦法承擔。一旦定義好這六種之後,可以對每種資料設定特定的管理算法、挖掘算法和機器學習算法,一旦有了資料之後,就能用這種方法套進去去做。這裡面軌迹資料是最難的,是資訊量最豐富的,人類的出行,打電話的記錄,車的記錄,飛機的記錄,候鳥飛翔,飓風移動,都屬于軌迹資料,因為時間、空間都在變。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

講完資料之後,講講平台。異構、多源、多模,是三個不同的東西。異構就是結構和非結構的;多源就是來自于不同的領域和資料源(比如氣象和交通);多模,就是有文本的、影像的、語音的。在城市大資料裡面,這三個是全部具備的,那我們也會同時處理這些東西。我們的應用不是城市級别的,不是說某個攝像頭放在一個地方,或者在一條路上,那不叫城市計算。要做就是整個城市規模全做,需求量就是上百萬級、上千萬級使用者規模,這種大的應用場景,這麼多的資料,沒有好的平台是做不到的,是以我們首先就會想到用雲計算平台。但是非常抱歉的告訴大家,現在不管哪一家公司的雲計算平台,都不能很好的支援時空大資料,也就是我們城市大資料,為什麼呢?

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

有三個原因:

第一,時空資料的結構跟文本、圖像是非常不一樣的。大家可以想象我們拍了一個照片之後,這個照片始終是20k,拍的時候20k,永遠是20k,不會說随着時間的變化不停的在變。但一輛車的軌迹在開車的過程中是不斷增加的,而且軌迹中兩個點不能随便交換,不像我們一般記錄學生成績,把兩個學生成績兩行交換一下,并不能影響這個表格的準确性,時空資料就不能交換。

第二,我們以前查詢文本的時候,可以把包含關鍵詞的文本拿出來,但是我們做時空資料查詢的時候,往往是靠一個時空範圍,比如說查找我周邊最近2分鐘内空駛的計程車,查找過去兩分鐘所有這個樓周邊的摩拜單車哪個是空的,這都是空間加時間範圍查詢,它不是一個keyword match的問題。甚至比如說在開車的過程中查找最近的加油站在哪裡,車的位置還在變的,這都是在雲計算平台裡都不直接支援。

第三,真正要做城市大資料項目的時候,你發現絕對不是隻用一種資料,會用到多種資料,而且還要把多種資料的知識融合在一起。要融合多源資料的話,先不把各類資料管理好,不把它有機的索引在一起,到時候根本來不及做快速融合的問題,這就叫混合式索引,資料和資料關聯起來,把不同領域資料融合在一起。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

這三個技術在現在的雲平台裡面都是缺失的。

基于這樣的挑戰,2015年在貴陽市,貴陽是城市大資料示範基地,我們落地了中國第一個真正意義上的城市大資料平台。

分享課丨微軟研究院資深主任研究員鄭宇教授:多源資料融合與時空資料挖掘(一)

為了看平台的規律,給大家看幾個例子。

這個是在貴陽市布充電樁的例子。假設根據過去一年車的軌迹資訊,我們在這個區域内放五個充電樁,我應該放在哪五個路口,使這五個路口加在一起,覆寫的車的數量最大化,我強調一下,我們不是找最熱門的前五個路口,沒有意義,因為可能最熱門的前五個路口都挨着,經過第一個路口就經過第二個路口,我是說五個路口加在一起覆寫的車總數最大化,就是不重複的車最大化。

以前做這個工作的時候,一輪結果計算需要8個小時到一天,因為計算量非常大。現在有個平台,3秒鐘以内做出來,為什麼需要做這麼快呢?這又回到行業了,我們知道真正布充電樁的時候有很多因素要考慮,還有很多專業的要求,比如說這邊是不是有空地,這周邊有沒有商場,有沒有飯店來容納我們的人,我們充電2—3個小時人去哪裡,不能讓他蹲在馬路邊,這些條件不符合的時候,可以允許使用者把這某個推薦的點删掉,保留其他幾個點,然後讓算法回去再算,直到我得到一個滿意的結果為止。

這個其實是變成一個新的概念——人機學習。新的時代已經是人的智能加機器智能合在一起。要實作人機智能,一定要提供一個互動的方法,把人的智能帶進去。這個例子裡面就是,我們先給算法一些簡單規則,讓算法找到一些初始的結果,讓行業專家去看這些結果,用他的經驗去判斷這個點是否合适,需要删除掉還是加一個點,這樣把人的知識和機器的知識融合在一起,同時把資料科學知識跟專業行業知識融合在一起。

這非常重要,往往我們做大資料、做機器學習的時候到會遇到最後一步落地困難的問題,我們隻有資料科學知識,缺少行業知識,但真正解決問題兩者是缺一不可。行業的人往往不懂機器學習。此外,行業專家心中有很多複雜條件,他不一定能很好的量化和表達出來。此時,利用機器學習驅動的互動可視分析的方法可以彌補兩者之間的鴻溝。

正是因為要通過疊代、互動才能實作人機融合,保證算法執行的效率和性能就變得很重要。你想想,如果我們給算法一個回報,要等一天才能看結果,人怎麼能跟機器互動呢。隻有像視訊裡那樣,專家給出回報,算法馬上出結果,才能做到真正的吧人機智能互動和融合。要想獲得這樣的性能,剛才展現的那個城市大資料平台就變得必不可少。

這個問題剛剛說應用是在充電樁的選址,實際上廣告牌的選址是一樣的。很多時候說我們隻有有限的錢放廣告牌,我們放在哪幾個路口使得覆寫最大化呢。跟我前面講的救護車那個不一樣,那個是時間最優化,這是一個覆寫範圍最優化的問題。

沒有平台,别想互動,别想跟人機智能結合,那我們也解決不了實際的行業問題,因為你拿這個結果給專家看的時候,我們還有很多因素沒考慮呢,這個初步的結果可能根本沒用。是以這也是一個行業知識跟機器學習結合的例子。

本文來源于"中國人工智能學會",原文發表時間" 2017-03-21 "

繼續閱讀