推荐系统——Wide Deep
[[點擊率]]預估介紹
點擊率預估是對每次廣告點擊情況作出預測,可以輸出點擊或者不點擊,也可以輸出該次點擊的概率,后者有時候也稱為pClick.對于點擊率預估模型而言,其最終作用是輸出點擊的一個概率,是一個回歸模型
可以解決[[FM模型]]的一些問題如泛化能力過強導致會推薦一些其實并沒有那么相關的物品。
Wide & Deep 模型的記憶能力和泛化能力
對于RS而言,memorization和generalization是兩個常見的概念,其中memorization代表推薦系統的保守性,即RS通過記憶為用戶推薦之前行為的items,而generalization則是泛化能力的體現,傾向于提高推薦系統的多樣性。而Wide & Deep模型綜合了兩個方面,其中,memorization通過一個線性模型來實現,而generalization通過[DNN]來實現。
其中,對于Wide & Deep 模型而言,需要根據自己的場景去判斷哪些特征放在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
其中,訓練Wide部分時使用的是帶[[L1正則]]的[[FTRL]]算法,其中,L1 FTRL十分注重模型的稀疏特質,即Wide采用L1 FTRL會使Wide部分變得更加稀疏,即Wide部分的大部分參數都為0,這就大大壓縮了模型權重及特征向量的維度,因此Wide部分模型訓練完成之后留下來的特征都是十分重要的
Deep部分是一個DNN模型,輸入特征可以分為兩大類,一類為可以直接輸入的數值特征,另一類類別特征(即經過Embedding之后才能輸入到DNN中),Deep部分的數學形式為a(l+1)=f(Wla(l)+bl)a^{(l+1)} = f(W^la^{(l)} + b^l)a(l+1)=f(Wla(l)+bl)其中,對于DNN而言,隨著層數的增加,中間特征也就越抽象,從而提升了模型的泛化能力。
Wide部分與Deep部分的結合
Wide & Deep將Wide部分和Deep部分兩部分的輸出結果進行聯合訓練,重新使用一個邏輯回歸做最終的預測,輸出概率值。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)
操作流程
- 訓練方法是用mini-batch stochastic optimization。
- Wide組件是用FTRL(Follow-the-regularized-leader) + L1正則化學習。
- Deep組件是用AdaGrad來學習。
總結
以上是生活随笔為你收集整理的推荐系统——Wide Deep的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java api帮助文档_JAVA的Sw
- 下一篇: 一条命令教你安装centos下面的pip