桔妹導讀:定位是全部LBS服務的基礎服務。在滴滴的業務場景下,定位主要是指各種終端設備的位置,包括手機、單車、行車記錄儀、車機端等。做爲底層服務,在滴滴日均提供700億次定位服務,支撐着平臺的各種業務。算法
今天給你們分享的是機器學習在滴滴網絡定位中的實踐工做,會重點介紹三階段的演進:無監督模型、有監督迴歸模型、端到端CNN模型。網絡
目前定位技術主要包括GPS、網絡定位、慣性航位推算、MM(地圖匹配)、視覺定位等。GPS是最爲人熟知的定位技術,是依靠設備與衛星交互來獲取經緯度的方式。GPS精度高,但有冷啓動耗時長、耗電大、遮擋場景不可用等缺點。在滴滴場景下,乘客和司機在有遮擋的場景下,例如室內、高架下等,GPS一般處於不可用狀態。這時就須要有其餘定位技術做爲GPS的補充,使得乘客發單、司機導航等服務依然可用。其中最主要的補充即是網絡定位。機器學習
室內類場景雖然有遮擋,但設備一般能夠掃描到Cell(基站)和Wifi列表,並且Cell和Wifi設備位置相對穩定,鏈接其上的設備能夠借其定位,這就產生了網絡定位。網絡定位包括wifi定位和基站定位,是指基於終端掃描到的wifi或基站列表進行的定位技術。Wifi的接入設備一般稱爲AP(Acess Point),方便起見,下文將AP和基站統稱爲AP。ide
網絡定位一般採用的是指紋定位技術,是一個根據query匹配指紋庫信息,並計算獲得座標位置的過程。以下圖所示,網絡定位系統主要包括離線建庫和在線定位兩個階段。性能
離線建庫主要是基於有GPS時的採集數據,建指紋庫的過程。指紋庫中記錄AP的各種信息在不一樣地理網格內的採集數據分佈,以下圖所示。學習
在線階段,根據線上query匹配指紋庫信息,並計算獲得座標位置。大數據
本文介紹的主要是在線定位部分,即query匹配指紋庫、計算座標位置。優化
在線定位算法共經歷了無監督機率模型、有監督迴歸模型、端到端CNN模型三次大的迭代。前兩個階段的網絡定位主要包括網格召回、網格排序、網格平滑三步,以下圖圖一所示。端到端CNN模型去除了網格排序和網格平滑,基於一個召回中心點,直接回歸位置座標,以下圖圖二所示。編碼
網絡定位要完成在線AP與離線AP指紋庫的匹配,是聯合機率計算的過程。以AP指紋庫的信號強度分佈爲例,看下網格機率計算過程。3d
縱軸爲採集數據中的AP編號,橫軸爲空間網格編碼,相交點表示每一個AP在對應網格中的採集信號強度分佈。空值表示AP在對應的位置無採集數據。
以一個實時定位query信息:(AP1:RSSI=1,AP3:RSSI=0)爲例,介紹網格召回、排序、平滑的過程。
召回階段,基於掃描到的AP1和AP3,能夠召回Grid一、Grid二、Grid4;
排序階段,結合離線AP庫,基於獨立性假設和貝葉斯公式,計算各網格的權重:
表示觀測到的APj的信息。以信號強度RSSI單一特徵爲例,上例中,
網格平滑階段,基於上述的統計機率,排序獲取TopK個網格,採用登山法求解最優座標:
其中,
爲預測位置到的距離。
無監督機率模型的方法,思路清晰易懂,易實現,是早期網絡定位的主要方式。但有如下問題:
聯合機率的方式對採集信息不充分的位置不友好,例如上例
難以擬合多維特徵,尾部badcase較嚴重
技術目標沒法獲得直接優化,天花板較低
出於對以上問題的思考,總體流程仍保持網格召回、排序、平滑三階段,咱們將網格排序升級爲有監督迴歸模型,經過引入多元特徵和顯式的優化目標,實現對網格的更精準打分。
Label:待預測網格與真實位置的位置誤差,迴歸任務。
特徵工程:構建近百維特徵,主要包含AP特徵,網格特徵,前文信息等。
模型選擇:一期上線GBDT模型;二期對比了GBDT、FM、DeepFM、FM+GBDT等,最終線上最優融合模型結構以下。
原始特徵中的稠密特徵和低維稀疏特徵通過GBDT進行特徵組合、交叉;GBDT輸出的葉子節點編號與高維稀疏特徵通過DeepFM網絡,最終輸出網格與真值的位置誤差。
TopK網格平滑:預測誤差距離從小到大排序,截取TopK網格;登山法,梯度降低求解最優座標。
有監督模型在特徵利用、模型結構、優化目標等方面提供了更大的操做空間,能夠極大地打開天花板。上線後定位精度等指標取得了顯著的收益。
但該方法仍有如下問題:
每一個網格孤馬上畫,信息採集時的不均衡、有偏的問題沒法有效解決
TopK平滑層與排序層割裂,沒法聯合優化,且引入部分人工超參
對於以上問題,考慮如下解決方案:
CNN網絡:充分利用空間信息的局部相關性,加強特徵的提取能力
端到端網絡:合併排序與平滑層,改成直接回歸位置座標,目標更統一,減小人工超參
最終,總體網絡結構以下:
下面以基站定位爲例,介紹該結構的實現細節。
首先介紹下輸入特徵的構建:
Wide網絡特徵:表達Query信息的Wide特徵共十幾維
CNN特徵圖的構建:
召回中心:採集熱度較高的TopN網格的經緯度中位數做爲圖的中心點。
特徵圖構建:選取C維圖特徵,每一維特徵爲一個channel;基於召回中心,構建M*M分辨率的特徵圖。
網絡結構:在CNN網絡部分,採用多尺度卷積核提取特徵後,通過兩個卷積+池化層後,將特徵圖打平。Wide部分稀疏特徵通過embedding後,與稠密特徵級聯。兩部分tensor級聯後通過全鏈接層,最終輸出與召回中心點的位置誤差。
Label與Loss:label爲真實位置與召回中心位置的偏移dx和dy,召回中心點+預測偏移即得預測位置。loss最初使用的是經緯度的L2 loss:
考慮到經緯度在球面上表達距離的差別,咱們改成了使用球面距離誤差做爲label,也得到了穩定的收益:
,dx和dy表示真實空間距離
CNN模型在線上AB實驗取得了顯著的收益,已全量上線。CNN端到端模型升級了信息的表達方式,由單網格、結構化的信息表達改成了Image的表達方式,配合cnn網絡結構,獲取了效果的顯著提高;而且將幾十甚至幾百個網格的預測問題改成了單次位置迴歸問題,雖然模型複雜度有所增長,但總體性能基本持平。
網絡定位三階段的模型前後上線進行了AB對比實驗。以基站定位三個主要技術指標爲例,對比結果以下表所示:
本文總結了定位策略團隊在網絡定位算法側的工做,介紹了無監督機率模型、有監督迴歸模型、端到端CNN的演進及其中的思考。
無GPS時的定位仍面臨着不少困難,將來咱們將在如下方面持續探索:
模型效果優化:
目前CNN模型在基礎信息利用、召回等方面仍有較大優化空間。
性能問題:
考慮線上性能,在基礎信息和網絡結構上作了不少刪減。指望經過更優的召回策略、蒸餾剪枝等平衡效果與性能。
5G技術:
5G的自然優點(高頻率、高密度、低延時)也一定會帶來定位精度的顯著提高,相關調研工做正在進行。
複雜場景定位:
對於室內、地下停車場等典型複雜場景,網絡定位面臨着真值獲取難、移動ap等難點。細分場景也逐漸向模型化方向演進。
以上就是滴滴網絡定位近期工做的實踐介紹,歡迎隨時交流。
2017年加入滴滴,目前從事地圖定位算法方向,多年LBS領域算法研究工做,在滴滴前後從事猜你想去、上下車點推薦、定位算法等方向的開發工做。
2018年加入滴滴,主要從事網絡定位、慣導推算等方向的算法開發工做。
201#8年加入滴滴,主要從事網絡定位、融合定位等方向的算法開發工做。
滴滴地圖與公交事業羣定位團隊負責爲滴滴平臺上的司乘雙方提供精準的定位服務,構建出行基礎設施,發揮平臺的大數據優點,應用機率統計、機器學習、深度學習等技術,在GPS質量優化、網絡定位、慣導推算、融合定位等細分方向上持續深耕,以技術驅動用戶體驗的提高。團隊長期招聘算法工程師,包括機器學習、慣導推算等方向,歡迎有興趣的小夥伴加入,可投遞簡歷至 diditech@didiglobal.com,郵件請郵件主題請命名爲「姓名-應聘部門-應聘方向」。
內容編輯 | Charlotte&Teeo
聯繫咱們 | DiDiTech@didiglobal.com
滴滴技術 出品