1.導讀算法
高德地圖擁有着數千萬的POI(Point of Interest)興趣點,如學校、酒店、加油站、超市等。其中伴隨着衆多POI建立的同時,會有大量的POI過時,如停業、拆遷、搬遷、改名。這部分POI對地圖鮮活度和用戶體驗有着嚴重的負面影響,須要及時有效地識別並處理。網絡
因爲實地採集的方式成本高且時效性低,挖掘算法則顯得格外重要。其中基於趨勢大數據的時序模型,可以覆蓋大部分挖掘產能,對POI質量提高有着重要意義。架構
過時POI識別本質上能夠抽象爲一個數據分佈非對稱的二分類問題。項目中以多源趨勢特徵爲基礎,並在迭代中引入高維度稀疏的屬性、狀態特徵,構建符合業務需求的混合模型。app
本文將對深度學習技術在高德地圖落地的過程當中遇到的業務難點,和通過實踐檢驗的可行方案進行系統性的梳理總結。ide
2.特徵工程性能
過時挖掘的實質是感知伴隨POI過時而發生的變化,進行過後觀測式挖掘,通常都會伴隨着POI相關活躍度的降低。所以時序模型的關鍵是構建相關聯的特徵體系。同時在實踐中咱們也構造了一些有效的非時序特徵進行輔助校訂。學習
2.1時序特徵大數據
時序特徵方面,創建了POI和多種信息的關聯關係,並分別整合爲月級的統計值,做爲時序模型的輸入;時間序列窗口方面,考慮到一些週期性的規律的影響,須要兩年以上的序列長度來訓練模型。優化
2.2輔助特徵編碼
輔助特徵方面,首先是將人工覈實歷史數據進行有效利用。方式是構造一個時間序列長度的One-Hot向量,將最後一次人工覈實存在的月份標記爲1,其餘月份爲0。人工覈實存在表示該時間結點附近過時機率較低,若人工更新在趨勢降低以後,說明趨勢表徵過時的機率不高。
其次,調研發現不一樣行業類型的POI有着不一樣的過時機率,如餐飲和生活服務類過時機率較高,而地名或公交站點等類型則相對低不少。所以將行業類型編號構建爲一個時間序列長度的等值向量,做爲靜態輔助特徵。
第三種輔助特徵是在分析業務中的漏召回問題時總結構造的。發現有至關部分的新誕生POI,其入庫建立後至今的時長短於序列長度。意味着這部分序列前期存在較多數值爲零的僞趨勢,會對尾部的真實降低趨勢形成干擾從而誤判。對此提出了兩種優化思路:
對比採用第二種方案效果更優。考慮到咱們只有POI的入庫建立時間信息,而不瞭解門店的具體誕生時間,直接按入庫時間截取序列,會形成門店誕生和POI建立時間段內的特徵信息損失;而添加「門」序列則能夠在保持信息完備的同時約束高可信區間。最後構建的混合特徵示意圖以下所示。
3.RNN階段
循環神經網絡(RNN, Recurrent Neural Network)憑藉強大的表徵能力在序列建模問題上有很是突出的表現,業務中採用了其變種模型LSTM。
3.1RNN1.0
之前述的時序特徵和輔助特徵爲基礎,咱們採用多層LSTM搭建了初版RNN過時挖掘模型,結構如圖所示。主要邏輯爲,將逐時間點對齊後的特徵輸入到深度LSTM中,在網絡最後時刻的輸出後,接入一層SoftMax計算過時機率。最後根據結果匹配不一樣的置信度區段,分別進行自動化處理或人工做業等任務。模型初步驗證了RNN在過時趨勢挖掘領域落地的可行性和優點。
3.2 RNN2.0
高德地圖基於導航、搜索或點擊等操做頻度對POI進行了熱度排名。頭部的熱門POI若是過時但未及時發現對用戶體驗的傷害更大。2.0版本模型升級的主要目標即是進一步提高頭部熱門段位的過時POI發現能力。
分析發現熱門POI的數據分佈相比尾部有較大差別性。頭部POI的數據量豐富,且數值爲0的月份不多;相反尾部POI則數據稀疏,且有數值月分量級可能也僅爲個位數。對於這種頭部效應特別明顯的情況,單獨開發了高熱度段特徵的頭部RNN模型,實現定製化挖掘。
另外一方面,對於單維度特徵缺失的狀況,也區分熱度採用了不一樣的填充方式。頭部POI特徵信息豐富,將缺失維度補零讓其保持「靜默」防止干擾;而尾部特徵稀疏,自己已有較多零值,須要插值處理使缺失特徵和總體保持相近趨勢。方法爲將其餘維度的數據規範化處理後,採用加權的方式獲得插值。
2.0版模型對頭部和尾部的召回能力都有提高,對頭部的自動化能力提高尤其明顯。
4.Wide&Deep階段
RNN模型可以充分發掘時序特徵的信息,但特徵豐富度不足成爲制約自動化能力進一步提高的瓶頸。所以整合業務中的其餘數據,從多源信息融合角度升級模型便成爲新階段的工做重點。主要的整合目標包括非時序的靜態信息和狀態信息,以及新開發的時序特徵信息。
模型升級主要借鑑了Wide&Deep的思想,並作了不少結合業務實際狀況的應用創新。首先咱們要把已有的RNN模型封裝爲Deep模塊後和Wide部分聯合,至關於從新構建了一個混合模型,涉及到模型結構維度的整合。其次,既有Deep的時序信息,又有Wide部分的實時狀態信息,涉及到數據時間維度的整合。最後是Wide部分包含大量的不可量化或比較的類型特徵須要編碼表徵處理,涉及到數據屬性維度的整合。
4.1 Wide & LSTM
咱們將非時序特徵通過編碼後構建Wide模塊。主要包括屬性、狀態,以及細分行業類型三種特徵。
考慮到某些POI屬性存在缺失的狀況,故編碼中第1位表示特徵是否存在的標誌位,後面則爲One-Hot編碼後的對應的屬性類型;對於狀態特徵,一樣有一位表示是否特徵缺失的標誌位,然後面的One-Hot編碼則表示最新時刻的狀態類型;因爲不一樣行業類型有着不一樣的背景過時率,咱們將細分的行業類型作One-Hot編碼後做爲第三種特徵。最後將各特徵編碼依次鏈接,獲得一個高維度的稀疏向量。特徵編碼的過程如圖所示。
特徵完備以後,將各種特徵耦合及模型訓練便成爲關鍵。耦合點選在了SoftMax輸出的前一層。對於Deep部分的RNN結構,參與耦合的即是最後時間節點的隱層;而對於Wide部分的高維度稀疏向量,咱們經過一層全鏈接網絡來降維,便獲得Wide部分的隱層。最後將兩部分的隱層鏈接,輸出到SoftMax來計算過時機率。
模型採用同步輸入Wide和Deep部分特徵的方式聯合訓練,並調節兩部分的耦合隱層的維度來平衡兩部分的權重。過時挖掘場景的Wide & LSTM模型結構如圖所示。
模型通過屢次迭代優化後穩定投產,已成爲過時挖掘業務中覆蓋行業廣、自動化解題能力突出的綜合性模型。
4.2 Wide & Dual-LSTM
在作模型升級迭代的同時,基礎特徵的建設工做也在同步進行。在擴充新的趨勢特徵的時候面臨這樣一個問題,新特徵維數較多且時間序列較短,這樣將長時序特徵和短時序特徵逐時間點匹配時會出現很大部分的數值缺失。
因爲新特徵缺失部分較多且維度較大,缺失值填充的負面影響會過於嚴重而不適合採用。項目中採用了分而治之的方案,分別創建兩個RNN模塊,其中長RNN模塊輸入無新特徵的長序列,短RNN模塊輸入有新特徵的短序列,最後將雙RNN的Hidden層和Wide部分一塊兒耦合,獲得了Wide & Dual-RNN模型,結構如圖所示。
雙RNN結構可以很好地將新特徵融入到現有模型並提高判斷準確率,不足的地方是結構較複雜影響計算效率。故後期進行了新階段的研發,採用更靈活的時序模型TCN進行迭代。
4.3 Wide & Attention-TCN
TCN主要有以下三方面優勢使其能勝任時間序列的建模:首先,架構中的卷積存在因果關係,即從將來到過去不會存在信息泄漏。其次,卷積架構能夠將任意長度的序列映射到固定長度的序列。另外,它還利用殘差模塊和空洞卷積來構建長期依賴關係。
性能對比上,TCN能夠將時間序列做爲向量並行化處理,相比RNN的逐時間點順序計算的方式有更快的計算速度。此外,TCN能夠輸入延展成一維的序列,從而避免了特徵須要逐時間點對齊。所以在驗證了Wide&Deep的思路有效後,咱們嘗試將Deep部分的RNN結構升級爲TCN。
首先,對於輸入部分的特徵進行了Flatten處理,即將每一個維度的時間序列依次首尾相連,如圖所示,拼接成爲一個長向量後做爲輸入。這樣便實現了長特徵和短特徵的有效整合。
其次,對於輸出結構,引入序列維度的Attention機制進行優化。主要思想是再也不只讀取序列最後節點的隱向量的濃縮信息,而是對全部序列節點的隱向量信息加權處理後,獲得彙總的隱向量信息,使全部節點的學習結果獲得充分利用。
最後將Attention-TCN後獲得的彙總隱向量和Wide部分的隱層進行耦合,獲得的Wide&Attention-TCN模型結構如圖所示。
經過引入新的輕量TCN時序模型和Attention機制,新的模型性能有了進一步提升,但調優過程相對RNN更加複雜。多輪參數調整與結構優化後,最終落地版本與Wide & Dual-LSTM版相比,計算效率和業務擴招回能力均有可觀提高。
5.總結與展望
深度學習在過時挖掘場景中的落地,經歷了不斷摸索嘗試、總結問題、優化方案、驗證效果的迭代演進的過程。期間以提高過時發現能力爲核心目標,對特徵擴展、特徵構造和模型結構優化的角度都進行了探索,並總結了如上的業務場景落地經驗。其中,豐富可靠的特徵、合適的特徵表徵方式和符合場景的模型結構設計是提高業務問題解決能力的關鍵。
當前模型主要是基於信息和趨勢進行宏觀性的規律總結,並判斷具有這類特徵狀況下的POI過時的機率。而現實生活中POI的具體地理環境、自身經營情況、周邊競爭態勢等個性化因素的影響每每不可忽略。所以,將來規劃將綜合考慮總體規律性特徵和個體差別性,實現精細化挖掘。
6.參考文獻
1.Sepp Hochreiter and Jurgen Schmidhuber, Long Short-Term Memory, Neural Computation 1997
2.B. Hidasi, A. Karatzoglou, L. Baltrunas, and D. Tikk. Session-based recommendations with recurrent neural networks. CoRR, abs/1511.06939, 2015
3.Heng-Tze Cheng, Levent Koc, Jeremiah Harmsen, Tal Shaked, Tushar Chandra, Hrishi Aradhye, GlenAnderson, Greg Corrado, Wei Chai, Mustafa Ispir, Rohan Anil, Zakaria Haque, Lichan Hong, Vihan Jain, Xiaobing Liu, and Hemal Shah. Wide&Deep learning for recommender systems. In Proc. 1st Workshop on Deep Learning for Recommender Systems, pages 7–10, 2016.
4. Paul Covington, Jay Adams, and Emre Sargin. Deep neural networks for youtube recommendations. In Proceedings of the 10th ACM Conference on Recommender Systems. ACM, 191–198, 2016.
5.Bai S , Kolter J Z , Koltun V . An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling[J]. 2018.
6.Pappas N , Popescu-Belis A . Multilingual Hierarchical Attention Networks for Document Classification[J]. 2017.