自動特徵組合——微軟deep crossing模型

提出動機

deep crossing是微軟bing ad團隊提出的,用來解決大規模特徵組合問題的模型,避免了人工進行特徵組合,並使用了當年提出的殘差神經網絡。模型主要結構如下(搞不懂這圖爲啥畫的這麼隨意)。
在這裏插入圖片描述
主要分爲embedding layer,stacking layer,residual unit 和scoring layer。
deep crossing模型中輸入的部分用得是原始的單個特徵,不進行手動特徵組合,完全靠模型自己去學。

Embedding layer

對於sparse特徵x,通過embedding方式將其轉化爲dense特徵,表達式如下:
XjO=max(0,WjXjI+bj)X_{j}^{O}=\max \left(\mathbf{0}, \mathbf{W}_{j} X_{j}^{I}+\mathbf{b}_{j}\right)這裏XjjX_{j}表示第j個特徵,WjW_{j}表示的j個特徵對應filed的參數矩陣,沒理解錯的話作者通過將特徵分成不同的field,來減少embedding層的參數。

論文中作者提到了一種場景,對於維度非常高的特徵,比如CampaignID(一個ID是一個推廣計劃,一個推廣計算中有若干個廣告)有數萬種,可以將這些CampaignID按照歷史的點擊率(所有在一起算不區分用戶)進行排名,選前n個特徵比如前1000個,保留其真實值,剩下的若干個算作others,特徵值用統計特徵比如平均點擊率。

Stacking layer

通過將embedding的結果橫向拼接得到stacking層的結果:
XO=[X0O,X1O,,XKO]X^{O}=\left[X_{0}^{O}, X_{1}^{O}, \cdots, X_{K}^{O}\right]作者將sparse特徵embedding到256維向量上,而對於維度不到256維的特徵,直接添加到stacking層即可,如上圖中的Feature #2。

Residual unit

殘差單元示意如下,當年(2016)年何凱明大神提出,使得深層神經網絡至少能與淺層神經網絡相持平。
在這裏插入圖片描述
表達式爲
XO=F(XI,{W0,W1},{b0,b1})+XIX^{O}=F\left(X^{I},\left\{W_{0}, W_{1}\right\},\left\{b_{0}, b_{1}\right\}\right)+X^{I}

Scoring layer

該層利用交叉熵作爲損失函數,可以替換爲其他任意的損失函數
logloss=1Ni=1N(yilog(pi)+(1yi)log(1pi))\text {logloss}=-\frac{1}{N} \sum_{i=1}^{N}\left(y_{i} \log \left(p_{i}\right)+\left(1-y_{i}\right) \log \left(1-p_{i}\right)\right)

小結

該模型在當時用了特徵拼接以及當時的殘差單元,雖然現在看來很一般,不過論文對不同特徵按照filed來使用參數矩陣,以及對基數巨多的特徵的一些特殊處理還是非常值得借鑑的

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