乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      機(jī)器學(xué)習(xí)在高德搜索建議中的應(yīng)用優(yōu)化實(shí)踐

       昵稱35641324 2019-07-10

      導(dǎo)讀:高德的愿景是:連接真實(shí)世界,讓出行更美好。為了實(shí)現(xiàn)愿景,我們要處理好LBS大數(shù)據(jù)和用戶之間的智能鏈接。信息檢索是其中的關(guān)鍵技術(shù),而搜索建議又是檢索服務(wù)不可或缺的組成部分。

      本文將主要介紹機(jī)器學(xué)習(xí)在高德搜索建議的具體應(yīng)用,尤其是在模型優(yōu)化方面進(jìn)行的一些嘗試,這些探索和實(shí)踐都已歷經(jīng)驗(yàn)證,取得了不錯的效果,并且為后來幾年個性化、深度學(xué)習(xí)、向量索引的應(yīng)用奠定了基礎(chǔ)。

      對搜索排序模塊做重構(gòu)

      搜索建議(suggest服務(wù))是指:用戶在輸入框輸入query的過程中,為用戶自動補(bǔ)全query或POI(Point of Interest,興趣點(diǎn),地理信息系統(tǒng)中可以是商鋪、小區(qū)、公交站等地理位置標(biāo)注信息),羅列出補(bǔ)全后的所有候選項,并進(jìn)行智能排序。

      我們希望通過suggest服務(wù):智能提示,降低用戶的輸入成本。它的特點(diǎn)是:響應(yīng)快、不承擔(dān)復(fù)雜query的檢索,可以把它理解為一個簡化版的LBS領(lǐng)域信息檢索服務(wù)。

      和通用IR系統(tǒng)一樣,suggest也分為doc(LBS中的doc即為POI)的召回和排序兩個階段。其中,排序階段主要使用query和doc的文本相關(guān)性,以及doc本身的特征(weight、click),進(jìn)行加權(quán)算分排序。

      但隨著業(yè)務(wù)的不斷發(fā)展、特征規(guī)模越來越大,人工調(diào)參逐漸困難,基于規(guī)則的排序方式已經(jīng)很難得到滿意的效果。這種情況下,為了解決業(yè)務(wù)問題,將不得不打上各種補(bǔ)丁,導(dǎo)致代碼難以維護(hù)。

      因此,我們決定對排序模塊進(jìn)行重構(gòu),Learning to Rank無疑是一個好的選擇。

      面臨的挑戰(zhàn):樣本構(gòu)造、模型調(diào)優(yōu)

      Learning to Rank(LTR)是用機(jī)器學(xué)習(xí)的方法來解決檢索系統(tǒng)中的排序問題。業(yè)界比較常用的模型是gbrank,loss方案用的最多的是pair wise,這里也保持一致。一般應(yīng)用LTR解決實(shí)際問題,最重要的問題之一就是如何獲得樣本。

      首先,高德地圖每天的訪問量巨大,這背后隱藏的候選POI更是一個天文數(shù)字,想要使用人工標(biāo)注的方法去獲得樣本明顯不現(xiàn)實(shí)。

      其次,如果想要使用一些樣本自動構(gòu)造的方法,比如基于用戶對POI的點(diǎn)擊情況構(gòu)建樣本pair ,也會遇到如下的問題:

      • 容易出現(xiàn)點(diǎn)擊過擬合,以前點(diǎn)擊什么,以后都給什么結(jié)果。

      • 有時,用戶點(diǎn)擊行為也無法衡量真實(shí)滿意度。

      • suggest前端只展示排序top10結(jié)果,更多的結(jié)果沒有機(jī)會展現(xiàn)給用戶,自然沒有點(diǎn)擊。

      • 部分用戶習(xí)慣自己輸入完整query進(jìn)行搜索,而不使用搜索建議的補(bǔ)全結(jié)果,統(tǒng)計不到這部分用戶的需求。

      對于這幾個問題總結(jié)起來就是:無點(diǎn)擊數(shù)據(jù)時,建模很迷茫。但就算有某個POI的點(diǎn)擊,卻也無法代表用戶實(shí)際是滿意的。

      最后,在模型學(xué)習(xí)中,也面臨了特征稀疏性的挑戰(zhàn)。統(tǒng)計學(xué)習(xí)的目標(biāo)是全局誤差的一個最小化。稀疏特征由于影響的樣本較少,在全局上影響不大,常常被模型忽略。但是實(shí)際中一些中長尾case的解決卻往往要依靠這些特征。因此,如何在模型學(xué)習(xí)過程中進(jìn)行調(diào)優(yōu)是很重要。

      系統(tǒng)建模過程詳解

      上一節(jié),我們描述了建模的兩個難題,一個是樣本如何構(gòu)造,另一個是模型學(xué)習(xí)如何調(diào)優(yōu)。先看下怎么解決樣本構(gòu)造難題,我們解決方案是:

      • 考量用戶在出行場景的行為session,不光看在suggest的某次點(diǎn)擊行為,更重要的是,考察用戶在出行場景下的行為序列。比如suggest給出搜索建議后,繼續(xù)搜索的是什么詞,出行的地點(diǎn)是去哪里,等等。

      • 不是統(tǒng)計某個query下的點(diǎn)擊, 而是把session看作一個整體,用戶在session最后的點(diǎn)擊行為,會泛化到session中的所有query上。

      詳細(xì)方案

      第一步,融合服務(wù)端多張日志表,包括搜索建議、搜索、導(dǎo)航等。接著,進(jìn)行session的切分和清洗。最后,通過把輸入session中,末尾query的點(diǎn)擊計算到session中所有query上,以此滿足實(shí)現(xiàn)用戶輸入session最短的優(yōu)化目標(biāo)。

      如下圖所示:

      最終,抽取線上點(diǎn)擊日志超過百萬條的隨機(jī)query,每條query召回前N條候選POI。利用上述樣本構(gòu)造方案,最終生成千萬級別的有效樣本作為gbrank的訓(xùn)練樣本。

      特征方面,主要考慮了4種建模需求,每種需求都有對應(yīng)的特征設(shè)計方案:

      • 有多個召回鏈路,包括:不同城市、拼音召回。因此,需要一種特征設(shè)計,解決不同召回鏈路間的可比性。

      • 隨著用戶的不斷輸入,目標(biāo)POI不是靜態(tài)的,而是動態(tài)變化的。需要一種特征能夠表示不同query下的動態(tài)需求。

      • 低頻長尾query,無點(diǎn)擊等后驗(yàn)特征,需要補(bǔ)充先驗(yàn)特征。

      • LBS服務(wù),有很強(qiáng)的區(qū)域個性化需求。不同區(qū)域用戶的需求有很大不同。為實(shí)現(xiàn)區(qū)域個性化,做到千域千面,首先利用geohash算法對地理空間進(jìn)行分片,每個分片都得到一串唯一的標(biāo)識符。從而可以在這個標(biāo)識符(分片)上分別統(tǒng)計特征。

      詳細(xì)的特征設(shè)計,如下表所示:

      完成特征設(shè)計后,為了更好發(fā)揮特征的作用,進(jìn)行必要的特征工程,包括尺度縮放、特征平滑、去position bias、歸一化等。這里不做過多解釋。

      初版模型,下掉所有規(guī)則,在測試集上MRR 有5個點(diǎn)左右的提升,但模型學(xué)習(xí)也存在一些問題,gbrank特征學(xué)習(xí)的非常不均勻。樹節(jié)點(diǎn)分裂時只選擇了少數(shù)特征,其他特征沒有發(fā)揮作用。

      以上就是前面提到的,建模的第二個難題:模型學(xué)習(xí)的調(diào)優(yōu)問題。具體來說就是如何解決gbrank特征選擇不均勻的問題。接下來,我們詳細(xì)解釋下。

      先看下,模型的特征重要度。如下圖所示:

      經(jīng)過分析,造成特征學(xué)習(xí)不均衡的原因主要有:

      • 交叉特征query-click的缺失程度較高,60%的樣本該特征值為0。該特征的樹節(jié)點(diǎn)分裂收益較小,特征無法被選擇。然而,事實(shí)上,在點(diǎn)擊充分的情況下,query-click的點(diǎn)擊比city-click更接近用戶的真實(shí)意圖。

      • 對于文本相似特征,雖然不會缺失,但是它的正逆序比較低,因此節(jié)點(diǎn)分裂收益也比city-click低,同樣無法被選擇。

      綜上,由于各種原因,導(dǎo)致樹模型學(xué)習(xí)過程中,特征選擇時,不停選擇同一個特征(city-click)作為樹節(jié)點(diǎn),使得其他特征未起到應(yīng)有的作用。解決這個問題,方案有兩種:

      • 方法一:對稀疏特征的樣本、低頻query的樣本進(jìn)行過采樣,從而增大分裂收益。優(yōu)點(diǎn)是實(shí)現(xiàn)簡單,但缺點(diǎn)也很明顯:改變了樣本的真實(shí)分布,并且過采樣對所有特征生效,無法靈活的實(shí)現(xiàn)調(diào)整目標(biāo)。我們選擇了方法二來解決。

      • 方法二:調(diào)loss function。按兩個樣本的特征差值,修改負(fù)梯度(殘差),從而修改該特征的下一輪分裂收益。例如,對于query-click特征非缺失的樣本,學(xué)習(xí)錯誤時會產(chǎn)生loss,調(diào)loss就是給這個loss增加懲罰項loss_diff。隨著loss的增加,下一棵樹的分裂收益隨之增加,這時query-click特征被選作分裂節(jié)點(diǎn)的概率就增加了。

      具體的計算公式如下式:

      以上公式是交叉熵?fù)p失函數(shù)的負(fù)梯度,loss_diff 相當(dāng)于對sigmod函數(shù)的一個平移。

      差值越大,loss_diff越大,懲罰力度越大,相應(yīng)的下一輪迭代該特征的分裂收益也就越大。

      調(diào)loss后,重新訓(xùn)練模型,測試集MRR在初版模型的基礎(chǔ)又提升了2個點(diǎn)。同時歷史排序case的解決比例從40%提升到70%,效果明顯。

      寫在最后

      Learning to Rank技術(shù)在高德搜索建議應(yīng)用后,使系統(tǒng)擺脫了策略耦合、依靠補(bǔ)丁的規(guī)則排序方式,取得了明顯的效果收益。gbrank模型上線后,效果基本覆蓋了各頻次query的排序需求。

      目前,我們已經(jīng)完成了人群個性化、個體個性化的建模上線,并且正在積極推進(jìn)深度學(xué)習(xí)、向量索引、用戶行為序列預(yù)測在高德搜索建議上的應(yīng)用。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多