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