Netflix 將其行之有年的推薦引擎與語言模型進行比較,並表示獲得了更好的結果。這個名為 GenRec 的系統,所需的標記訓練數據量僅為舊系統的一小部分。

根據 Netflix 技術團隊的部落格文章,Netflix 當前的推薦系統依賴數千個關於用戶、內容和互動的手動建立特徵。這種複雜性使得導入遊戲、直播或 Podcast 等新內容類型,以及擴展到 Netflix 介面新區域的成本高昂。然而,現成的語言模型也尚未準備好用於推薦,它們過度偏重熱門內容、會產生目錄中不存在的虛構標題,並忽略業務規則。

GenRec 旨在填補這個空白。Netflix 分兩個階段訓練其專有模型。首先,一個未公開的開源語言模型會根據 Netflix 數據進行微調,使其理解內容目錄和用戶行為。接著,第二輪的專門訓練將這個基礎模型轉變為推薦排序器。這個第二階段會更頻繁地更新,以應對新內容和不斷變化的用戶偏好。

GenRec 將觀看歷史和上下文轉換為自然語言,而不是將它們建模為手動建立的特徵。與將用戶數據編碼為密集的數值向量不同,Netflix 將其轉換為純文本。播放、觀看時長、喜歡或不喜歡、加入列表和中途放棄等行為,都變成用戶與推薦系統之間的一種對話。該模型能夠自行識別類型偏好或興趣轉變等模式,而無需透過手動設計的特徵來明確定義。

每次互動的完整文本版本會超出模型的上下文視窗,因此 Netflix 進行了積極的過濾。例如,長時間觀看等高訊號事件會保留完整細節,而短暫點擊或快速滾動則會被捨棄,連續觀看則會被濃縮。為了防止模型推薦實際不存在的內容,Netflix 還增加了一個獨立組件,該組件只會對真實目錄中的條目進行評分。

GenRec 在 vLLM 上運行,其模式是模型一次讀取輸入,並在單次傳遞中對所有候選項目進行評分,而無需生成任何文本。這有助於控制成本。

與經過多年調整的生產系統相比,GenRec 在離線狀態下提供了約 1.6% 的排序品質提升。為了達到這個結果,它在第二個訓練階段所需的標記範例數量減少了約 40 倍。這個比較僅適用於此特定階段,而非所有訓練數據。

在線上測試中,Netflix 對約 10% 的流量進行了為期四週的 A/B 實驗,僅限於預先計算的推薦介面。追蹤首頁用戶行為的短期指標上升了 0.115%,而長期核心指標則提升了 0.006%。根據 Netflix 的說法,這兩項增益都大到無法用偶然來解釋。

第二階段針對推薦的微調,在基礎模型的性能上額外增加了 35% 到 50%。當基礎模型已經有兩週歷史時,這個差距會擴大到約 80%,因為基礎模型不再反映新內容和變化的偏好。推薦模型很快就會過時。

Netflix 將 GenRec 視為更廣泛轉變的一部分,這種轉變也體現在 PLUM、GLIDE 和 OneRec-Think 等工作中。與為每個推薦任務建立客製化架構不同,單一語言模型可以處理多種使用情境。工作重點從建立越來越多的特徵轉向決定哪些訊號應納入模型的輸入以及納入多少。基礎設施也正朝著 GPU 伺服器和 LLM 工具發展。

Netflix 團隊稱 GenRec 為「早期但有前景的一步」,並將該系統描述為傳統推薦模型的強大替代方案。目前尚未考慮完全取代現有系統。

Netflix 多年來一直將機器學習應用於其推薦列表之外。早在 2020 年,該公司就曾描述知識圖譜和相似性地圖如何預測規劃中的內容適合哪個類別,以及在每個國家可能達到多少觀眾。當時,Google 的 BERT 語言模型僅處理人工編寫的標題摘要,並將機器可讀的表示形式提供給下游模型。Netflix 也已開始為生產工作流程建立自己的模型,有時還會公開發布,例如用於從影片中移除物體的 VOID 框架。