1. 程式人生 > >深度學習在高德駕車導航歷史速度預測中的探索與實踐

深度學習在高德駕車導航歷史速度預測中的探索與實踐

導讀

駕車導航服務是數字地圖提供的核心功能。通常而言,使用者在發起導航之前會對比高德前端展示的三條路線(如下圖),以決定按照哪條路線行駛。

 

 

而預估到達時間是使用者參考的最為重要的指標之一。給定一條路線,對應的預估到達時間的計算需要兩組資訊輸入,分別是實時路況資訊和歷史速度資訊(歷史速度資訊指的是對應的平均通行時間)。其中實時路況資訊,對短時(例如60分鐘以內)路況預測幫助較大;而歷史速度資訊對長時(例如60分鐘以上)路況預測幫助較大。一般來說,對於未來2小時以上的路況預測而言,當前時刻的路況資訊幫助十分有限,也可以理解為歷史速度資訊基本處於絕對主導的地位。

因此在長距離路線的預估到達時間計算中,歷史速度至關重要,其預測的準確性直接影響預估到達時間,進而影響使用者選擇及體驗。我們希望能夠通過建模的方式提高歷史速度的預測準確率。

歷史平均法的不足

以往預測歷史速度的方式是歷史平均值法,主要是將歷史上過去某時間段同一特徵日同一時間段(例如8:00-8:10)經過同一條路段的所有車輛的用時求平均,這種方法的假設是“歷史即未來”。該方法對於3個月內常發性震盪走勢比較適合,但針對有特定趨勢的走勢(如上升走勢),效果不會太好。

該方法不足之處有以下三點:

  • 對於異常點敏感

  • 無法利用時域序列的演化趨勢(trend)資訊

  • 無法利用去年同期的車輛行駛規律

下面我們用一個分析過的badcase來具體說明,如下圖:

 

 

上圖顯示了北京市某路段在過去連續若干周裡確定特徵日(週五)及確定時間批次(12:10-12:20)上各自的平均旅行時間。如圖所示,近期旅行時間已逐漸升高,且去年同期旅行時間也已經升高,但是使用歷史平均值法計算的歷史速度資訊卻顯著偏小,與未來一週對應時間段的真實旅行時間偏差近三倍。

通過前期的case調研分析,發現部分路段的歷史速度曲線呈現出時效性、年度週期性特徵。

 

 

上圖為某段道路從20170501到20190103期間某個時間批次的旅行時間變化,可以發現,每到暑假期間,該路段旅行時間顯著增大,呈現出明顯的年度週期性。

本專案旨在解決歷史平均值法存在的不足,其中,由於年度週期性問題導致的惡劣badcase佔比較大,故著重解決年度週期性問題。

機器學習解題

基於TCN模型的歷史速度問題建模

歷史平均值方法簡單粗暴,但也能取得相當不錯的效果,對於具有年度週期性&時效性的路段,僅僅通過統計近期的資訊會損失一定的精度,這時把去年的相關資訊融合進來就顯得特別重要,該問題是個典型的時序建模問題,本文基於TCN構建歷史速度週期性問題解決方案。

我們的目標是構建一個基於歷史資訊(某時間段&去年同期:同一段道路、確定特徵日、確定時間批次)和道路屬性來預測未來一週歷史速度的機器學習模型,解決歷史平均值法存在的問題,從歷史速度資訊維度提高預估到達時間的準確率,解決惡劣bacase。

TCN簡介

時間卷積網路(TCN)可以作為一般的序列建模架構,且擁有非常好的效果。TCN顯著的特點有如下幾點:

  • 架構中的卷積存在因果關係,這意味著從未來到過去不會存在資訊洩漏。

  • 卷積架構可以將任意長度的序列對映到固定長度的序列。

  • 利用殘差模組和空洞卷積來構建長期依賴關係。

 

TCN 論文圖:TCN 架構的組成元素。左圖為空洞係數 d=1, 2, 4、卷積核大小 k=3 的空洞因果卷積,感受野能覆蓋輸入序列中的所有值。右圖為TCN 殘差塊,當殘差輸入和輸出有不同的維度,我們會新增一個 1x1 的卷積。

網路架構

 

 

上圖為整個模型的框架圖,主要分為動態特徵提取模組和靜態特徵模組,其中動態特徵的提取基於TCN模型實現,而靜態特徵則直接和提取出的動態特徵進行連線之後使用。具體說明見下文。

動態特徵提取

該模組的主要目標是通過TCN模型去學習旅行時間的曲線走勢特徵,這裡的動態特徵指的是從今年和去年對應的一定數量的平均旅行時間構成的序列中提取出的走勢特徵。

本文將今年和去年對應的平均旅行時間序列作為一個雙通道序列放進TCN模型中學習,旨在利用TCN強大的時序建模能力,同時結合今年和去年的走勢特徵,更加準確的預測未來一週的走勢(上升、下降或震盪)。

針對該類序列建模問題,已有成熟的RNN技術,而且目前更新的TCN技術也已出現。在專案開展過程中,分別使用了RNN、LSTM和TCN來做序列建模,實驗結果表明,使用TCN進行序列特徵提取效果最好,相對於RNN約有1.39%的效果收益,相對於LSTM約有0.83%的效果收益,而且由於TCN模型是基於卷積網路實現的,訓練速度更快,所以本專案中採用TCN進行動態特徵提取。

靜態特徵

這裡的靜態特徵主要指一些人工提取的特徵,用以加強模型表達能力。具體如下:

  • 道路屬性特徵:路長、路寬、車道數、車道寬度、最大限速等

  • 時間屬性特徵:前三天對應時間批次旅行時間、前七天對應時間批次旅行時間均值、去年同期前後兩個平均旅行時間(同一特徵日&同一時間批次)

道路屬性特徵主要考慮不同的道路通行能力不一樣,會在一定程度上影響車輛通行速度。

時間屬性特徵主要分三方面:

  • 前三天對應時間批次旅行時間-考慮到時效性問題,越靠近預測天則可靠性越大,例如,最近幾天道路施工,車道速度受到影響;但該特徵也會對基於特徵日的建模產生一定影響,因為車輛出行規律大部分情況下跟周幾特徵日有關,而與非特徵日的關聯較小(除特別情況,如活動舉辦、連續數天施工)。案例見下圖。

 

 

圖中為某段道路連續85天某時間批次上的旅行時間變化趨勢圖,從圖中可以看到,該曲線呈現先平穩後上升的趨勢,第85天的旅行時間與前面的關係不大,而與近期關係較大(近期一直較擁堵),尤其是近三天。

  • 前七天對應時間批次旅行時間均值-該特徵為近期旅行時間的一個統計指標,旨在反映近一週的通行狀況,作用同上。

  • 去年同期前後兩個平均旅行時間(同一特徵日&同一時間批次)

模型效果

本文所採用的基於TCN建模方法,能夠從動態和靜態特徵中提取出駕駛規律資訊,包括異常點的識別過濾、旅行時間的趨勢變化資訊和年度週期資訊,給出更符合預期的預測值,較好的解決當前歷史平均值法的弊端,可以部分解決惡劣badcase發生的問題。具體效果說明如下:

異常值自動過濾

 

 

上圖中case,從整體上來看,旅行時間在70s上下浮動,而區域性某些點是異常偏大的(當天可能發生了交通事故等),屬於異常點,在預測未來歷史速度資訊走勢的時候,應該忽略,TCN模型成功的忽略了這些異常點,但歷史均值法則會將其納入計算,導致算出的平均旅行時間偏大。

趨勢資訊提取

 

 

上圖中case,從曲線走勢來看,旅行時間近期有所上升,所以下週的平均旅行時間大概率還是會延續這種趨勢,可以看出,TCN模型比較好的學習到了這種趨勢資訊,預測效果較好,但歷史平均值法,由於前期很長一段時間旅行時間都很小,導致算出的平均旅行時間也偏小。

年度週期性的引入

 

 

上圖中case,從圖中可以看出,今年前11周都比較平穩,第12周旅行時間突然上升,但只從今年資訊中我們無法得知第12周這天是否是異常值,從而模型無法準確給出第13周的預測值,但從去年對應的13周的資料中可以發現,去年對應的時間在第12和13周都上升了,從而模型可以確定今年第13周大概率還是會繼續升高(根據年度週期性),但使用歷史平均值法給出的平均旅行時間則明顯偏小。

評測結果

該專案在某一週的case集合上的評測效果:

  • 基線-歷史平均值法的badcase率為11.0‰;

  • 對照-基於TCN的方法的badcase率為10.1‰。

可以看出,本文所採用的方法相對基線惡劣badcase率下降幅度較大,說明引入年度週期性可以解決部分惡劣badcase。

小結

本文將TCN模型進行工業化實踐,幫助建模歷史速度問題,並結合特徵工程(提取動態、靜態特徵,引入年度週期性等),成功的解決了現有模型的不足,並在實際應用中取得了不錯的效果,為將來的時序性問題探索了一條可行的路徑。對現有TCN模型框架所做改動較小,後續可進一步探索,針對特定問題做一些定製化的改進。

 

關注高德技術,找到更多出行技術領域專業內容

&n