地理文本处理技术在高德的演进(下)
在【上篇】里,我們介紹了地理文本處理技術(shù)在高德的整體演進(jìn),選取了幾個(gè)通用query分析的點(diǎn)進(jìn)行了介紹。下篇中,我們會(huì)選取幾個(gè)地圖搜索文本處理中特有的文本分析技術(shù)做出分析,包括城市分析,wherewhat分析,路徑規(guī)劃,并對(duì)未來做一下展望。
四、query分析技術(shù)演進(jìn)
4.1 城市分析
在高德地圖的檢索場(chǎng)景下,從基礎(chǔ)的地圖數(shù)據(jù)索引、到在線召回、最終產(chǎn)品展示,均以市級(jí)別行政單位為基礎(chǔ)粒度。一次完整的檢索需求除了用戶輸入的query外,還會(huì)包含用戶的圖面城市以及用戶位置城市兩個(gè)城市信息。
通常,大多數(shù)的搜索意圖都是在圖面或者用戶位置城市下,但是仍存在部分檢索意圖需要在其他城市中進(jìn)行,準(zhǔn)確的識(shí)別出用戶請(qǐng)求的目標(biāo)城市,是滿足用戶需求的第一步,也是極其重要的一步。
在query分析策略流程中,部分策略會(huì)在城市分析的多個(gè)結(jié)果下并發(fā)執(zhí)行,所以在架構(gòu)上,城市分析的結(jié)果需要做到少而精。同時(shí)用戶位置城市,圖面城市,異地城市三個(gè)城市的信息存在明顯差異性,不論是先驗(yàn)輸出置信度,還是用后驗(yàn)特征做選擇,都存在特征不可比的問題。
在后驗(yàn)意圖決策中,多個(gè)城市都有相關(guān)結(jié)果時(shí),單一特征存在說服力不足的問題,如何結(jié)合先驗(yàn)置信度和后驗(yàn)的POI特征等多維度進(jìn)行刻畫,都是我們要考慮的問題。
原始的城市分析模塊已經(jīng)采用先驗(yàn)城市分析和后驗(yàn)城市選擇的總體流程
 但是原始的策略比較簡(jiǎn)陋,存在以下問題:
- 問題1:先驗(yàn)和后驗(yàn)兩部分均基于規(guī)則,效果不好并且可維護(hù)性差;
- 問題2:特征體系存在缺陷。原始的城市分析僅使用query級(jí)的特征,包括點(diǎn)擊,session改寫,query和城市共現(xiàn)等,對(duì)于低頻query處理得不好。
技術(shù)改造
改造1:城市分析
方案
城市分析是一個(gè)輕召回重選擇的問題,我們將城市分析設(shè)計(jì)為召回+選擇的兩階段任務(wù)。
召回階段,我們主要從query和phrase兩種粒度挖掘特征資源,而后進(jìn)行候選城市歸并。
排序階段,需要對(duì)候選城市進(jìn)行判斷,識(shí)別是否應(yīng)為目標(biāo)城市,用gbdt進(jìn)行二分類擬合。
樣本構(gòu)建
樣本方面,我們選擇從搜索日志中隨機(jī)抽取,簡(jiǎn)單清洗后,進(jìn)行人工標(biāo)注。構(gòu)造樣本時(shí)存在本異地分樣本分布不均的問題,本地需求遠(yuǎn)遠(yuǎn)多于異地,這里需要剔除本地和異地相關(guān)的特征,避免模型學(xué)偏。
特征體系
主要特征包括:
- query級(jí)特征:如用戶在特定query&city下的點(diǎn)擊;
- phrase級(jí)特征:類比于query級(jí)的特征,在更細(xì)粒度下進(jìn)行統(tǒng)計(jì);
- 組合特征:為了克服單一特征表征能力不足的問題,這里我們進(jìn)行了一些人工特征組合。
改造2:城市選擇
方案
城市選擇在整體的意圖決策中處于下游,多種意圖先在城市內(nèi)部PK,然后城市互相PK。城市選擇問題可以理解為多個(gè)城市間的排序問題,這里我們使用ltr進(jìn)行城市選擇的建模。
樣本構(gòu)建
使用隨機(jī)query的多個(gè)城市意圖結(jié)果作為樣本,每次檢索只有1個(gè)展示城市,因而每次只需要從候選城市中選擇目標(biāo)作為正樣本,其他候選城市均作為負(fù)樣本,與目標(biāo)城市構(gòu)成pair對(duì)。
特征構(gòu)建
主要特征包括:
- 先驗(yàn)特征。如城市分析部分輸出的置信度;
- 文本特征。一些基礎(chǔ)的文本相關(guān)性特征;
- 點(diǎn)擊特征。如不同意圖城市中的點(diǎn)擊強(qiáng)度;
- 意圖特征。一些特征可能影響用戶的城市傾向,如用戶位置與首位POI距離。
相比原始的城市分析和城市選擇,兩個(gè)模塊全部實(shí)現(xiàn)機(jī)器學(xué)習(xí)化,在惡劣badcase顯著降低的同時(shí),可維護(hù)性大幅提高。在后續(xù)的建模中,我們將城市分析作為一個(gè)上層應(yīng)用任務(wù),通過多任務(wù)的方式接入到query分析的統(tǒng)一模型中來,降低了特征間的耦合,同時(shí)實(shí)現(xiàn)進(jìn)一步的效果提升。
4.2 wherewhat分析
地圖場(chǎng)景下的query經(jīng)常包含多個(gè)空間語義片段的描述,只有正確識(shí)別query中的核心部分做what用于召回,同時(shí)用空間描述部分做where進(jìn)行限定,才能夠得到用戶想要的POI。如query=北京市海淀區(qū)五道口肯德基,what=肯德基,是泛需求。query=南京市雨花臺(tái)區(qū)板橋街道新亭大街與新湖大道交界口灣景,what=灣景,是精確需求。這種在A附近找B或者在A范圍內(nèi)找B的需求我們把它稱作wherewhat需求,簡(jiǎn)稱ww。
 wherewhat意圖分析主要包括先驗(yàn)和后驗(yàn)兩個(gè)部分。先驗(yàn)要做wherewhat切分,是一個(gè)序列標(biāo)注問題,標(biāo)注出query中的哪些部分是where哪些部分是what,同時(shí)給出where的空間位置。后驗(yàn)要做意圖選擇,選擇是否展示wherewhat意圖的結(jié)果,可以轉(zhuǎn)化成分類或者排序問題。
wherewhat體系的主要難點(diǎn)在ww切分上,不僅要應(yīng)對(duì)其他query分析模塊都要面對(duì)的低頻和中長尾問題,同時(shí)還要應(yīng)對(duì)ww意圖理解獨(dú)特的問題。像語義模糊,比如北京歡樂谷公交站,涌邊村牌坊這樣的query該切還是不該切,結(jié)果差異很大。像語序變換,如query=嘉年華西草田,善興寺小寨,逆序的表達(dá)如果不能正確識(shí)別,效果可能很差。
現(xiàn)狀與問題
現(xiàn)狀
切分:wherewhat模塊在成分分析模塊下游,主要依靠了成分分析的特征。對(duì)于一些比較規(guī)整的query,通過成分分析組合的pattern來解決,對(duì)于一些中長尾的query,通過再接入一個(gè)crf模型進(jìn)行ww標(biāo)注。
選擇:基于人工規(guī)則進(jìn)行意圖的判斷和選擇。
- 問題1:切分模型簡(jiǎn)陋。基于crf的切分模型使用特征單一,對(duì)成分特征依賴嚴(yán)重,處于黑盒狀態(tài)無法分析;
- 問題2:后驗(yàn)意圖判斷,規(guī)則堆砌,不好維護(hù);
- 問題3:逆序問題表現(xiàn)不好。由于query的語料大部分是正序的,模型在小比例的逆序query上表現(xiàn)不好。
技術(shù)改造
crf問題分析工具
為了能夠分析原始crf切分模型的問題,我們基于crf++源碼開發(fā)了一個(gè)crf模型的分析工具,能夠?qū)⒒诰S特比算法的預(yù)測(cè)過程交互式的展示出來,將模型的黑盒分析變成白盒,分析出了一系列問題。
 同時(shí),crf問題分析工具也應(yīng)用在了其他query分析模塊。
- 改造1:特征建設(shè)和模型優(yōu)化
原始的模型依賴成分分析比較嚴(yán)重,由于成分分析特征本身存在準(zhǔn)確率的問題,我們從用戶的query中總結(jié)了一些更加可靠的統(tǒng)計(jì)特征。
前綴置信度
描述了片段做前綴的占比。比如望京凱德茂,望京阜通,也有望京單獨(dú)搜,如果望京在前綴中出現(xiàn)的占比很高,那說明這個(gè)片段做where的能力比較強(qiáng)。
后綴熵
描述了后綴的離散程度,如望京凱德茂,望京美食,望京首開,后綴很亂,也可以說明片段做where的能力。
what置信度
片段單獨(dú)搜占比,比如西門經(jīng)常是在片段結(jié)尾出現(xiàn),但是單獨(dú)搜比較少,那片段做what的能力比較弱。
以特征值域做橫軸,where和what,label作為縱軸,就得到了特征-label曲線。從這幾個(gè)特征的特征-label曲線來看,在某些區(qū)間下區(qū)分度還是很好的。由于crf模型只接受離散特征,特征-label的曲線也指導(dǎo)了特征離散化的閾值選擇。對(duì)于低頻query,我們通過低頻query中的高頻片段的統(tǒng)計(jì)信息,也可以使我們的模型在低頻問題上表現(xiàn)更好。
- 改造2:后驗(yàn)意圖選擇升級(jí)
將原始的堆砌的規(guī)則升級(jí)到gbdt機(jī)器學(xué)習(xí)模型,引入了先驗(yàn)特征,在拿到一定收益的同時(shí)也使得整個(gè)體系更加合理。
- 改造3:魯棒性優(yōu)化
將ww中逆序的問題抽象出來,可以歸納為query分析中的魯棒性問題。隨著策略優(yōu)化進(jìn)入深水區(qū),存在策略提升用戶不可感知,攻擊case容易把系統(tǒng)打穿的問題。
 如上圖,用戶變換query中where和what的順序,效果可能變差。變換下檢索城市,對(duì)于同一個(gè)知名景點(diǎn),跳轉(zhuǎn)邏輯不一致。用戶區(qū)劃輸錯(cuò),糾錯(cuò)不能識(shí)別,效果變很差。這種模塊對(duì)非預(yù)期的query變換,或者更通用地叫做,對(duì)上下游的特征擾動(dòng)的承載能力,我們可以把它叫做模塊的魯棒性。
這里我們?cè)O(shè)計(jì)了對(duì)于通用魯棒性問題解決的思路
 在不引入復(fù)雜模型的前提下,通過構(gòu)建ensemble的淺層模型來優(yōu)化特定問題,降低了問題解決的成本。
對(duì)于ww逆序這個(gè)特定問題進(jìn)行了特征復(fù)用用本復(fù)用,并且模型對(duì)外統(tǒng)一
 效果上,新的模型在原始測(cè)試集效果持平,人工構(gòu)造攻擊case集合準(zhǔn)召明顯提升,目標(biāo)case集合具有可觀的解決比例,驗(yàn)證了魯棒性優(yōu)化的思路是有效的。
這里基本完成了對(duì)于ww體系的一個(gè)完整的升級(jí),體系中的痛點(diǎn)基本都得到了解決。優(yōu)化了切分模型,流程更加合理。意圖決策上完成了規(guī)則到機(jī)器學(xué)習(xí)模型的升級(jí)。在優(yōu)化或者引入淺層機(jī)器學(xué)習(xí)模型的同時(shí)盡可能發(fā)揮淺層模型的潛力,為從淺層模型升級(jí)為深度模型打下基礎(chǔ)。
在后續(xù)的建模中我們使用字粒度lstm+crf模型代替現(xiàn)有的crf模型,徹底擺脫了對(duì)成分分析特征的依賴,同時(shí)通過融合知識(shí)信息到lstm+crf模型,進(jìn)一步提升效果。
4.3 路徑規(guī)劃
在高德地圖的搜索場(chǎng)景中,一類用戶搜索意圖為路徑規(guī)劃意圖。例如,當(dāng)用戶在高德地圖App的搜索框中輸入“從回龍觀到來廣營”,點(diǎn)擊搜索按鈕后,搜索服務(wù)能識(shí)別出用戶的搜索意圖為路徑規(guī)劃,并識(shí)別出用戶描述的起點(diǎn)為“回龍觀”,終點(diǎn)為“來廣營”,進(jìn)而檢索到對(duì)應(yīng)的POI點(diǎn)給下游服務(wù)做出路線的規(guī)劃。
 從用戶輸入中識(shí)別路徑規(guī)劃意圖,并提取出對(duì)應(yīng)的起終點(diǎn),這是一個(gè)典型的NLP任務(wù)。早期的路徑規(guī)劃模塊使用的是模板匹配的方式,這種方式開發(fā)成本低,能解決大部分常見的路徑規(guī)劃問題,如上面這種“從A 到B”類的問題。
但隨著業(yè)務(wù)的不斷發(fā)展,模塊需要解決的問題越來越復(fù)雜,比如“坐地鐵從西直門到大興狼垡坐到哪里下車”,“廣東到安徽經(jīng)過哪幾個(gè)城市”,“去往青島的公交車有嗎” 等等各種非“從A到B”模式的問題。由于模板匹配方式?jīng)]有泛化能力,只能通過不斷增加模板來解決,使得模塊越來越沉重難以維護(hù)。
優(yōu)化
由于線上所有的搜索query都會(huì)經(jīng)過路徑規(guī)劃模塊,若是讓模型去處理所有的query,那么模型不僅要解決意圖識(shí)別問題(召回類問題),又要解決槽位提取問題(準(zhǔn)確類問題),對(duì)于模型來說是很難同時(shí)將這兩個(gè)任務(wù)學(xué)好的。因此,我們采取了以下三段式:
 模型前使用關(guān)鍵字匹配策略進(jìn)行簡(jiǎn)單意圖識(shí)別,過濾掉大部分非路徑規(guī)劃query;模型處理疑似路徑規(guī)劃的query,進(jìn)行槽位提取;模型后再對(duì)模型結(jié)果進(jìn)行進(jìn)一步檢驗(yàn)。
樣本和特征
機(jī)器學(xué)習(xí)的樣本一般來源于人工標(biāo)注,但人工標(biāo)注耗時(shí)長成本高。因此我們采取的是自動(dòng)標(biāo)注樣本方式。通過富集路徑規(guī)劃模式,如“從A怎么乘公交到B”,再用清洗后的隨機(jī)query按照實(shí)際起終點(diǎn)的長度分布進(jìn)行起終點(diǎn)替換,生成大量標(biāo)注樣本。
特征方面,我們使用了成分分析特征及含有關(guān)鍵字的POI詞典特征。它們主要在如“從這里到58到家”這類起終點(diǎn) 中含有關(guān)鍵字的query上起著區(qū)分關(guān)鍵字的作用。
模型訓(xùn)練
crf算法是業(yè)界常用的為序列標(biāo)注任務(wù)建立概率圖模型的算法。我們選取的也是crf算法。
效果評(píng)估
在驗(yàn)證集準(zhǔn)確率召回率,以及隨機(jī)query效果評(píng)比上,指標(biāo)都有了明顯的提升。
對(duì)于路徑規(guī)劃這樣一個(gè)定向的NLP任務(wù),使用crf模型完成了從規(guī)則到機(jī)器學(xué)習(xí)模型的升級(jí)。作為一個(gè)應(yīng)用層任務(wù),路徑規(guī)劃也很容易被遷移到seq2seq的多任務(wù)學(xué)習(xí)模型中來。
五、展望
過去兩年隨著機(jī)器學(xué)習(xí)的全面應(yīng)用,以及基于合理性進(jìn)行的多次效果迭代,目前的地理文本處理的效果優(yōu)化已經(jīng)進(jìn)入深水區(qū)。我們認(rèn)為將來的優(yōu)化重點(diǎn)在攻和防兩方面。
攻主要針對(duì)低頻和中長尾問題。在中高頻問題已經(jīng)基本解決的前提下,如何能夠利用深度學(xué)習(xí)的技術(shù)進(jìn)行地理文本處理seq2seq的統(tǒng)一建模,在低頻和中長尾問題上進(jìn)行進(jìn)一步優(yōu)化,獲得新一輪的效果提升,是我們目前需要思考的問題。另外,如何更好地融合知識(shí)信息到模型中來,讓模型能夠具有接近人的先驗(yàn)判斷能力,也是我們亟待提升的能力。
防主要針對(duì)系統(tǒng)的魯棒性。如用戶的非典型表達(dá),變換query等定向的問題,如何能夠通過定向優(yōu)化解決這些策略的死角,提高系統(tǒng)的容錯(cuò)能力,也是我們目前需要考慮的問題。
地圖搜索雖然是個(gè)垂類搜索,但是麻雀雖小五臟俱全,并且有地圖場(chǎng)景下很多有特色的的難點(diǎn)。未來我們需要繼續(xù)使用業(yè)界先進(jìn)的技術(shù),并且結(jié)合地理文本的特點(diǎn)進(jìn)行優(yōu)化,理解將更加智能化。
原文鏈接
 本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的地理文本处理技术在高德的演进(下)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: OpenTelemetry-可观察性的新
- 下一篇: 微服务架构四大金刚利器
