召回粗排精排-级联漏斗(下)
文 | 水哥
源 | 知乎
saying
召回區(qū)分主路和旁路,主路的作用是個性化+向上管理,而旁路的作用是查缺補漏。
推薦系統(tǒng)的前幾個操作可能就決定了整個系統(tǒng)的走向,在初期一定要三思而后行。
做自媒體,打廣告,漏斗的入口有多大很重要。美妝,游戲,籃球入口都非常大,做刷題的自媒體會把自己餓死(說的就是我自己)。
召回這里稍微有些復(fù)雜,因為召回是多路的。首先我們要解釋主路和旁路的差別,主路的意義和粗排類似,可以看作是一個入口更大,但模型更加簡單的粗排。主路的意義是為粗排分擔壓力。但是旁路卻不是這樣的,旁路出現(xiàn)的時機往往是當主路存在某種機制上的問題,而單靠現(xiàn)在的這個模型很難解決的時候。舉個例子,主路召回學(xué)的不錯,但是它可能由于某種原因,特別討厭影視劇片段這一類內(nèi)容,導(dǎo)致了這類視頻無法上升到粗排上。那這樣的話整個系統(tǒng)推不出影視劇片段就是一個問題。從多路召回的角度來講,我們可能需要單加一路專門召回影視劇的,并且規(guī)定:主路召回只能出3000個,這一路新加的固定出500個,兩邊合并起來進入到粗排中去。這個栗子,是出現(xiàn)旁路的一個動機。這個過程我們可以用下圖來表示:
在上面的圖中,梯形的大小表示透出率的大小。
典型的召回都有哪些?
第一種召回,是非個性化的。比如對于新用戶,我們要確保用最高質(zhì)量的視頻把他們留住,那么我們可以劃一個“精品池”出來,根據(jù)他們的某種熱度排序,作為一路召回。做法就是新用戶的每次請求我們都把這些精品池的內(nèi)容當做結(jié)果送給粗排。這樣的召回做起來最容易,用sql就可以搞定。
第二種召回,是i2i,i指的是item,嚴格意義上應(yīng)該叫u2i2i。指的是用用戶的歷史item,來找相似的item。比如說我們把用戶過去點過贊的視頻拿出來,去找畫面上,BGM上,或者用戶行為結(jié)構(gòu)上相似的視頻。等于說我們就認為用戶還會喜歡看同樣類型的視頻。這種召回,既可以從內(nèi)容上建立相似關(guān)系(利用深度學(xué)習(xí)),也可以用現(xiàn)在比較火的graph來構(gòu)建關(guān)系。這種召回負擔也比較小,圖像上誰和誰相似完全可以離線計算,甚至都不會隨著時間變化。
第三種召回是u2i,即純粹從user和item的關(guān)系出發(fā)。我們所說的雙塔就是一個典型的u2i。在用戶請求過來的時候,計算出user的embedding,然后去一個實現(xiàn)存好的item embedding的空間,尋找最相似的一批拿出來。由于要實時計算user特征,它的負擔要大于前面兩者,但這種召回個性化程度最高,實踐中效果也是非常好的。
召回的學(xué)習(xí)目標
一般來說,個性化程度最高的雙塔,都會成為主路。它的學(xué)習(xí)目標,可以類比粗排和精排的關(guān)系去學(xué)習(xí)召回和粗排的關(guān)系。而基于graph或者圖像相似度的召回,則有各自自己的學(xué)習(xí)目標。
召回的評估方式
主路召回,我們可以采用粗排的方式,以粗排的序計算NDCG,或者TopN重疊率。但是旁路召回在線下是比較難以評估的。如果采用一樣的方式評估旁路,那旁路的作用豈不是和主路差不多?那旁路存在的意義是啥呢?不如把改進點加到主路里面去好了。在實際中,旁路召回雖然線下也會計算自己的AUC,NDCG等指標。但是往往都是只做一個參考,還是要靠線上實驗來驗證這路召回是不是有用。
在線上,除了AB需要看效果以外,有一個指標是召回需要注意的:透出率,指的是最終展示的結(jié)果中,有多少比例是由這一路召回提供的。如果我們新建了一路召回,他的透出率能達到30%,AB效果也比較好,那我們可以說這一路召回補充了原有系統(tǒng)的一些不足。反過來,如果你的透出率只有1點幾,2點幾,那不管AB是漲是跌,我都很難相信結(jié)果和這一路召回有關(guān)系,似乎也沒有新加的必要。
多路的結(jié)果如何融合?
多個召回之間的結(jié)果綜合的時候,要進行去重,可能有多個路返回了用樣的item,這時候要去掉冗余的部分。但是,去重的步驟比較是需要經(jīng)過設(shè)計的。有以下幾種方法來進行融合:
先來先到:按照人為設(shè)計,或者業(yè)務(wù)經(jīng)驗來制定一個順序,先取哪一路,再取哪一路。后面取得時候如果結(jié)果前面已經(jīng)有了,就要去掉。
按照每一路打分平均:比如第一路輸出A=0.6,B=0.4,第二路輸出B=0.6,C=0.4,那么由于B出現(xiàn)了兩次,B就需要平均一下,最后得到,A=0.6,B=0.5,C=0.4
投票:和上面的例子類似,但是B出現(xiàn)了兩次。我們認為B獲得了兩個方面的認可,因此它的排序是最靠前的。
注意上面的item最后留下的是哪一路的,透出率就算在誰頭上。
召回的問題
假設(shè)我們有三路召回ABC,在我們這個時空,業(yè)務(wù)部署的順序是A-B-C;在另一個平行時空,業(yè)務(wù)的部署順序是C-B-A。問:其他變量都不變的情況下,最終業(yè)務(wù)的收益是一樣的嗎?
我個人的理解是,幾乎不會一樣。先部署的召回會影響整個系統(tǒng),后來的不管是什么方案,都要在不利于自己的情況下“客場作戰(zhàn)”。舉一個極端的例子,A是一個特別喜歡土味視頻的召回,我們第一版實現(xiàn)的是它。結(jié)果A上線以后,不喜歡土味視頻的用戶全都跑路了。在迭代的過程中我們就會想,唉是不是我們也可以加一路B來專門召回高雅類型視頻啊。這時候上線一做,并沒有正向,因為喜歡高雅的用戶已經(jīng)沒了。這就是部署順序給整個系統(tǒng)帶來后效性的一個極端例子。如果我們一開始換一種做法,先上一路中規(guī)中矩的召回C,然后把AB當做補充的旁路加進來,效果是有可能更好的。
因此在最初的時候的操作一定要小心。否則會對算法同學(xué)帶來很大的后續(xù)負擔,比如上面這個例子,有一天領(lǐng)導(dǎo)說哎我們現(xiàn)在不夠高雅你來搞一個,那你就只能為初期的不正確決定買單了。這個問題并不是說粗排,精排就不會出現(xiàn)。而是在實踐中召回這里更容易出現(xiàn)。因為召回的某些方法實現(xiàn)很快,同學(xué)很可能一看有收益就推上去了。
入口的規(guī)模至關(guān)重要
前面講的漏斗都是針對于item篩選這個角度。從生產(chǎn)者的角度也存在這么一個漏斗:
一開始是吸引所面向的人群,然后一部分人會點擊,點擊的人中,一部分人會轉(zhuǎn)化,可能后面會有深度轉(zhuǎn)化等等。最終目的是廣告主的獲益。這里要說明一下,深度轉(zhuǎn)化是相對于某些行業(yè)才有的,比如說電商里面轉(zhuǎn)化了就是購買行為發(fā)生了,那已經(jīng)獲利了就不需要后面環(huán)節(jié)了。而對于游戲,轉(zhuǎn)化一般指的是下載,用戶后續(xù)氪金了叫深度轉(zhuǎn)化,對于游戲行業(yè)這個時候才算獲利。
這個漏斗中有兩個因素決定最終獲利的大小,一個是入口的規(guī)模,一個是梯形的斜率。其實在圖中,梯形的斜率就可以表示點擊率和轉(zhuǎn)化率的大小。如果你的產(chǎn)品很好,這兩個指標很高,那留下來的就更多,越能獲利。
但是點擊率轉(zhuǎn)化率這些東西很難優(yōu)化(雖然大品牌都有專門的團隊來負責(zé))。更多的生產(chǎn)者選擇了更簡單的那個變量:賽道決定的漏斗入口大小。
我們可以以現(xiàn)在這個專欄做一個例子:一般來說,評論是一個很稀疏的行為,假設(shè)每10個點贊有1個評論(這樣評論率就是10%,這已經(jīng)是一個非常高的比例了),每10個瀏覽有1個點贊。我們現(xiàn)在這個專欄的文章,想要獲得100個評論,就至少需要10000個對推薦系統(tǒng)感興趣的讀者,這可能都要把知乎上和推薦相關(guān)的讀者一網(wǎng)打盡了。這就是門檻很高,導(dǎo)致的漏斗的入口很小。但是如果面向的對象是所有學(xué)生,那入口就會大很多。
所以這就形成了自媒體的一個現(xiàn)象:選擇低門檻。我們可以發(fā)現(xiàn)自媒體,往往選擇美妝,籃球這樣的領(lǐng)域進行創(chuàng)作。因為漏斗的入口足夠大,哪個女生不想好看呢?看看籃球又不需要上場去打,也不需要什么思考,門檻也很低。入口足夠大,才能保證在鏈路的最后還有人剩下來。鏈路的最后往往可能是恰飯,比如說球的可以給球鞋做廣告之類的。
最后留兩道思考題
第一
為什么我們需要多路召回,而不是一個主路就把所有的情況都涵蓋了?
第二
刷單,指的是店家付款請人假扮顧客,用以假亂真的購物方式提高網(wǎng)店的排名和銷量獲取銷量及好評吸引顧客。刷單,一般是由賣家提供購買費用,幫指定的網(wǎng)店賣家購買商品提高銷量和信用度,并填寫虛假好評的行為。通過這種方式,網(wǎng)店可以獲得較好的搜索排名……
--來自《百度百科》
為什么刷單對商家有利可圖?
它符合我們這兩講中的哪一條性質(zhì)?
刷單這種手段是否可以檢測出來?涉及到哪一類算法?
想到答案的同學(xué)可以寫在評論里,我們在下一講的開頭會先分析一下這兩個問題。
下期預(yù)告
推薦系統(tǒng)全鏈路(4):打壓保送重排-模型之外
往期回顧
1.召回 粗排 精排,如何各司其職?
2.拍不完的腦袋:推薦系統(tǒng)打壓保送重排策略
3.簡單復(fù)讀機LR如何成為推薦系統(tǒng)精排之鋒?
4.召回粗排精排-級聯(lián)漏斗(上)
后臺回復(fù)關(guān)鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職討論群
后臺回復(fù)關(guān)鍵詞【頂會】
獲取ACL、CIKM等各大頂會論文集!
總結(jié)
以上是生活随笔為你收集整理的召回粗排精排-级联漏斗(下)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: embedding亦福亦祸?XGBoos
- 下一篇: 谈谈怎样提高炼丹手速