Normalization在CTR问题中的迷之效果
最近看到一篇文章非常有意思的文章, 是關(guān)于正則化的探討, 作者發(fā)現(xiàn)在不同階段對(duì)數(shù)據(jù)進(jìn)行不同的正則化操作會(huì)有非常大的影響,在正確的位置進(jìn)行正確的正則化操作可以為模型帶來巨大的提升
一元@煉丹筆記本文一共兩塊內(nèi)容,
第一塊介紹LayerNorm以及BatchNorm的聯(lián)系&區(qū)別;
第二塊則專注于介紹論文的內(nèi)容,該篇論文是基于實(shí)踐經(jīng)驗(yàn)的,
個(gè)人覺得非常值得一試。
關(guān)于LayerNorm & BatchNorm
BatchNorm
BatchNorm是對(duì)一批樣本進(jìn)行處理, 對(duì)一批樣本的每個(gè)特征分別進(jìn)行歸一化,舉個(gè)簡(jiǎn)單的例子,加入我有一批樣本, 每個(gè)樣本有三個(gè)特征,,分別是身高,體重,年齡,那么我做歸一化的時(shí)候,就是對(duì)體重做歸一化,對(duì)身高做歸一化,對(duì)年齡做歸一化,三者之間不會(huì)有交叉影響。
這個(gè)看起來很符合直觀的感覺,可以看做是降低每個(gè)特征量綱的影響,我們也經(jīng)常會(huì)在CTR等深度模型的MLP部分見到BatchNorm操作。
也正因?yàn)槿绱?
所以BatchNorm會(huì)受到Batch size的影響;
當(dāng)Batchsize小的時(shí)候效果往往不是非常穩(wěn)定.
LayerNorm
LayerNorm是對(duì)一個(gè)樣本進(jìn)行處理, 對(duì)一個(gè)樣本的所有特征進(jìn)行歸一化,乍一看很沒有道理,因?yàn)槿绻麑?duì)身高體重和年齡一起求一個(gè)均值方差,都不知道這些值有什么含義,但存在一些場(chǎng)景卻非常有效果--NLP領(lǐng)域。
在NLP中,N個(gè)特征都可能表示不同的詞,這個(gè)時(shí)候我們?nèi)匀徊捎肂atchNorm的話,對(duì)第一個(gè)詞進(jìn)行操作,很顯然意義就不是非常大了,因?yàn)槿魏我粋€(gè)詞都可以放在第一個(gè)位置,而且很多時(shí)候詞序?qū)τ谖覀儗?duì)于句子的影響沒那么大,而此時(shí)我們對(duì)N個(gè)詞進(jìn)行Norm等操作可以很好地反映句子的分布。(LN一般用在第三維度,[batchsize, seq_len,dims]),因?yàn)樵摼S度特征的量綱是相同的,所以并沒有太多區(qū)別。
背景
在非常多CTR相關(guān)的論文中,很多工作主要都Focus在模型結(jié)構(gòu)方面的優(yōu)化或者引入新的信息等,而這么做往往都忽略了模型中的一些小的模塊的作用,
例如Normalization,在CTR相關(guān)的結(jié)構(gòu)中我們發(fā)現(xiàn),大家經(jīng)常會(huì)把BatchNorm放在最后的MLP層, 但是這么做夠嗎?
Normalization是否發(fā)揮了最大的作用?
是否是最優(yōu)的方案?
本文通過大量的系統(tǒng)的實(shí)驗(yàn),給出了結(jié)論:
沒有,還有更好的方案,
本文通過在CTR模型的不同地方加入不同的正則化策略(BatchNorm,LayerNorm等),最終取得了非常好的效果。那究竟是怎么做的呢?
我們繼續(xù)往下看,下面的框架很簡(jiǎn)單,顯示作者提出模型的核心組成部分VO-LayerNorm,然后是基于此提出的新的NormDNN,最后是實(shí)驗(yàn)驗(yàn)證部分。
Variance-Only LayerNorm
這是一個(gè)經(jīng)驗(yàn)得出來的操作,作者在大量的實(shí)驗(yàn)中發(fā)現(xiàn),原始的LayerNorm有些復(fù)雜化了,在對(duì)其進(jìn)行不斷的精簡(jiǎn)實(shí)驗(yàn)后,作者發(fā)現(xiàn)在CTR數(shù)據(jù)集上的效果并沒有帶來下降,反而更好了。下面我們看看這一步步精簡(jiǎn)的操作:
復(fù)雜版本LayerNorm
LayerNorm在NLP任務(wù)中取得了非常好的效果,但是實(shí)踐中,Xu等人發(fā)現(xiàn)這個(gè)LayerNorm的bias和gain增加了過擬合的風(fēng)險(xiǎn),并且經(jīng)過試驗(yàn)他們發(fā)現(xiàn)簡(jiǎn)化LayerNorm也可以取的非常不錯(cuò)的效果。
簡(jiǎn)化版的LayerNorm
我們把bias以及gain同時(shí)刪除,得到精簡(jiǎn)版的LayerNorm,
在大量的實(shí)驗(yàn)中,我們發(fā)現(xiàn)簡(jiǎn)化版本的LayerNorm并沒有什么性能損失,相反的還可以取的更好的效果。
然后作者在CTR相關(guān)的數(shù)據(jù)集上又進(jìn)行了大量的實(shí)驗(yàn),發(fā)現(xiàn)對(duì)模型效果影響最大的不是re-centering等操作,反而方差帶來的影響更大,于是作者提出了新的LayerNorm。
Variance-Only LayerNorm
此處,作者直接除以了方差,雖然更加精簡(jiǎn)了,但是實(shí)驗(yàn)效果卻顯示這么做在CTR數(shù)據(jù)集上卻可以取得更好的效果。
NormDNN
在不同的地方使用不同形式的Normalization策略會(huì)帶來什么樣的影響呢?此處作者主要探索了兩個(gè)部分, 特征Embedding部分的Normalization以及MLP部分的Normalization。在大量的實(shí)驗(yàn)之后,作者得到了一種提升最大的方案:
在特征Embedding層的Normalization
在MLP處加入Normalization
此處作者發(fā)現(xiàn)在非線性的激活函數(shù)之前加入Normalization操作的效果是比先使用激活函數(shù)再做Normalization處理要好的。
為什么Normalization是有效的Why
作者最后分析了一下Normalization為什么有效,并繪制了不同的Normalization對(duì)于我們均值和方差帶來的影響,從圖中以及實(shí)驗(yàn)中看來,我們發(fā)現(xiàn) Normalization有效的最大一個(gè)原因在于方差的影響而不是均值。
同時(shí)我們發(fā)現(xiàn)很多神經(jīng)元的輸出大部分在使用Variance-Only LayerNorm之后都會(huì)被push輸出一個(gè)負(fù)數(shù)的值,然后被RELU過濾掉,這可以減少噪音帶來的影響,同樣的,我們將Normalization的導(dǎo)數(shù)表示為:
實(shí)驗(yàn)
特征Embedding上加入Normalization是否有效?
從上面的實(shí)驗(yàn)中,我們發(fā)現(xiàn),在特征Embedding層加入Normalization都是有效的,而且LayerNorm以及相關(guān)的變種是效果相對(duì)穩(wěn)定以及最好的;
Normalization對(duì)于MLP的影響
從上面的實(shí)驗(yàn)中,我們發(fā)現(xiàn),在MLP層加入Normalization都是有效的,但是具體選用哪種Normalization需要依據(jù)不同的任務(wù)進(jìn)行選擇;
Normalization對(duì)于Feature EMbedding & MLP的影響
從上面的實(shí)驗(yàn)中,我們發(fā)現(xiàn),在MLP層以及特征Embedding層都加入Normalization都是比單個(gè)加入都有效的,在MLP側(cè)加入VO-LN的Normalization往往能取得更好的效果;
Normalization對(duì)于數(shù)值以及類別特征的 EMbedding的影響
從上面的實(shí)驗(yàn)中,我們發(fā)現(xiàn),對(duì)數(shù)值的EMbedding使用LayerNorm相關(guān)的效果更好,對(duì)數(shù)值特征使用LayerNorm相關(guān)的正則化方法,在MLP處使用VO-LN往往可以取得最好的效果.
NormDNN 與 其他網(wǎng)絡(luò)比較
出乎意料,在三個(gè)數(shù)據(jù)集上,我們只需要對(duì)不同層做Normalization的處理就可以取得比DeepFM,xDeepFM更好的效果;
NormDNN: Numerical Embedding用LayerNorm相關(guān)的處理; Categorical Feature使用BatchNorm相關(guān)的處理; 在MLP部分使用VO-LN泛化到其他Deep相關(guān)的模型
我們把初始化的方案應(yīng)用到更加復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)上也都取得了更好的效果;也就是說這種Normalization的方案可以擴(kuò)充到其他的所有最新網(wǎng)絡(luò)結(jié)構(gòu)上
小結(jié)
從上面的內(nèi)容來看,Normalization對(duì)于模型的幫助是非常大的; 對(duì)Embedding之后的特征進(jìn)行Normalization(數(shù)值Embedding處用LayerNorm相關(guān)的Normalization,Categorical部分使用BatchNorm相關(guān)的處理,MLP部分使用VO-LN)可以取得非常大的提升;非常值得一試。
一本有仙氣的筆記,記錄了AI的不凡總結(jié)
以上是生活随笔為你收集整理的Normalization在CTR问题中的迷之效果的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 标签修正:CVR预估时间延迟问题
- 下一篇: 负样本修正:CVR预估时间延迟问题