Google首次引入自動網絡設計,高效解決大規模深度推薦模型的特徵嵌入問題

本文來自“深度推薦系統”專欄,這個系列將介紹在深度學習的強力驅動下,給推薦系統工業界所帶來的最前沿的變化。本文主要介紹Google在大規模深度推薦模型上關於特徵嵌入的最新論文。

一、背景

大部分的深度學習模型主要包含如下的兩大模塊:輸入模塊以及表示學習模塊。自從NAS[1]的出現以來,神經網絡架構的設計上正在往數據驅動的自動機器學習方向演進。不過之前更多的研究都是聚焦在如何自動設計表示學習模塊而不是輸入模塊,主要原因是在計算機視覺等成熟領域原始輸入(圖像像素)已經是浮點數了。

輸入模塊:負責將原始輸入轉換爲浮點數;
表示學習模塊:根據輸入模塊的浮點值,計算得到模型的最終輸出;

而在推薦、搜索以及廣告工業界的大規模深度模型上,情況卻完全不同。因爲包含大量高維稀疏的離散特徵(譬如商品id,視頻id或者文章id)需要將這些類別特徵通過embedding嵌入技術將離散的id轉換爲連續的向量。而這些向量的維度大小往往被當做一個超參手動進行設定。

一個簡單的數據分析就能告訴我們嵌入向量維度設定的合理與否非常影響模型的效果。以YoutubeDNN[2]爲例,其中使用到的VideoId的特徵詞典大小是100萬,每一個特徵值嵌入向量大小是256。僅僅一個VideoId的特徵就包含了2.56億的超參,考慮到其他更多的離散類特徵輸入模塊的需要學習的超參數量可想而知。相應地,表示學習模塊主要包含三層全連接層。也就是說大部分的超參其實聚集在了輸入模塊,那自然就會對模型的效果有着舉足輕重的影響。

二、主要工作

Google的研究者們在最新的一篇論文[3]中提出了NIS技術(Neural Input Search),可以自動學習大規模深度推薦模型中每個類別特徵最優化的詞典大小以及嵌入向量維度大小。目的就是爲了在節省性能的同時儘可能地最大化深度模型的效果。

並且,他們發現傳統的Single-size Embedding方式(所有特徵值共享同樣的嵌入向量維度)其實並不能夠讓模型充分學習訓練數據。因此與之對應地,提出了Multi-size Embedding方式讓不同的特徵值可以擁有不同的嵌入向量維度。

在實際訓練中,他們使用強化學習來尋找每個特徵值最優化的詞典大小和嵌入向量維度。通過在兩大大規模推薦問題(檢索、排序)上的實驗驗證,NIS技術能夠自動學習到更優化的特徵詞典大小和嵌入維度並且帶來在Recall@1以及AUC等指標上的顯著提升。

三、Neural Input Search問題

NIS-SE問題:SE(Single-size Embedding)方式是目前常用的特徵嵌入方式,所有特徵值共享同樣的特徵嵌入維度。NIS-SE問題就是在給定資源條件下,對於每個離散特徵找到最優化的詞典大小v和嵌入向量維度d。

這裏面其實包含了兩部分的trade-off:一方面是各特徵之間,更有用的特徵應該給予更多的資源;另一方面是每個特徵內部,詞典大小和嵌入向量維度之間。對於一個特徵來說,更大的詞典可以有更大的覆蓋度,包含更多長尾的item;更多的嵌入向量維度則可以提升head item的嵌入質量,因爲head item擁有充分的訓練數據。而SE在資源限制下無法同時做到高覆蓋度和高質量的特徵嵌入。所以需要引入ME(Multi-size Embedding)。

NIS-ME問題:ME允許每個特徵詞典內不同的特徵值可以有不同的嵌入向量維度。其實就是爲了實現越頻繁的特徵值擁有更大的嵌入特徵維度,因爲有更多的訓練數據;而長尾的特徵值則用更小的嵌入特徵維度。引入ME爲每一個類別離散特徵找到最優化的詞典大小和嵌入向量維度,就可以實現在長尾特徵值上的高覆蓋度以及在頻繁特徵值上的高質量嵌入向量。下圖給出了embedding使用的場景例子中,SE和ME使用上的區別。

四、NIS解決方案

要想爲每個類別離散特徵手動找到最優化的詞典大小和嵌入向量維度是很難的,因爲推薦廣告工業界的大規模深度模型的訓練時很昂貴的。爲了達到在一次訓練中就能自動找到最優化的詞典大小和嵌入向量維度,他們改造了經典的ENAS[4]:

  • 首先針對深度模型的輸入模塊提出了一個新穎的搜索空間;
  • 然後有一個單獨的Controller針對每一個離散特徵選擇SE或者ME;
  • 其次可以根據Controller決策後考慮模型準確度和資源消耗計算得到reward;
  • 最後可以根據reward使用強化學習A3C[5]訓練Controller進行迭代。

搜索空間

Embedding Block的概念實際上就是原始Embedding矩陣的分塊。如下圖所示,假設原始Embedding矩陣大小是(10M,256),圖a將其分成了20個Embedding Block。Controller爲每個特徵有兩種選擇:圖b所示的SE以及圖c的所示的ME。

Reward函數

主模型是隨着Controller的選擇進行訓練的,因此Controller的參數實際上是根據在驗證集上前向計算的reward通過RL追求收益最大化而來。考慮到在限定資源下的深度模型訓練,這裏的reward函數設計爲同時考慮業務目標與資源消耗。對於推薦領域的兩大主要任務:信息檢索和排序,信息檢索的目標可以使用Sampled Recall@1;而排序的目標則可以使用AUC。

五、實驗結果

他們在兩大大規模推薦模型問題:檢索和排序上進行了實驗。在同等資源消耗的情況下,NIS可以獲得顯著提升,詳細數據如下圖所示。

參考文獻

[1] Neural Architecture Search with Reinforcement Learning

[2] Deep Neural Networks for Youtube Recommendations

[3] Neural Input Search for Large Scale Recommendation Models

[4] Efficient Neural Architecture Search via Parameters Sharing

本文授權轉載自知乎專欄“深度推薦系統”。原文鏈接:https://zhuanlan.zhihu.com/p/73369087

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章