「xDeepFM」- 論文摘要

娃哈哈店長發表於2020-03-07

1、前言

基於DNN的分解機模型,能夠發現低階和高階組合特徵,在bit-wise level上,本文提出了Compressed Interaction Network (CIN)網路結構,目的在生成的特徵在vector-wise level上,CNN和RNN的功能應用到了CIN上,進一步將CIN和DNN結合,將此網路稱為xDeepFM。

2、CTR整體發展情況介紹

對於CTR方面的輸入一般具有高維度高度稀疏的特點,傳統的做法即採用LR來進行預測,效果也很不錯,但達到瓶頸後很難進行提升了,由於LR需要進行人工特徵工程,所以效率會有點低,而且在達到瓶頸後無論加減特徵效果都會下降,後來2010年提出FM模型,能夠自動發現二階組合特徵,但是發現高階組合特徵的複雜度太大,所以FM僅用來發現二階組合特徵。2014年Facebook提出GBDT+LR的融合方案,簡單的來說由於GBDT本身可以發現多種有區分性的特徵以及特徵組合,決策樹的路徑可以直接作為LR輸入特徵使用,省去了人工尋找特徵、特徵組合的步驟。所以可以將GBDT的葉子結點輸出,作為LR的輸入。為了自動去發現組合特徵以及減少人工特徵工程的複雜性,相繼提出了Wide&Deep,Deep&Cross,FNN,AFM,PNN,DIN,DeepFM等網路模型。

3、xDeepFM

由於Deep&Cross Network中的cross network實際上無法有效的捕獲高階組合特徵,因此本文設計出一個新的網路CIN來代替DCN中的cross network部分,所以xDeepFM的提出實際上是在DCN的基礎上進行改進的,而且CIN可以具體指定最高多少階。 特徵組合在向量級別(向量組相互交叉)上而不是在位級別(各個位的值為1時的交叉結果,AND(userId=1,gender=1))上(features interact at the vector-wise level rather than the bit-wise level)。

xDeepFM結構圖:

3.1、Embedding Layer

embedding層是將原始高維度高度稀疏的特徵進行降維,轉化從dense vector。對於單值特徵,例如 gender=[1,0],the feature embedding is used as the field embedding。如果是多值特徵,例如interests=comedy&rock,interests=[0,1,0,0,1,0….], the sum of feature embedding is used as the field embedding。最後將各個embedding vector結合起來。

e = [e_1, 3_2, …, 3_m]

3.2、High-order Interactions

3.2.1、DeepFM + PNN 組合網路結構:

從圖中可以發現此模型共享Embedding層,而且此結構中包含兩種組合特徵的方式,所以該模型在組合特徵上既包括向量級別上也包括位級別上,其中的Product Layer是在向量級別上進行兩兩相乘,FM Layer是在位級別上進行相乘。PNN和DeepFM的主要區別在於PNN將Product層的輸出連線到DNN,而DeepFM將FM層直接連線到輸出單元。

3.2.2、CrossNet:

表示式:

x_k = x_0 x^T_{k-1} w_k +b_k +x_{k-1}

x0均參與每層的cross操作。CrossNet設計目的在於發現高階組合特徵,然而本文卻發現這個網路並不能有效的發現高階組合特徵。證明如下:
第i+1層定義如下:

x_{i+1} = x_0x^T_i w_{i+1} +x_i

,輸出為xk
假設k=1,

\begin{matrix} x_1 &= x_0 (x_0 ^Tw_1) +x_0 & \\ &= x_0(x^T_0w_1 +1) & \\ & =\alpha^1x^0 & \end{matrix}

其中

\alpha ^1 = x^T_0w_1 +1

,實際上可發現x1與x0是線性關係。
那麼當k=i+1時,有:

\begin{matrix} x_{i+1}& = x_0x_i^T w_{i+1} +x_i\\ &=x_)((\alpha^ix_0)^Tw_{i+1}) +\alpha ^ix_0\\ &= \alpha^{i+1} x_0 \end{matrix}

其中

\alpha ^{i+1} = \alpha^i(x^T_0w_{i+1} +1)

,xi+1與x0還是線性關係,所以該網路本身無法有效的發現高階組合特徵。

3.3、Compressed Interaction Network(CIN)

結構圖:

CIN側重在以下方面:

在向量級別上進行特徵組合(相乘),而不是在位級別上
可以指定最高多少階
明確高階組合特徵,而不是像CrossNet一樣,存線上性關係。

經過Embedding層後得到x0,其以一張圖的形式表示出來,形狀大小為m X D,其中m由多個經過embedding後得到的(embedding)field vector組成,D的大小為field feature的大小。設CIN結構有k層,每層的輸出結果為xk,xk的結果與x0和xk-1有關,其計算公式為:

,裡面包含 Hadamard乘積(◦ 的含義),即⟨a1 ,a2 ,a3 ⟩ ◦ ⟨b1 ,b2 ,b3 ⟩ = ⟨a1 b1 ,a2 b2 ,a3 b3 ⟩ 。表示式含義:xk-1的每一行i和x0 的每一行j進行相乘,然後乘上權重

的對應項 !$W^{k,h}_{ij}$,最後求總和得到xk 的值。Hk表示第k層的embedding vector的個數。H0=m,由此公式可知道,此操作方法與RNN類似,下一層的輸入依賴前一層的結果。本文引入了CNN的方式來解釋此公式,將xk看成image,把!$W^{k,h}$看成卷積核,這樣以卷積操作的形式構成下一個image。

根據圖(c),我們發現還需要對CIN中每層進行sum pooling操作,公式:

,表示第i層中每個embedding vector進行求和,得到!$p^{k}_{i}$。將1~k層的pooling結果進行concat,即

。如果我們直接使用CIN進行二分類,則加入sigmoid層,計算公式:

3.4、Combination with Implicit Networks

根據xDeepFM結構圖得到,如下公式:

損失函式為logloss:

加入正則項,防止過擬合,最後目標函式為:

本作品採用《CC 協議》,轉載必須註明作者和本文連結
文章!!首發於我的部落格Stray_Camel(^U^)ノ~YO

相關文章