推薦系統(tǒng)[三]:粗排算法常用模型匯總,技術發(fā)展歷史以及前沿技術

1.前言:召回排序流程策略算法簡介

推薦可分為以下四個流程,分別是召回、粗排、精排以及重排:
召回是源頭,在某種意義上決定著整個推薦的天花板;
粗排是初篩,一般不會上復雜模型;
精排是整個推薦環(huán)節(jié)的重中之重,在特征和模型上都會做的比較復雜;
重排,一般是做打散或滿足業(yè)務運營的特定強插需求,同樣不會使用復雜模型;
召回層:召回解決的是從海量候選item中召回千級別的item問題
統(tǒng)計類,熱度,LBS;
協(xié)同過濾類,UserCF、ItemCF;
U2T2I,如基于user tag召回;
I2I類,如Embedding(Word2Vec、FastText),GraphEmbedding(Node2Vec、DeepWalk、EGES);
U2I類,如DSSM、YouTube DNN、Sentence Bert;

模型類:模型類的模式是將用戶和item分別映射到一個向量空間,然后用向量召回,這類有itemcf,usercf,embedding(word2vec),Graph embedding(node2vec等),DNN(如DSSM雙塔召回,YouTubeDNN等),RNN(預測下一個點擊的item得到用戶emb和item emb);向量檢索可以用Annoy(基于LSH),F(xiàn)aiss(基于矢量量化)。此外還見過用邏輯回歸搞個預估模型,把權重大的交叉特征拿出來構建索引做召回
排序策略,learning to rank 流程三大模式(pointwise、pairwise、listwise),主要是特征工程和CTR模型預估;
CTR預估:lr,gbdt,fm及其變種(fm是一個工程團隊不太強又對算法精度有一定要求時比較好的選擇),widedeep,deepfm,NCF各種交叉,DIN,BERT,RNN
多目標:MOE,MMOE,MTL(多任務學習)
打分公式融合: 隨機搜索,CEM(性價比比較高的方法),在線貝葉斯優(yōu)化(高斯過程),帶模型CEM,強化學習等

常見的特征挖掘(user、item、context,以及相互交叉);
粗排層:本質上跟精排類似,只是特征和模型復雜度上會精簡,此外也有將精排模型通過蒸餾得到簡化版模型來做粗排
精排層:精排解決的是從千級別item到幾十這個級別的問題
重排層:重排層解決的是展示列表總體最優(yōu),模型有 MMR,DPP,RNN系列(參考阿里的globalrerank系列)
展示層:
推薦理由:統(tǒng)計規(guī)則、行為規(guī)則、抽取式(一般從評論和內容中抽?。?、生成式;排序可以用湯普森采樣(簡單有效),融合到精排模型排等等
首圖優(yōu)選:CNN抽特征,湯普森采樣
探索與利用:隨機策略(簡單有效),湯普森采樣,bandit,強化學習(Q-Learning、DQN)等
產(chǎn)品層:交互式推薦、分tab、多種類型物料融合
2.粗排
在搜索、推薦、廣告等需要進行大規(guī)模排序的場景,級聯(lián)排序架構得到了非常廣泛的應用。以在線廣告系統(tǒng)為例,按順序一般包含召回、粗排、精排、重排等模塊。粗排在召回和精排之間,一般需要從上萬個廣告集合中選擇出幾百個符合后鏈路目標的候選廣告,并送給后面的精排模塊。粗排有很嚴格的時間要求,一般需要在10~20ms內完成打分。在如此巨大的打分量以及如此嚴格的RT需求下,粗排是如何平衡算力、RT以及最后的打分效果呢?

2.1 粗排的發(fā)展歷史

粗排和精排有兩點不同:
算力和RT的約束更嚴格:粗排的打分量遠高于精排,同時有更嚴格的延遲約束,阿里巴巴定向廣告的要求是10-20ms
解空間問題更嚴重:粗排和精排訓練的時候使用的都是展現(xiàn)樣本,但是線上打分環(huán)節(jié)粗排打分候選集更大,打分階段距離展現(xiàn)環(huán)節(jié)更遠,因此粗排階段打分集合的分布和展現(xiàn)集合差距相比精排更大,解空間問題也更嚴重。
2.1.1 粗排的兩大技術路線(集合選擇和精準預估)
粗排的技術路線其實就是解決粗排一般該怎么迭代的問題,由于粗排是處于召回和精排之間的一個模塊,因此粗排本身的迭代會受到前后鏈路的制約,因此需要站在整個鏈路的視角來看待這個問題??v觀整個鏈路,粗排一般存在兩種技術路線:集合選擇和精準值預估。

集合選擇技術
集合選擇技術是以集合為建模目標,選出滿足后續(xù)鏈路需求的集合的方法,該技術路線在召回非常典型,這其實也非常符合粗排的定位。該方法優(yōu)點是算力消耗一般比較少,缺點是依賴于對后鏈路的學習,可控性較弱。
什么叫可控性?也就是說如果希望進行一些調整的話,由于這種方式依賴于通過數(shù)據(jù)回流對后鏈路進行學習,而數(shù)據(jù)回流往往比較慢,同時對數(shù)據(jù)量也有要求,可能需要后面鏈路的這些策略調整影響到比較大的流量之后,粗排才可以學習到,因此這種方式可控性比較弱,是偏被動的一種方式。
這種技術路線有以下常見的幾種方法:
多通道方法:類似于召回,針對不同的目標構建不同的通道,然后分別選出不同的集合,然后再進行合并選擇。
Listwise方法:一般是直接建模集合的損失,典型算法如LamdaMART。為了更好理解listwise算法,這里提一下pointwise算法和pairwise算法,pointwise算法一般是點估計的方式,訓練過程只考慮單條樣本;而pairwise算法訓練過程中會考慮當前樣本和其它樣本的相互關系,會構造這樣的pair,并在訓練的過程中引入這方面的pairwise loss,訓練目標可能是正pair排在負pair的前面;Listwise更近一步,在訓練的時候會考慮整個集合,會希望整個集合的指標如NDCG等達到最大化,如LamdaMART算法。
序列生成方法:直接做集合選擇。一般包含集合評估器和集合生成器,算法過程如下:首先,用評估器對所有的item進行打分并選擇一個得分最高的,作為集合中的第一個商品。接下來,再挑選第二個商品,把第一個商品和所有可能的第二個商品進行組合,并用評估器進行打分。之后,選擇得分最高的集合,并持續(xù)使用類似于貪心的方式不斷的搜索,最終得到一個最優(yōu)的集合。
精準值預估技術
精準值預估技術直接對最終系統(tǒng)目標進行精確值預估,其實也就是pointwise的方式。以廣告系統(tǒng)為例,建模的目標一般是ECPM,即
$ECPM=pCTR*bid$
pCTR是廣告點擊率預估,ECPM:EFFECPM:EFFECTIVE COST Per Mille,每1000次展覽可用的廣告收入,ECPM是流量端,媒體角度,Bid Request【競價請求】
利用預估技術預估pCTR,然后預估bid,最終根據(jù)ECPM來進行排序,在粗排的話就是取排序的分最高的topK作為最終的集合。這種方式的優(yōu)點是可控性強,因為是直接對整個目標進行建模,如果建模方式做了調整的話,可以直接調整排序公式,調整預估模型,對整個鏈路的掌控力更強。缺點就是算力消耗比較大,而且預估越準確,算力消耗也越大。
2.1.2 粗排的技術發(fā)展歷史(向量內積,Wide&Deep等模型)

粗排在工業(yè)界的發(fā)展歷程可以分成下面幾個階段:
① 最早期的第一代粗排是靜態(tài)質量分,一般是統(tǒng)計廣告的歷史平均CTR,只使用了廣告?zhèn)鹊男畔?,表達能力有限,但是更新上可以做到很快。
② 第二代粗排是以LR為代表的早期機器學習模型,模型結構比較簡單,有一定的個性化表達能力,可以在線更新和服務。
其中①②可以合稱為“粗排的前深度學習時代(2016年以前)”。
③ 當前應用最廣泛的第三代粗排模型,是基于向量內積的深度模型。一般為雙塔結構,兩側分別輸入用戶特征和廣告特征,經(jīng)過深度網(wǎng)絡計算后,分別產(chǎn)出用戶向量和廣告向量,再通過內積等運算計算得到排序分數(shù),③ 稱為“粗排的深度時代-向量內積模型(2016)”。

向量內積模型相比之前的粗排模型,表達能力有了很顯著的提升,其優(yōu)點:
內積計算簡單,節(jié)省線上打分算力
User向量和Ad向量離線計算產(chǎn)出,因此可以做的非常復雜而不用擔心在線RT問題
雙塔結構的user側網(wǎng)絡可以引入transformer等復雜結構對用戶行為序列進行建模

然而仍然有許多問題:
模型表達能力仍然受限:向量內積雖然極大的提升了運算速度,節(jié)省了算力,但是也導致了模型無法使用交叉特征,能力受到極大限制。
模型實時性較差:因為用戶向量和廣告向量一般需要提前計算好,而這種提前計算的時間會拖慢整個系統(tǒng)的更新速度,導致系統(tǒng)難以對數(shù)據(jù)分布的快速變化做出及時響應,這個問題在雙十一等場景尤為明顯。
存在冷啟動問題,對新廣告、新用戶不友好
迭代效率:user向量和item向量的版本同步影響迭代效率。因為每次迭代一個新版本的模型,分別要把相應user和item向量產(chǎn)出,其本身迭代流程就非常長,尤其是對于一個比較大型的系統(tǒng)來說,如果把user和item都做到了上億的這種級別的話,可能需要一天才能把這些產(chǎn)出更新到線上,這種迭代效率很低。
針對向量內積模型的問題,也有很多相關的改進,典型的如下面這個方法。

另外一個典型的改進方法是向量內積模型的實時化, user向量通過線上打分實時產(chǎn)出,ad向量仍然離線產(chǎn)出,但是更新頻次增加。
通過實時打分,可以引入實時特征,實時性加強。然而實時打分使向量內積模型的RT和算力優(yōu)勢減弱,user模型處于RT的約束不能設計的很復雜,而且該方法還引入了新的打分模型和ad向量版本不一致的問題。
④第四代COLD,下一代粗排框架(2019)-算力感知的在線輕量級的深度粗排系統(tǒng)。下面將詳細介紹該模型。
2.2 粗排的最新進展COLD(框架)

前面粗排的相關工作僅僅把算力看做系統(tǒng)的一個常量,模型和算力的優(yōu)化是分離的。這里重新思考了模型和算力的關系,從兩者聯(lián)合設計優(yōu)化的視角出發(fā),提出了新一代的粗排架構COLD ( Computing power cost-aware Online and Lightweight Deep pre-ranking system )。它可以靈活地對模型效果和算力進行平衡。COLD沒有對模型結構進行限制,可以支持任意復雜的深度模型。這里我們把GwEN ( group-wise embedding network ) 作為我們的初始模型結構。它以拼接好的特征embedding作為輸入,后面是多層全連接網(wǎng)絡,支持交叉特征。當然,如果特征和模型過于復雜,算力和延時都會難以接受。因此我們一方面設計了一個靈活的網(wǎng)絡架構可以進行效果和算力的平衡。另一方面進行了很多工程上的優(yōu)化以節(jié)省算力。
總結為以下幾點:
基于算法-系統(tǒng)Co-Design視角設計,算力作為一個變量與模型進行聯(lián)合優(yōu)化
模型結構沒有限制,可以任意使用交叉特征
工程優(yōu)化解決算力瓶頸
在線實時系統(tǒng),實時訓練,實時打分,以應對線上分布快速變化
2.2.1模型結構

① 特征篩選
精簡網(wǎng)絡的方法有很多,例如網(wǎng)絡剪枝 ( network pruning)、特征篩選 ( feature selection)、網(wǎng)絡結構搜索 ( neural architecture search)等。我們選擇了特征篩選以實現(xiàn)效果和算力的平衡,當然其他技術也可以進行嘗試。具體來說,我們把SE (Squeeze-and-Excitation) block引入到了特征篩選過程中,它最初被用于計算機視覺領域以便對不同通道間的內部關系進行建模。這里我們用SE block來得到特征重要性分數(shù)。假設一共有M個特征,ei表示第i個特征的embedding向量,SE block把ei壓縮成一個實數(shù)si。具體來說先將M個特征的embedding拼接在一起,經(jīng)過全連接層并用sigmoid函數(shù)激活以后,得到M維的向量s:
$s=\sigma(W[e1,…,em]+b)$
這里向量s的第i維對應第i個特征的重要得分,然后再將si乘回到ei,得到新的加權后的特征向量用于后續(xù)計算。
在得到特征的重要性得分之后,我們把所有特征按重要性選擇最高的top K個特征作為候選特征,并基于GAUC、QPS和RT指標等離線指標,對效果和算力進行平衡,最終在滿足QPS和RT要求情況下,選擇GAUC最高的一組特征組合,作為COLD最終使用的特征。后續(xù)的訓練和線上打分都基于選擇出來的特征組合。通過這種方式,可以靈活的進行效果和算力的平衡。
注意Se Block僅用于特征篩選階段,線上模型不包含該結構。
② 基于scaling factor的結構化剪枝
此外COLD還會進行剪枝,做法是在每個神經(jīng)元的輸出后面乘上一個gamma,然后在訓練的loss上對gamma進行稀疏懲罰,當某一神經(jīng)元的gamma為0時,此時該神經(jīng)元的輸出為0,對此后的模型結構不再有任何影響,即視為該神經(jīng)元被剪枝。
在訓練時,會選用循環(huán)剪枝的方式,每隔t輪訓練會對gamma為0的神經(jīng)元進行mask,這樣可以保證整個剪枝過程中模型的稀疏率是單調遞減的。
這種剪枝方法在效果基本不變的情況下,粗排GPU的QPS提升20%。最終模型是7層全連接網(wǎng)絡。
2.2.2工程優(yōu)化
更多內容參考:https://blog.csdn.net/sinat_39620217/article/details/129049467?spm=1001.2014.3001.5501
2.3粗排技術的總結與展望
更多內容參考:https://blog.csdn.net/sinat_39620217/article/details/129049467?spm=1001.2014.3001.5501
2.3.1 總結!
2.3.2COLD的進一步發(fā)展以及展望
3. 相關文章推薦:
更多內容參考:https://blog.csdn.net/sinat_39620217/article/details/129049467?spm=1001.2014.3001.5501