導讀
隨着時代的發展,近10年來位置產業蓬勃發展,定位能力逐漸從低精度走向高精度,從部分場景走向泛在定位。設備和場景的豐富,使得定位技術和能力也不斷的優化更新。定位能力包括GNSS、DR(航跡推算)、MM(地圖匹配)、視覺定位和網絡定位等。
其中網絡定位是通過客戶端掃描到的WiFi和基站信息來進行定位的一種定位方式。網絡定位能力是GNSS定位的有力補充,在GNSS無法定位或者定位較慢的時候,網絡定位都可以快速給出位置。網絡定位能力也是高德能夠深植於各類手機廠商(提供系統級網絡定位能力)和APP(出行、社交、O2O、P2P、旅游、新聞、天氣等諸多領域)的原因之一。
要做到通過WiFi和基站來定位,我們需要通過億級數據來挖掘出WiFi和基站的類型、位置、指紋等各種信息。這些信息的挖掘,歷史上是通過一系列的人工經驗策略來進行的,人工規則的歷史局限帶來了所挖掘信息較低的准召率,為了進一步提升高德網絡定位能力,我們需要卸下以往的包袱,從方法上進行改變。
如何定義“網絡定位”
網絡定位分為離線訓練和在線定位兩個過程:
離線訓練:是在用戶有GPS位置時采集周邊的WiFi和基站(以下統稱為AP)信息,通過對采集數據進行聚類和關聯,得到兩類數據產品:AP庫和指紋庫;
在線定位:與離線訓練的過程正好相反,當用戶沒有GPS定位時,可以通過掃描到的周邊WiFi和基站信號,結合離線訓練出的AP庫和指紋庫來進行實時定位。
AP庫和指紋庫這兩類數據產品中:
指紋庫:以物理坐標位置對應的特征指紋信息為內容,這些特征指紋信息可以包括掃描到的WiFi或者基站的信號強度分布,采集點頻次等統計信息,也可以是通過神經網絡提取出的特征信息。
AP庫:以WiFi的mac地址或者基站的ID(gsm基站為mcc_mnc_lac_cid,cdma基站為mcc_sid _bsid_nid )為主鍵,以WiFi或者基站的物理坐標信息(經緯度或者地理柵格坐標信息)為內容。
典型的AP庫數據只包含挖掘出的物理坐標信息和覆蓋半徑,這種“點圓模型”是對AP發射信號的一種理想化,沒有考慮任何實際場景中的信號遮擋、反射等情況,所以AP庫大多用來進行粗略定位。而指紋庫直接與位置相關,可以刻畫比“點圓模型”更細致的分布信息,所以指紋庫可以用來進行精細定位
高德的指紋庫主要包括特有的室內指紋和全場景指紋信息兩種。
網絡定位的問題
網絡定位的基本思路類似聚類,假設用戶手機掃描到的AP列表中的AP的位置均比較固定,則我們可以以這些AP位置為錨點,來確定用戶位置。現實世界中,錨點(即AP庫中的AP)的位置通過大數據來進行挖掘,並不一定完全准確,甚至出現嚴重錯誤。
針對WiFi而言,移動WiFi、克隆WiFi、搬家WiFi等都可能造成AP位置的錯誤。移動WiFi包含手機熱點,4g移動路由器,公交車/地鐵/高鐵上的WiFi熱點等,這些WiFi的移動屬性較強,位置頻繁變化,如下圖所示
如果以移動WiFi作為錨點,因為這些錨點的位置不固定,極可能會導致用戶的定位出現極大誤差。克隆WiFi指不同的WiFi設備使用了同一個mac地址,國內的騰達和斐訊等路由器廠商制造了大量這樣的WiFi設備(例如大部分mac前綴為“c8:3a:35”的即為騰達的克隆WiFi),克隆WiFi導致AP庫中同一個mac地址對應的錨點位置有多個。搬家WiFi指某些因為搬家而發生位置變化的WiFi,數據挖掘存在一定的滯后性,搬家后AP庫中的位置未及時更新,也會造成定位錯誤。
因為大誤差的badcase嚴重損害用戶體驗,我們必須要將這些非固定WiFi的屬性在AP庫中標記出來。
歷史上,高德是通過一系列簡單的人工規則對這些WiFi的屬性進行分類的。例如,通過采集點覆蓋范圍較大來判定移動WiFi,通過mac前綴來判定克隆WiFi等。人工規則的缺點是准召率不高,訓練分類模型就成了一個自然的選擇。
鑒於badcase中最嚴重的問題是移動WiFi的准召率不高,下面我們就嘗試使用監督學習的方法來進行“移動WiFi識別”。
如何實現“移動Wifi識別”
樣本提取
AP庫中的WiFi數量十分龐大,如果我們在AP庫中隨機抽取樣本進行人工標注,那大部分標注的結果可能是人工規則判定正確的樣本,為了盡可能低成本獲取有效的標注樣本,我們借鑒主動學習的思路,不斷抽取模糊樣本進行標注,快速迭代使得模型穩定。
我們根據人工規則的判定結果提取了一批確定性較高的樣本,使用人工強特征訓練第一版模型,之后將第一版模型的預測結果與線上人工規則的結果進行全量比較,提取出模糊樣本進行人工標注。在標注樣本的過程中發現問題,持續特征工程,不斷迭代模型。
這里模糊樣本的定義包含三種:預測結果與上一版模型的結果不同,預測概率值在0.5附近,預測結果在不同訓練周期內存在波動(例如昨天識別是移動WiFi,今天識別是非移動)。
特征提取
移動WiFi vs 克隆/搬家WiFi:
第一版模型中,我們使用了一些采集聚集程度相關的特征。
模型迭代過程中,我們遇到的第一個問題是移動WiFi與克隆WiFi或搬家WiFi比較容易混淆。下面幾幅圖分別畫出了固定WiFi、移動WiFi、克隆WiFi、搬家WiFi的定位點散布的實例。
可以看到,如果僅僅使用定位點的聚集程度來分類,那克隆WiFi和搬家WiFi的定位點也比較分散,極易與移動WiFi混淆。所以我們先使用聚簇算法,將采集點局部聚集的點集合成不同的簇,在每個簇中計算定位點的散布程度,再將所有簇的散布程度求平均值等,獲取平均意義上的聚集程度。
多維度提取特征:
為了進一步提升分類的准召率,我們不僅從定位點的聚集維度來提取特征,還增加了信號強度、關聯特征、IP特征、時間特征等,以下進行簡要介紹:
信號強度信息:(和上節中的聚集特征一起,統稱為采集特征)移動設備與非移動設備采集點的信號強度在去除設備差異性之后,分布存在差異性。
關聯特征:關聯信息是指當設備掃描到的一次WiFi列表中,列表中所有WiFi兩兩之間就算產生了一次關聯(或稱鄰居)關系,統計WiFi周邊關聯的WiFi和基站信息,可以描述出WiFi的移動屬性。
IP特征:固網IP和移動網的IP存在一定隔離,移動WiFi設備的上游一般是通過基站連接的移動網,固定WiFi設備的上游一般是通過ADSL等連接的固網。
時間特征:固定WiFi一般是長時間連接電源的,而移動WiFi一般是臨時在某些地方和時間短暫出現的。
聚合特征:
在AP庫中,存在一部分WiFi定位信息不夠充分,即使是人工標注也存在着非常大的不確定性,這些定位信息不夠充分的WiFi,我們稱之為“弱信息WiFi”。
對於這類WiFi,我們只有通過ssid和mac前綴來進行輔助判斷。因為ssid中包含了一些諸如“iPhone”、“個人熱點”、“oppo”、“shouqiyueche”(首汽約車)、“往返免費”、“tp-link”等能夠表明設備屬性的信息。另一方面,mac前綴(mac信息的前半部分)代表了廠商信息。基於這些輔助信息,我們可以在其他信息不夠充分的情況下輔助推測WiFi的類別屬性。
我們將基礎特征(采集特征、關聯特征、IP特征、時間特征)中較為重要的TOP_N維特征按照ssid和mac前綴進行聚合,聚合函數為中位數(median)和總體標准差(stddev)。這樣,聚合特征體現了一類WiFi共有的特征,針對弱信息WiFi,我們就可以通過集體的特征來推測出個體的屬性。
應用場景
除了提升網絡定位能力,移動WiFi的識別還有更多用武之地,例如手機熱點的識別,室內外的判斷,建築物和POI級別的定位等等。其中一個例子就是判斷當前設備所連接的WiFi是否為移動熱點(如4g路由器,手機熱點等),在視頻類的APP中,可以通過判別當前用戶連接的WiFi是否為移動熱點,從而控制是否進行視頻的自動播放或緩存,給予用戶提示性信息。
小結
最終我們使用隨機森林來訓練分類模型,經過特征選擇和模型參數調整之后,最終得到的模型,移動WiFi的准召率均優於99.8%。高德網絡定位的精度也因此得到了較大提升,尾部大誤差badcase降低了18%左右。
網絡定位作為一種低功耗的定位手段,不僅在GNSS無法觸達的地區(例如地鐵、室內等場景)為普通用戶帶來輔助的定位信息,而且在某些急救和尋人的場景中發揮了重要的作用。未來,隨着5G通信技術的開展,將迎來更加精准的網絡定位能力。
關注高德技術,找到更多出行技術領域專業內容