天天看點

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

導讀

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

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

而預估到達時間是使用者參考的最為重要的名額之一。給定一條路線,對應的預估到達時間的計算需要兩組資訊輸入,分别是實時路況資訊和曆史速度資訊(曆史速度資訊指的是對應的平均通行時間)。其中實時路況資訊,對短時(例如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模型架構所做改動較小,後續可進一步探索,針對特定問題做一些定制化的改進。

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

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