推薦系統煉丹筆記:排序篇,一本家譜

作者:煉丹筆記

    本文介紹在排序階段交叉模塊的思考和基於 LR+GBDT、FM 等開始的排序模型的演變,後續將繼續梳理成相關係列。本文小編大部分內容摘自煉丹筆記之前的彙總..... 實在是太懶了。

    在排序模型階段,交叉模塊是非常重要的模塊,在早期序列化探索還沒有那麼強的時候,Poly2,FM,FFM 這些模型都是在探索特徵之間的交叉信息的,而這些統計信息是可以帶來非常大提升的。

1. FM + NFM + TFNET 特徵交叉思路的組合嘗試

    這裏希望驗證的內容主要是:

    當然如果是搜索任務可能還需要考慮 Query 的情況,我們默認將 Query 當做 User 側的 embedding 加入。而在大量的實驗結果中,我們基本可以得到下面的結論:我們將 UI 的所有 emebdding 信息進行拼接, 我們將拼接之後的信息用 UI 表示,

這一塊的實驗結論大致可以歸納爲:

    簡單總結就是, U 和 I 分開進行 Bilinear 的操作可以爲我們的 CTR 帶來些許幫助, 但是對最終我們期望的曝光到轉化的預估沒能帶來太大的正向收益。

2. 模仿 ONN 思路

    在大量的數據競賽中, 19 年及之前有較大優勢的是 ONN 以及 xDeepFM 兩種, 考慮到 xDeepFM 時間計算代價較大, 我們嘗試往 ONN 的思路遷移。因爲目前我們線上的 Embedding 維度不能太大, 但是又希望有類似於 FFM 這種的效果怎麼辦?

    此處偷個懶,不細分 field, 而是每個 Item 的特徵都對應一個 field, 同樣的每個 User 的特徵也都對應一個, 等價於暴力轉換

#  [U, d] * Tensor(like:[d, d, V]) = [U, d, V] 
#  [V, d] * Tensor(like:[d, d, U]) = [V, d, U]

得到上面的形式之後, 再用下面的方式做 cross:

IF_trans = tf.transpose(IF,perm=[0, 3, 2, 1])                      # [?, U, d, V]
UIF      = tf.reduce_sum(UF * IF_trans, axis=-2)                   # [?, U, V]

    Tensor 因爲是自行設計的, 中間的 * 也可以自定義爲其他操作, 最終我們就得到一個形式上類似的新的 "embedding"....

    這麼做的話,我們發現實驗在 CTR 和曝光到轉化的預估上可以帶來一些收益,不過非常小。受限於資源等的問題,我們沒法直接和 ONN 以及 FFM 中,直接在初始的過程中就執行轉化,相信後面資源擴充了這麼做肯定還是能有幫助的。

3. 模仿 TFNET 細化 embedding 內積操作

    UI 的 Cross 內積,, 然後把所有的內積結果 concat 輸入到下一層, 接入 MLP 等, 但是我們看 MLP 的形式是, 也就是說最後我們的輸出其實是:sLUaa3, 從表面來看, 我們不會再深入到 embedding 的內部進行操作, 都是在內積的基礎上做,所以我們模仿一些 NFM,TFNET,FiBiNET 等文章思路先做內部交叉。

    然後在此基礎上加入張量的思想, 將擴充成張量的形式。

這個思路在論文中也存在。

    該思路在實驗中效果還不錯,基本在 CTR 和曝光到轉化的預估中基本都能帶來一定幅度的提升。

煉丹之前,先放一張 CTR 預估系列的家譜,讓脈絡更加清晰。

(1)FiBiNET:結合特徵重要性和雙線性特徵交互進行 CTR 預估

1.1 背景

本文發表在 RecSys 2019,主要通過動態學習不同特徵的特徵重要性權重,解決 CTR 預估中對不同場景下不同特徵的權重(ReWeight)重定義問題,同時,雙線性的使用解決稀疏數據在特徵交叉建模時的有效性問題。

1.2 創新

由模型結構圖我們可以發現,本文核心結構主要有兩個,Embedding Layer 中的 SENET LayerBilinear-Interaction Layer

(1)其中 SENET Layer 又包含 3 個步驟,分別是

(2)而 Bilinear-Interaction Layer 層提出一種結合 Inner Product 和 Hadamard Product 方式,並引入額外參數矩陣 W,學習特徵交叉。

主要通過 3 種方式得到交叉向量,分別是

1)Field-All Type:所有特徵組交叉時共享額外參數矩陣 W;

2)Field-Each Type:每個特徵組 Field-i 維護一個參數矩陣 W-i;

3)Filed-Interaction Type:每對交互特徵 P(i,j) 都有一個參數矩陣 W(i,j)。

最後,Bilinear-Interaction Layer 將原始的特徵 Embedding 向量 和 SENET 層輸出的 Embedding 向量分別得到交叉向量 p 和 q。

1.3 效果

(2)DSIN:利用用戶時序行爲中興趣變化進行 CTR 預估

2.0 前言

在讀本文之前,我們需要先搞清楚兩個概念,Sequence 和 Sessions。

基於用戶行爲 Behavior Sequence 進行興趣特徵挖掘的方式目前被用於絕大數的 CTR 任務中。Sequence 和 Sessions 的相同點在於它們都是由 Behaviors 組成的,但不同的是 Sessions 是根據一定的規則將用戶的歷史點擊行爲 Behavior 進行劃分得到的,也就是說,通過用戶的點擊時間對 Sequence 進行劃分後,可以得到多個 Sessions。

2.1 背景

本文發表在 IJCAI 2019,主要通過將用戶的歷史點擊行爲劃分爲不同 session,然後利用 Transformer 對每個 Session 進行學習得到興趣向量後,使用 BiLSTM 學習用戶在多個 Session 之間的興趣變化,從而更好地完成 CTR 預估。

2.2 創新

由模型結構圖我們可以發現,本文核心結構主要有 4 個。

1)Session Division Layer 完成對用戶歷史點擊行爲的劃分,以 30 分鐘爲劃分依據,得到多個 Sessions;

2)Session Interest Extractor Layer 使用 Bias Encoding 方式表徵不同 Session 間的順序,同時考慮到用戶興趣可能來自不同因素,利用 multi-head self-attention 對每個 session 建模得到興趣向量表徵;

3)Session Interest Interacting Layer 在得到用戶的興趣向量表徵之後,利用 Bi-LSTM 學習不同 Session 之間的由順序帶來的興趣變化;

4)Session Interest Activating Layer 利用注意力機制學習不同 Session 和 Item 之間的相關性,混合上下文信息的興趣信息之後,對距離 Item 較近的 Session 賦予更大的權重。

2.3 效果

(3)DIEN:深度興趣進化網絡

3.0 前言

DIEN 在筆者實際應用中,並未復現出原文的效果。這其中的原因可能很多,我想很多讀過該論文的讀者在進行復現,也可能遇到過類似的問題。但從學習的角度,不影響我們去對論文中一些創新點去進行學習和思考。

3.1 背景

在推薦場景下,用戶的興趣會隨着時間(如季節等)和空間(如不同場景等)的變化而發生變化,只通過用戶歷史數據中的興趣因素,而不關注興趣的變化,使得現有的一些模型無法很好的在 CTR 預估任務中對用戶興趣的變化進行刻畫捕捉。DIEN 利用雙層 GRU 對用戶興趣序列進行刻畫捕捉。

3.2 創新

由模型結構圖我們可以發現,本文核心結構主要有 3 個。

(1)Behavior Layer 將用戶瀏覽過的商品按照瀏覽時間轉換成對應的 embedding。

(2)Interest Extractor Layer 興趣抽取層利用 GRU 提取用戶興趣特徵。具體地,作者加入了一個二分類模型來計算興趣抽取的準確性,選取下一個行爲作爲正樣本,也從未點擊的樣本中選取一個作爲負樣本,別與抽取出的興趣表徵結合輸入到設計的輔助網絡中,得到預測結果,並通過 logloss 計算輔助網絡的損失。

(3)Interest Evolution Layer 興趣演化層,利用 Attention(局部激活能力)配合 GRU(序列學習能力)的形式,,從時序特徵中構建與目標 Item 相關的興趣演化特徵。

3.3 效果

(4)DIN:深度興趣網絡

4.0 前言

DIN(Deep Interest Network)模型在介紹之前,需要對 BaseModel(Embedding+MLP)具有一定了解才能更好的理解 DIN 模型的創新點和它能夠在實際生產環境有效的原因。

4.1 背景

在 BaseModel 中,不同維度的 Embedding 在最後進行拼接,這樣方法通過 NN 可以擬合高階非線性關係,但用戶的 Embedding 是不變的,這就很難獲取用戶多興趣的場景。

4.2 創新

(1)Attention 機制使用。其實這點挺有歷史的巧合,因爲 DIN 的提出並沒有借鑑已有的 Attention 概念,它的的出發點是看到消費者往往不是在看同一類東西,模型上如何建模用戶的多峯興趣。因爲直接顯示構建多峯興趣有些麻煩,所以作者轉而用反向激活函數構建一個和預測 Item 有關的非參數化興趣表達。巧合的是,當 DIN 團隊構建好模型後發現這和 NLP 領域剛提出的 Attention 結構一樣,所以論文裏就必須寫成 Attention。作者認爲問題的出發點和解題思路更重要,而不是簡化的看這是不是 Attention。

(2)DICE 激活函數的設計。由於 ReLU 和 PReLU 激活函數都是在 0 處進行變化,但並非所有輸入都會在 0 處變化,因此文章設計了 Dice 激活函數,根據每層的輸入來自適應的調整激活點的位置。

(3)GAUC 的使用。相比於常用的 AUC,在 CTR 預估場景中,不同的用戶之間存在着差異,這種差異可以理解爲一個閒逛的購物者和一個要買小米手機的購物者間的差異。因爲 AUC 表示的是正樣本排在負樣本前面的概率,所以不能很好地解決不同用戶點擊率分佈的差異。文章提出 GAUC 作爲線下評估指標,通過曝光點擊進行加權平均,較少用戶之間個性差異對模型造成的影響。

(4)Adaptive 正則化方法。CTR 預估場景下,構造的模型越複雜參數越多,越容易過擬合。實際場景中,存在着大量的長尾數據,這些數據的存在一方面在訓練過程中增加了複雜度,另一方面在結果上產生了過擬合。直接去掉這些長尾數據是一種簡單的處理方式,但也丟掉了很多信息。因此,DIN 文章中給出了自適應正則化調整的方式,對高頻減小正則,對低頻增大正則。

4.3 效果

(5)xDeepFM:線性、顯式、隱式的組合拳

5.1 背景

使用 CIN 交叉網絡和 DNN 的雙路結構,同時以顯式和隱式的方式學習高階特徵。

5.2 創新

(1)Linear、CIN 與 DNN 的結構化組合。Linear 部分從輸入數據中學習線性特徵,交叉網絡 CIN 部分由交互(interaction)和壓縮(compression)兩步通過 VectorWise 角度學習高階交叉特徵,同時共享 Embedding 輸入的方式讓模型更具有適應性;

(2)CIN。交叉網絡通過 VectorWise 學習高階特徵之間的交互,特徵交互部分在 Embedding 的每個維度上進行外積計算。特徵壓縮部分借鑑了卷積和池化的方式。同時最後將多層 CIN 的輸出進行拼接。

(3)DNN。通過 BitWise 隱式的學習高階特徵。

5.3 效果

(6)DeepFM:將 Wide&Deep 模型的 LR 部門替換爲 FM

6.1 背景

解決在高緯度特徵的情況下,人工特徵工程的高成本和無法實現的問題。同時解決 FM 只能獲取二階特徵,無法獲取高階特徵的問題。解決傳統 DNN 在隱式交叉方式在高稀疏特徵無法很好獲取表徵的問題。

6.2 創新

(1)FM 部分通過顯式向量和點積的方式學習二階交叉特徵,配合 DNN 部分使模型對高階特徵組合能夠更好的進行特徵提取。

(2)Deep 部分將原始稀疏特徵表示映射爲稠密表示,同時 FM 和 DNN 部分共享 Embedding 層特徵表達。

6.3 效果

(7)AFM:FM 串行結構加入 Attention 機制


7.1 背景

串行結構,將 FM 的輸出作爲後續神經網絡的輸入,利用 FM 解決稀疏特徵問題及淺層交互特徵,利用深度網絡解決深層交互特徵的獲取。

7.2 創新

(1)和 NFM 一樣,文章使用 Pair-wise Interaction 層,同時在 Sum Pooling 之後接了一個 FC 層。該方法從思路上具有一定的創新性。但實際中應用卻存在一定的問題,較高的時間複雜度在實際復現中無法通過矩陣實現。

(2)Attention-based Pooling Layer 關注不同的交叉特徵和目標之間的關係,通過加權的方式處理不同特徵對結果的貢獻度,同時利用 MLP 進一步處理訓練數據中未出現樣本的的評估問題,從而達到泛化模型的目的。

7.3 效果

(8)NFM:FM 串行引入 DNN 並加入 Bi-interaction Pooling 操作

8.1 背景

在 FM 基礎上,串行加入 DNN 模型,並使用 Bi-interaction Pooling 操作對二階交叉特徵進行處理,解決傳統 FM 作爲線性模型表達有限的問題和對高階交叉特徵學習不充分的問題。

8.2 創新

Bi-interaction Pooling 操作作爲 NFM 的核心,本質是 Pooling 操作。在實際場景中,我們發現直接對 Embedding 向量進行 Concat 拼接之後接 MLP 進行模型訓練在獲取二階交叉特徵時的效果是一般的。Bi-interaction Layer 與 FM 二階交叉相比,沒有引入額外的參數,將 Embedding 向量進行兩兩交叉相乘後對所有對應元素求和的方式,以線性複雜度具有良好的實際應用價值,同時在曾經的 CTR 競賽中一度成爲王者模型

8.3 效果

(9)FNN:使用 FM 參數進行 Embedding 初始化

9.1 背景

傳統的 FM 受限於計算複雜度,對特徵只能進行二階交叉,對更高階的特徵交叉卻無能爲力,同時實踐證明,高階的特徵交叉組合方式對 CTR 預估模型具有更好的效果,爲了解決這個問題,引入 DNN。其實 FNN 的思想比較簡單,從模型結構圖裏我們就可以看出,主要是利用 FM 後直接接 DNN 網絡,利用 FM 參數初始化 Embedding 層。

9.2 創新

二段式訓練方式,使用 FM 層模型的參數初始化 Embedding,替換隨機初始化方式,然後接 DNN 進行高階特徵提取。但這種方式優點和缺點都比較明顯,優點是使用預訓練初始化的方式,降低了訓練的不穩定性。缺點是二階段訓練方式在應用中便利性不夠。

9.3 效果

(10)DCN:替換 Wide&Deep 模型的 Wide 部分爲 Cross

10.1 背景

通過對比 Wide&Deep 和 DCN 網絡的架構圖,不難發現後者是對前者 Wide 部分進行了替換,提出 CrossNetwork 替換 Wide 用於自動化特徵交叉,從而無需人工特徵工程。

10.2 效果

模型主要由 Embedding and Stacking layer、Cross Network、Deep Network、Combination output layer組成。但相較於其他模型,他的創新點主要在 Cross Network 部分,它的設計理念是通過參數共享的方式減少向量壓縮變換時產生參數量過多的情況,從而減少模型的過擬合,增強模型的泛化能力。同時 Cross Network 的方式將模型複雜度降爲層級線性增長,具有很好的應用價值。

10.3 效果

(11)PNN:在 Embedding MLP 模式中設計加入 Product Layer

11.1 背景

傳統 Embedding+MLP 的方式並不能很好對高階交叉特徵進行獲取,同時 FNN 用 FM 初始化參數接 DNN 的方式也並不完美,針對這些缺點 PNN 進行了改進,並不只是關注高階交叉特徵,通過設計 Product 層對特徵進行交叉組合,改變原有對特徵進行 ADD 的操作方式。

11.2 創新

Product Layer 的設計,是本文的核心結構。Product 層利用內積(Inner PNN)和外積(Outer PNN)兩種方式實現對特徵的交叉組合。其中,IPNN 本質上利用共享參數來減少參數量,採用一階矩陣分解來近似矩陣結果的同時犧牲了一定的精度,保證計算開銷控制在可接受的範圍內。OPNN,從公式層面,該方法的時間空間複雜度比 IPNN 更高,作者使用了 Sum Pooling 的方式來降低複雜度,但同時也造成了精度的嚴重損失。

11.3 效果

12AutoInt:利用多頭注意力構造高階特徵

12.1 背景

CTR 預估領域面臨着諸多挑戰,輸入特徵的稀疏高維問題,高階特徵的計算複雜度問題等。本文將數值特徵和類別特徵映射到同一個低維空間,利用帶殘差連接的多頭注意力機制顯式的進行交叉特徵獲取,提出了一種能夠自學習特徵高階交叉的方法。

12.2 創新

Interacting Layer 是本篇論文中最核心的創新點,借鑑了 NLP 問題中的 Multi-head Self-Attention 方法,利用 Key-Value Attention,每個 Attention Head 對應三個轉換矩陣,Query、Key、Value。本文利用內積的方式計算每個特徵與其他特徵的相似度,然後通過計算 softmax 歸一化注意力分佈後,加權得到新特徵。以上步驟爲一層 Attention,作者簡單的拼接多個 Attention head 的輸出,引入標準的殘差連接作爲最終輸出,構造更高階的組合特徵。

12.3 效果

參考資料

1)FiBiNET:Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction

2)Deep Session Interest Network for Click-Through Rate Prediction

3)AutoInt_Automatic Feature Interaction Learning via Self-Attentive Neural Networks

4)Deep Interest Evolution Network for Click-Through Rate Prediction

5)Deep Interest Network for Click-Through Rate Prediction

6)Product-based Neural Networks for User Response Prediction

7)Deep & Cross Network for Ad Click Predictions

8)Deep Learning over Multi-field Categorical Data_A Case Study on User Response Prediction

9)Attentional Factorization Machines - Learning the Weight of Feature Interactions via Attention Networks

10)DeepFM_A Factorization-Machine based Neural Network for CTR Prediction

11)Neural Factorization Machines for Sparse Predictive Analytics

12)xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/cH0RC_WN-2mZuzjVDBUQUA