1. 程式人生 > 其它 >JUST技術:利用軌跡拼接分析實時可達區域

JUST技術:利用軌跡拼接分析實時可達區域

如何快速得知從你的位置開始出發,在當前的交通狀況下,5分鐘之內能夠抵達的空間區域範圍?當你掏出手機打車時,計程車排程平臺應該通知哪些範圍的車主進行接單?本文將帶來被國際著名資料庫和資料探勘會議DASFAA 2020 (CCF B類)成功接收的、JUST團隊與武漢大學、西安電子科技大學、西南交通大學合作的論文:《Discovering Real-Time Reachable Area using Trajectory Connections》[2],作者為:Ruiyuan Li,Jie Bao,Huajun He,Sijie Ruan,Tianfu He,Liang Hong,Zhongyuan Jiang,Yu Zheng。相關的技術也已經獲得了專利局授權[3]。

1. 問題背景

什麼叫做實時可達區域?我們先給出一個系統展示例子(該系統讀者可以通過連結http://r-area.urban-computing.com/訪問)。如圖1所示,當用戶選擇一個時間預算t,在地圖上選擇一個點q,該系統會返回從q點出發,t時間範圍內,考慮到當前交通狀況下,能夠到達的路段。這些路段構成的區域稱為實時可達區域。我們將這個過程稱為實時可達區域分析。

圖1 實時可達區域分析的系統展示

實時可達區域分析在很多城市應用中都非常有用:1)基於地點的推薦。如圖2(a)所示,使用者想要找到從他/她當前位置(紅色五角星處)5分鐘之內抵達的餐館;2)車輛排程。如圖2(b)所示,使用者需要找到10分鐘之內能夠打上的計程車。計程車公司需要使用實時可達區域分析演算法找到所有那些滿足條件的計程車司機。此外,在一些緊急排程系統中實時可達區域分析也非常重要,例如,當一個地方發生車禍時,應該儘快通知那些20分鐘內能夠抵達事故現場的警車或者救護車。

圖2 實時可達區域分析的應用場景

最基本的方法是利用基於歐式距離或者路網距離的靜態空間範圍查詢找到可達區域範圍,例如方圓1公里的區域範圍。然而這種方法忽略了在不同時間段下交通狀況的不同。一種較好的方法是,首先評估出每條路段的通行時間,然後利用路網擴張的方法找到實時可達區域範圍。但是這種方法忽略了交叉路口的延遲,給出的空間範圍也不準確。ICDE 2017年的一篇文章[1]提出了一種更好的找到可達區域範圍查詢的方法。它將歷史同一時段經過查詢點q的軌跡在t時間內經過的路段作為可達區域範圍。但是它卻忽略了實時的交通狀況,例如影響交通的天氣、車禍或者封路等資訊。於是我們想到,能否只用最近一段時間(例如最近半小時)產生的軌跡,採用文獻[1]的技術來分析實時可達區域範圍?因為最近一段時間的軌跡能夠反映出交通狀況資訊。但是,由於在段時間內經過查詢點q的軌跡數目很少,我們可能遇到低覆蓋率的問題。如圖3(a)所示,紅色的區域明顯可以抵達,但是由於最近一段之間內沒有剛好經過出發點到達紅色區域的軌跡,因此紅色區域沒有返回。為了解決這個問題,我們提出了一種軌跡拼接的技術,如圖3(b)所示。如果兩條軌跡同時經過了同一個地點,它們就能夠相互拼接,例如軌跡tr3和tr4。

圖3 實時軌跡的低覆蓋率問題,以及解決思路

我們發現,通過軌跡拼接返回的可達區域與軌跡拼接的次數非常相關。令軌跡拼接的次數為k。如圖4所示,當軌跡拼接次數越大時,返回的可達區域也越大,但是返回的區域就越不靠譜(我們稱之為可靠性)。我們評估了利用軌跡評估道路通行時間誤差與軌跡拼接的次數的關係,如圖5所示。由圖可知,當軌跡拼接的次數小於5時,通行時間的預估誤差小於5%,這就保證了可達區域分析的高可靠性。

圖4 軌跡拼接次數與可達區域大小之間的關係

圖5 道路時間預估誤差與軌跡拼接次數之間的關係

但是,我們仍然會遇到兩個問題。1)如何確定具體的k值呢?2)軌跡拼接的引入,可能會帶來組合爆炸的問題,因為遊戲交易平臺地圖軌跡可能在任何地方進行拼接。對於第一個問題,我們可以利用機器學習的技術來決定在不同時間、不同地點的最佳k值;對於第二個問題,我們可以構建有效的索引機制對搜尋空間進行剪枝,提高查詢分析效率。

2. 基本框架

圖6是我們提出的解決方案的基本框架,其包含2個部分:離線學習階段和線上處理階段。在離線學習階段,我們首先利用歷史的軌跡資訊產生學習的標籤,然後從不同的資料來源中抽取一些時空特徵,最後訓練k值預測模型。線上處理階段,我們接受實時的軌跡資料,並用京東城市時空資料引擎JUST(http://just.urban-computing.cn)提供的能力對軌跡資料進行去噪和地圖匹配。地圖匹配後的軌跡一方面用於構建索引,另一方面,與其他的資料一起,抽取出一些實時時空特徵,用於k值的預測。當用戶的實時可達區域分析請求到來時,查詢處理模組利用構建好的索引以及離線訓練好的模型,快速分析使用者查詢點的實時可達區域。接下來,我們將分別詳細介紹索引構建機制和k值預測技術。

圖6 演算法基本框架

3. 跳圖索引(Skip Graph Index,SG Index)為了高效支援任意軌跡拼接的實時可達區域分析,我們提出了一種新的索引,稱之為跳圖索引(SG Index)。SG Index的基本思想是,我們發現一些軌跡被另外的軌跡支配。例如圖7(a)所示,軌跡tr4在路段C->B中比軌跡tr3更慢,我們稱軌跡tr4在路段C->B上被tr3支配。保留軌跡tr4只會給我們帶來計算複雜度的提升。基於此,我們僅僅利用那些任意兩點之間最快的軌跡來構建SG Index。如圖7(b)是軌跡資料集圖7(a)所有的最快軌跡。本質上,SG Index是一個有向圖,該圖的每個節點對應與一條路段,每條邊表示存在至少一條軌跡從起始路段到達終止路段,邊上的權重表示兩條路段的最少時間開支。給定一個軌跡資料庫如圖7(c)所示,我們可以構建出圖7(d)的SG Index。

圖7 跳圖索引示例

利用SG Index,我們便可以將可達區域分析問題轉化成圖上k階鄰居的搜尋問題。圖8顯示的是基於圖7(d)從查詢點q出發的查詢搜尋樹,共有兩種型別的節點:跳圖擴充套件節點和路網連線節點。跳圖擴充套件節點是基於SG Index往外不斷擴充套件產生的,共有四個屬性:路段id、從根節點到該節點的時間總開銷tc、軌跡拼接次數kc(論文中有證明,kc可以不作儲存,只是方便邏輯上的剪枝過濾)、搜尋層級l。路網連線節點是基於跳圖擴充套件節點和路段的鄰接關係產生的,共有3個屬性:路段的id、從根節點到該節點的時間總開銷tc、層級l。注意到BFS的遍歷順序非常重要,因為基於此遍歷順序,我們更進一步地提出了一個剪枝策略來加速查詢處理過程。對於每個擴充套件節點,我們有兩個狀態:搜尋層級l和時間開銷tc。如果其中一個擴充套件節點n的這兩個狀態都比另一個擴充套件節點n’的這兩個狀態小,那麼我們稱n支配節點n’,n’能夠被安全地剪枝。在圖8的例子當中,n9能夠被剪枝,因為它被n5支配。

圖8 SG Index 搜尋樹

4. k值預測對k值預測的最大挑戰是,在我們的資料集中,我們並沒有軌跡拼接次數的標籤。實際情況中,我們幾乎也不可能獲得這類標籤。這就給我們採用有監督機器模型訓練帶來了挑戰。基於此,我們提出了一種標籤產生演算法。如圖9(a)所示,假設使用者在t時刻q點觸發一次實時可達區域查詢,我們用一個時間視窗獲得在這個時間視窗內經過q點的歷史軌跡,這些軌跡進一步劃分成兩個軌跡子集T1和T2(這邊δ是我們在實時分析中需要考慮的最近軌跡時間跨度,tb是使用者指定的時間預算,對於1~20分鐘的每個時間預算,我們分別會單獨訓練一個模型)。假設時間點t是使用者觸發的查詢時間點,集合T1用來找到k次(k<=5)軌跡拼接的可達區域範圍Ek(利用前述跳圖索引技術),集合T2用來找到不經過任何軌跡拼接找到的可達區域範圍Egt,Egt可以看成真值的部分。對於所有滿足不等式的Ek和Egt,我們選擇最小的k作為標籤。

圖9 k標籤產生過程

有了標籤之後,我們從多種外部的資料中抽取q點周圍時空特徵。抽取的特徵包括五類:1)交通特徵,這些特徵可以從歷史軌跡中抽取出來,包括:交通流量,平均速度;2)時間特徵,包括一天中的時刻、星期幾、是否為節假日等;3)天氣特徵,例如降雨量、氣溫、天氣狀況(即陰、晴、雨等);4)POI特徵,即查詢點周圍1公里範圍內不同種類(餐館、公司、小區等)的POI的數目;5)路網特徵,即查詢點周圍交叉路口的數目、不同道路等級的道路總長度等。圖10展示了不同的特徵條件下,k值的分佈情況。例如,從圖10(a)可知,交通流量較少的情況下,軌跡拼接的次數應該更少一些。

圖10 k值隨不同的特徵分佈情況

最後,我們將抽取到的時空特徵輸入到模型當中。我們採用了ST-ResNet模型[4],因為這個模型既能夠捕捉到時間的臨近性、週期性和趨勢性,也能夠捕捉到空間的臨近性和關聯性。5. 實驗我們採用了4個真實資料集驗證本文提出的演算法的有效性和效率。資料的統計如下圖所示:

圖11 實驗中用到的資料統計

我們首先做了一個案例調研。圖12(a)和(b)分別展示了用我們提出的方法在不同時間點找到的可達區域範圍。雖然這兩天都是週五,但是圖(a)的可達區域範圍比圖(b)的要大的多。究其原因,是因為在2016年12月30日,著名女歌手王菲在上海梅賽德斯-賓士文化中心舉辦了跨年演唱會,這段時間有大量的粉絲聚集在此,造成了嚴重的擁堵。說明我們提出的方法能夠較好地捕捉實時交通狀況的資訊。而基於歷史軌跡的方法[1]和基於通行時間預估的方法無法做到這一點,如圖12(c)和圖12(d)所示。

圖12 王菲跨年演唱會的案例

我們還做了效率實驗。其中SGE+是我們最終提出的方法,對比方法中有些是其他的索引方法,有些沒有用到剪枝策略。由圖可知,相對於其他方法來說,SGE+在效率方面有數量級的提升,能夠在毫秒級別返回查詢結果。

圖13 效率效能對比