天天看點

面對道路施工封閉,深度學習能幫司機做什麼?1.業務背景2.解決方案3.模組化方法4.業務落地5.小結

1.業務背景

動态事件是道路通行能力的變化進而影響使用者出行的事件。通過動态事件的描述,可以了解動态事件包含兩個要素,第一個是通行能力的變化,第二個是影響使用者出行。

動态事件基本類型是封閉、施工、事故,如圖1所示。其中封閉是道路通行能力極弱,正常車輛不能通行,特殊車輛才可能通行;封閉影響使用者出行,需要使用者掉頭并繞路才能到達目的地,嚴重影響使用者的出行。

圖1 動态事件定義及基本類型

為了對動态事件有形象的了解,圖2展示了動态事件的常見情況。第一張圖展示了天氣類的封路,雨雪霧等均可能引起道路封閉。第二張圖展示了管制類封路,如道路要進行馬拉松比賽,是以管制性封路。第三張圖像展示了施工類封路,第四張圖展示了施工但未封閉的情況。

圖2 動态事件示例

高德有多種發現封路事件的方法,本文主要介紹基于使用者軌迹資料的動态事件挖掘算法。

圖3中第一張圖檔展示了道路封閉發生後,流量從100左右跌到了0;第二張圖檔展示了車輛的軌迹不能正常通過某一段道路,需要掉頭并繞路通過;第三張展示了一條道路不能通行,道路上沒有車輛的GPS點。熱力用來描述GPS點的密度,GPS點密度越高,熱力越明顯,顔色越深。

圖3 封閉事件的大資料線索

封路問題主要拆分為新增和消散兩部分工作來展開的。新增和消散對應封閉事件的上線和下線。封閉問題之是以分為新增和消散,主要原因是新增和消散在業務分布上有着很大的差異。

新增問題是面向全路網的資料,封閉事件是小機率事件,發現封閉事件前會進行導航規劃。消散面向的是線上事件,絕大部分為封閉事件,不進行導航規劃。本文主要介紹封路新增問題。下面開始介紹封路挖掘的解決方案。

2.解決方案

高德在處理動态事件時,基本邏輯是利用已知資料,找出疑似封閉事件,之後再進行提純,産出封閉事件并進行上線。按照此邏輯,産線處理過程分為三個層次:

  • 資料層
  • 發現層
  • 驗證層

大資料的解決方案也是基于此三層架構來設計的。經過系統化設計最終确定了分層化、半監督的深度學習方案,該方案可用于離線挖掘,也可以用于實時挖掘。整體方案如圖4所示:

圖4 整體解決方案

本方案主要包括如下5個部分:

  • 基礎資料:基礎資料主要用到了靜态資料及動态資料,靜态資料主要包括路網及其屬性,動态資料主要是使用者的軌迹、規劃、偏航等;
  • 召回子產品:為了發現疑似封閉事件,設計了召回子產品。召回子產品在搜尋、廣告等任務中均會使用。流量下降、掉頭增多、偏航增多、熱力截斷是典型的召回政策;
  • 特征提取:業務模組化過程中會将流量、規劃、偏航、熱力的資料在拓撲結構及時序上進行模組化,産出相應的特征;
  • LSTM+ResNet預測:模型部分圍繞時序模型及卷積模型進行了探索,如TCN、LSTM、GRU等。最終設計了LSTMResNet組合模型用于線上業務;
  • 分層産出:模型置信度越高,封閉準确率越高。不同的置信度可以分層化産出,高置信的産出自動化上線的同時,中低置信度的産出人工協助上線,低置信度的産出能夠賦能産線,大資料協同其他事件源一起挖掘封閉事件。

3.模組化方法

3.1 路網模組化

路網是一張有向圖,每一條邊,也就是路網中的一條路,被稱為一條link。路網模組化分為空間模組化、業務資料模組化、時序模組化三個步驟,如圖5所示。将路網三步模組化展開描述,分别是:

空間模組化:路網按拓撲結構拆分,分為上遊links、目前link、下遊links;

業務資料在道路空間上的模組化:基于拆分後的拓撲結構,對目前link及上下遊links在規劃、流量、偏航、熱力幾方面進行模組化,形成一個39維的特征向量;

時序模組化:我們的業務是典型的時序問題。以流量下降為例說明,道路封閉前,流量在100左右波動;道路封閉過程中,流量是逐漸下降的過程;道路封閉後,流量在0附近波動,基本無車輛通行。道路從非封閉到封閉的過程,是流量在時序上逐漸下降到0附近的過程。我們選取了四周的時間序列,每一天的資料是上一步提取的對應日期的39維特征向量。

圖5 路網模組化方法

3.2 算法模組化

從時序模組化開始,到最終標明時序和卷積的組合模型,LSTMResNet模型,我們經曆了一系列的探索:

  • 鑒于我們的業務是典型的時序問題,是以從經典的時序模型LSTM、GRU進行實驗;
  • 有了經典的模型,就希望在“state of the art”的時序模型上實驗,是以調研了TCN并進行實驗。最終TCN實驗表現優于LSTM、GRU;
  • 本着“他山之石可以攻玉”的想法,我們也實驗了CNN經典模型ResNet,ResNet表現雖不如TCN,但與GRU相當,優于LSTM。重要的是TCN表現優秀的原因之一就是内部運用了ResNet Block;
  • 鑒于ResNet表現優秀,是以有了時序+ResNet的想法。于是我們試驗了LSTM+ResNet的模型,稱為LSTMResNet模型。

快、準、穩是我們選取模型的主要考慮因素。“快”指的是挖掘周期短,LSTM比TCN需要的序列更短;“準”指的是挖掘的準确率高,LSTMResNet模型的準确率最高;“穩”指的是模型潛在的惡劣badcase更少,越是經典常用的模型,一般認為模型潛在問題更少。

基于快、準、穩的考慮,我們選取了LSTMResNet,并進行後續的業務疊代、落地。

LSTMResNet網絡結構如圖6所示,輸入特征向量經過LSTM網絡層,LSTM的輸出作為ResNet的輸入,ResNet的輸出連接配接全連接配接層,最後全連接配接層與隻有兩個節點的網絡層連接配接,這兩個節點就是二分類的置信度。輸入向量是長度為28,表示28天,每天特征是39維的特征向量;LSTM輸出向量是長度為28,有5個隐層的網絡層。

ResNet是由7個ResNet Block組成。每個ResNet Block内部都會進行卷積、歸一化、ReLU運算,ResNet Block運算結果與ResNet Block的輸入向量進行相加。

LSTMResNet模型參數整體較少,LSTM隻有5個隐層;ResNet隻有七個Block,包含14個網絡層。這是因為模型複雜的情況下,非常容易過拟合,是以模型參數配置時沒有使用更多的神經元。

面對道路施工封閉,深度學習能幫司機做什麼?1.業務背景2.解決方案3.模組化方法4.業務落地5.小結

圖6 LSTMResNet網絡結構

為了克服過拟合問題,我們在ResNet中使用Batch Normalization的同時,還使用了dropout,圖7是dropout取值不同時的表現(資料來自中間實驗過程):

面對道路施工封閉,深度學習能幫司機做什麼?1.業務背景2.解決方案3.模組化方法4.業務落地5.小結

圖7 dropout調參

4.業務落地

業務模組化之後進行業務落地的工作,主要考慮兩個方面:

  • 模型落地方式:目前業務的主要需求是高置信的産出能夠達到人工标注的準确率,這部分産出将自動化上線,要模型産出準确率不比人工标注準确率差,這是非常高的一個标準。基于高置信産出必須高準确率的要求,我們采用半監督的方法提升了高置信産出的準确率;
  • 業務風險預防:為了防止模型上線後出現一些影響面較大、明顯背離業務常識的badcase,我們對模型進行了可解釋性分析,分析模型的産出是否符合業務常識。

4.1 半監督助力業務落地

半監督方法是一種介于監督和非監督的方法,本文半監督實作的主要思路是:首先,用數量較少的高精樣本資料學習模型,其次,用該模型對線上差分樣本預測,最後,将預測的高置信部分樣本作為帶标簽資料,重新訓練模型,得到最終的模型。實驗過程如圖8所示:

圖8 半監督實驗流程

為了評測半監督訓練的模型的高置信部分的準确率,分别評測模型V1和模型V2在業務資料上産出的topN準确率,模型V2比模型V1準确率高10個百分點,由此可見,半監督方法非常明顯的提升了高置信樣本的準确率。

4.2 業務資料驗證

業務資料驗證,主要是通過分析流量、規劃、偏航、熱力這四類主要特征是否符合業務常識,來解釋模型對封閉事件的刻畫是否符合業務預期。模型在流量、規劃、偏航、熱力上符合業務預期,則模型産出惡劣badcase的可能較小。

實驗方法是,首先提取北京市某天的業務資料,其次使用模型進行預測,最後按置信度統計分析。業務資料驗證結論如下:

  • 模型置信度在流量、規劃、偏航、熱力截斷這四方面均符合業務常識;
  • 置信度能夠刻畫事件有無;
  • 置信度越高封閉可能性越大

5.小結

本文介紹了動态事件和封閉事件的概念。為了挖掘封閉事件,我們設計了一套半監督的深度學習方案,較為詳細的介紹了路網模組化、TCN及LSTM等深度學習模組化。為了防止模型産出背離業務常識,進行了業務資料驗證,實驗表明模型挖出的封閉事件符合業務常識。封閉事件的挖掘能夠更好幫助使用者合理的規劃路線、提高使用者體驗。

繼續閱讀