
今天給大家介紹阿里在CIKM2021上發(fā)表的一篇關(guān)于Embedding的論文,本文的標(biāo)題是從阿里媽媽技術(shù)復(fù)制過來的(共有6篇論文入選,可參考https://zhuanlan.zhihu.com/p/401520358)。論文設(shè)計(jì)了孿生的自適應(yīng)掩碼層(AMTL)來計(jì)算每個(gè)特征保留的Embedding長度的大小,在提升精度的同時(shí),還能有效節(jié)省Embedding的存儲空間并很好的支持模型特征向量的熱啟動,一起來看一下。
1、背景
大多數(shù)的推薦系統(tǒng)模型遵循Embedding + MLP的范式,其中Embedding層的參數(shù)往往占模型參數(shù)量的90%以上,因此Embedding層對于效果的提升非常重要。
標(biāo)準(zhǔn)的Embedding層將每個(gè)離散特征映射為相同長度的向量,這種方法主要存在兩方面的問題。一方面,離散特征的不同取值在數(shù)據(jù)中的出現(xiàn)頻次是相差巨大的,對于高頻次的特征取值,應(yīng)當(dāng)使用長度更長的Embedding向量來表示更豐富的信息,而對于低頻次的特征取值,如果Embedding向量過長,則容易導(dǎo)致過擬合。因此,如果對所有特征取值采用相同的長度會降低Embedding學(xué)習(xí)的有效性。另一方面,相較于靈活的Embedding長度處理方式,定長的方式需要的存儲空間也是更大的。
針對標(biāo)準(zhǔn)的定長Embedding處理方式存在的問題,有一些工作開始研究不定長的處理方式。這些方法主要可以分為兩類。第一類是基于規(guī)則的方法,對于頻次高的特征,設(shè)置更長的Embedding長度,對于頻次低的特征,設(shè)置較低的Embedding長度。這類方法的主要問題是較為依賴人工經(jīng)驗(yàn)。第二類是基于神經(jīng)架構(gòu)搜索(Neural architecture search ,簡稱NAS)的方法,這種方法從候選的Embedding長度中尋找每個(gè)特征最適合的Embedding長度,但候選集往往會被限制在有限的范圍內(nèi)。同時(shí),上述說的兩類方法都需要從頭開始訓(xùn)練來找到最適合的Embedding長度,對于模型特征向量的熱啟動(warm starting)并不友好。
針對上述方法的問題,論文設(shè)計(jì)了孿生的自適應(yīng)掩碼層(AMTL)來計(jì)算每個(gè)特征保留的embedding長度的大小,在提升精度的同時(shí),還能有效節(jié)省embedding的存儲空間并很好的支持模型特征向量的熱啟動,下面一張圖概括了現(xiàn)有的處理方式以及本文提出的方法,本文的方法將在第二節(jié)進(jìn)行介紹。

2、方法介紹
2.1 基本思路
論文提出的基本思路是在定長Eembdding的基礎(chǔ)上,針對每一個(gè)特征取值對應(yīng)的Embedding,學(xué)習(xí)一個(gè)掩碼向量,掩碼向量的定義如下:

也就是說,在實(shí)際應(yīng)用時(shí),對特征fi的Embedding向量ei,其0到ki的索引下對應(yīng)的取值保留,大于ki的索引下對應(yīng)的值置0。這種方式有以下幾點(diǎn)優(yōu)勢:
1)存儲時(shí),對特征fi的Embedding向量ei,只需要存儲ki+1長度的向量即可,線上應(yīng)用時(shí)用0補(bǔ)齊為相同的長度,可減少存儲空間
2)由于Embedding的初始化是定長長度的向量,掩碼向量通過其他部分的網(wǎng)絡(luò)單獨(dú)學(xué)習(xí),可以通過warm starting的方式對Embedding進(jìn)行初始化。
那么接下來的問題是,如何學(xué)習(xí)掩碼向量?論文設(shè)計(jì)了孿生的自適應(yīng)掩碼層(Adaptively-Masked Twins-based Layer,以下簡稱AMTL),咱們在下一小節(jié)進(jìn)行介紹。
2.2 AMTL介紹
AMTL的架構(gòu)如下圖所示:

對AMTL來說,學(xué)習(xí)方向主要是基于特征的出現(xiàn)頻次,因此輸入特征主要是頻次相關(guān)特征,輸出為one-hot向量,其中1位置所在的索引,其實(shí)就是上一小節(jié)中所提到的ki。那么基于ki,就可以生成對應(yīng)的掩碼向量mi。
從上到下來介紹一下AMTL的計(jì)算過程。對于頻率向量,分別輸入到兩個(gè)孿生的自適應(yīng)掩碼層,分別計(jì)作h-AML和l-AML,輸出和Embdding相同長度的向量。這種設(shè)計(jì)思路的主要原因是考慮到如果只是用單一的AML,參數(shù)的學(xué)習(xí)會受頻率高的特征的主導(dǎo),因此設(shè)計(jì)h-AML和l-AML,分別用于高頻特征和低頻特征的掩碼向量的學(xué)習(xí)??梢钥吹?,兩個(gè)AML的輸出,會進(jìn)行加權(quán),而權(quán)重基于特征的出現(xiàn)頻次,如果出現(xiàn)頻次高,權(quán)重α大于0.5,h-AML的輸出占據(jù)主導(dǎo),如果出現(xiàn)頻次低,權(quán)重α<0.5,則l-AML的輸出占主導(dǎo)。

兩個(gè)AML的輸出結(jié)果加權(quán)后,首先通過softmax,再通過argmax和one-hot操作,得到ont-hot向量計(jì)作ti,最后乘上事先定義好的矩陣M(對矩陣的元素Mi,j來說,如果j<=i,則Mi,j=1,否則等于0),得到掩碼向量mi。



上述過程中存在的主要問題是argmax是無法進(jìn)行梯度傳導(dǎo)的,因此使用Temperated Softmax,如果將溫度系數(shù)設(shè)置很小的話,可以達(dá)到近似argmax的效果:

進(jìn)一步,借鑒直通估計(jì)器的思路( Straight Through Estimator,簡稱STE),巧妙的能在前向計(jì)算的時(shí)候使用argmax得到的one-hot向量,以及在梯度計(jì)算的時(shí)候?qū)emperated Softmax得到的向量進(jìn)行更新,減小二者的gap,具體計(jì)算公式如下:

好了,AMTL的整體結(jié)構(gòu)介紹到這里,接下來看下實(shí)驗(yàn)結(jié)果。
3、實(shí)驗(yàn)結(jié)果
論文對比了AMTL和一些現(xiàn)有方法的比較,從AUC和存儲消耗兩份面進(jìn)行比較,可以看到,AMTL無論是在模型精度還是存儲空間上,都取得了不錯(cuò)的提升:

好了,本文就介紹到這里,論文設(shè)計(jì)了孿生的自適應(yīng)掩碼層(AMTL)來計(jì)算每個(gè)特征保留的embedding長度的大小,在提升精度的同時(shí),還能有效節(jié)省embedding的存儲空間并很好的支持模型特征向量的熱啟動,感興趣的同學(xué)可以閱讀原文~