今天分享一篇華為在連續(xù)特征處理方面的工作,提出了一種高模型容量左腔、端到端訓(xùn)練、每個(gè)特征值具有單獨(dú)embedding的框架捅儒,稱作AutoDis液样,一起來(lái)學(xué)習(xí)一下。
1巧还、背景
目前大多數(shù)的CTR模型采用的是Embedding和Feature Interaction(以下簡(jiǎn)稱FI)架構(gòu)鞭莽,如下圖所示:
當(dāng)前大多數(shù)的研究主要集中在設(shè)計(jì)新穎的網(wǎng)絡(luò)架構(gòu)來(lái)更好的捕獲顯式或隱式的特征交互,如Wide & Deep的Wide部分麸祷、DCN中的CrossNet澎怒、DIN中的注意力機(jī)制等等。而另一個(gè)主要的部分摇锋,即Embedding模塊同樣十分重要丹拯,出于以下兩個(gè)原因:
1)Embedding模塊是FI模塊的上游模塊站超,直接影響FI模塊的效果;
2)CTR模型中的大多數(shù)參數(shù)集中在Embedding模塊乖酬,對(duì)于模型效果有十分重要的影響死相。
但是,Embedding模塊卻很少有工作進(jìn)行深入研究咬像,特別是對(duì)于連續(xù)特征的embedding方面算撮。接下來(lái),首先簡(jiǎn)單介紹下CTR模型中連續(xù)特征幾種常見的處理方式县昂,然后對(duì)論文提出的AutoDis框架進(jìn)行介紹肮柜。
2、連續(xù)特征處理
CTR預(yù)估模型的輸入通常包含連續(xù)特征和離散特征兩部分倒彰。對(duì)于離散特征审洞,通常通過(guò)embedding look-up操作轉(zhuǎn)換為對(duì)應(yīng)的embedding;而對(duì)于連續(xù)特征的處理待讳,可以概括為三類:No Embedding, Field Embedding和Discretization(離散化)芒澜。
2.1 No Embedding
第一類是不對(duì)連續(xù)特征進(jìn)行embedding操作,如Wide & Deep直接使用原始值作為輸入创淡,而在Youtube DNN中痴晦,則是對(duì)原始值進(jìn)行變換(如平方,開根號(hào))后輸入:
這類對(duì)連續(xù)特征不進(jìn)行embedding的方法琳彩,由于模型容量有限誊酌,通常難以有效捕獲連續(xù)特征中信息。
2.2 Field Embedding
第二類是進(jìn)行 Field Embedding露乏,也就是同一field(一個(gè)連續(xù)特征可以看作是一個(gè)field)的特征無(wú)論取何值碧浊,共享同一個(gè)embedding,隨后將特征值與其對(duì)應(yīng)的embedding相乘作為模型輸入:
由于同一field的特征共享同一個(gè)embedding施无,并基于不同的取值對(duì)embedding進(jìn)行縮放辉词,這類方法的表達(dá)能力也是有限的。
2.3 Discretization
Discretization即將連續(xù)特征進(jìn)行離散化猾骡,是工業(yè)界最常用的方法瑞躺。這類方法通常是兩階段的,即首先將連續(xù)特征轉(zhuǎn)換為對(duì)應(yīng)的離散值兴想,再通過(guò)look-up的方式轉(zhuǎn)換為對(duì)應(yīng)的embedding幢哨。首先探討一個(gè)問(wèn)題,為什么需要對(duì)連續(xù)特征進(jìn)行離散化呢嫂便?或者說(shuō)離散化為什么通常能夠帶來(lái)更好的效果呢捞镰?關(guān)于這個(gè)問(wèn)題的探討,可以參考知乎問(wèn)題:
https://www.zhihu.com/question/31989952/answer/54184582
總的來(lái)說(shuō),將連續(xù)特征進(jìn)行離散化給模型引入了非線性岸售,能夠提升模型表達(dá)能力践樱,而對(duì)于離散化的方式,常用的有以下幾種:
1) EDD/EFD (Equal Distance/Frequency Discretization):即等距/等頻離散化凸丸。對(duì)于等距離散化拷邢,首先基于特征的最大值和最小值,以及要?jiǎng)澐值耐暗膫€(gè)數(shù)Hj屎慢,計(jì)算桶之間的間距:
隨后基于特征值瞭稼、最小值以及間距計(jì)算對(duì)應(yīng)的分桶:
對(duì)于等頻離散化,則是基于數(shù)據(jù)中特征的頻次進(jìn)行分桶腻惠,每個(gè)桶內(nèi)特征取值的個(gè)數(shù)是相同的环肘。
2)LD (Logarithm Discretization):對(duì)數(shù)離散化,其計(jì)算公式如下:
3) TD (Tree-based Discretization):基于樹模型的離散化集灌,如使用GBDT悔雹。具體的做法可以參考論文中的提及的相關(guān)工作,這里不進(jìn)行具體介紹欣喧。
盡管離散化在工業(yè)界廣泛引用荠商,但仍然有以下三方面的缺點(diǎn):
1)TPP (Two-Phase Problem):將特征分桶的過(guò)程一般使用啟發(fā)式的規(guī)則(如EDD、EFD)或者其他模型(如GBDT)续誉,無(wú)法與CTR模型進(jìn)行一起優(yōu)化,即無(wú)法做到端到端訓(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是相同的摔握。
上述的三種局限可以通過(guò)下圖進(jìn)一步理解:
2.4 總結(jié)
上述三種對(duì)于連續(xù)特征的處理方式的總結(jié)如下表所示:
可以看到,無(wú)論是何種方式丁寄,都存在一定的局限性氨淌。而本文提出了AutoDis框架,具有高模型容量伊磺、端到端訓(xùn)練盛正,每個(gè)特征取值具有獨(dú)立表示的特點(diǎn),接下來(lái)對(duì)AutoDis進(jìn)行介紹屑埋。
3豪筝、AutoDis介紹
為了實(shí)現(xiàn)高模型容量、端到端訓(xùn)練,每個(gè)特征取值具有獨(dú)立表示续崖,AutoDis設(shè)計(jì)了三個(gè)核心的模塊敲街,分別是meta- embeddings、automatic discretization和 aggregation模塊严望,其整體架構(gòu)如下圖所示:
接下來(lái)多艇,對(duì)三個(gè)核心模塊進(jìn)行分別介紹。
3.1 Meta-Embeddings
為了提升模型容量著蟹,一種樸素的處理連續(xù)特征的方式是給每一個(gè)特征取值賦予一個(gè)獨(dú)立的embedding墩蔓。顯然,這種方法參數(shù)量巨大萧豆,無(wú)法在實(shí)踐中進(jìn)行使用奸披。另一方面,F(xiàn)ield Embedding對(duì)同一域內(nèi)的特征賦予相同的embedding涮雷,盡管降低了參數(shù)數(shù)量阵面,但模型容量也受到了一定的限制。為了平衡參數(shù)數(shù)量和模型容量洪鸭,AutoDis設(shè)計(jì)了Meta-embeddings模塊样刷。
對(duì)于第j個(gè)域的連續(xù)特征,對(duì)應(yīng)Hj個(gè)meta-embeddings(Hj可以看作是分桶的個(gè)數(shù)览爵,每一個(gè)桶對(duì)應(yīng)一個(gè)embedding)置鼻。對(duì)于連續(xù)特征的一個(gè)具體取值,則是通過(guò)一定方式將這Hj個(gè)embedding進(jìn)行聚合蜓竹。相較于Field Embedding方法箕母,每一個(gè)Field對(duì)應(yīng)Hj個(gè)embedding,提升了模型容量俱济,同時(shí)嘶是,參數(shù)數(shù)量也可以通過(guò)Hj進(jìn)行很好的控制。
3.2 Automatic Discretization
Automatic Discretization模塊可以對(duì)連續(xù)特征進(jìn)行自動(dòng)的離散化蛛碌,實(shí)現(xiàn)了離散化過(guò)程的端到端訓(xùn)練聂喇。具體來(lái)說(shuō),對(duì)于第j個(gè)連續(xù)特征的具體取值xj蔚携,首先通過(guò)兩層神經(jīng)網(wǎng)絡(luò)進(jìn)行轉(zhuǎn)換希太,得到Hj長(zhǎng)度的向量:
那么,該特征取值被分到第h個(gè)桶的概率計(jì)算如下:
傳統(tǒng)的離散化方式是將特征取值分到某一個(gè)具體的桶中酝蜒,即對(duì)每個(gè)桶的概率進(jìn)行argmax跛十,但這是一種無(wú)法進(jìn)行梯度回傳的方式。而上式可以看作是一種soft discretization秕硝,通過(guò)調(diào)節(jié)溫度系數(shù)??芥映,可以達(dá)到近似argmax的效果洲尊,同時(shí)也可以實(shí)現(xiàn)梯度回傳,實(shí)現(xiàn)了離散化過(guò)程的端到端訓(xùn)練(這種方式也稱為softargmax奈偏,最近工作中也經(jīng)常使用)坞嘀。
對(duì)于溫度系數(shù)??,當(dāng)其接近于0時(shí)惊来,得到的分桶概率分布接近于one-hot丽涩,當(dāng)其接近于無(wú)窮時(shí),得到的分桶概率分布近似于均勻分布裁蚁。對(duì)于不同的連續(xù)特征矢渊,特征取值分布是不同的,那么應(yīng)該如何對(duì)不同特征選擇合適的溫度系數(shù)??呢枉证?論文給出了如下的方法矮男,將連續(xù)特征的分布情況和特征的具體取值進(jìn)行綜合考慮,同時(shí)將溫度系數(shù)??的計(jì)算過(guò)程與模型訓(xùn)練進(jìn)行結(jié)合:
上式中室谚,nj是第j個(gè)連續(xù)特征的統(tǒng)計(jì)值毡鉴,包括均值和累積概率分布的統(tǒng)計(jì)值(我理解的是累積概率為某個(gè)值如0.1或0.2時(shí)對(duì)應(yīng)的連續(xù)特征取值)
3.3 Aggregation Function
根據(jù)前兩個(gè)模塊,已經(jīng)得到了每個(gè)分桶的embedding秒赤,以及某個(gè)特征取值對(duì)應(yīng)分桶的概率分布猪瞬,接下來(lái)則是如何選擇合適的Aggregation Function對(duì)二者進(jìn)行聚合。論文提出了如下幾種方案:
1)Max-Pooling:這種方式即hard selection的方式入篮,選擇概率最大的分桶對(duì)應(yīng)的embedding陈瘦。前面也提到,這種方式會(huì)遇到SBD和DBS的問(wèn)題潮售。
2)Top-K-Sum:將概率最大的K個(gè)分桶對(duì)應(yīng)的embedding甘晤,進(jìn)行sum-pooling。這種方式不能從根本上解決DBS的問(wèn)題饲做,同時(shí)得到的最終embedding也沒有考慮到具體的概率取值。
3)Weighted-Average:根據(jù)每個(gè)分桶的概率對(duì)分桶embedding進(jìn)行加權(quán)求和遏弱,這種方式確保了每個(gè)不同的特征取值都能有其對(duì)應(yīng)的embedding表示盆均。同時(shí),相近的特征取值往往得到的分桶概率分布也是相近的漱逸,那么其得到的embedding也是相近的泪姨,可以有效解決SBD和DBS的問(wèn)題。
3.4 模型訓(xùn)練
模型的訓(xùn)練過(guò)程同一般的CTR過(guò)程相似饰抒,采用二分類的logloss指導(dǎo)模型訓(xùn)練肮砾,損失如下:
最后再來(lái)總結(jié)一下整個(gè)AutoDis框架,Meta-Embeddings模塊將每個(gè)連續(xù)特征賦予Hj個(gè)分桶袋坑,每個(gè)分桶對(duì)應(yīng)一個(gè)單獨(dú)的embedding仗处;Automatic Discretization模塊實(shí)現(xiàn)了端到端的分桶,每個(gè)具體的特征取值得到分桶的概率分布; Aggregation Function模塊通過(guò)Weighted-Average的方式得到每個(gè)特征取值對(duì)應(yīng)的embedding婆誓,并有效解決SBD和DBS的問(wèn)題吃环。
4、實(shí)驗(yàn)結(jié)果及分析
最后來(lái)看一下實(shí)驗(yàn)結(jié)果洋幻,離線和線上均取得了不錯(cuò)的提升:
那么郁轻,AutoDis是否有效解決了SBD和DBS的問(wèn)題呢?實(shí)驗(yàn)結(jié)果也印證了這一點(diǎn):
好了文留,論文就介紹到這里好唯,本文不僅對(duì)于連續(xù)特征的處理進(jìn)行了比較詳盡的總結(jié),還提出了一種端到端的連續(xù)特征離散化處理方式燥翅,比較值得閱讀~~