DCN论文精读
論文地址:https://arxiv.org/abs/1708.05123
摘要
?????特征工程對于預測模型的成功非常關鍵。然而,這個過程是不簡單的,并且常常需要人工處理,或者大量的搜索。DNNs可以自動學習特征交互,但他們生成的都是隱式交互并且在很多特征交互的學習中并不一定有效。本文中,我們提出了Deep & Cross Network(DCN),在保持DNN模型優勢的同時,引入一個新穎的交叉網絡,使得學習一些有界度(bounded-degree)的特征交互更有效。尤其是,DCN顯示地在每層應用特征交互,相對DNN模型只花費了極少的代價從而避免了人工特征工程。我們的實驗結果證明了它是最優的模型,在CTR預測數據集和稠密分類數據集(dense classification dataset),無論是模型準確率還是內存使用情況。
現存問題以及傳統解決方案
?????大規模網頁推薦系統的數據大多數都是離散的和分類別的,導致數據的稀疏性和高維性。這對特征的交互探索是非常具有挑戰性的。并且導致大部分的大規模系統只能使用線性模型,如邏輯回歸。然而,線性模型的表示能力差,學習不了特征交互信息,通常需要事先進行人工特征工程,這對大規模數據來說是不太現實的。
?????傳統的解決方案有:基于向量表示技術和神經網絡。FMs[11,12]將高維稀疏特征映射到低維稠密向量,然后通過向量的內積來表示特征之間的交互。FFMs[7,8]在FM的基礎上區分特征的Field。DNN可以學習到特征高階交互信息。
傳統模型存在的問題
?????FM和FFM這種淺層結構只能學習到一些低階的特征交互。 雖然FM能擴展到特征高階的交互學習,但是需要花費很大計算的代價。
?????DNN雖然可以學習特征的高階交互,但是對于有界度的特征交互并不是很有效。
本文模型
?????DCN模型可以非常高效地學習有界度的特征交互信息,以及高階的非線性交互信息。模型主要有embedding和stacking層、cross network和deep network層,以及最后的combination層,如圖所示:
embedding層主要是將高維稀疏的特征轉換成低維稠密的向量:xembed,i=Wembed,ixi\mathbf{x}_{embed,i}=W_{embed,i}\mathbf{x}_ixembed,i?=Wembed,i?xi?最后得到網絡的輸入:x0=[xembed,1T,...,xembed,kT,xdenseT]x_0=[\mathbf{x}_{embed,1}^T,...,\mathbf{x}_{embed,k}^T,\mathbf{x}_{dense}^T]x0?=[xembed,1T?,...,xembed,kT?,xdenseT?]DCN關鍵在于CRoss Network,其每層的計算為:xl+1=x0xlTwl+bl+xl=f(xl,wl,bl)+xl\mathbf{x}_{l+1}=\mathbf{x}_0\mathbf{x}_l^T\mathbf{w}_l+\mathbf{b}_l+\mathbf{x}_l=f(\mathbf{x}_l,\mathbf{w}_l,\mathbf{b}_l)+\mathbf{x}_lxl+1?=x0?xlT?wl?+bl?+xl?=f(xl?,wl?,bl?)+xl?為什么cross network有效,論文中用了三種角度:多項式逼近, FMs的泛化, 和有效映射。cross network每層的計算如圖:
通過計算可以表示成:
從以上的計算邏輯看,有點像FM的二階項,但是FM只能構建二階交互,構建高階交互的話,計算資源呈指數增長,而Cross Network可以通過網絡的深度來構建高階的特征交互。
模型的復雜度:d×Lc×2d \times L_c \times 2d×Lc?×2其中ddd是輸入維度,LcL_cLc?是網絡深度。是一個線性。
?????鑒于Cross Network參數規模,限制了它對非線性高階的特征交互的學習能力。所以還需要一個并行全連接網絡DNN。hl+1=f(Wlhl+bl)\mathbf{h}_{l+1}=f(W_lh_l+b_l)hl+1?=f(Wl?hl?+bl?)
最后再加一個帶sigmoid函數的連接層作為輸出層。p=σ([xL1T,hL2T]wlogits)p=\sigma([\mathbf{x}_{L_1}^T,\mathbf{h}_{L_2}^T]\mathbf{w}_{logits})p=σ([xL1?T?,hL2?T?]wlogits?)
整個模型的損失函數:loss=?1N∑i=1Nyilog(pi)+(1?yi)log(1?pi)+λ∑l∣∣wl∣∣2loss=-\frac{1}{N}\sum_{i=1}^Ny_ilog(p_i)+(1-y_i)log(1-p_i)+\lambda\sum_l||\mathbf{w}_l||^2loss=?N1?i=1∑N?yi?log(pi?)+(1?yi?)log(1?pi?)+λl∑?∣∣wl?∣∣2
實驗效果
?????對比現有的模型,取得了較好的結果。logloss輸出最低,相同參數的內存消耗比dnn低。同時取得了最好的auc結果。
總結
- 上一篇: 图像处理---LoMo
- 下一篇: (五)虚拟存储概念