選單

Google深度學習CTR預估模型DCN續集:DCN-v2

繼Google的DCN模型之後,作者又推出了DCN-v2,對DCN的效能做了進一步的提升。DCN的的問題在於交叉網路對於特徵互動資訊的表達能力不夠,而DCN-v2在這裡透過對DCN中的交叉網路的改造,以及對Cross網路和Deep網路的結合方式,包括並行連線方式和stacking的連線方式,使得模型的效果效能明顯提升。

DCN-v2模型相比於DCN模型的優勢在於:

對於互動特徵的表達能力更強;

DCN-v2模型的結構比較簡單,比較適合作為複雜模型中的一個模型運算元來引入使用;

在特徵互動資訊的學習上非常高效,尤其在與低秩矩陣架構結合使用時更加高效。

一、模型結構

DCN-v2的模型結構如下圖所示,從模型結構上可以看出來,cross結構和deep結構可以有不同的組合方式,但是模型本身都涉及到下面幾個部分:

Embedding Layer:embedding層,主要是用於對sparse特徵和dense特徵預處理;

Cross Network:交叉網路,這也是DCN-v2模型的核心部分了;

Deep Network:MLP模組,常見的DNN結構;

Deep and Cross Combination:交叉模組和MLP模組的組合,這裡有並行和stack的組合方式;

Cost-Effective Mixture of Low-Rank DCN:基於對矩陣地址特性的分析,進一步平衡了模型的效能和效果。

Google深度學習CTR預估模型DCN續集:DCN-v2

1.Embedding Layer

這一步會處理常見的特徵資料,主要分為:

連續特徵:做歸一化即可;

one-hot的離散特徵:x_(embed,i) = W_(embed,i) * e_i,其中 e_i 表示原始的one-hot格式的sparse特徵,將其轉化為embedding向量表示;

multi-hot的離散特徵:將每一個非零部分對應的embedding向量,計算它們的均值即可。

2.Cross Network

在cross網路中,第 l+1 層的計算公式為

其中,x_0 是一個d維的向量,也就是embedding層,是由一階的原始特徵組成的。x_l和x_(l+1)分別表示第(l+1)個cross層的輸入和輸出,也都是d維的向量,而 W_l 是一個d✖️d維的矩陣,b_l 是一個d維的向量,它們分別是cross網路要學習的權重矩陣和偏差向量,正因為W_l是一個矩陣matrix,這有別於DCN模型中的w_l僅是一個向量vector,因此DCN-v2模型也叫DCN-M模型。對上述公式中所代表的cross網路的視覺化流程見下圖。

Google深度學習CTR預估模型DCN續集:DCN-v2

對於 l 層的cross網路,其特徵交叉的最大階數為 l+1 ,而且該cross網路包含了從1階到 l+1 階的所有階的特徵交叉資訊。對於d✖️d維的W矩陣,如果將其包含的vector數量從d降低到1,那麼DCN-M模型就等價於DCN模型了。

3.Deep Network

深度網路即DNN部分,在DCN-M模型中中,DNN部分使用了常規的MLP網路對映,ReLU提供非線性的方式,h_(l+1) = f(W-l ✖️ h_l + b_l) ,其中 h_l 和h_(l+1)分別表示第 l 個DNN層的輸入和輸出。

4.Deep and Cross Combination

對於Deep部分和Cross部分的組合,這在DCN-v2模型的結構圖中都展示了出來,具體的組合方式為:

Stacked結構:疊加的模型結構,x_0輸入到cross網路中,然後cross的輸出再作為DNN模型的輸入,即序列結構。x_final = h_Ld,h_0 = x_Lc,對應的模型計算公式為 f_deep  ✖️ f_cross。

Parallel結構:並行的模型結構,x_0並行輸入到Cross網路和DNN網路中,然後他們的輸出 x_Lc 和 h_Ld 進行拼接組成最後的輸出層,即 x_final = [x_Lc; h_Ld],對應的模型計算公式為 f_deep + f_cross。

對於 x_final 可以使用常規的預測方式,即 y_i =(w_logit^T ✖️ x_final),其中(x) = 1/(1 + exp(-x)) 表示sigmoid函式,同時DCN-M對應的loss函式如下。

5.Cost-Effective Mixture of Low-Rank DCN

在實際工業界中,模型複雜度容易被計算資源和響應延遲這些條件所限制,一般都會在計算開銷和模型精度之間做trade-off。在數學上,低秩方法是用來減小矩陣計算開銷的常用方法,它是將一個稠密矩陣分解成兩個高瘦的矩陣,例如將 d✖️d 維的稠密矩陣M分解成兩個 d✖️r 的高瘦矩陣U和V,當 r

下圖表示了DCN-v2模型中學習到的矩陣M的奇異值衰減趨勢,相比於初始化的矩陣,矩陣M的奇異值表現出了更快的衰減趨勢。

Google深度學習CTR預估模型DCN續集:DCN-v2

基於上面的結論,在矩陣M上使用低秩架構的方法,對應的第 l+1 個cross層的計算公式:

對於這個計算公式有兩種解釋,(1)我們可以在子空間中學習特徵互動;(2)將輸入特徵 x 先對映到低維空間 R^r,再映射回低維空間 R^d 中。這兩種解釋進一步激發了對DCN-v2模型的改進,具體見下面兩部分。

【基於解釋1的最佳化】

從子空間的角度可以聯想到MoE(Mixture-of-Experts),即多專家混合方式,基於MoE的模型包含兩個核心模組:experts-一般由簡單的網路組成;gate-對輸入的一個對映。在原始Cross網路中,只使用了一個expert,現在可以將其替換成多個experts,每個expert負責學習不同的子空間資訊,因此對應的低秩架構下的Cross層計算公式為:

同時對應的多experts的模型結構如下圖所示:

Google深度學習CTR預估模型DCN續集:DCN-v2

【基於解釋2的最佳化】

對映空間具有低維的特性,這裡除了從維度 d‘ 到 d 的線性對映(d’

其中,g(·) 表示任意的非線性啟用函式。

二、模型對比

Google深度學習CTR預估模型DCN續集:DCN-v2

模型試驗中,DCN-v2模型取得了最好的試驗效果。DCN-mix表示具有低秩特性的DCN,可以看到,透過使用更多的子空間資訊可以帶來模型效果的進一步提升。

三、後續學習方向

DCN-v2模型透過對Cross模組的改進(基於DCN模型),進一步提升了Cross網路對於特徵資訊的有效提取,同時透過低秩技術的有效應用,以及透過多個experts學習更多子空間資訊,實現了在計算效率和模型效果上的更好的提升和權衡。

對於特徵交叉資訊的有效提取,工業界和學術界已經做了很多探索,包括多種模型結構的組合、以及新穎的模型結構的改造,之後將會繼續介紹深度學習CTR預估模型方面的最新研究。