1. 背景
??本文提出Wide&Deep模型侦鹏,旨在使得訓(xùn)練得到的模型能過同時獲得記憶(memorization)和泛化(generalization)能力:
??(若只有Wide部分俩功,推薦具有極高的相關(guān)性而缺少泛化內(nèi)容荣病;若只有Deep部分布疙,推薦存在過度泛化和推薦缺乏相關(guān)性的問題;所以將兩者相結(jié)合使模型同時獲得記憶和泛化能力尝偎。)
??- 記憶(memorization)即從歷史數(shù)據(jù)中發(fā)現(xiàn)item或者特征之間的相關(guān)性重归。
??- 泛化(generalization)即相關(guān)性的傳遞,發(fā)現(xiàn)在歷史數(shù)據(jù)中很少或者沒有出現(xiàn)的新的特征組合减噪。
??在推薦系統(tǒng)中短绸,記憶體現(xiàn)的準(zhǔn)確性而泛化體現(xiàn)的是新穎性。
??在本文中筹裕,利用Wide & Deep模型醋闭,使訓(xùn)練出來的模型能夠同時擁有上述的兩種特性。
2. 模型整體架構(gòu)
??推薦系統(tǒng)的整體架構(gòu)朝卒,由兩個部分組成证逻,檢索系統(tǒng)(或者說候選生成系統(tǒng) 和排序系統(tǒng)(排序網(wǎng)絡(luò))。
??用檢索(retrieval) 的方法對大數(shù)據(jù)集進(jìn)行初步篩選抗斤,返回最匹配query的一部分物品列表囚企,這里的檢索通常會結(jié)合采用機器學(xué)習(xí)模型(machine-learned models)和人工定義規(guī)則(human-defined rules)兩種方法丈咐。從大規(guī)模樣本中召回最佳候選集之后,再使用排序系統(tǒng)對每個物品進(jìn)行算分龙宏、排序棵逊,分?jǐn)?shù)P(y|x),y是用戶采取的行動(比如說下載行為),x是特征银酗,包括:
??- User features:
??eg:country, language, demographics;
??- Contextual features:
??eg:device, hour of the day, day of the week;
??- Impression features
??eg:app age, historical statistics of an app;
??Wide & Deep Model就是用在排序系統(tǒng)中辆影。
3. Wide & Deep模型
??簡單來說,人腦就是一個不斷記憶(memorization)并且歸納(generalization)的過程黍特,而這篇論文的思想蛙讥,就是將寬線性模型(Wide Model,用于記憶灭衷,下圖左側(cè))和深度神經(jīng)網(wǎng)絡(luò)模型(Deep Model键菱,用于歸納,下圖右側(cè))結(jié)合今布,汲取各自優(yōu)勢形成了 Wide & Deep 模型用于推薦排序(下圖中間)经备。
3.1 Wide Model
Memorization can be loosely defined as learning the frequent co-occurrence of items or features and exploiting the correlation available in the historical data.
??要理解的概念是 Memorization,主要是學(xué)習(xí)特征的共性或者說相關(guān)性部默,產(chǎn)生的推薦是和已經(jīng)有用戶行為的物品直接相關(guān)的物品侵蒙。
??用的模型是 邏輯回歸(logistic regression, LR),LR 的優(yōu)點就是簡單(simple)傅蹂、容易規(guī)姆坠耄化(scalable)、可解釋性強(interpretable)份蝴。LR 的特征往往是二值且稀疏的(binary and sparse)犁功,這里同樣采用 one-hot 編碼,如 “user_installed_app=netflix”婚夫,如果用戶安裝了 Netflix浸卦,這個特征的值為 1,否則為 0案糙。
??為了達(dá)到 Memorization限嫌,我們對稀疏的特征采取 cross-product transformation,比如說 AND(user_installed_app=netflix, impression_app=pandora”) 這個特征时捌,只有 Netflix 和 Pandora 兩個條件都達(dá)到了怒医,值才為 1,這類 feature 解釋了 co-occurrence 和 target label 之間的關(guān)系奢讨。一個 cross-product transformation 的局限在于稚叹,對于在訓(xùn)練集里沒有出現(xiàn)過的 query-item pair,它不能進(jìn)行泛化(Generalization)
??到此,總結(jié)一下扒袖,寬度模型的輸入是用戶安裝應(yīng)用(installation)和為用戶展示(impression)的應(yīng)用間的向量積(叉乘)塞茅,模型通常訓(xùn)練 one-hot 編碼后的二值特征,這種操作不會歸納出訓(xùn)練集中未出現(xiàn)的特征對僚稿。
??Linear model 大家都很熟悉了
??x=[x1,x2,…,xd]是包含了 d 個特征的向量凡桥,w=[w1,w2,…,wd]是模型參數(shù),b 是偏置蚀同。最終在y的基礎(chǔ)上增加Sigmoid函數(shù)作為最終的輸出缅刽。也即是LR。
??特征包括了原始的輸入特征以及 cross-product transformation 特征蠢络,cross-product transformation 的式子如下:
??ckj是一個布爾變量衰猛,如果第 i 個特征是第 k 個 transformation φk 的一部分,那么值就為 1刹孔,否則為 0啡省,作用:
This captures the interactions between the binary features, and adds nonlinearity to the generalized linear model.
3.2 Deep Model
Generalization is based on transitivity of correlation and explores new feature combinations that have never or rarely occurred in the past.
??要理解的概念是 Generalization,可以理解為相關(guān)性的傳遞(transitivity)髓霞,會學(xué)習(xí)新的特征組合卦睹,來提高推薦物品的多樣性,或者說提供泛化能力(Generalization)
??泛化往往是通過學(xué)習(xí) low-dimensional dense embeddings 來探索過去從未或很少出現(xiàn)的新的特征組合來實現(xiàn)的方库,通常的 embedding-based model 有 Factorization Machines(FM) 和 Deep Neural Networks(DNN)结序。特殊興趣或者小眾愛好的用戶,query-item matrix 非常稀疏纵潦,很難學(xué)習(xí)徐鹤,然而 dense embedding 的方法還是可以得到對所有 query-item pair 非零的預(yù)測,這就會導(dǎo)致 over-generalize邀层,推薦不怎么相關(guān)的物品返敬。這點和 LR 正好互補,因為 LR 只能記住很少的特征組合寥院。
??為了達(dá)到 Generalization劲赠,我們會引入新的小顆粒特征,如類別特征(安裝了視頻類應(yīng)用只磷,展示的是音樂類應(yīng)用经磅,等等)AND(user_installed_category=video, impression_category=music),這些高維稀疏的類別特征(如人口學(xué)特征和設(shè)備類別)映射為低緯稠密的向量后钮追,與其他連續(xù)特征(用戶年齡、應(yīng)用安裝數(shù)等)拼接在一起阿迈,輸入 MLP 中元媚,最后輸入邏輯輸出單元。
??一開始嵌入向量(embedding vectors)被隨機初始化,然后訓(xùn)練過程中通過最小化損失函數(shù)來優(yōu)化模型刊棕。每一個隱層(hidden-layer)做這樣的計算:
??f 是激活函數(shù)(通常用 ReLU)炭晒,l 是層數(shù)。
??總結(jié)一下甥角,基于 embedding 的深度模型的輸入是 類別特征(產(chǎn)生embedding)+連續(xù)特征网严。
3.3 Joint Training
??對兩個模型的輸出算 log odds ratio 然后加權(quán)求和,作為預(yù)測嗤无。
??Joint Training vs Ensemble
??- Joint Training 同時訓(xùn)練 wide & deep 模型震束,優(yōu)化的參數(shù)包括兩個模型各自的參數(shù)以及 weights of sum;
??- Ensemble 中的模型是分別獨立訓(xùn)練的,互不干擾当犯,只有在預(yù)測時才會聯(lián)系在一起;
??用 mini-batch stochastic optimization 來進(jìn)行訓(xùn)練垢村。
??在論文提到的實驗中,訓(xùn)練時 Wide Model 部分用了 Follow-the-regularized-learder(FTRL)+ L1 正則嚎卫,Deep Model 用了 AdaGrad嘉栓。對于邏輯回歸,模型預(yù)測如下:
4 System Implementation
??pipeline 如下圖
4.1 Data Generation
??Label: 標(biāo)準(zhǔn)是 app acquisition拓诸,用戶下載為 1侵佃,否則為 0
??Vocabularies: 將類別特征(categorical features)映射為整型的 id,連續(xù)的實值先用累計分布函數(shù)CDF歸一化到[0,1]奠支,再劃檔離散化馋辈。
??Continuous real-valued features are normalized to [0, 1] by mapping a feature value x to its cumulative distribution function P(X ≤ x), divided into nq quantiles. The normalized value is (i?1)/(nq?1) for values in the i-th quantiles.
4.2 Model Training
??訓(xùn)練數(shù)據(jù)有 500 billion examples, Input layer 會同時產(chǎn)生稀疏(sparse)的和稠密(dense)的特征胚宦,具體的 Model 上面已經(jīng)討論過了首有。需要注意的是,當(dāng)新的訓(xùn)練數(shù)據(jù)來臨的時候枢劝,我們用的是熱啟動(warm-starting)方式井联,也就是從之前的模型中讀取 embeddings 以及 linear model weights 來初始化一個新模型,而不是全部推倒重新訓(xùn)練您旁。
4.3 Model Serving
??當(dāng)模型訓(xùn)練并且優(yōu)化好之后烙常,我們將它載入服務(wù)器,對每一個 request鹤盒,排序系統(tǒng)從檢索系統(tǒng)接收候選列表以及用戶特征蚕脏,來為每一個 app 算分排序,分?jǐn)?shù)就是前向傳播的值(forward inference)啦侦锯,可以并行訓(xùn)練提高 performance驼鞭。