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