這一篇,我們將介紹微軟BING AD團隊提出的Deep Crossing模型,用來解決大規模特徵組合問題的模型,這些特徵可以是稠密的,也可以是稀疏的,從而避免了人工進行特徵組合,並使用了當年提出的殘差神經網路。這個模型也算是深度學習在推薦系統的完整應用了:完整的解決了特徵工程、稀疏向量稠密化、多層神經網路進行優化等一些列深度學習的目標應用。
特徵
微軟在廣告場景中所使用的特徵如下面所示:
- 查詢。
使用者在搜尋框中輸入的文字字串 - 關鍵字
與產品相關的文字字串,廣告主新增的其產品描述詞 - 標題
贊助廣告的標題(簡稱為"廣告",以下簡稱 "廣告"),由廣告主指定,以獲取關注度 - 落地頁
使用者點選了相應的廣告之後進入的頁面 - 匹配型別
給廣告商的一個選項,包括精準匹配、短語匹配、語義匹配等等 - 點選
顯示是否有一個印象被點選使用者的點選。點選通常會與執行時的其他資訊一起被記錄下來 - 點選率
廣告的歷史點選率 - 點選預測
平臺的關鍵模式,即預測使用者點選給定廣告的可能性。 - 廣告計劃
廣告主創造的投放廣告的計劃、包括預算、定向條件等 - 曝光樣例
一個廣告“曝光”的例子,記錄了廣告在實際曝光場景的相關資訊 - 點選陽曆
一個廣告“點選”的例子,記錄了廣告在實際點選場景的相關資訊
模型結構
網路的主要模型結構如下圖所示
可以看出網路結構主要包括4種網路層——Embedding層,Stacking層,Multiple Residual Units層以及Scoring層。所需要的優化目標也是很常見的點選與否的二分類log損失:
Embedding層
Embedding層以全連線層為主,主要目的是用來將稀疏的特徵類別特徵轉化成稠密的Embedding向量,一般來說,Embedding向量的維度要遠小於原始的洗漱特徵向量。數值型別的特徵不需要經過Embedding層而直接進入Stacking層。從下面的公式也能看出,所使用的啟用函式是ReLU函式。
Stacking層
Stacking層比較簡單,將所有的Embedding向量與數值型別的特徵拼接在一起,從而形成新的特徵向量,該層也常被成為連線層(Concatenate)。
Multiple Residual Untis層
這個層主要大量使用了帶有殘差的多層感知機,也就是借鑑了ResNet的殘差的思想進行優化的網路結構。通過多層殘差網路對特徵向量的各個維度進行充分的交叉組合,使得模型能夠捕捉到更多的非線性特徵以及組合特徵的資訊,同時殘差也使得網路變得更深以及更容易優化。下圖就是一個殘差單元的結構:
將原始的輸入和通過網路層的輸出進行逐元素相加,也被稱為短路(Shortcut)操作。
Scoring層
Scoring層作為輸出層,為了擬合優化目標存在的,如CTR預估這種二分類模型,Scoring層往往使用的邏輯迴歸模型,對於影像分類等多分類模型,Scoring層使用的Softmax模型。
小結
作為一個“Embedding+多層神經網路”的結構,在歷史上是具有革命意義的,沒有使用任何的人工特徵,並且相對於FM/FFM等模型,做到了通過調整網路層數進行深度特徵交叉。這也是Deep Crossing模型的名字由來。
參考
Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features