CTR預估 論文精讀(十六)--Youtube 排序系統:Recommending What Video to Watch Next

1. 摘要

In this paper, we introduce a large scale multi-objective ranking system for recommending what video to watch next on an industrial video sharing platform. The system faces many real-world challenges, including the presence of multiple competing ranking objectives, as well as implicit selection biases in user feedback. To tackle these challenges, we explored a variety of soft-parameter sharing techniques such as Multi-gate Mixture-of-Experts so as to efficiently optimize for multiple ranking objectives. Additionally, we mitigated the selection biases by adopting a Wide & \& & Deep framework. We demonstrated that our proposed techniques can lead to substantial improvements on recommendation quality on one of the world’s largest video sharing platforms.

2. 主要工作

該論文主要工作是使用 MMOE + bias network + wide & deep 架構實現了一套工業級視頻推薦系統方案;

其中 MMOE 用於可能存在潛在衝突的多目標預估,bias network 用於去除 position bias 影響,Wide & Deep 爲基礎架構(Deep 側用於特徵交叉,Wide 側替換爲 bias network);

3. 相關工作

模型結構就不多介紹了,基本上就是各種pointwise,pairwise目標,還有各種NN模型結構,rnn,attention,NN+GBDT等等。

多目標的話最基礎的就是shared-bottom這種共享底層的結構,進階版就是MMOE這種了,以及因爲不同目標的loss貢獻不一樣所以會搞一些比如gradnorm這種的優化算法。

Bias之前的分享的推薦系統文章基本都提過這塊。常見的是把position之類的作爲輸入,預估時用position爲1的輸出值。 其他的方案有從隨機數據中學一個bias iterm,也有不需要隨機數據的,用counter-factual model學inverse propensity score (IPS)。像Twitter、Youtube這種用戶興趣變化比較快的,不太適合IPS,需要更高效的方案來適應這種數據分佈變化。

多年以前,百度解決這個問題的方法,是把 rank 作爲一個 feature 加在 nn 的最後一層,其實仔細想一想,和 ytb 的這個解決方法是類似的。ytb 在這個解決方法的基礎上,把 rank feature 擴展成了一個 tower,然後耦合了 mmoe,拆分了受 rank 影響的 label 和 不受 rank 影響的 label. 做的更 “fashion” 了一些。主要思想,其實差不多。

4. YouTube 推薦難點

  1. 多特徵空間:

    1. 存在語義鴻溝:如候選特徵來源於 video content, audio, title and description 等特徵空間,進行融合時候存在語義鴻溝;
    2. 在協同過濾中學習 item 的稀疏分佈;

    通過使用video meta-data 和 video content signature 作爲 video 特徵表示,對於上下文特徵,使用了用戶畫像、設備、時間、地點等特徵進行表示;(沒有使用用戶多模態特徵,如audio等)

  2. scalability:

    現實推薦場景中必須做到實時推薦;因此,實際系統中使用了召回-排序兩階段,point wise rank 模型進行打分排序的方式解決(而非pair wise, list wise 方式,雖然論文作者提到 pair wise 和 list wise 有助於提升模排序多樣性,但是爲了性能考慮,依舊是採用 point wise 打分結構);

注:論文中 YouTube 的推薦場景是依據用戶當前觀看 video 和上下文,提供一個排好順序的rank list;所以用戶當前觀看 video 就會顯得很重要,用戶當前觀看的 video 即爲 query,

其推薦場景與電商推薦系統不太一樣(電商場景進入一家店鋪就是直接進入一家店鋪,後退返回列表頁纔是繼續觀察推薦內容);

5. YouTube 推薦系統模型結構

在這裏插入圖片描述

其模型結構總結來說就是:MMOE 多目標框架 + Wide & Deep 模型建 + bias network 建模

  • 採用 MMOE 多目標架構,可滿足同時優化相關性任務交叉的多任務學習目標,論文實驗驗證 MMOE 相較於傳統的 bottom share 結構有較大提升;
  • Bias network 採用 rank position, device 等特徵及交叉輸入,之所以放入 device,是因爲不同設備上,Position bias 不同,論文實驗證明該種方式建模 Position bias 相較於直接將 Position 作爲 feature 輸入效果提升很多(訓練時輸入 position, device;預測時,Position 置空,輸入 device);
  • 將 Bias network 的 logit 輸出 與 DNN logit 進行相加,與 gating network 輸出結果做乘,傳入各子任務的 Tower 進行預測;

針對 多年以前,百度解決這個問題的方法,是把 rank 作爲一個 feature 加在 nn 的最後一層,其實仔細想一想,和 ytb 的這個解決方法是類似的。ytb 在這個解決方法的基礎上,把 rank feature 擴展成了一個 tower,然後耦合了 mmoe,拆分了受 rank 影響的 label 和 不受 rank 影響的 label. 做的更 “fashion” 了一些。主要思想,其實差不多。

5.1 YouTube 排序學習目標

YouTube 排序系統學習兩種目標

  1. 參與度:點擊、觀看時長 ;

    將點擊建模成二分類任務,採用交叉熵損失函數;觀看時長建模成迴歸任務,採用平方差損失函數;

  2. 滿意度:喜歡、打分;同理可將喜歡建模成二分類,打分建模成迴歸任務。

所以排序目標是分類問題和迴歸問題的組合。此方法是 pointwise,像 pairwise 和 listwise 的方案雖然可以提升推薦的多樣性。但是基於 serving 時的考慮還是選擇用 pointwise,簡單高效,尤其是候選集比較多的時候。

5.2 排序模型架構

目標基本上就是剛纔說的兩類,一類點擊、時長, 一類點贊、打分。

分類問題就用cross entropy loss學習,迴歸問題可就是square loss。最後用融合公式來平衡用戶交互和滿意度指標,取得最佳效果。

在這裏插入圖片描述

圖 2b 即爲本次實驗架構MMOE實現細節,2a 作爲 baseline 進行對比;

其中有兩點值得注意:

  1. 從圖中不難看出,gating network 與 Expert network 對應 input layer 均爲 share bottom layer,其中後續論文作者有做對比實驗,將 gating network 直接針對任務從輸入 feature 直接組織(比如目前線上系統使用人羣包分羣,其依據是不同人羣對應的點擊、購買行爲不同),論文在 YouTube 推薦場景中兩者效果沒有差別;

  2. 在實踐中,論文作者提出 Expert network 可以很多(後續證明了 8 個Expert network 比 4 個 Expert network 要好),爲降低線上開銷,Expert network 的隱層神經元個數是小於輸入層的,這點區別於一般的 DNN 組織架構;

  3. 爲避免 gating network 極化(分佈式訓練中,有20%的可能 gating network 傾向於使用 0 個 Experts),爲緩解此問題,使用了 drop out 在 gating network 上,隨機讓 10% 的 expert 的輸出爲 0 並重新歸一化 softmax 輸出概率,消除 gating 網絡極化影響;

    仔細想一下,drop 確實是解決 stability 一個比較好的方法,因爲 Gating Network 退化的本質是,訓練過於擬合到某一個 expert 上了,通過隨機一部分 expert 輸出爲 0,相當於每次都只訓練了部分網絡,然後也避免了對某一個子網絡的過度擬合。也就減少了網絡的 variance, 優化了最終的訓練穩定性 和 模型效果。

    值得思考的是 dropout work 的地方,是不是都是:通常都是 variance 比較大的地方 ?如果網絡訓練本身已經比較穩定了,那麼 dropout 可能也就不怎麼 work 了。

5.3 MMOE 結構分析

常見的多目標的排序系統用的是 shared-bottom 結構,但是這種 hard-parameter 強行共享底層的方案對於目標之間相關性小的任務,是有損效果的。因此採用並擴展 MMOE 結構來解決多目標衝突問題。

本文的排序系統上是在共享隱層上邊加 experts,如圖2-b。Mixture-of-Experts 層可以幫助從輸入中學習模塊化信息,更好的建模多模態特徵空間。但直接上MoE層會顯著增大訓練和預測的消耗,因爲輸入層維度一般比隱層維度大。

具體公式如下:
y k = h k ( f k ( x ) )  where  f k ( x ) = ∑ i = 1 n g ( i ) k ( x ) f i ( x ) y_{k}=h^{k}\left(f^{k}(x)\right) \quad\quad \text { where } f^{k}(x)=\sum_{i=1}^{n} g_{(i)}^{k}(x) f_{i}(x) yk=hk(fk(x)) where fk(x)=i=1ng(i)k(x)fi(x)
x ∈ R d x \in \mathbb{R}^{d} xRd 就是底層共享 embedding, g k g^{k} gk 是針對任務 k 的 gating network, g k ( x ) ∈ R n g^{k}(x) \in \mathbb{R}^{n} gk(x)Rn, g ( i ) k ( x ) g_{(i)}^{k}(x) g(i)k(x) 是第 i 個實體, f i ( x ) f_{i}(x) fi(x) 就是第 i 個 expert,gating network 就是輸入的線性變換傳入 softmax 做概率:
g k ( x ) = softmax ⁡ ( W g k x ) g^{k}(x)=\operatorname{softmax}\left(W_{g^{k}} x\right) gk(x)=softmax(Wgkx)
其中 W g k ∈ R n × d W_{g^{k}} \in \mathbb{R}^{n \times d} WgkRn×d 是線性變換矩陣;



MMOE 就是將 shared-bottom 結構,輸入部分轉化爲 Expert network,同時增加針對各任務建模的 gating network 用於學習各 Expert network 的組合相關性,最後將 gating network 的概率值與Expert network 輸出進行動態加權繼續傳入針對各任務的Tower network;

5.4 建模 Position bias

在這裏插入圖片描述

排序系統中有很多 bias,最明顯的就是 position bias,排的靠前的天然就比排的靠後的容易被點擊,所以我們需要去移除這種bias,打破這種越來越偏的循環。

所以模型結構上除了一個 main tower,還有一個 shallow tower 去建模 bias,將輸出的偏置項加到 main tower最終輸出的 logit 上,如圖3,訓練的時候瀏覽時的位置作爲輸入,設置 drop-out rate 爲 10%,避免過度依賴位置特徵。

serving時,位置特徵設爲 missing,設備信息會被加入到shallow tower的輸入中,因爲不同設備上不同位置的bias是不同的。

輸入特徵中,Position feature, device 以及 Position feature 和 device 交叉特徵,作爲 shallow tower 的輸入,這個原因是不同的手機型號,rank 1 的位置是不一樣的,所以需要用 device 和 rank 做一個交叉。

6. 實驗結果

離線使用指標用AUC,線上開AB實驗,評估參與度指標和滿意度指標,除此外還要關注下服務的預測開銷。

結果如表1,MMOE在保持模型複雜度不變的情況下,比較了下4個experts和8個experts。可以看出參與度、滿意度指標都有所提升。

在這裏插入圖片描述

從上圖的效果上來看,Satisfaction Metric 的提升要優化 Engagement Metric. 這個一定程度上是因爲 Engagement Metric ( 比如點擊等)的正樣本數量,通常要大於 Satisfaction Metric(比如打分) 的正樣本數量. 所以聯合做訓練 & 優化了模型之後,Satisfaction Metric 能獲得的信息量的增益顯然會更多一些。

7. Discussion

許多推薦系統paper裏提出的結構源於一些傳統機器學習領域,比如NLP的 multi-headed attention,CV裏的CNN。但這些其實都不直接適合我們的需求。 主要原因:

  • Multimodal feature spaces.
  • Scalability and multiple ranking objectives.
  • Noisy and locally sparse training data.
  • Distributed training with mini-batch stochastic gradient descent.

Future Directions:

  • Exploring new model architecture for multi-objective ranking which balances stability, trainability and expressiveness.
  • Understanding and learning to factorize.
  • Model compression.

參考文獻

[1] Recommending What Video to Watch Next: A Multitask Ranking System

[2] Youtube 19: Recommending What Video to Watch Next

[3] [Youtube 排序系統:Recommending What Video to Watch Next](

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