FNN
如果有辦法將每個特征用其所屬的 field 來表示纺涤,原始輸入將大大減少不少。Factorisation-machine Supported Neural Networks旺聚,簡稱 FNN 就是基于這種思想提出來的澳腹。
field i 的輸入可以表示成 x[start_i: end_i]贞言,Wi 為field i 的 embedding 矩陣贯溅。z為 embedding 后的向量,是一個 k 維的向量火诸,它由一次項 wi 锦针,二次項 vi=(vi1,vi2,…vik) 組成,其中 k 是 FM 中二次項的向量的維度惭蹂。而后面的 l1伞插,l2 則為神經(jīng)網(wǎng)絡(luò)的全連接層的表示。
FM 參數(shù)需要預(yù)訓(xùn)練
FM 部分的 embedding 需要預(yù)先進行訓(xùn)練盾碗,所以 FNN 不是一個 end-to-end 模型媚污。在其他論文中,有試過不用 FM 初始化 embedding廷雅,而用隨機初始化的方法耗美,要么收斂速度很慢京髓,要么無法收斂。有興趣的同學(xué)可以實驗驗證下商架。
無法擬合低階特征
FM 得到的 embedding 向量直接 concat 連接之后作為 MLP 的輸入去學(xué)習(xí)高階特征表達堰怨,最終的 DNN 輸出作為 CTR 預(yù)估值。因此蛇摸,F(xiàn)NN 對低階信息的表達比較有限备图。
PNN
Product-based Neural Network,認為在 embedding 輸入到 MLP 之后學(xué)習(xí)的交叉特征表達并不充分赶袄,提出了一種 product layer 的思想揽涮,既基于乘法的運算來體現(xiàn)體征交叉的 DNN 網(wǎng)絡(luò)結(jié)構(gòu)
對比 FNN 網(wǎng)絡(luò),PNN 的區(qū)別在于中間多了一層 Product Layer 層饿肺。Product Layer 層由兩部分組成蒋困,左邊 z 為 embedding 層的線性部分,右邊為 embedding 層的特征交叉部分敬辣。
這種 product 思想來源于雪标,在 CTR 預(yù)估中,認為特征之間的關(guān)系更多是一種 and“且”的關(guān)系溉跃,而非 add"加”的關(guān)系村刨。例如,性別為男且喜歡游戲的人群喊积,比起性別男和喜歡游戲的人群烹困,前者的組合比后者更能體現(xiàn)特征交叉的意義。
PNN按product層的功能分為inner product layer和outer product layer乾吻,區(qū)別如下:
和FM類似髓梅,構(gòu)造好網(wǎng)絡(luò)之后,對輸入數(shù)據(jù)做embedding處理之后得到低維的連續(xù)向量表示绎签,經(jīng)過任意兩個feature的進行inner product or outer product(1也為feature的一部分枯饿,所以可以建模線性關(guān)系)
NFM
NFM,提出了一種更加簡單粗暴的方法诡必,在 embedding 層后奢方,做了一個叫做 BI-interaction 的操作,讓各個 field 做 element-wise 后 sum 起來去做特征交叉爸舒,MLP 的輸入規(guī)模直接壓縮到 k 維蟋字,和特征的原始維度 n 和特征 field 維度 f 沒有任何關(guān)系。
Bi-interaction 聽名字很高大上扭勉,其實操作很簡單:就是讓 f 個 field 兩兩 element-wise 相乘后鹊奖,得到 f*(f-1)/2 個向量,然后直接 sum 起來涂炎,最后得到一個 k 維的向量忠聚。所以該層沒有任何參數(shù)需要學(xué)習(xí)设哗。
圖中只畫了DNN的部分,NFM 等價于 FM + embedding + MLP
AFM
前面提到的各種網(wǎng)絡(luò)結(jié)構(gòu)中的 FM 在做特征交叉時两蟀,讓不同特征的向量直接做交叉网梢,基于的假設(shè)是各個特征交叉對 CTR 結(jié)果預(yù)估的貢獻度是一樣的。這種假設(shè)其實是不合理的赂毯,不同特征在做交叉時战虏,對 CTR 預(yù)估結(jié)果的貢獻度是不一樣的。
Attention Neural Factorization Machines党涕,簡稱 AFM 模型活烙,利用了近年來在圖像、NLP遣鼓、語音等領(lǐng)域大獲成功的 attention 機制,在前面講到的 NFM 基礎(chǔ)上重贺,引入了 attention 機制來解決這個問題骑祟。
AFM 的網(wǎng)絡(luò)結(jié)構(gòu)如圖所示。和 NFM 一樣气笙,這里也省略了 Wide 部分次企,只畫出了 Deep 部分結(jié)構(gòu)
不過AFM的注意力機制不是通過學(xué)習(xí)得到而是通過如下方式計算
DIN
受 attention 機制啟發(fā),DIN 在 embedding 層后做了一個 action unit 的操作潜圃,對用戶的興趣分布進行學(xué)習(xí)后再輸入到 DNN 中去缸棵,網(wǎng)絡(luò)結(jié)構(gòu)如圖所示:
DIN 把用戶特征、用戶歷史行為特征進行 embedding 操作谭期,視為對用戶興趣的表示堵第,之后通過 attention network,對每個興趣表示賦予不同的權(quán)值隧出。
Vu:表示用戶最終向量
Vi:表示用戶興趣向量(shop_id, good_id..)
Va:表示廣告表示向量
Wi: 對于候選廣告踏志,attention 機制中該興趣的權(quán)重