Wide & Deep Learning for Recommender Systems/zh

    From Marovi AI
    This page is a translated version of the page Wide & Deep Learning for Recommender Systems and the translation is 100% complete.
    Other languages:
    SummarySource
    Research Paper
    Authors Heng-Tze Cheng; Levent Koc; Jeremiah Harmsen; Tal Shaked; Tushar Chandra; Hrishi Aradhye; Glen Anderson; Greg Corrado; Wei Chai; Mustafa Ispir; Rohan Anil; Zakaria Haque; Lichan Hong; Vihan Jain; Xiaobing Liu; Hemal Shah
    Year 2016
    Topic area Machine Learning
    Difficulty Research
    arXiv 1606.07792
    PDF Download PDF

    Wide & Deep Learning for Recommender Systems(《用於推薦系統的寬與深學習》)是 Heng-Tze Cheng 等谷歌研究人員於 2016 年發表的論文,提出了一種用於大規模推薦系統的混合架構。該模型聯合訓練一個寬(wide)線性分量與一個深(deep)前饋神經網絡:前者通過交叉乘積特徵變換記憶特定的特徵交互,後者通過低維 embedding 對未見過的特徵組合進行泛化。該框架在 Google Play 應用商店投入生產,在線上 A/B 測試中將應用安裝量提升了 3.9%;同時作者發佈了基於 TensorFlow 的參考實現。

    概述

    推薦系統可以視為一條搜索排序流水線:由用戶特徵與上下文特徵組成的查詢被映射到一個候選項的有序列表。這需要兩種相互補充的能力。記憶(memorization)從歷史數據中學習項或特徵的頻繁共現,並利用直接相關性;廣義線性模型配合交叉乘積特徵非常適合這種場景,但無法外推到未見過的特徵對。泛化(generalization)則探索新的特徵組合,由基於 embedding 的模型——例如 factorization machines 與深度神經網絡——較好地完成,但稠密 embedding 在稀疏且高秩的查詢-項矩陣上可能過度泛化,給出相關性較低的推薦。

    Wide & Deep 框架將這兩種信號融合到一個聯合訓練的模型中。Wide 分支用很少的參數處理類似異常規則的情形,而 Deep 分支覆蓋未見過的交互的長尾。兩條分支共享同一個 logistic 損失,因此各自可以專精,不必重複建模另一支已經捕捉到的內容。

    主要貢獻

    • Wide & Deep 架構,針對通用推薦系統聯合訓練一個帶稀疏特徵 embedding 的前饋神經網絡與一個帶交叉乘積特徵變換的線性模型。
    • 在 Google Play 上完成生產化並進行評估的實現:該商業移動應用商店擁有逾十億活躍用戶與逾百萬應用,相對於強力調優的 wide-only 基線,線上應用安裝率獲得 +3.9% 的提升。
    • 配套的開源 TensorFlow 實現及高階 API,降低了將該架構應用到其他排序問題上的門檻。
    • 工程細節——warm-starting(熱啟動)、多線程打分以及特徵詞表生成——使得在每秒為數千萬候選項打分的同時,單次請求延遲可壓到約 14 毫秒。

    方法

    Wide 分量

    Wide 分量是一個廣義線性模型

    $ y = \mathbf{w}^{T}\mathbf{x} + b, $

    其中 $ \mathbf{x} = [x_1, x_2, \ldots, x_d] $ 是特徵向量,$ \mathbf{w} $ 是權重,$ b $ 是偏置。除原始輸入之外,特徵集合還包含交叉乘積變換

    $ \phi_k(\mathbf{x}) = \prod_{i=1}^{d} x_i^{c_{ki}}, \quad c_{ki} \in \{0, 1\}, $

    其中 $ c_{ki} $ 當第 $ i $ 個特徵參與第 $ k $ 個變換時取 1,否則取 0。對二值特徵而言,只有當所有參與特徵都為 1 時 $ \phi_k $ 才為 1,這就刻畫了諸如 AND(user_installed_app=netflix, impression_app=pandora) 這樣的聯合,並為線性模型注入了非線性。

    Deep 分量

    Deep 分量是一個前饋神經網絡。每個類別特徵都被映射為一個稠密 embedding 向量,其維度在 $ O(10) $$ O(100) $ 量級,並端到端地訓練。embedding 與歸一化後的連續特徵拼接在一起,通過隱藏層進行前向傳播

    $ a^{(l+1)} = f\!\left(W^{(l)} a^{(l)} + b^{(l)}\right), $

    其中 $ f $ 是激活函數(實驗中採用整流線性單元 ReLU),$ a^{(l)} $$ W^{(l)} $$ b^{(l)} $ 分別為第 $ l $ 層的激活、權重和偏置。

    聯合訓練

    兩條分支以各自輸出 log-odds 的加權和方式組合,並送入一個共享的 logistic 損失:

    $ P(Y = 1 \mid \mathbf{x}) = \sigma\!\left(\mathbf{w}_{wide}^{T}[\mathbf{x}, \phi(\mathbf{x})] + \mathbf{w}_{deep}^{T} a^{(l_f)} + b\right), $

    其中 $ \sigma $ 是 sigmoid 函數,$ a^{(l_f)} $ 是 deep 網絡最後一層的隱藏激活。關鍵之處在於這是聯合訓練而非集成:梯度同時回傳到兩條分支,因此 wide 部分只需彌補 deep 部分留下的空缺。Wide 分支使用帶 $ L_1 $ 正則化的 Follow-the-Regularized-Leader(FTRL)優化,deep 分支使用 AdaGrad。在生產模型中,每個類別特徵學習一個 32 維 embedding,所有 embedding 與稠密特徵拼接成約 1200 維的輸入向量,再經過三層 ReLU,最後送入 logistic 輸出單元。

    系統

    推薦流水線先召回候選集,然後用 Wide & Deep 模型對其排序。訓練數據由曝光日誌構建,使用應用安裝作為二值標籤。為了消化超過 5000 億條訓練樣本以及頻繁重訓練的開銷,作者引入了warm-starting(熱啟動):用上一版模型的 embedding 與線性權重來初始化新模型。在投入線上服務之前,還會進行一次 dry-run 健全性檢查,防止性能回退。

    結果

    在 Google Play 上為期 3 周的線上 A/B 測試中,相對於一個高度調優的 wide-only logistic 回歸基線,Wide & Deep 模型將應用商店主着陸頁的應用安裝率提升了 +3.9%(具有統計顯著性),相對於 deep-only 模型再提升 +1%。離線 AUC 之間的差距更小(Wide & Deep、Wide、Deep 分別為 0.728、0.726、0.722),這說明線上增益部分來自模型在探索性新推薦上不斷學習用戶反饋的能力,而不僅僅是離線排序質量。

    在服務端,單線程批量打分耗時 31 毫秒;將每個批次切分到多個線程並行後,客戶端側延遲降至 14 毫秒,同時高峰時段每秒為超過 1000 萬個應用打分。

    影響

    Wide & Deep 成為了工業界 click-through rate(CTR)預估與排序的經典參考架構之一,與 Factorization Machines 以及隨後出現的深度 CTR 模型並列。這種由傾向於記憶的線性分支與傾向於泛化的深度分支並行的範式啟發了 DeepFM、Deep & Cross Network、xDeepFM 等後續工作,它們將 wide 分支仍依賴的交叉特徵工程進一步自動化。

    TensorFlow 中的 DNNLinearCombinedClassifier / DNNLinearCombinedRegressor estimator 將該架構產品化為開箱即用的 API;該論文在 推薦系統 與應用於排序的 深度學習 的教科書式綜述中被廣泛引用。除對 CTR 模型的直接影響之外,更普適的原則——互補的歸納偏置可以在共享損失下聯合訓練,而無需事後做集成——也啟發了後續的混合設計,例如將召回與排序信號、結構化先驗與神經網絡,或基於規則的特徵與可學習表示組合到一起。

    該工作也常被引用為深度學習在高流量生產排序系統中早期且成功的部署案例。其中關於 warm-starting、詞表管理以及連續特徵基於分位數歸一化的討論,成為許多工程團隊首次搭建在線深度排序流水線時的範本。

    參見

    參考文獻

    • Cheng, H.-T., Koc, L., Harmsen, J., Shaked, T., Chandra, T., Aradhye, H., Anderson, G., Corrado, G., Chai, W., Ispir, M., Anil, R., Haque, Z., Hong, L., Jain, V., Liu, X., 與 Shah, H. (2016). Wide & Deep Learning for Recommender Systems. arXiv:1606.07792.
    • Duchi, J., Hazan, E., 與 Singer, Y. (2011). Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12, 2121–2159.
    • McMahan, H. B. (2011). Follow-the-regularized-leader and mirror descent: Equivalence theorems and l1 regularization. 見 Proc. AISTATS.
    • Rendle, S. (2012). Factorization machines with libFM. ACM Transactions on Intelligent Systems and Technology, 3(3), 57:1–57:22.
    • He, K., Zhang, X., Ren, S., 與 Sun, J. (2016). Deep residual learning for image recognition. 見 Proc. IEEE Conference on Computer Vision and Pattern Recognition.
    • Wang, H., Wang, N., 與 Yeung, D.-Y. (2015). Collaborative deep learning for recommender systems. 見 Proc. KDD, 1235–1244.