模型構(gòu)造
一個(gè)DCN模型從嵌入和堆積層開始,接著是一個(gè)交叉網(wǎng)絡(luò)和一個(gè)與之平行的深度網(wǎng)絡(luò),最后是組合層,結(jié)合了兩個(gè)網(wǎng)絡(luò)的輸出。模型如圖:

嵌入和堆積層
考慮離散和連續(xù)特征的輸入數(shù)據(jù),在網(wǎng)絡(luò)規(guī)模的推薦系統(tǒng)中,如CTR預(yù)測(cè),輸入主要是categories特征,比如"country=China",這些特征通常通過獨(dú)熱編碼,將其編碼為獨(dú)熱向量,比如"[0,0,1,0]", 然而,這樣往往會(huì)出現(xiàn)高維特征空間。為了減少維數(shù),我們利用嵌入,將這些離散特征轉(zhuǎn)換成實(shí)數(shù)值的稠密向量(通常稱為嵌入向量)。
然后,將嵌入向量和連續(xù)特征堆積起來,形成一個(gè)向量。
將 作為Cross network和 Deep network的輸入。
因?yàn)樵谳斎雽用?,只有embedding和continuous,特征交叉在交叉網(wǎng)絡(luò)中實(shí)現(xiàn)。
Cross Network
交叉網(wǎng)絡(luò)的核心是以有效的方式應(yīng)用顯示特征交叉。交叉網(wǎng)絡(luò)由交叉層組成,第 層的cross layer為:
一個(gè)交叉層如下圖:

由上圖可以看出,交叉網(wǎng)絡(luò)的的總參數(shù)量非常少,僅僅為, 每一層的維度也都保持一致,最后的output依然與input維度相等。另一方面,特征交叉的概念體現(xiàn)在每一層,當(dāng)前層的輸出的交叉特征都要與第一層輸入的原始特征做一次兩兩交叉,至于在最后又把
加上,應(yīng)該是借鑒了ResNet的思想,模型最終擬合的是
這一項(xiàng)的殘差。從cross layer的表示公式中也能看出,實(shí)際的特征交叉部分
,擬合就是殘差。
Deep Network
深度網(wǎng)絡(luò)就是一個(gè)全連接的前饋神經(jīng)網(wǎng)絡(luò),每個(gè)深度層都有如下公式:
假設(shè)所有的層都是一樣的大小,表示層的深度,
表示層的尺寸,在深度網(wǎng)絡(luò)中,參數(shù)量為:
可以看出整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的參數(shù)量主要還是在深度網(wǎng)絡(luò)一側(cè)。
Combination Layer
組合層將兩個(gè)并行網(wǎng)絡(luò)的輸出連接起來,經(jīng)過一層全連接層得到輸出:
采用對(duì)數(shù)損失函數(shù),形式如下:
總結(jié)
DCN能有效地找出有限度的有效特征的相互作用,學(xué)會(huì)高度非線性的相互作用,不需要人工特征或遍歷搜索,并具有較低的計(jì)算成本。實(shí)驗(yàn)結(jié)果表明,DCN在對(duì)數(shù)損失函數(shù)上與DNN相比,少了近一個(gè)量級(jí)的參數(shù)量。