# Neflix: Foundation Model for Personalized Recommendation [blog link](https://netflixtechblog.com/foundation-model-for-personalized-recommendation-1a0bd8e02d39) ## Why? - 雖然現在推薦系統中各個模型都使用統一資料來源,但還是各自獨立訓練,在某個模型中的創新很難套用到另一個模型上面 - 這些模型由於獨立運作的關係,各自受限於各自的延遲,只能使用較短的 time window 來做推論 - 所以他們希望能做一個共用的基礎模型,能從所有user的互動歷史和其他內容中提取特徵然後分發特徵給這些模型使用,不論是拿來 share weight fine tune 或是直接給 embedding - 最後,也是因為最近由NLP->LLM上的典範轉移,使得模型趨勢從多個小型模型轉向為單一大型模型,並透過 fine tune 來適用在不同任務上 (1. 由 model-centric → data-centric 2. LLM 可以使用未標記的資料做大規模的半監督學習,以 Next Token Prediction 來展示他對資料的深刻理解) ## Data - Netflix 資料雖然多 (3億user, 數千億次互動),但資料品質>資料數量,為此他們使用互動標記化來識別哪些事件是有意義的 - 通常推薦系統的 context window 只有幾百個事件 (為了達到毫秒級的延遲),所以他們使用類似BPE的合併方法將資料整合成更高階的標記,例如對總觀看時長做平均來代表或是對使用者參與的類型進行彙總,不過即使如此他們還是只能整合到數千個事件,因此還需要更多策略 - 他們的策略有兩個 1. Sparse Attention 2. Sliding Window Sampling - Sparese Attention 就是透過 low-rank att 來擴展 context window - Sliding window sampling 就是他對整個使用者歷史抽樣幾個"重複"的window來代表不同時期的使用者歷史,以減少事件的數量 - 除了互動標記以外,他們也對 token 特徵做分類,來提升系統的準確率。token被分為請求時間特徵(Request-Time Features)和動作後特徵(Post-Action Features)來應對不同性質特徵所需做的不同嵌入 - 請求時間特徵,例如登入的時間、裝置、位置 - 動作後特徵,例如互動的節目或互動的持續時間 - 在推論的時候他們會結合上一個動作後特徵跟當前的請求時間特徵來去做推論 ## Model - 當前已經有許多推薦系統採用GPT-like模型去做,但語言任務和推薦任何還是有本質上的不同,為此他們做了一些調整 - 例如典型的 GPT 模型會將所有 token 預設擁有相同的權重,但在推薦系統中並非所有使用者的互動都有一樣的重要性 - 對2小時的電影與5分鐘的預告片互動不該有同樣的影響力 - 為此他們讓模型輸出的是接下來的 n 個標記,而非只輸出一個標記,避免模型只關注當下即將發生的事件,導致其預測的短視 - 除了預測下一個 item ID 以外,他們還加入了多個欄位來輔助預測 - 例如,他們可以從過去使用者互動的item類型中去嘗試預測下一個會互動的item類型是甚麼,這種做法可以去 regularize 模型對 item ID 的過擬合,也可以提供更多使用者的洞察,除此之外如果他是階層式的(先預測類型再預測ID)也可以增加item ID的預測準確度 ## 推薦系統的獨特挑戰 ### Cold Start - 推薦系統常常有新的 item 加入到目錄當中,這意味著每次加入新 item 之後他們都得在所有使用者對他互動之前去更新使用者對其的偏好 - 為此他們的基礎模型框架有兩種功能: 1. Incremental training: 由於再加入新item之後推薦系統要為其提供新的嵌入,他們會重複使用之前的模型來對新的item做嵌入,這可以通過對現有的平均嵌入加入輕微的隨機雜訊或是基於擁有類似metadata的item做加權平均來初始化 2. Dealing with unseen entities:他們讓基礎模型也去使用輸入的metadata來學習,避免遇上unseen entities的時候效果會很差,如下圖  ## 下游應用和挑戰 1. 直接用作預測模型: 直接拿來預測使用者會互動的下一個item 2. 利用嵌入: 提供嵌入給其他模型來做候選生成,但不同模型會有不同維度的嵌入,而且不相容再不同模型的訓練當中,這會造成下游模型得常常重新訓練和部屬。由於模型重訓可能導致嵌入空間的變化,Netflix 採用正交低秩變換,穩定嵌入空間,確保下游應用的一致性。 3. fine tune: 未來下游模型可以都只用這個基礎模型來去使用少量資料fine tune,降低訓練成本
×
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