推薦系統之wide&deep

wide & deep

 相信這是個對有關推薦系統工作者非常眼熟的一個模型,是16年穀歌應用於google play中的模型,在推薦系統中工業界的應用也非常廣泛,是一個比較成熟的模型,近日實習所在組上線這個模型,點擊率相比於LR得到了極大的提高,藉此機會學習總結一下這個模型。 

個人覺得推薦非常重要的就是構建用戶畫像,還原用戶行爲,基於此分析用戶興趣愛好,然後對其推薦,用戶行爲特徵顯得尤爲重要,然而如何去搭建用戶畫像的這個模型是我們面臨的難題,相比於圖像數據的不同,廣告數據具有極大的稀疏性,因此對於CNN中比較有用的dropout拿到廣告推薦中來可能就直接gg了。對於用戶的一些數據,例如用戶所在城市,性別,或者是否點擊這些信息我們經常都是通過one-hot進行處理,最後得到大量稀疏特徵丟入LR模型中,LR模型雖然快,但學習粒度非常粗糙,無法學習到擴展性特徵,考慮到embedding做法時下如此流行,便衍生出了許多的方法。

Wide&Deep全文圍繞着“記憶”(Memorization)與“擴展(Generalization)”兩個詞展開。實際上,它們在推薦系統中有兩個更響亮的名字,Exploitation & Exploration,即著名的EE問題。分爲wide和deep兩個部分,其實就是LR和DNN的組合

  • wide側就是普通的LR模型,需要根據人工經驗構建常用特徵喂入模型中,讓wide側記住這些信息
  • deep側就是DNN,主要用來對category特徵進行embedding處理,將稀疏矩陣映射爲稠密矩陣,讓DNN學習特徵的深度交叉易於擴展

 

1. Wide模型

wide模型就是一個廣義線性模型,其形式爲

特徵包括了原始特徵和轉換特徵,其中最重要的轉換方式之一是特徵交叉積轉換,他被定義爲

比如說性別和語言的交叉乘積特徵AND爲1,只有當性別爲female和語言爲'en'時,其餘情況都爲0,這種做法捕獲了交互特徵,在模型中添加了非線性特徵

2. Deep模型

該部分是前饋神經網絡,網絡會對於一些稀疏的類別特徵通過最小化損失函數映射爲O(10)-O(100)維度的dense layer

其中L是layer層數,f爲激活函數, 

3. 聯合訓練(Joint Trainning)

論文中刻意提醒了ensemble和 joint trainning的區別,ensemble是模型單獨訓練,在訓練過程中二者彼此獨立,僅在預測階段對於每個模型預測的數據進行融合。而joint trainning是同事考慮wide和deep兩個模型的權重,一起優化,平時在參加一些數據挖掘類的比賽是,我們可能常用ensemble,這樣的方式對資源要求比較高,因爲要考慮到單個模型的效果具佳,必然涉及到更加龐大的特徵,但在工業界上來說,考慮到訓練時間以及訓練資源等因素,joint trainning這樣的方式將更加高效。

 

最終模型的預測公式如下

google play的流程圖如下

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章