提出動機
deep crossing是微軟bing ad團隊提出的,用來解決大規模特徵組合問題的模型,避免了人工進行特徵組合,並使用了當年提出的殘差神經網絡。模型主要結構如下(搞不懂這圖爲啥畫的這麼隨意)。
主要分爲embedding layer,stacking layer,residual unit 和scoring layer。
deep crossing模型中輸入的部分用得是原始的單個特徵,不進行手動特徵組合,完全靠模型自己去學。
Embedding layer
對於sparse特徵x,通過embedding方式將其轉化爲dense特徵,表達式如下:
這裏,表示的j個特徵對應filed的參數矩陣,沒理解錯的話作者通過將特徵分成不同的field,來減少embedding層的參數。
論文中作者提到了一種場景,對於維度非常高的特徵,比如CampaignID(一個ID是一個推廣計劃,一個推廣計算中有若干個廣告)有數萬種,可以將這些CampaignID按照歷史的點擊率(所有在一起算不區分用戶)進行排名,選前n個特徵比如前1000個,保留其真實值,剩下的若干個算作others,特徵值用統計特徵比如平均點擊率。
Stacking layer
通過將embedding的結果橫向拼接得到stacking層的結果:
作者將sparse特徵embedding到256維向量上,而對於維度不到256維的特徵,直接添加到stacking層即可,如上圖中的Feature #2。
Residual unit
殘差單元示意如下,當年(2016)年何凱明大神提出,使得深層神經網絡至少能與淺層神經網絡相持平。
表達式爲
Scoring layer
該層利用交叉熵作爲損失函數,可以替換爲其他任意的損失函數
小結
該模型在當時用了特徵拼接以及當時的殘差單元,雖然現在看來很一般,不過論文對不同特徵按照filed來使用參數矩陣,以及對基數巨多的特徵的一些特殊處理還是非常值得借鑑的