如何提升鏈路目標一致性?愛奇藝短視頻推薦之粗排模型優化歷程

導讀

工業界的推薦系統通常包括召回、粗排、精排以及重排四個階段,如圖一所示,每個階段都像是一個漏斗,從海量的物品集合中過濾出用戶最有可能感興趣的物品。其中粗排模型發揮的主要作用是統一計算和過濾召回結果,在儘量保證推薦準確性的前提下減輕精排模型的計算壓力。本文主要介紹愛奇藝隨刻基礎推薦團隊在短視頻推薦業務的粗排模型優化上落地的一系列實踐方案。

圖一:推薦整體流程架構圖

背景

工業界在做粗排模型選型時,性能通常是一個很重要的考量因素。按照工業界選型粗排模型的發展歷程,大致可以將粗排模型分爲以下幾大類:

1. 最早也是最簡單的粗排過濾方法,直接根據召回計算的得分做截斷,控制輸入給精排模型的物品候選數量,或者根據全局的ctr等統計指標做統一截斷。

2. 以LR/決策樹爲代表的,結構比較簡單又有一定個性化表達能力的機器學習模型,統一對召回候選集做打分截斷。

3. 當前工業界應用最廣泛的粗排模型—基於向量內積的雙塔DNN模型,兩側分別輸入用戶特徵和物品特徵,經過深度網絡計算後,分別產出用戶向量和物品向量,再通過向量相似度等計算得到排序分數。

愛奇藝短視頻推薦業務最初採用的粗排模型可以歸爲上述第二類選型模型,是一個基於各個緯度統計特徵的GBDT模型。統計特徵維度主要包括下面幾個維度:

1. 不同屬性的用戶羣體對不同類型視頻(分標籤、創作者和視頻本身等)的消費統計特徵。

2. 視頻 維度累積的消費統計特徵,如視頻的點擊率、時長消費中位數和均值等;創作者up主的消費統計特徵以及視頻標籤的消費統計特徵等。

3. 用戶 歷史消費的視頻內容統計特徵,如用戶歷史消費的類型標籤統計、消費的創作者內容統計等。

在業務的精排模型優化升級爲wide&deep模型後,我們對粗排模型和精排模型的預估結果做了詳細的統計和分析,發現粗排模型預估爲top的頭部視頻和精排模型預估的頭部視頻有很大的差異。歸咎原因主要是以下兩方面的原因:

1. 特徵集合的差異: 粗排GBDT模型中主要是一些稠密類統計特徵,而精排wide&deep模型中發揮重要作用的特徵主要是用戶長短期消費的視頻id、視頻tag、up主id等以及視頻本身的id、tag和up主id等稀疏類型特徵。

2. 模型結構的差異: 樹型結構模型和DNN模型的優化和擬合數據時的側重點還是有很大的差異的。

除了預估結果和精排wide&deep模型有比較大的差異性外,GBDT模型在特徵處理和挖掘方面還需要投入大量的人力。綜合以上分析,爲了儘量彌補粗排模型和精排模型的Gap,縮小粗排模型和精排模型預估結果的差異性,並節省大量特徵統計和挖掘的人力成本,我們對粗排模型進行了一系列的升級和優化。

雙塔DNN粗排模型

綜合計算性能和實驗效果,我們最終也選擇了目前主流的雙塔DNN模型作爲我們最終選型的粗排模型。我們雙塔DNN模型結構如下圖二所示。用戶側和Item側分別構建三層全聯接DNN模型,最後分別輸出一個多維(512)的embedding向量,作爲用戶側和視頻側的低維表徵。

在構建粗排模型特徵集合時,爲了控制粗排模型參數的複雜度,我們對粗排的特徵集合做了大量的裁剪,用戶側和視頻側都只採用了少部分精排模型的特徵子集。其中,用戶側特徵主要選取了下面幾維特徵

1. 用戶基礎畫像特徵、上下文特徵如手機系統、型號、地域等。

2. 用戶的歷史行爲特徵,如用戶觀看的視頻ID、up主ID,以及觀看視頻的關鍵詞tag等,以及用戶session內的行爲特徵等。

視頻側特徵只保留了三維:
1. 視頻ID
2. up主ID
3. 視頻標籤 


圖二:粗排雙塔DNN模型結構圖

從GBDT到雙塔DNN,模型的複雜度和參數量級還是有爆炸性增長的,爲了不損失粗排模型的精度同時滿足上線的性能指標要求,我們從下面幾個方面做了很多優化工作:

1. 知識蒸餾
爲了彌補特徵裁剪帶來的損失,保證裁剪後粗排模型的精度,我們在訓練粗排模型時,採用了模型壓縮常用的方法-知識蒸餾來訓練粗排模型。

知識蒸餾是一種模型壓縮常見方法,在teacher-student框架中,將複雜、學習能力強的網絡學到的特徵表示“知識蒸餾”出來,傳遞給參數量小、學習能力弱的網絡。從而我們會得到一個速度快,能力強的網絡。

將粗排模型和精排模型放到知識蒸餾的teacher-student框架中,以蒸餾訓練的方式來訓練粗排模型,以精排模型爲teacher來指導粗排模型的訓練,從而得到一個結構簡單,參數量小,但表達力不弱的粗排模型,蒸餾訓練示意圖如圖三所示。

圖三:粗排模型蒸餾訓練示意圖

在蒸餾訓練的過程中,爲了使粗排模型輸出的logits和精排模型輸出的logits分佈儘量對齊,訓練優化的目標從原來單一的粗排模型的logloss調整爲如公式一所示的三部分loss的加和,包括student loss(粗排模型loss)、teacher loss(精排模型loss)和蒸餾loss三部分組成。

其中蒸餾loss我們線上採用的是粗排模型輸出和精排模型輸出的最小平方誤差,爲了調節蒸餾loss的影響,我們在該項loss前又加了一維超參lamda,我們設置超參lamda隨着訓練步數迭代逐漸增大,增強蒸餾loss的影響,在訓練後期使得粗排模型預估值盡量向精排模型對齊,lamda隨着訓練step的變化趨勢如圖四所示。

圖四:Distillation loss超參lamda設定

2. Embedding參數優化
爲了進一步減少參數量級,壓縮模型大小,提高模型傳輸速度,同時減少加載模型時的內存消耗,我們在訓練粗排模型時,將模型embedding參數的優化器替換爲稀疏解優化神器FTRL,其他層的參數依然還用AdaGrad。這一步調整不僅離線Auc有小幅提升,訓練得到的粗排模型的embedding參數全爲0的比率也高達49.7%之多。我們在做模型導出時,裁剪掉了全爲0的embedding參數,粗排模型大小減小了46.8%,使得模型的傳輸速度也有近一倍的提升,同時線上加載模型的內存消耗也降低了100%


3.線上Inference優化
除了離線訓練時的一系列優化,我們對雙塔粗排模型的線上inference計算也做了很多計算去重和優化。首先在計算user側embedding時進行了合併計算,對同一個用戶+千級別候選視頻pair,在計算user側embedding時,將user側的特徵獨立拆分,只過一次user側NN的inference。這個優化使得粗排模型打分計算服務p99的計算耗時減少了19ms左右。

此外,基於視頻推薦時特別長尾的分佈,以及如前文所述,粗排模型視頻側的特徵全部是靜態特徵(視頻id確定,特徵也是確定的),我們對高頻視頻的embedding進行了緩存。視頻側embedding優先從緩存裏查詢,未命中緩存時再進行inference計算。優化後的粗排打分服務架構如下圖五所示:

圖五:粗排打分服務架構圖

經過上述一系列的優化,粗排雙塔DNN模型的線上計算性能對比之前GBDT模型基本可以持平,分別應用到了愛奇藝熱點頻道隨刻首頁推薦場景中,兩邊的線上指標都有顯著提升,其中隨刻首頁feed推薦的用戶人均消費時長漲了3%點左右;愛奇藝熱點頻道的人均消費時長也漲了1%,ctr和人均消費視頻數也都有2%的漲幅

級聯模型

隨着後續業務的迭代和逐步深入,精排模型的學習目標也不斷做調整,爲了方便添加不同的學習目標,我們將線上的精排模型升級爲了由Google提出的,目前也在工業界廣泛使用的MMOE多目標模型。爲了一勞永逸地解決粗排模型目標和精排模型目標一致性的問題,我們對粗排模型進行了又一次的迭代優化。通過升級爲級聯模型,使得粗排模型能夠自適應地對齊精排模型目標的變化,同時也節省了蒸餾訓練的環節,大大地節省了訓練資源消耗

從實踐的角度,級聯模型對模型結構以及模型輸入的特徵集沒有做任何修改,只是調整了粗排模型訓練樣本的生成方式,升級後的粗排模型從學習線上真實曝光點擊/播放樣本,調整爲直接學習精排模型的預估結果,將精排模型預估topn的結果作爲粗排模型學習的正樣本。級聯模型的樣本生成方式具體如圖六所示。

圖六:級聯模型訓練樣本數據流

所以這一次升級粗排模型到級聯模型只是簡單地調整了模型的訓練樣本,卻取得了很顯著的收益,除了去掉了蒸餾學習的環節,大大地縮減了粗排模型訓練的資源和時間消耗,實際上線也取得了很顯著的收益,視頻推薦場景的曝光點擊率和人均有效觀看視頻數都提升了3%左右。同時各項互動指標也有顯著提升,其中人均評論量有12%的顯著提升

未來規劃

 以上是我們近期在短視頻推薦粗排模型上嘗試的一系列優化,實踐證明粗排模型和精排模型的一致性對線上效果還是有很大影響的。後續我們會從以下幾個方面持續優化粗排模型:

1. 嘗試面向下一代的粗排排序系統——COLD。

2. 持續優化粗排模型線上計算的性能,在性能允許的情況下,擴大召回的視頻數量,同時添加更多在精排模型驗證有效的特徵到粗排模型,提升粗排模型的準確性。

3. 優化user embedding視頻embedding的相似度計算,考慮增加一個淺層網絡來計算user和item的相似性,替換目前簡單的cosine相似度計算。

參考文獻

1.https://www.kdd.org/kdd2018/accepted-papers/view/modeling-task-relationships-in-multi-task-learning-with-multi-gate-mixture-

2.H.B.McMahan. Follow-the-regularized-leader and mirror descent: Equivalence theorems and L1 regularization. In AISTATS, 2011 

3.https://arxiv.org/abs/1503.02531

4.https://arxiv.org/abs/2007.16122

團隊介紹

愛奇藝隨刻事業部基礎推薦團隊,負責隨刻app首頁短視頻feed和愛奇藝隨刻熱點feed的推薦策略優化。


PS.團隊現有大量職位空缺,歡迎各路英才,感興趣的同學請將簡歷發至 [email protected],直接與招聘者對話哦~


後臺回覆“招人01”可以獲取具體招聘崗位jd!

也許你還想看

公開課筆記 | 多模態短視頻內容標籤技術及應用

愛奇藝“劃啦”正式上線,卡位視頻種草爲用戶個性化推薦精品內容


 掃一掃下方二維碼,更多精彩內容陪伴你!

本文分享自微信公衆號 - 愛奇藝技術產品團隊(iQIYI-TP)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章