很高興你能堅(jiān)持經(jīng)常過(guò)來(lái)支持筆者:陳鐸坤,今天就來(lái)說(shuō)說(shuō)關(guān)于淘寶搜同款怎么搜,淘寶搜索的意義在哪,以及關(guān)于淘寶搜的一系列相關(guān)內(nèi)容,先說(shuō)明一下,老司機(jī)直接飄過(guò)吧,主要是講解給新手朋友們的哈!
這篇論文主要講述,去年雙11期間,淘寶搜索在有限計(jì)算資源情況下,如何拿到更好的排序結(jié)果、保證用戶(hù)的搜索體驗(yàn)、以及點(diǎn)擊、成交量和成交額等目標(biāo)的完成。
實(shí)際的結(jié)果是,去年雙11當(dāng)天,淘寶搜索引擎的負(fù)載在最高峰也沒(méi)有超過(guò)70%,CPU的使用率降低了約45%,搜索的平均延遲下降了約30%,同時(shí)帶來(lái)的GMV提升了近1%。
以下是這篇論文的詳細(xì)介紹。
《多層級(jí)聯(lián)學(xué)習(xí)在大型電商排序系統(tǒng)的應(yīng)用(Cascade Ranking for Operational E-commerce Search)》
作者:劉士琛,肖非,歐文武,司羅
該論文設(shè)計(jì)并實(shí)現(xiàn)了一種級(jí)聯(lián)式電商搜索方式:它的主要思想是將一次排序分成遞進(jìn)的多個(gè)階段,各階段使用逐漸復(fù)雜的特征去得到逐漸準(zhǔn)確的結(jié)果。在靠前階段使用簡(jiǎn)單特征過(guò)濾顯然不合要求的結(jié)果,在靠后階段使用復(fù)雜特征辨別難以區(qū)分的結(jié)果。除此以外,算法結(jié)合電商場(chǎng)景的特殊性,嚴(yán)格限制了引擎的響應(yīng)時(shí)間以及返回商品的數(shù)量,以保證用戶(hù)的搜索體驗(yàn)。
離線實(shí)驗(yàn)和在線實(shí)驗(yàn)均驗(yàn)證了算法的正確性以及有效性,對(duì)比傳統(tǒng)的方法能提升準(zhǔn)確率的同時(shí)大幅提升了計(jì)算性能;在去年雙11,在新增了大量準(zhǔn)確又耗時(shí)的計(jì)算特征(包括強(qiáng)化學(xué)習(xí)和深度學(xué)習(xí)特征)的情況下,算法極大的保證了引擎的效率,使排序?qū)σ娴膲毫ο陆?0%,同時(shí)使排序效果有較大提升。
面臨的問(wèn)題
淘寶的搜索系統(tǒng)無(wú)疑是全球最大的電商搜索系統(tǒng)。“最大”這里包括商品量、用戶(hù)量,包括引導(dǎo)的成交額、點(diǎn)擊成交量,還包括引擎的訪問(wèn)次數(shù)、訪問(wèn)QPS…這樣一個(gè)搜索引擎,所需要面對(duì)的訪問(wèn)壓力也是巨大的,尤其在“雙十一”等大促場(chǎng)景,壓力更是平時(shí)的數(shù)倍。
另外一般搜索引擎的目標(biāo)主要是引導(dǎo)點(diǎn)擊,而在電商中,排序的結(jié)果更希望引導(dǎo)的是成交量和成交額。
因此我們的搜索系統(tǒng)、排序方案需要考慮多種實(shí)際問(wèn)題。首先是在有限計(jì)算資源情況下,如何拿到更好的排序結(jié)果;其次是怎樣保證用戶(hù)的搜索體驗(yàn),包括結(jié)果返回時(shí)間、返回商品量等;最后是怎么保證電商場(chǎng)景下的多目標(biāo),包括點(diǎn)擊、成交量和成交額。
已有方法的不足
學(xué)術(shù)界和工業(yè)界都有大量learning to rank方面的研究,均期望能通過(guò)機(jī)器學(xué)習(xí),為用戶(hù)給出更優(yōu)的排序結(jié)果。然而絕大部分相關(guān)工作都集中在如何提升排序的質(zhì)量,卻并不關(guān)系排序的效率,而太低效的排序方案在實(shí)際的工業(yè)在線應(yīng)用中,往往是不可接受的。
淘寶搜索和其他類(lèi)似應(yīng)用主要采取的解決方案是使用一種“兩輪排序方案”:在第一輪使用非常簡(jiǎn)單的特征去得到一個(gè)小的候選集;第二輪在小的集合上做復(fù)雜的排序??墒沁@種啟發(fā)式的方案并不能保證性能與效果的取舍是最優(yōu)的?;谝陨峡紤],我們需要一種全新的、工業(yè)可用的、能更合理平衡效率與性能的排序方案。
CLOSE排序算法,平衡性能與效率,保障用戶(hù)體驗(yàn)
論文受圖像中快速目標(biāo)檢測(cè)算法的啟發(fā),發(fā)現(xiàn)并不是引擎中的每個(gè)商品都需要全部特征參與計(jì)算、排序——一些基本特征能幫助過(guò)濾掉大多數(shù)商品;逐漸復(fù)雜的特征過(guò)濾逐漸難以區(qū)分好壞的商品;全部特征排序剩余商品。
基于這樣的思想,論文提出了一種多輪級(jí)聯(lián)排序方法Cascade model in a Large-scale Operational Ecommerce Search application(CLOES)。
CLOES主要采用了一種基于概率的cascade learning方法,將排序分為多輪計(jì)算;將排序效果和CPU的計(jì)算量作為優(yōu)化目標(biāo),一起建立數(shù)學(xué)模型,同時(shí)優(yōu)化。
除了考慮性能與效率,算法還考慮了用戶(hù)的搜索體驗(yàn),保證用戶(hù)在輸入任何一個(gè)query后都能在限制時(shí)間內(nèi)得到足夠的返回結(jié)果。最后CLOES還考慮了電商場(chǎng)景的特殊性,保障了多目標(biāo)的平衡與可調(diào)整。
平衡性能與效率的排序(Query-Dependent Trade Off Between Effectiveness and Efficiency)
論文最重要的部分就是怎么樣去平衡一個(gè)排序算法的性能和效率,那么我們主要使用的方法是cascade
learning,即將一次排序拆分成多個(gè)遞進(jìn)階段(stage),每個(gè)階段選用逐漸復(fù)雜的特征去過(guò)濾一次商品集合。同時(shí)我們使用learning
to rank設(shè)定,將排序問(wèn)題轉(zhuǎn)化為一個(gè)二分類(lèi)問(wèn)題,預(yù)估每個(gè)商品的點(diǎn)擊率。
如圖所示,我們記一個(gè)商品x(表示為一個(gè)k維向量)在Query q下,能通過(guò)第j個(gè)stage的概率為
,其中
表示sigmoid函數(shù)。那么一個(gè)商品最終能被點(diǎn)擊的概率為能通過(guò)所有stage的概率之積:
我們通過(guò)極大似然估計(jì)去擬合樣本,使用負(fù)的log似然來(lái)表示損失函數(shù),那么基礎(chǔ)的損失函數(shù)可以表示為
。
關(guān)注的是排序的準(zhǔn)確性:
其中左邊項(xiàng)表示似然函數(shù),影響模型的準(zhǔn)確度;右邊項(xiàng)
表示正則項(xiàng),一方面是防止過(guò)擬合,另一方面能預(yù)防特征相關(guān)導(dǎo)致的ill-condition問(wèn)題。
由于在實(shí)際的搜索排序中,我們除了效果,性能也是不得不關(guān)注的部分,因此我們需要將系統(tǒng)的性能性能消耗也加到目標(biāo)中。我們可以求CPU的總消耗等于每個(gè)stage下的性能消耗之和:
。其中
表示每個(gè)stage上需要計(jì)算的商品量的期望,
表示商品x能進(jìn)入第j個(gè)stage的概率,
表示在第j個(gè)stage上的feature進(jìn)行一次計(jì)算的總耗時(shí)。那么我們得到一個(gè)新的loss
,
除了考慮排序的效果,兼顧了模型的計(jì)算量:
通過(guò)調(diào)整
,我們能調(diào)節(jié)系統(tǒng)的性能與效率。
越大,系統(tǒng)負(fù)載越低,但排序結(jié)果也越差;
越小,排序結(jié)果越好,但系統(tǒng)開(kāi)銷(xiāo)越大。
用戶(hù)體驗(yàn)保障(Multiple Factors of User Experience)
如果直接使用上述模型,確實(shí)可以直接降低引擎的負(fù)載,但是仍然存在2點(diǎn)用戶(hù)體驗(yàn)上的問(wèn)題:1是對(duì)于某些query(特別是hot
query),可能計(jì)算latency仍然會(huì)非常高;2是某些query(一般是長(zhǎng)尾query)下,返回給用戶(hù)的結(jié)果特別少。那么為了解決這2個(gè)問(wèn)題,我們進(jìn)一步的增加了2個(gè)約束:?jiǎn)蝢uery下的latency不能超過(guò)100(只是舉例,不一定是100)ms;返回給用戶(hù)的結(jié)果數(shù)不能小于200。那么很自然的,我們會(huì)想到使用類(lèi)似SVM的loss形式:
上述公式可以比較直觀的理解為當(dāng)query下的latency小于100ms(N的值)的時(shí)候,loss為0;大于100ms時(shí),loss為(latency-100)的線性倍數(shù);返回結(jié)果數(shù)類(lèi)似。然而該函數(shù)是非凸、不可導(dǎo)的,并不利于問(wèn)題的求解。因此為了求解的方便,我們使用了一個(gè)凸近似函數(shù)modified
logistic loss去逼近SVM loss,可以證明,該loss和hinge loss是幾乎一致的,當(dāng)我們?nèi)∫粋€(gè)較大的
的時(shí)候:
綜上,我們考慮了用戶(hù)的2種體驗(yàn)之后,最終的目標(biāo)函數(shù)可以寫(xiě)成下面形式:
其中
表示期望返回給用戶(hù)的最少結(jié)果數(shù)(例如200),
表示希望的最大latency(例如100ms)。通過(guò)最小化
,我們既能在有限的計(jì)算資源下得到更好的排序結(jié)果,又能兼顧用戶(hù)的搜索體驗(yàn)。
商品場(chǎng)景下的多目標(biāo)(Importance Factors of E-commerce Search)
電商搜索與網(wǎng)頁(yè)搜索或者廣告有較大區(qū)別:我們關(guān)注的不僅是點(diǎn)擊
,成交量、成交額等指標(biāo)同樣重要。然而如果我們將所有正樣本(點(diǎn)擊和成交)一樣處理,由于點(diǎn)擊樣本量遠(yuǎn)大于成交樣本,那么我們更像在學(xué)習(xí)一個(gè)CTR任務(wù);這在我們想得到更高的成交額或GMV時(shí)是不合理的。因此我們?yōu)椴煌?lèi)型、不同價(jià)格的正樣本設(shè)置了不同的權(quán)重。更具體的,我們會(huì)區(qū)分樣本商品的log(價(jià)格)、點(diǎn)擊和成交,于是在表示準(zhǔn)確的似然項(xiàng)上,做了如下修正:
在上式中,
越大,成交樣本的權(quán)重更高;
越大,價(jià)格因素的影響越大。權(quán)重的作用主要會(huì)體現(xiàn)在優(yōu)化過(guò)程的梯度求解上。
離線與在線驗(yàn)證
為了驗(yàn)證算法的有效性,我們隨機(jī)采樣了線上一天的日志做交叉驗(yàn)證,數(shù)據(jù)取自2016年10月底。我們主要考察的指標(biāo)有2點(diǎn):測(cè)試集上的AUC以及性能總消耗。對(duì)比的算法有1,使用全部特征做一次排序;2,使用簡(jiǎn)單特征做一次排序;3,線上使用的2-stage方法;4,CLOES算法,取
;5,CLOES算法,取
。
實(shí)驗(yàn)結(jié)果如下表。從表中我可以看到使用全部特征的準(zhǔn)確率無(wú)疑是最高的,然后計(jì)算消耗也是最高的;線上使用的2-stage方法能顯著的降低計(jì)算效率的問(wèn)題,只有方法1的30%,但是AUC也降低到0.76。我們主要對(duì)比的是現(xiàn)在線上使用的方法3—2-stage
approach,使用了CLOES,在幾乎相同的計(jì)算消耗下,AUC能從0.76提升到0.80;在幾乎相同的AUC下,計(jì)算消耗能從30%進(jìn)一步下降到18%。
在離線驗(yàn)證了算法效果后,我們?cè)陔p11前夕對(duì)算法進(jìn)行了上線,以期望降低引擎的計(jì)算壓力。上線期間的引擎CPU使用率以及平均搜索latency變化如下圖:可以看到CPU使用率從32%下降到18%;而平均的搜索latency從33ms下降到24ms,圖中有2條曲線分別表示引擎的2個(gè)集群。
需要注意的是,在引擎壓力大量下降的情況下,線上的排序指標(biāo),包括CTR和GMV是略上升的。
受益于CLOES,在雙11當(dāng)天,引擎的負(fù)載在最高峰也沒(méi)有超過(guò)70%,CPU的使用率降低了約45%,搜索的平均延遲下降了約30%,同時(shí)CLOES本身帶來(lái)的GMV提升了近1%。考慮到其他因?yàn)樾阅芨纳贫苌暇€的特征(包括實(shí)時(shí)特征和RNN特征等),排序的CTR提升有10%-20%,同時(shí)成交量、GMV等指標(biāo)也有大幅提升(指標(biāo)對(duì)比基于標(biāo)準(zhǔn)A/B
Test)。
其他的實(shí)驗(yàn)結(jié)果以及算法細(xì)節(jié)請(qǐng)見(jiàn)原文。
總結(jié)
搜索對(duì)于電商來(lái)說(shuō)是最大的流量入口,搜索排序的質(zhì)量對(duì)用戶(hù)的體驗(yàn)、對(duì)商家的收入、對(duì)平臺(tái)的效率都會(huì)起到至關(guān)重要的作用。未來(lái)搜索會(huì)繼續(xù)以用戶(hù)的搜索體驗(yàn)為主要目標(biāo),為用提供能更優(yōu)質(zhì)、更能滿(mǎn)足用戶(hù)個(gè)性需求的排序結(jié)果。
從技術(shù)上,多種機(jī)器學(xué)習(xí)技術(shù)都會(huì)與搜索排序相關(guān),例如:考慮到用戶(hù)的長(zhǎng)期體驗(yàn),我們需要強(qiáng)化學(xué)習(xí)技術(shù);考慮數(shù)據(jù)的分布不一致等問(wèn)題,需要counterfactual
learning技術(shù);考慮更好的個(gè)性化體驗(yàn),需要representation
learning的相關(guān)技術(shù);考慮更具交互性的搜索,我們需要自然語(yǔ)言處理,知識(shí)圖譜等方面技術(shù)……淘寶搜索會(huì)持續(xù)的優(yōu)化用戶(hù)的購(gòu)物體驗(yàn),同時(shí)希望貢獻(xiàn)更多優(yōu)秀的算法、解決方面給工業(yè)應(yīng)用及學(xué)術(shù)研究。
以上就是我為各位整理的文章所有內(nèi)容,希望在一定程度上可以幫到你,認(rèn)真看完了這篇淘寶搜同款怎么搜「附:淘寶搜索的意義在哪」文章,感覺(jué)收獲很多,可以幫忙分享一下。
本文發(fā)布者:百事通,不代表巢座耶立場(chǎng),轉(zhuǎn)載請(qǐng)注明出處:http://www.sdwldmy.com/p/10970.html
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶(hù)自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 jubao226688#126.com 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。