日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DeepCross Network(DCN)

發(fā)布時間:2023/12/16 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DeepCross Network(DCN) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 概述

Deep&Cross Network(DCN)[1]是由Google于2017年提出的用于計算CTR問題的方法,是對Wide&Deep[2]模型的進一步改進。線性模型無法學(xué)習(xí)到特征的交叉屬性,需要大量的人工特征工程的介入,深度網(wǎng)絡(luò)對于交叉特征的學(xué)習(xí)有著天然的優(yōu)勢,在Wide&Deep模型中,Deep側(cè)已經(jīng)是一個DNN模型,而Wide側(cè)是一個線性模型LR,無法有效的學(xué)習(xí)到交叉特征。在DCN中針對Wide&Deep模型的Wide側(cè)提出了Cross網(wǎng)絡(luò),通過Cross網(wǎng)絡(luò)學(xué)習(xí)到更多的交叉特征,提升整個模型的特征表達能力。

2. 算法原理

2.1. DCN的網(wǎng)絡(luò)結(jié)構(gòu)

DCN模型的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示:

在DCN網(wǎng)絡(luò)中,由下到上主要包括五種類型的層,第一種是Embedding層,第二種是Stacking層,用于組合Embedding層的輸出;第三種是Cross network的層,用于對Stacking后的特征進行學(xué)習(xí);第四種是Deep network的層,作用與Cross network的層一樣,此外,Cross network的層和Deep network的層是并行的兩個過程;第五種是輸出層,經(jīng)過Cross network的層和Deep network的層后,組合兩者的輸出做最后的計算。

2.2. DCN網(wǎng)絡(luò)的計算過程

2.2.1. Embedding和Stacking

對于CTR問題的輸入,通常是由一些離散的特征和連續(xù)的特征組成,對于離散的特征的處理方法通常是利用one-hot編碼對其離散化處理,但是處理后的特征通常是較為稀疏的,舉例來說,如類別特征“country=USA”,假設(shè)通過one-hot編碼后得到的特征為[0,1,0]\left [ 0,1,0 \right ][0,1,0]。這樣的特征不適合DNN處理,通常需要通過Embedding將其轉(zhuǎn)換成連續(xù)的向量表示,這便是Embedding層的作用,最終得到的Embedding層的輸出為:

xembed,i=Wembed,ixi\mathbf{x}_{embed,i}=W_{embed,i}\mathbf{x}_ixembed,i?=Wembed,i?xi?

其中,xembed,i\mathbf{x}_{embed,i}xembed,i?是Embedding層的輸出向量,xi\mathbf{x}_ixi?是屬入的第iii個離散特征,Wembed,i∈Rne×nvW_{embed,i}\in \mathbb{R}^{n_e\times n_v}Wembed,i?Rne?×nv?是一個ne×nvn_e\times n_vne?×nv?的矩陣,是用于連接輸入層到Embedding層的參數(shù)。通過Embedding層后,在Stacking層,需要將Embedding層的輸出組合在一起,這里的Embedding特征包括了離散特征的Embedding結(jié)果以及原始的連續(xù)特征:

x0=[xembed,1T,?,xembed,kT,xdenseT]\mathbf{x}_0=\left [ \mathbf{x}_{embed,1}^T,\cdots ,\mathbf{x}_{embed,k}^T,\mathbf{x}_{dense}^T \right ]x0?=[xembed,1T?,?,xembed,kT?,xdenseT?]

得到Embedding層的結(jié)果后,便進入到DCN網(wǎng)絡(luò)的核心的兩個網(wǎng)絡(luò),分別是Cross network和Deep network。

2.2.2. Cross network

Cross network部分是Deep&Cross網(wǎng)絡(luò)的核心部分,其作用是利用深度神經(jīng)網(wǎng)絡(luò)充分挖掘特征中的交叉特征。具體過程的形式化表示如下圖所示:


其具體的數(shù)學(xué)表述為:

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_{l}+\mathbf{x}_{l}=f\left ( \mathbf{x}_{l},\mathbf{w}_{l},\mathbf_{l} \right )+\mathbf{x}_{l}xl+1?=x0?xlT?wl?+bl?+xl?=f(xl?,wl?,bl?)+xl?

其中,xl,xl+1∈Rd\mathbf{x}_{l},\mathbf{x}_{l+1}\in \mathbb{R}^dxl?,xl+1?Rd表示的是Cross network的第lll層和第l+1l+1l+1層的輸出向量,wl,bl∈Rd\mathbf{w}_l,\mathbf_l\in \mathbb{R}^dwl?,bl?Rd是Cross network的第lll層的參數(shù)。上述公式的第二部分可以寫成:

f(xl,wl,bl)=xl+1?xlf\left ( \mathbf{x}_{l},\mathbf{w}_{l},\mathbf_{l} \right )=\mathbf{x}_{l+1}-\mathbf{x}_{l}f(xl?,wl?,bl?)=xl+1??xl?

從上述公式可以看出是一個殘差網(wǎng)絡(luò)[3]的表達形式,函數(shù)f:Rd?Rdf:\mathbb{R}^d \mapsto \mathbb{R}^df:Rd?Rd需要擬合的是第l+1l+1l+1層和第lll層的殘差xl+1?xl\mathbf{x}_{l+1}-\mathbf{x}_{l}xl+1??xl?。在ResNet中,殘差網(wǎng)絡(luò)的優(yōu)點主要有:

  • 通過殘差網(wǎng)絡(luò)可以構(gòu)建深層網(wǎng)絡(luò)。在傳統(tǒng)的MLP,當(dāng)網(wǎng)絡(luò)加深之后,往往存在過擬合現(xiàn)象。而通過殘差網(wǎng)絡(luò)構(gòu)建深層網(wǎng)絡(luò),可以減少過擬合現(xiàn)象的發(fā)生。
  • 殘差網(wǎng)絡(luò)使用了ReLU激活函數(shù)取代Sigmoid激活函數(shù)可以有效防止梯度彌散,使得網(wǎng)絡(luò)更容易收斂。
  • 總的來說,可以通過殘差網(wǎng)絡(luò)構(gòu)建更深層的模型,便于學(xué)習(xí)到特征之間的交叉屬性。

    2.2.3. Deep network

    Deep network部分與Wide&Deep模型中一致,是一個典型的全連接前饋神經(jīng)網(wǎng)絡(luò),其可以由下屬公式表示:

    hl+1=f(Wlhl+bl)\mathbf{h}_{l+1}=f\left ( W_l\mathbf{h}_l+\mathbf_l \right )hl+1?=f(Wl?hl?+bl?)

    其中,hl∈Rnl,hl+1∈Rnl+1\mathbf{h}_{l}\in \mathbb{R}^{n_l},\mathbf{h}_{l+1}\in \mathbb{R}^{n_{l+1}}hl?Rnl?,hl+1?Rnl+1?分別為第lll層和第l+1l+1l+1層的隱含層輸出,Wl∈Rnl+1×nl,bl∈Rnl+1W_l\in \mathbb{R}^{n_{l+1}\times n_{l}},\mathbf_l\in \mathbb{R}^{n_{l+1}}Wl?Rnl+1?×nl?,bl?Rnl+1?為Deep network第lll層到第l+1l+1l+1層的參數(shù);f(?)f\left ( \cdot \right )f(?)是一個激活函數(shù),如ReLU。

    2.2.4. Combination

    Combination層的作用是將上述兩個network的結(jié)果組合在一起,以便送入到輸出層,通常選擇concat的方法將兩者組合在一起,如[xL1T,hL2T]\left [ \mathbf{x}_{L_1}^T,\mathbf{h}_{L_2}^T \right ][xL1?T?,hL2?T?],最終送入到輸出層,輸出層的結(jié)果為:

    p=σ([xL1T,xL2T]wlogits)p=\sigma \left ( \left [ \mathbf{x}_{L_1}^T,\mathbf{x}_{L_2}^T \right ]\mathbf{w}_{logits} \right )p=σ([xL1?T?,xL2?T?]wlogits?)

    其中,xL1T∈Rd,xL2T∈Rm\mathbf{x}_{L_1}^T\in \mathbb{R}^d,\mathbf{x}_{L_2}^T \in\mathbb{R}^mxL1?T?Rd,xL2?T?Rm分別為Cross network和Deep network的輸出,wlogits\mathbf{w}_{logits}wlogits?為Combination層到輸出層的權(quán)重,σ\sigmaσ為激活函數(shù)σ=11+exp(?x)\sigma =\frac{1}{1+exp\left ( -x \right )}σ=1+exp(?x)1?。

    2.3. Cross network中的特征交叉

    Cross network中的特征交叉才是Cross network的核心,為了方便描述,在此對Cross network做一些限定:假設(shè)網(wǎng)絡(luò)的深度L=2L=2L=2,輸入x0∈Rd\mathbf{x}_0\in \mathbb{R}^dx0?Rd,為描述簡單,假設(shè)d=2d=2d=2,此時x0T=[x0,0,x0,1]\mathbf{x}_0^T=\left [ x_{0,0},x_{0,1} \right ]x0T?=[x0,0?,x0,1?],則L=1L=1L=1層的輸出為:

    x1=x0x0Tw0+b0+x0\mathbf{x}_{1}=\mathbf{x}_{0}\mathbf{x}_{0}^T\mathbf{w}_0+\mathbf_{0}+\mathbf{x}_{0}x1?=x0?x0T?w0?+b0?+x0?

    其中,x0x0T\mathbf{x}_{0}\mathbf{x}_{0}^Tx0?x0T?為:

    x0x0T=(x0,0x0,0x0,0x0,1x0,1x0,0x0,1x0,1)\mathbf{x}_{0}\mathbf{x}_{0}^T=\begin{pmatrix} x_{0,0}x_{0,0} &x_{0,0}x_{0,1} \\ x_{0,1}x_{0,0} &x_{0,1}x_{0,1} \end{pmatrix}x0?x0T?=(x0,0?x0,0?x0,1?x0,0??x0,0?x0,1?x0,1?x0,1??)

    由于x0∈Rd\mathbf{x}_0\in \mathbb{R}^dx0?Rdw0∈Rd\mathbf{w}_0\in \mathbb{R}^dw0?Rd,則x0x0Tw0∈Rd\mathbf{x}_{0}\mathbf{x}_{0}^T\mathbf{w}_0\in \mathbb{R}^dx0?x0T?w0?Rd,最終x1∈Rd\mathbf{x}_{1}\in \mathbb{R}^dx1?Rd。L=2L=2L=2層的輸出為:

    x2=x0x1Tw1+b1+x1=x0[x0x0Tw0+b0+x0]Tw1+b1+x0x0Tw0+b0+x0\begin{aligned} \mathbf{x}_{2} &= \mathbf{x}_{0}\mathbf{x}_{1}^T\mathbf{w}_1+\mathbf_{1}+\mathbf{x}_{1}\\ &= \mathbf{x}_{0}\left [ \mathbf{x}_{0}\mathbf{x}_{0}^T\mathbf{w}_0+\mathbf_{0}+\mathbf{x}_{0} \right ]^T\mathbf{w}_1+\mathbf_{1}+\mathbf{x}_{0}\mathbf{x}_{0}^T\mathbf{w}_0+\mathbf_{0}+\mathbf{x}_{0} \end{aligned}x2??=x0?x1T?w1?+b1?+x1?=x0?[x0?x0T?w0?+b0?+x0?]Tw1?+b1?+x0?x0T?w0?+b0?+x0??

    從上述公式可以看到x1\mathbf{x}_1x1?包含了原始特征x0\mathbf{x}_0x0?從一階(即:x0,0,x0,1x_{0,0},x_{0,1}x0,0?,x0,1?)到二階(即:x0,0x0,0x_{0,0}x_{0,0}x0,0?x0,0?x0,0x0,1x_{0,0}x_{0,1}x0,0?x0,1?x0,1x0,0x_{0,1}x_{0,0}x0,1?x0,0?x0,1x0,1x_{0,1}x_{0,1}x0,1?x0,1?)的所有可能叉乘組合,而x2\mathbf{x}_2x2?包含了其從一階到三階的所有可能叉乘組合。由此可知隨著Cross network的網(wǎng)絡(luò)深度的增加,交叉的階數(shù)也在增加,通過這種方式實現(xiàn)特征之間的充分交叉,同時通過不同層的權(quán)重wi\mathbf{w}_iwi?選擇不同階數(shù)的交叉特征,以此達到特征選擇的效果。

    注:在Cross network中,網(wǎng)絡(luò)中每一層的維數(shù)都是相等的。

    3. 總結(jié)

    Deep&Cross Network通過對Cross network的設(shè)計,可以顯示、自動地構(gòu)造有限高階的特征叉乘,并完成不同階特征的選擇,從而在一定程度上擺脫了人工的特征工程,同時保留深度網(wǎng)絡(luò)起到一定的泛化作用。

    參考文獻

    [1] Wang R, Fu B, Fu G, et al. Deep & cross network for ad click predictions[M]//Proceedings of the ADKDD’17. 2017: 1-7.
    [2] Cheng H T, Koc L, Harmsen J, et al. Wide & Deep Learning for Recommender Systems[J]. 2016:7-10.
    [3] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.

    總結(jié)

    以上是生活随笔為你收集整理的DeepCross Network(DCN)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。