天天看點

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
FM算法

公式:

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

其中

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

其中

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

利用上三角矩陣=(對稱矩陣-對角矩陣)/2的思想,将其化簡為

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

再利用梯度下降法求出V,即得到每個特征的隐含向量(能反映交叉資訊),同時訓練即可得到分類或回歸模型。

注:V的次元為

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的次元為

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

為超參,表示向量次元。

FFM算法

在FM的基礎上引入了類别(field)的概念,n個特征(已one-hot編碼)屬于f個field。

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

此時相對于FM中的

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

,FFM中的

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

次元為

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

中有f個向量是不相同的,同一fiield下的向量是相同的。

DeepFM算法

對高階特征組合進行模組化

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

FM算法中 

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

FM layer中的+的輸入為onehot編碼,x的輸入為詞向量

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

,ANN的輸入也是詞向量

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

最後的

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

DCN算法(Deep & cross network)

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

其中

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

是連續變量和分類變量embedding向量的組合向量

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

通過不斷地疊加,實作了高階的交叉cross。

參考大佬文章:https://zhuanlan.zhihu.com/p/55234968

xDeepFM算法

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

DCN中沒有考慮field概念,xDeepFM考慮了filed概念,核心是CIN的了解:

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

中的m行表示有m個特征(field),每個field的向量次元為D,

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

一開始是初始化的向量矩陣,由embedding vector組成。

後續再通過如下算式進行特征的高階交叉:

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

首先了解

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

中有

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

個field,

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

中有m個field,進行點乘的次元效果為:

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

z1 = x1*y1;z2 = x2*y1,z3 = x3*y3;z4 = x1*y4

最後得到一個次元為

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的矩陣,可以了解為有D個樣本(每個樣本是一個embedding次元),每個樣本有

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

個特征和m個特征的交叉,即有

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

個值。

再了解

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

其中向量

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

為權重向量,最後得到次元為

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的矩陣

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

,最後對每個filed的向量進行加總求和實作sum pooling。

在用代碼實作過程中,可将次元為

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的矩陣的矩陣進行壓縮,得到次元為

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的矩陣,然後用次元為

交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法
交叉特征的處理算法學習了解(FM-xDeepFM)FM算法FFM算法DeepFM算法DCN算法(Deep & cross network)xDeepFM算法

的filter進行conv1d的卷積操作,再進行sum_pooling操作。

參考大佬文章:https://zhuanlan.zhihu.com/p/57162373

繼續閱讀