1. 簡介
- ERNIE-GeoL由百度地圖團隊發(fā)表在KDD2022上,是一種融合了地理位置信息的預(yù)訓(xùn)練模型抛人。ERNIE-GeoL模型的預(yù)訓(xùn)練數(shù)據(jù)來自于事先構(gòu)建好的異構(gòu)圖(heterogeneous graph)弛姜,異構(gòu)圖包含了豐富的地理信息。并且在2021年ERNIE-GeoL模型已經(jīng)部署在百度地圖服務(wù)中妖枚。
時空數(shù)據(jù)用于訓(xùn)練PTMs.png
2. ERNIE-GeoL 訓(xùn)練數(shù)據(jù)構(gòu)建
-
首先建立一個異構(gòu)圖
:
1)表示結(jié)點的集合廷臼;
2)表示邊的集合;
3)表示結(jié)點結(jié)點類型的集合,主要包括兩類結(jié)點:Query, POI 中剩;
4)表示邊類型的集合忌穿,包含三種關(guān)系:Query與POI之間點擊關(guān)系、POI起終點共現(xiàn)關(guān)系结啼、POI位置近鄰關(guān)系掠剑;
2.1 POI結(jié)點和Query結(jié)點
- Query結(jié)點,主要由文本信息組成郊愧;
- POI結(jié)點朴译,包含以下幾種信息:1)POI名稱;2)POI地址属铁;3)POI類別眠寿。 通過分隔符[SEP]將幾種信息隔離開來, 類似BERT模型中使用的方法焦蘑,只是包含三種類型的信息盯拱。
POI結(jié)點信息.png
2.2 異構(gòu)圖邊關(guān)系
- 異構(gòu)圖邊關(guān)系包含三種:1)Query與POI之間點擊關(guān)系;2)POI起終點共現(xiàn)關(guān)系例嘱;3)POI位置近鄰關(guān)系狡逢;
- Query與POI之間點擊關(guān)系: 通過搜索日志獲取Query-POI之間的點擊關(guān)系,每個POI取Top4搜索Query拼卵,并連接Query-POI之間的邊奢浑;
- POI起終點共現(xiàn)關(guān)系: 用戶移動信息產(chǎn)生POI到訪的搜索日志,那么起點POI和終點POI可以用于構(gòu)建起終點共現(xiàn)關(guān)系腋腮。使用一個2-gram滑動窗口雀彼,在用戶到訪序列中滑動構(gòu)建POI之間的起終點關(guān)系;
- POI位置近鄰關(guān)系: POI之間如果空間位置很近的話,會存在一定的關(guān)聯(lián)即寡。因此論文中將地球表面劃分成網(wǎng)格徊哑,如果兩個POI落在同一個網(wǎng)格中則建立他們之間的近鄰關(guān)系。論文中使用S2 geometry庫構(gòu)建網(wǎng)格嘿悬,選擇S2庫是因為它使用球面投影來避免平面投影帶來的失真实柠,從而保持地球的正確拓?fù)浣Y(jié)構(gòu)。S2庫支持31個level構(gòu)建網(wǎng)格善涨,文中在構(gòu)建近鄰關(guān)系的時候選擇level=15窒盐,大概覆蓋的范圍是200mx200m。
異構(gòu)圖構(gòu)建.png
2.3 隨機游走采樣
- 通過隨機游走算法進行采樣生成ERNIE-GeoL的訓(xùn)練樣本钢拧,假設(shè)游走的長度為
蟹漓,則一條訓(xùn)練樣本為:
,對于三種不同類型的邊使用不同的隨機游走概率源内。其中葡粒,
表示結(jié)點
相鄰結(jié)點中相應(yīng)邊的數(shù)量。
表示不同邊對應(yīng)的權(quán)重。
隨機游走概率.png
3. ERNIE-GeoL 模型結(jié)構(gòu)
- ERNIE-GeoL模型結(jié)構(gòu)中嗽交,主要包括兩個組件:多層雙向transformer encoder層和基于transformer的聚合層(TranSAGE)卿嘲。TranSAGE聚合層其實就是一個mult-head attention層,輸入是每個結(jié)點通過transformer encdoer層生成的CLS token對應(yīng)的隱向量夫壁。
ERNIE-GeoL 模型結(jié)構(gòu).png
- 下述公式中拾枣,
表示第
個head,
表示線性投影層盒让。最終輸出層
隱向量用于geocoding任務(wù)梅肤,
隱向量用于MLM任務(wù)。
TranSAGE聚合層計算過程.png
CLS隱向量集合.png
4. ERNIE-GeoL 預(yù)訓(xùn)練任務(wù)
- ERNIE-Geol預(yù)訓(xùn)練任務(wù)包含兩個:MLM任務(wù)和Geocoding任務(wù)邑茄。
- MLM任務(wù): 采用的是一個whole word mask策略姨蝴。使用百度地圖成分分析模塊,對句子進行分析識別出地理實體詞肺缕。文檔中的15%的地理實體詞會被mask掉左医,其中70%的概率會被替換成[MASK] token,10%的概率會被替換成一個拼寫錯誤的詞(論文認(rèn)為query中的詞未在poi名稱中出現(xiàn)是一個拼寫錯誤的詞)同木,10%的概率保持該詞不做任何變化炒辉。
- Geocoding任務(wù): 主要用于學(xué)習(xí)poi文本和地理坐標(biāo)之間的關(guān)系。geocoding任務(wù)是預(yù)測最終poi是屬于哪個S2網(wǎng)格泉手,任務(wù)設(shè)置level=22此時覆蓋的范圍是2mx2m的網(wǎng)格。此時S2網(wǎng)格的數(shù)據(jù)非常的巨大偶器,直接預(yù)測網(wǎng)格id是不現(xiàn)實的斩萌。所以論文采用一種方式對S2網(wǎng)格進行編碼,如下圖所示偶數(shù)level和奇數(shù)level之間的長度是一樣的屏轰,只是最后一個字母有差別颊郎。所以最終,問題轉(zhuǎn)化成預(yù)測三個label的問題:即偶數(shù)level最后一個字符霎苗、奇數(shù)level最后一個字符姆吭、和他們倒數(shù)第二個字符。
Geocoding網(wǎng)格token表示.png
Geocoding任務(wù)目標(biāo).png
5. 下游任務(wù)
5個下游任務(wù).png
5.1 Query意圖分類任務(wù)
- Query意圖分類任務(wù)在POI搜索中扮演中重要的角色唁盏,文中定義了四種搜索意圖:1)搜索特定的POI内狸;2)搜索特定類型的POI;3)搜索地址厘擂;4)公交路線規(guī)劃昆淡;
- 抽取線上6000條真實地Query數(shù)據(jù)并進行人工標(biāo)注。Query意圖分類任務(wù)使用
向量接一個全連接層做分類任務(wù)刽严,評估指標(biāo)采用的是準(zhǔn)確率昂灵。
5.2 Query-POI匹配任務(wù)
- Query-POI匹配任務(wù),主要用于識別POI列表中哪個POI與當(dāng)前Query更加相關(guān)。文中定義了四種相關(guān)性:1)POI與Query精確匹配眨补;2)高度相關(guān)管削;3)弱相關(guān);4)不相關(guān)撑螺。 為了構(gòu)建相關(guān)的數(shù)據(jù)集含思,隨機抽取一些搜索Query,對于每一個Query從Top10排序結(jié)果中隨機選取6個相關(guān)POI实蓬,另外隨機抽取4個不相關(guān)POI茸俭。然后讓人工給這10個POI打上相關(guān)性匹配標(biāo)簽。也是使用
向量用于Query-POI匹配任務(wù)安皱。
5.3 地址成分分析任務(wù)
- 地址成分分析任務(wù)主要是對地址進行解析调鬓,打上對應(yīng)的成分標(biāo)簽。百度地圖設(shè)計了22個成分類型:9個是不同級別的地理區(qū)域酌伊,2個用于區(qū)分道路腾窝,3個用于區(qū)分不同類型POI,5個用于表示POI詳細位置居砖,另外3個附加詞虹脯。在百度地圖,基于規(guī)則的Geocoding系統(tǒng)和POI搜索中Query理解模塊奏候,都依賴于地址成分分析模塊循集。
- 為了構(gòu)建該任務(wù)的數(shù)據(jù)集,文中使用了兩個數(shù)據(jù)源:一個來自于百度地圖geocoding服務(wù)每天處理的送貨數(shù)據(jù)蔗草,另外一個來自于搜索日志中的Query數(shù)據(jù)咒彤,之后讓標(biāo)注人員對這兩部分?jǐn)?shù)據(jù)進行標(biāo)注。
- 該任務(wù)使用的是ERNIE-GeoL + CRF的結(jié)構(gòu)咒精,評估指標(biāo)選用的是F1 score镶柱。
5.4 Geocoding任務(wù)
- Geocoding任務(wù)的主要目標(biāo)是給定一個地理文本輸出其地理坐標(biāo)。Geocoding任務(wù)是地圖的一個基礎(chǔ)服務(wù)模叙,geocoding的輸出結(jié)果能夠給POI搜索服務(wù)提供重要特征歇拆。我們將百度地圖geocoding服務(wù)處理處理的地址作為我們的訓(xùn)練集,通過geocoding服務(wù)處理得到坐標(biāo)之后范咨,就可以得到這個地址對應(yīng)的S2 token故觅。
- 通過上述的方式可以構(gòu)造大量的訓(xùn)練樣本,因為geocoding服務(wù)不能做到100%正確渠啊,因此標(biāo)注了2000條數(shù)據(jù)作為驗證集和測試集逻卖。文中使用Accuracy@Nkm作為評估指標(biāo),意思是計算預(yù)測誤差在N km之內(nèi)的占比昭抒。
5.5 POI推薦任務(wù)
- POI推薦任務(wù)评也,主要是給定用戶歷史訪問的POI炼杖,推薦一個用戶下一次可能訪問的POI列表。文中使用了6個月百度地圖北京的POI訪問數(shù)據(jù)盗迟。使用一個滑動窗口在POI序列滑動坤邪,隨機生成長度為3-6的子序列。子序列中最后一個POI作為label罚缕,其他POI作為歷史POI艇纺。ERNIE-GeoL作為特征編碼器,上層也是使用一個雙塔模型邮弹。
6. 實驗設(shè)置及結(jié)果分析
- 數(shù)據(jù)集:文中使用了3個月的百度地圖搜索日志黔衡,異構(gòu)圖包含4千萬POI結(jié)點,1.2億Query結(jié)點腌乡,1.75億Query-POI點擊關(guān)系盟劫,15.74億POI起終點關(guān)系,3.63億POI位置近鄰關(guān)系与纽。使用隨機游走算法在異構(gòu)圖隨機游走生成訓(xùn)練集侣签,共包含8億的訓(xùn)練數(shù)據(jù),大約包含4千億單詞急迂。每個訓(xùn)練樣本包含10個結(jié)點影所。
- baseline模型:BERT, RoBERTa,ERNIE
實驗結(jié)果.png
7. 可視化分析
POI t-SNE降維分析.png
image.png
image.png
參考資料
- 論文:ERNIE-GeoL: A Geography-and-Language Pre-trained Model and its Applications in Baidu Maps
https://arxiv.org/pdf/2203.09127.pdf