[深度学习] AutoDis --- KDD2021 连续特征的Embedding学习框架
論文名:An Embedding Learning Framework for Numerical Features in CTR Prediction
開源代碼:AutoDis
1. 背景介紹
在CTR預估模型中,大多數模型都遵守Embedding & Feature Interaction(FI)的范式。以往的大多數研究都聚焦于網絡結構的設計,以更好的捕獲顯式或隱式的特征交互,如Wide&Deep的wide部分,DCN中的CrossNet, DeepFM的FM部分,DIN的注意力機制。然而卻忽視了特征Embedding的重要性,尤其是忽視了連續型特征Embedding。
盡管很多文章中沒有怎么研究,但Embedding模塊是CTR預估模型的重要組成部分,有以下兩個原因:
但是Embedding模塊少有深入研究的工作,特別是連續型特征Embedding的方面。
現有的處理方式由于其硬離散化(hard discretization)的方式,通常suffer from low model capacity。
接下來我將講解Embedding模塊的基本原理,以及CTR預估中數值特征的幾種常見處理方式,然后對論文中所提出的AutoDis框架進行介紹。AutoDis框架具有high model capacity, end-to-end training, 以及unique representation.
2、連續特征處理
CTR預估模型的輸入通常包含連續特征和離散特征兩部分。對于離散特征,通常通過embedding look-up操作轉換為對應的embedding (之后我會介紹谷歌對離散特征embedding的改進);而對于連續特征的處理,可以概括為三類:No Embedding, Field Embedding和Discretization(離散化)。
?
2.1 No Embedding
這類處理方法直接使用原始值或者轉換后的值作為輸入特征,沒有學習Embedding。例如,Google發表的Wide & Deep模型,京東發表的DMT模型,分別使用了原始特征和歸一化后特征。除此之外YouTube DNN使用了多種方法(平方,開根號等)對歸一化特征進行轉換
在Facebook發表的DLRM模型中,該模型使用了MLP(multi-lay perception)對所有連續型特征建模
其中DNN的結構為 512--256--d,??這類對連續特征不進行embedding的方法,由于模型容量有限,通常難以有效捕獲連續特征中信息。
?2.2 Field Embedding
Field Embedding的處理方法為一個域中的所有特征中共享一個field embedding,計算時將field embedding乘以相應的特征值:
?由于同一field的特征共享同一個embedding,并基于不同的取值對embedding進行縮放,這類方法的表達能力也是有限的。
?
2.3 Discretization
離散化(Discretization)方法將連續特征轉換成類別特征。對于第j個數據域,其特征embedding可以使用兩階段(two-stage)方法獲取:discretization(離散化) 和 embedding look-up(查表)
總的來說,將連續特征進行離散化給模型引入了非線性,能夠提升模型表達能力,而對于離散化的方式,常用的有以下幾種:?
1) EDD/EFD (Equal Distance/Frequency Discretization):即等寬/等深分箱。
?2)LD (Logarithm Discretization):對數離散化,其計算公式如下:
?3)TD (Tree-based Discretization):基于樹模型的離散化,如使用GBDT+LR來將連續特征分到不同的節點。這就完成了離散化。除深度學習模型外,樹模型(例如GBDT)被廣泛應用于推薦領域。其能高效的處理數值型特征。比如“Feature Selection with Decision Tree”、“Practical Lessons from Predicting Clicks on Ads at Facebook”、“Deep Learning Framework Distilled by GBDT for Online Prediction Tasks”使用了樹模型對數值特征進行離散化。
2.4 當前離散化不足之處
盡管離散化在工業界廣泛引用,但仍然有以下三方面的缺點:
1)TPP (Two-Phase Problem):將特征分桶的過程一般使用啟發式的規則(如EDD、EFD)或者其他模型(如GBDT),無法與CTR模型進行一起優化,即無法做到端到端訓練;
2)SBD (Similar value But Dis-similar embedding):對于邊界值,兩個相近的取值由于被分到了不同的桶中,導致其embedding可能相差很遠;
3)DBS (Dis-similar value But Same embedding):對于同一個桶中的邊界值,兩邊的取值可能相差很遠,但由于在同一桶中,其對應的embedding是相同的。
?
40和41歲沒有多大區別,但是卻有完全不同的embedding;DBS: 18和40歲差距甚遠,但是embedding卻一模一樣!
表1為AutoDis和這三種方法的對比。可以看出這三種方法要么由于模型容量有限,通常難以有效捕獲連續特征中信息,要么由于需要離線專門設計的特征工程,可能影響模型表現。因此,論文提出了AutoDis框架,它具有高模型容量,端到端的訓練,每個特征獨一的表示等優點。
?
3. AutoDis介紹
為了解決現有方法的不足之處,論文提出了AutoDis框架,其能學習為每個特征值學習獨一的表示以端到端的方式訓練。下圖展示了AutoDis可以作為一個可插拔的Embedding框架,用于數值型特征處理,并且兼容現有的CTR預估模型。
?
為了實現高模型容量、端到端訓練,每個特征取值具有獨立表示,AutoDis設計了三個核心的模塊,分別是Meta-Embeddings、automatic Discretization和 Aggregation模塊。?
?對于第j個特征域,AutoDis可以為每個特征值學習獨一的表示:
?
?
3.2 Meta-Embeddings
一種樸素的方法是將連續特征中的每個特征值賦予一個獨一的embedding。但是這是不可行的,這將導致參數爆炸且對低頻特征訓練不足。Field Embedding對同一域內的特征賦予相同的embedding,盡管降低了參數數量,但模型容量也受到了一定的限制。為了平衡參數數量和模型容量,AutoDis設計了Meta-embeddings模塊。
?為了平衡參數數量和模型容量,AutoDis設計了Meta-embedding模塊: 對于第 j 個連續特征,對應 個Meta-Embedding(可以看作是分 個桶,每一個桶對應一個embedding)。第j個特征的Meta-Embedding表示為:
?
?對于連續特征的一個具體取值,則是通過一定方式將這?Hj個embedding進行聚合。相較于Field Embedding這種每個field只對應一個embedding的方法,AutoDis中每一個field對應 Hj個embedding,提升了模型容量;同時,參數數量也可以通過 進行很好的控制。
?3.3 Automatic Discretization
?Automatic Discretization模塊可以對連續特征進行自動的離散化,實現了離散化過程的端到端訓練。具體來說,對于第j個連續特征的具體取值xj,首先通過兩層神經網絡進行轉換,得到Hj長度的向量:?
?某種softmax變成概率分布:
?
?
傳統的離散化方式是將特征取值分到某一個具體的桶中,即對每個桶的概率進行argmax,但這是一種無法進行梯度回傳的方式。而上式可以看作是一種soft discretization,通過調節溫度系數𝜏,可以達到近似argmax的效果,同時也可以實現梯度回傳,實現了離散化過程的端到端訓練(這種方式也稱為softargmax,最近工作中也經常使用)。
對于溫度系數𝜏,當其接近于0時,得到的分桶概率分布接近于one-hot,當其接近于無窮時,得到的分桶概率分布近似于均勻分布。對于不同的連續特征,特征取值分布是不同的,那么應該如何對不同特征選擇合適的溫度系數𝜏呢?
3.3 Aggregation Function
根據前兩個模塊,已經得到了每個桶的embedding,以及某個特征取值對應分桶的probability distribution,接下來則是如何選擇合適的Aggregation Function對二者進行聚合。論文提出了如下幾種方案:
1)Max-Pooling:這種方式即hard selection的方式,選擇概率最大的分桶對應的embedding。前面也提到,這種方式會遇到SBD和DBS的問題。
2)Top-K-Sum:將概率最大的K個分桶對應的embedding,進行sum-pooling。這種方式不能從根本上解決DBS的問題,同時得到的最終embedding也沒有考慮到具體的概率取值。
3)Weighted-Average:根據每個分桶的概率對分桶embedding進行加權求和,這種方式確保了每個不同的特征取值都能有其對應的embedding表示。同時,相近的特征取值往往得到的分桶概率分布也是相近的,那么其得到的embedding也是相近的,可以有效解決SBD和DBS的問題。
所以,其實就是對 Hj個桶的embedding進行加權求和。?
?
4、實驗結果及分析
最后來看一下實驗結果,離線和線上均取得了不錯的提升
?
使用AutoDis和其他三種數值型特征處理方法進行對比,CTR預估模型使用DeepFM,結果如下表所示。
- AutoDis在所有數據集上表現最好。
- No Embedding和Field Embedding的表現差于Discretization和AutoDis。因為這兩種方法由于低模型容量限制了表達能力。
- 相比于三種Discretization方法,AutoDis的AUC相對于基準分別提高了0.17%、0.23%和0.22%。盡管Discretization方法表現也很不錯,但是其存在SBD和DBS問題。hard discretization會導致不平滑的embedding。相反AutoDis解決了這個問題。AutoDis使用一組meta-embedding以及可微的soft discretization和aggregation策略學習到了連續但不同(Continuous-But-Different)的表示。
?AutoDis框架兼容性
我們將AutoDis框架用于六種CTR預估模型中,測試AutoDis的兼容性。如下表所示,與Field Embedding方法相比,AutoDis顯著的提升了這個模型的性能。數值型特征的離散化和embedding的學習過程與模型的最終目標協同訓練。所有可以得到更好的表達,因此提升了模型性能。
Embedding分析
為了理解連續但不同(Continuous-But-Different)embedding。我們繼續了宏觀的embedding分析和微觀的embedding分析。
宏觀embedding分析:下圖是Criteo數據集中第3個數值域特征的可視化,分別是DeepFM-AutoDis和DeepFM-EDD的embedding結果。我們隨機選擇了250個embedding,將其映射到2為空間(t-SNE算法)。圖中顏色相似意味著特征值相近。我們可以看到AutoDis為每個特征值學習了一個獨一的表示,同時相近的特征值有著相近的embedding表示(在二維空間中),體現出了Continusous-But-Different的特性。然而EDD對同一個桶中的特征值學習一個embedding,不同桶中的embedding完全不同,不平滑的embedding表現,導致其效果弱于EDD。
?
總結
本文,我們提出了AutoDis,一個CTR預估中可插入的用于數值特征的embedding學習框架。AutoDIs解決了現有方法的問題,并取得了更好的效果。其優勢主要體現在3方面。
KDD2021 | 華為AutoDis:連續特征的Embedding學習框架 - 知乎?
華為 | 一種CTR預估中連續特征的Embedding學習框架
一種CTR預估中連續特征的Embedding學習框架 - AutoDis - 知乎論文名:An Embedding Learning Framework for Numerical Features in CTR Prediction 開源代碼:AutoDis目錄:背景介紹連續特征處理AutoDis介紹實驗結果及分析總結參考1. 背景介紹在CTR預估模型中,大多數模型都…https://zhuanlan.zhihu.com/p/387941498
總結
以上是生活随笔為你收集整理的[深度学习] AutoDis --- KDD2021 连续特征的Embedding学习框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCL 预告新款 C11G QLED 智
- 下一篇: [深度学习]知识蒸馏技术