推荐系统——Wide Deep
[[點(diǎn)擊率]]預(yù)估介紹
點(diǎn)擊率預(yù)估是對每次廣告點(diǎn)擊情況作出預(yù)測,可以輸出點(diǎn)擊或者不點(diǎn)擊,也可以輸出該次點(diǎn)擊的概率,后者有時候也稱為pClick.對于點(diǎn)擊率預(yù)估模型而言,其最終作用是輸出點(diǎn)擊的一個概率,是一個回歸模型
可以解決[[FM模型]]的一些問題如泛化能力過強(qiáng)導(dǎo)致會推薦一些其實(shí)并沒有那么相關(guān)的物品。
Wide & Deep 模型的記憶能力和泛化能力
對于RS而言,memorization和generalization是兩個常見的概念,其中memorization代表推薦系統(tǒng)的保守性,即RS通過記憶為用戶推薦之前行為的items,而generalization則是泛化能力的體現(xiàn),傾向于提高推薦系統(tǒng)的多樣性。而Wide & Deep模型綜合了兩個方面,其中,memorization通過一個線性模型來實(shí)現(xiàn),而generalization通過[DNN]來實(shí)現(xiàn)。
其中,對于Wide & Deep 模型而言,需要根據(jù)自己的場景去判斷哪些特征放在Wide中,哪些特征放在Deep中
如何理解Wide部分有利于memorization,而Deep部分有利于generalization
wide部分是一個廣義的線性模型,輸入包括兩部分,一部分為樣本的原始特征,另一部分為原始特征的交互特征。
交互特征的定義:
?k(x)=∏i=1dxicki,cki∈{0,1}\phi_k(x) = \prod_{i=1}^d x_i^{c_{ki}}, c_{ki} \in \{0, 1\}?k?(x)=i=1∏d?xicki??,cki?∈{0,1}大致意思為只有兩個特征同時為1時,交互特征才能為1,否則為0
其中,訓(xùn)練Wide部分時使用的是帶[[L1正則]]的[[FTRL]]算法,其中,L1 FTRL十分注重模型的稀疏特質(zhì),即Wide采用L1 FTRL會使Wide部分變得更加稀疏,即Wide部分的大部分參數(shù)都為0,這就大大壓縮了模型權(quán)重及特征向量的維度,因此Wide部分模型訓(xùn)練完成之后留下來的特征都是十分重要的
Deep部分是一個DNN模型,輸入特征可以分為兩大類,一類為可以直接輸入的數(shù)值特征,另一類類別特征(即經(jīng)過Embedding之后才能輸入到DNN中),Deep部分的數(shù)學(xué)形式為a(l+1)=f(Wla(l)+bl)a^{(l+1)} = f(W^la^{(l)} + b^l)a(l+1)=f(Wla(l)+bl)其中,對于DNN而言,隨著層數(shù)的增加,中間特征也就越抽象,從而提升了模型的泛化能力。
Wide部分與Deep部分的結(jié)合
Wide & Deep將Wide部分和Deep部分兩部分的輸出結(jié)果進(jìn)行聯(lián)合訓(xùn)練,重新使用一個邏輯回歸做最終的預(yù)測,輸出概率值。P(Y=1∣x)=δ(wwideT[x,?(x)]+wdeepTa(lf)+b)P(Y=1|x) = \delta (w^T_{wide}[x, \phi(x)] + w^T_{deep}a^{(lf)}+b)P(Y=1∣x)=δ(wwideT?[x,?(x)]+wdeepT?a(lf)+b)
操作流程
- 訓(xùn)練方法是用mini-batch stochastic optimization。
- Wide組件是用FTRL(Follow-the-regularized-leader) + L1正則化學(xué)習(xí)。
- Deep組件是用AdaGrad來學(xué)習(xí)。
總結(jié)
以上是生活随笔為你收集整理的推荐系统——Wide Deep的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java api帮助文档_JAVA的Sw
- 下一篇: java信息管理系统总结_java实现科