# Recommending What Video to Watch Next: A Multitask Ranking System ###### tags: `paper notes` `deep learning` [paper link](https://dl.acm.org/doi/10.1145/3298689.3346997) [references](https://zhuanlan.zhihu.com/p/82584437) ## Intro - 這篇是由Google所發表的多工影片排名推薦系統論文 - 所處理的問題是 **given 一個使用者以及他正在觀看的影片,要推薦給他下一個他可能會想看的影片** (a large-scale ranking system for video recommendation) - 專注在處理 ranking 的問題 (通常一個推薦系統會有 candidate generation 以及 ranking 兩個階段) - ranking 所使用的 objective 可能會有所衝突 (例如要同時考慮到使用者的歷史觀看以及普遍高評價的影片) - 系統中的 implicit bias (使用者會選擇觀看一個影片可能只是因為影片被排得很前面,而不是因為這個影片是在推薦列表中他最喜歡的) - 系統架構是把 [Wide & Deep](https://hackmd.io/8gJMrLm9SZqqmG8okcaYww?view) 用 Multi-gate Mixture-of-Experts (MMoE) 實作出來,並引進 shallow tower 來 model 以及移除 selection bias,如下圖 - MMoE 會訓練各種不同的 expert 來處理 multitasking,每一個 expert 底下的 submodels 會互相分享,並同時使用 gate 來決定使用哪些 expert 的結果來增進可訓練性,適合用在任務是有高度相關的情況下 - [MMoE 架構](https://www.youtube.com/watch?v=Dweg47Tswxw)  - 整體系統架構 1. 把所有的 multiple objective 分類成兩類 : engagement objectives 和 satisfaction objectives,前者是指使用者的點擊和觀看,後者是指使用者對影片的評價(喜歡/不喜歡) - 這部分是利用 MMoE 來自動學習如何分類這些 objective (同時也用來解決可能有 conflicting 的 objective) 2. shallow tower 會輸入和 selection bias 有關的特徵,比如目前系統決定的 ranking order,然後輸出一個 scalar 作為模型最終輸出的 bias - 可以說是用來呈現 Wide & Deep 的 Wide - 這可以讓 training data 的 label 有兩個部分,一個是 main model 來的 unbiased feature (比如觀看的影片主題、時間),另一個是 shallow tower 來的 propensity scroe (比如點擊的位置) - 注意他是直接從feature學習的 (跟 Main model 平行)  Evalution - 測試 multitask learning - 測試移除掉 selection bias 會怎樣 (也就是 click position bias) ## RELATED WORK - 一個推薦問題其實可以看成是 given 一個 query, context 以及一串 items,然後需要回傳許多高品質的 items - 比如一個電影推薦系統,query就是使用者的觀看歷史,context就是星期五的晚上在家裡使用平板,以及有一連串電影 - 然後需要回傳一串使用者有興趣的電影 (a subset of movies that this user is likely to watch and enjoy) - 這個部分會談到三個推薦系統議題 : industrial case studies on recommendation systems, multi-objective recommendation systems, and understanding biases in training data ### Industrial Recommendation Systems 目前作法 - 通常都需要很多 user logs - 最直接的方式是詢問使用者對於 item 的 feedback,但這很難 scale up (成本高且使用者未必願意) - 因此通常推薦系統都會以 implicit feedback 的方式來做 ranking (像是點擊跟engagement) - 現行的推薦系統通常包含 candidate generation 和 ranking - 前者會用協同過濾或是NN的方式做 - 後者則是用一些 learning-to-ranking 的混合方式做,比如 Linear + tree-based 或是 GBDT+NN 挑戰 - 主要是 scalability 問題 - 通常都會用更有效率的演算法或是改變架構來犧牲 quality 以獲得一些效率 - Popular choics is deep neural network-based point-wise ranking models 但除此之外他們覺得對於被推薦過的 items,使用者的 implicit feedback 以及使用者真正的偏好之間的 misalignment 也是很重要的問題 - 因此就使用 NN 來解決 multiple ranking objectives (每一個目標都對應一種 user feedback) ### Multi-objective Learning for Recommendation Systems - 雖然使用者的行為有很多種,但卻不是每一個都能反映出使用者偏好 - 但是現行的 behavior aware 和 multiobjective recommendation 都是用在 candidate generation 而非 ranking 上 - 比如把協同過濾擴展到可以從各種不同的使用者資訊中找出 user-item similarity - 這些方法在產生 candidate 的時候很有用,但卻不是一個有效率的 ranking 方式 - 除此之外現有的多工排名系統都是專門為了特定的 feature 和 application 設計的 (比如文字),很難擴展到其他應用 (比如影片標題中的文字或是影片縮圖的特徵) - 雖然有很多不適合用在推薦系統上的處理表徵學習的多工學習技巧,但這些東西也啟發了他們去作出一個 DNN based 且支援 multitask 的 ranking system ### Understanding and Modeling Biases in Training Data - 過往的研究已經證明 position bias (其中一種 selection bias) 會對於 rank model 的學習有所影響 - 一個很常用的解決方法是把 position 作為一個 input feature 來訓練模型,並在 serving 的時候拿掉 - 也有人是用 counter-factual model 學 inverse propensity score (IPS),但這都不適合 YouTube 這種訓練資料的分布會持續改變的情況 (效率不夠好) ## PROBLEM DESCRIPTION - "推薦下一部影片"這件事情到底會遇到哪些問題 - candidate generation 跟 ranking 會遇到哪些問題 Multimodal feature space - 使用者曾經所看過的影片包含許多不同類型的特徵 (影片內容、標題、縮圖、音樂、敘述、地理以及人口資訊) - 這麼多樣的特徵在其他類型的模型是難以遇到的,要如何將這些 low-level 特徵結合起來變成有意義的 content 以及如何從這種 sparse distribution 使用協同過濾來學習是兩大難題 Scalability - 主要的困難點在於要能同時兼顧系統的 training 效率以及 serving 效率 - 而且得同時能 real-time 去學習數十億的 user-items 特徵 如何解決? - 他們利用擷取出每個影片的 metadata 以及內容來作為影片的 representation 並且將當時的 context (使用者的裝置、人口資訊、地理資訊、時間) 一起輸入進去,作為 Multimodel feature space - 這樣就有了 **given 目前正在觀看的影片資訊以及當下的 context** - scalability 的問題 ### Candidate Generation - 他們有許多用來抓 query video 和 candidate video 相似度的 candidate generation algo - topic matching - how often these video has been watched together 舉例來說,他們 - 利用 [Deep neural networks for YouTube Recommendations](https://hackmd.io/BNYIb1oqTKCfwAIdYmQJrg) 中的技巧來產生個人化 candidate - 也用了 [Efcient training on very large corpora via gramian estimation](https://arxiv.org/abs/1807.07187) 中的技巧來產生 context-aware high recall relevant candidates - 最後將所有的 candidate 都丟到一個 pool 中集合起來 ### Ranking - 只需要從幾百個 candidate 中做排名 - 重視的是 utility,因此使用了很多很困難的 ML 方法來確保 utility 夠高 ## MODEL ARCHITECTURE - ranking system 主要從 1. engagement behaviors (像是點擊和觀看) 2. satisfaction behaviors (像是喜歡和不喜歡) 兩種 user feedback 來學習 Point-wise approaches - Learning-to-rank framework - Given each candidates, ranking system 會利用 candidate 的特徵、query 和 context 作為輸入來預測各種使用者行為 (點擊、觀看、喜歡、不喜歡的機率是多少) Pair-wise approaches (list-wise) - 預測兩個或多個 candidate 的 ranking order - 能增加模型的 diversity 不過考量到 serving 的壓力會過大,他們最後主要是使用 Point-wise ranking 方法 (使用Pair-wise 會限制到 scalability) ### Ranking Objectives 主要有兩種目標 : engagement objectives and satisfaction objectives - Engagement objective 分為 binary classification 和 regression 兩種 tasks - Classification 是預測 user 是否會點擊之類的 - Regression 是預測 user 在特定行為上所花費的時間 - Satisfcation objective 則分為 binary classification 或是 regression 兩種 tasks - Classification 是預測是否點擊影片喜歡 - Regression 是預測對影片的評價(rating) Loss - 分類任務都是用 cross entropy loss - 回歸任務用 squared loss (MSE) weight - 手動調整,以最佳化user engagements 和 user satisfactions ### Modeling Task Relations and Conficts with Multi-gate Mixture-of-Experts - 多目標的 Ranking system 通常是使用 shared-bottom 的模型架構 - shared-bottom 缺點是如果任務和任務之間的關聯性不高就會表現差 (hard parameter) - 因此他們改用 MMoE (soft parameter) 來改善這的問題  - 在 shared-bottom 上面加上 expert 是因為 MoE layer 可以幫忙模組化輸入 (能更好的從 input layer 或是 lower hidden layer 去 model 多模型的特徵空間) - 不過這樣會增加很多 training cost 和 serving cost (因為 input layer 的維度通常都比 hidden layer 還高很多) ### Modeling and Removing Position and Selection Biases - 為了移除 selection bias (position bias),也就是排名原本就靠前面的比靠後面的更容易被點擊,因此造成高的永遠更高,低的永遠更低的循環,而因此除了 main tower 外還加入 shallow tower 來 model 這種 bias - shallow tower 會以瀏覽時所有影片的位置作為輸入,並加上 10% 的 dropout rate 來訓練 - serving 的時候這個位置特徵會被設定為 missing - 另外也會加入 device info,因為不同的 device 會有不同的 position bias  ## EXPERIMENT RESULTS  - 整個實驗都是在 YouTube 上面進行的 - Offline 使用 AUC 評估 - Online 使用 A/B Testing,評估 engagement 和 satisfaction,以及服務的 cost - Baseline 就是 shared-bottom  - 有的 Expert 偏重 engagement,有的偏重satisfaction - gating network 和 input layer 相連沒有什麼很大的改善,因此不需要直連  - 位置越前面的 Position bias 越大,越後面的則越小  
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up