導(dǎo)讀:本文主要介紹下Google在大規(guī)模深度推薦模型上關(guān)于特征嵌入的最新論文。
一、背景
大部分的深度學(xué)習(xí)模型主要包含如下的兩大模塊:輸入模塊以及表示學(xué)習(xí)模塊。自從NAS[1]的出現(xiàn)以來,神經(jīng)網(wǎng)絡(luò)架構(gòu)的設(shè)計上正在往數(shù)據(jù)驅(qū)動的自動機器學(xué)習(xí)方向演進(jìn)。不過之前更多的研究都是聚焦在如何自動設(shè)計表示學(xué)習(xí)模塊而不是輸入模塊,主要原因是在計算機視覺等成熟領(lǐng)域原始輸入(圖像像素)已經(jīng)是浮點數(shù)了。
輸入模塊:負(fù)責(zé)將原始輸入轉(zhuǎn)換為浮點數(shù);表示學(xué)習(xí)模塊:根據(jù)輸入模塊的浮點值,計算得到模型的最終輸出;
而在推薦、搜索以及廣告工業(yè)界的大規(guī)模深度模型上,情況卻完全不同。因為包含大量高維稀疏的離散特征(譬如商品id,視頻id或者文章id)需要將這些類別特征通過embedding嵌入技術(shù)將離散的id轉(zhuǎn)換為連續(xù)的向量。而這些向量的維度大小往往被當(dāng)做一個超參手動進(jìn)行設(shè)定。
一個簡單的數(shù)據(jù)分析就能告訴我們嵌入向量維度設(shè)定的合理與否非常影響模型的效果。以YoutubeDNN[2]為例,其中使用到的VideoId的特征詞典大小是100萬,每一個特征值嵌入向量大小是256。僅僅一個VideoId的特征就包含了2.56億的超參,考慮到其他更多的離散類特征輸入模塊的需要學(xué)習(xí)的超參數(shù)量可想而知。相應(yīng)地,表示學(xué)習(xí)模塊主要包含三層全連接層。也就是說大部分的超參其實聚集在了輸入模塊,那自然就會對模型的效果有著舉足輕重的影響。
二、主要工作
Google的研究者們在最新的一篇論文[3]中提出了NIS技術(shù)(Neural Input Search),可以自動學(xué)習(xí)大規(guī)模深度推薦模型中每個類別特征最優(yōu)化的詞典大小以及嵌入向量維度大小。目的就是為了在節(jié)省性能的同時盡可能地最大化深度模型的效果。
并且,他們發(fā)現(xiàn)傳統(tǒng)的Single-size Embedding方式(所有特征值共享同樣的嵌入向量維度)其實并不能夠讓模型充分學(xué)習(xí)訓(xùn)練數(shù)據(jù)。因此與之對應(yīng)地,提出了Multi-size Embedding方式讓不同的特征值可以擁有不同的嵌入向量維度。
在實際訓(xùn)練中,他們使用強化學(xué)習(xí)來尋找每個特征值最優(yōu)化的詞典大小和嵌入向量維度。通過在兩大大規(guī)模推薦問題(檢索、排序)上的實驗驗證,NIS技術(shù)能夠自動學(xué)習(xí)到更優(yōu)化的特征詞典大小和嵌入維度并且?guī)碓赗ecall@1以及AUC等指標(biāo)上的顯著提升。
三、Neural Input Search問題
NIS-SE問題:SE(Single-size Embedding)方式是目前常用的特征嵌入方式,所有特征值共享同樣的特征嵌入維度。NIS-SE問題就是在給定資源條件下,對于每個離散特征找到最優(yōu)化的詞典大小v和嵌入向量維度d。
這里面其實包含了兩部分的trade-off:一方面是各特征之間,更有用的特征應(yīng)該給予更多的資源;另一方面是每個特征內(nèi)部,詞典大小和嵌入向量維度之間。對于一個特征來說,更大的詞典可以有更大的覆蓋度,包含更多長尾的item;更多的嵌入向量維度則可以提升head item的嵌入質(zhì)量,因為head item擁有充分的訓(xùn)練數(shù)據(jù)。而SE在資源限制下無法同時做到高覆蓋度和高質(zhì)量的特征嵌入。所以需要引入ME(Multi-size Embedding)。
NIS-ME問題:ME允許每個特征詞典內(nèi)不同的特征值可以有不同的嵌入向量維度。其實就是為了實現(xiàn)越頻繁的特征值擁有更大的嵌入特征維度,因為有更多的訓(xùn)練數(shù)據(jù);而長尾的特征值則用更小的嵌入特征維度。引入ME為每一個類別離散特征找到最優(yōu)化的詞典大小和嵌入向量維度,就可以實現(xiàn)在長尾特征值上的高覆蓋度以及在頻繁特征值上的高質(zhì)量嵌入向量。下圖給出了embedding使用的場景例子中,SE和ME使用上的區(qū)別。
四、NIS解決方案
要想為每個類別離散特征手動找到最優(yōu)化的詞典大小和嵌入向量維度是很難的,因為推薦廣告工業(yè)界的大規(guī)模深度模型的訓(xùn)練時很昂貴的。為了達(dá)到在一次訓(xùn)練中就能自動找到最優(yōu)化的詞典大小和嵌入向量維度,他們改造了經(jīng)典的ENAS[4]:
首先針對深度模型的輸入模塊提出了一個新穎的搜索空間;
然后有一個單獨的Controller針對每一個離散特征選擇SE或者M(jìn)E;
其次可以根據(jù)Controller決策后考慮模型準(zhǔn)確度和資源消耗計算得到reward;
最后可以根據(jù)reward使用強化學(xué)習(xí)A3C[5]訓(xùn)練Controller進(jìn)行迭代。
搜索空間
Embedding Block的概念實際上就是原始Embedding矩陣的分塊。如下圖所示,假設(shè)原始Embedding矩陣大小是(10M,256),圖a將其分成了20個Embedding Block。Controller為每個特征有兩種選擇:圖b所示的SE以及圖c的所示的ME。
Reward函數(shù)
主模型是隨著Controller的選擇進(jìn)行訓(xùn)練的,因此Controller的參數(shù)實際上是根據(jù)在驗證集上前向計算的reward通過RL追求收益最大化而來??紤]到在限定資源下的深度模型訓(xùn)練,這里的reward函數(shù)設(shè)計為同時考慮業(yè)務(wù)目標(biāo)與資源消耗。對于推薦領(lǐng)域的兩大主要任務(wù):信息檢索和排序,信息檢索的目標(biāo)可以使用Sampled Recall@1;而排序的目標(biāo)則可以使用AUC。
五、實驗結(jié)果
他們在兩大大規(guī)模推薦模型問題:檢索和排序上進(jìn)行了實驗。在同等資源消耗的情況下,NIS可以獲得顯著提升,詳細(xì)數(shù)據(jù)如下圖所示。
-
谷歌
+關(guān)注
關(guān)注
27文章
6128瀏覽量
104952
原文標(biāo)題:Google最新論文:大規(guī)模深度推薦模型的特征嵌入問題有解了!
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論