1. 程式人生 > >DNN個性化推薦模型

DNN個性化推薦模型

max 點擊 工具 行為 個人 evel end title 職業

0 推薦技術 1)協同過濾: (1)基於user的協同過濾:根據歷史日誌中用戶年齡,性別,行為,偏好等特征計算user之間的相似度,根據相似user對item的評分推薦item。缺點:新用戶冷啟動問題和數據稀疏不能找到置信的相似用戶進行推薦。 (2)基於item的協同過濾:根據item維度的特征計算item之間的相似度,推薦user偏好item相似的item。 (3)基於社交網絡:根據user社交網絡親密關系,推薦親密的user偏好的item。 (4)基於模型:LR模型,user和item等維度特征輸入給模型訓練,label是show:clk,根據預估的pctr進行推薦。DNN模型:見下面。 2)基於內容的過濾:抽取item的有意義描述特征,推薦user偏好item相似度高的item,個人覺得像基於item的過濾。
3)組合推薦:根據具體問題,組合其它幾種技術進行推薦。 1 DNN推薦模型 1)特征工程: 用戶維度:用戶id,性別,年齡和職業。 電影維度:電影id,類型和名稱。 2)模型設計: user和item維度特征embedding,各自的全連接網絡結構,最頂層是兩個維度網絡結構的cosin距離代表相似度。所以為user推薦相似度高的item。 技術分享 (1) user維度的網絡結構,分別將四個特征embedding,並輸入全連接層;再將四個全連接輸入到全連接層,並定義激活函數為tanh(代碼為paddle開源工具)。 技術分享

技術分享

(2)item維度網絡結構,同user維度一樣,分別將三個特征embedding後輸入全連接層,再相加輸入全連接層(註意title用了cnn)。 技術分享 (3)最頂層將user和item連接,cosin距離代表了user和item的相似度,並且損失函數為mse。 技術分享

技術分享

2 youtube推薦模型 1)大規模推薦的系統由於數據量太大,不能直接進行全連接的排序,所以一般大致分為兩個階段:百萬級到百級的觸發過濾出一部分,再進行細致排序截斷階段。 技術分享 2)百萬級到百級的觸發過濾,模型采用MLP,訓練時softmax做多分類,預測時計算與所有視頻的相似度,取top K個視頻。我認為label可以是show:clk,類似於LR進行模型推薦。 技術分享
3)排序截斷階段:網絡結構與觸發階段一樣,只是最頂層是LR,做排序;特征工程方面可以更細致,比如視頻ID,上次點擊時間等等。 參考:https://github.com/PaddlePaddle/book/tree/develop/05.recommender_system

DNN個性化推薦模型