Deep Crossing模型——經典的深度學習架構
1、前言
承上啟下:由於AutoRec模型過於簡單的網路結構會出現一些表達能力不足的問題,Deep Crossing模型完整地解決了從特徵方程向量稠密化,多層神經網路進行優化目標擬合等一系列深度學習再推薦系統中的應用問題,為後續打下了良好的基礎。
2、Deep Crossing的應用場景
Deep Crossing模型的應用場景是微軟搜尋引擎Bing中的搜尋廣告推薦場景。使用者在搜尋引擎中輸入搜尋詞之後,搜尋引擎除了會返回相關結果,還會返回與搜尋詞相關的廣告。儘可能地增加搜尋廣告的點選率,準確地預測廣告點選率,並以此作為廣告排序的指標之一,是非常重要的工作,也是Deep Crossing模型的優化目標。
微軟使用的特徵如下表所示,這些特徵可以分為三類:一類是可以被處理成one-hot或者multi-hot向量的類別型特徵,包括使用者搜尋詞(query)、廣告關鍵詞(keyword)、廣告標題(title)、落地頁(landing page)、匹配型別(match type);一類是數值型特徵,微軟稱其為計數型特徵,包括點選率、預估點選率(click prediction);一類是需要進一步處理的特徵,包括廣告計劃(campaign)、曝光計劃(impression)、點選樣例(click)等。
3、特徵表示
類別型特徵可以通過one-hot或multi-hot編碼生成特徵向量,數值型特徵則可以直接拼接進特徵向量中,在生成所有輸入特徵的向量表達後,Deep Crossing模型利用該特徵向量進行CTR預估。深度學習網路的特點是可以根據需求靈活地對網路結構進行調整,從而達成從原始特徵向量到最終的優化目標的端到端的訓練目的。
特徵包括個體特徵(Individual Features)和組合特徵(Combinatorial Features)。個體特徵Xi可以通過向量進行表示,例如搜尋詞這樣的文字特徵,可以通過使用將字串轉換成3個字母的詞來表示[3]。組合特徵由個體特徵組合而成,個體特徵 [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-TgEti7IR-1604106691266)(https://www.zhihu.com/equation?tex=X_%7Bi%7D+%5Cin+%5Cmathbb%7BR%7D%5E%7Bn_%7Bi%7D%7D)] ,[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-oEQ1EAbR-1604106691271)(https://www.zhihu.com/equation?tex=X_%7Bj%7D+%5Cin+%5Cmathbb%7BR%7D%5E%7Bn_%7Bj%7D%7D)] ,組合特徵 [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-Eldk3B3O-1604106691274)(https://www.zhihu.com/equation?tex=X_%7Bi%2Cj%7D%E2%88%88%5Cmathbb%7BR%7D%5E%7Bn_i%7D++%5Ctimes+%5Cmathbb%7BR%7D%5E%7Bn_j%7D+)] 。Deep Crossing避免使用組合特徵。它可以處理稀疏和密集的個體特徵,並且支援上面描述的各種特性型別。這使使用者可以自由地使用他們從特定應用程式中選擇的特徵。
4.模型結構
下圖為Deep Crossing的模型結構,模型的輸入是一系列個體特徵。模型有四種型別的層,包括Embedding層,Stacking層,Residual Unit層和Scoring層。目標函式是log損失函式,也可以使用softmax函式或其他函式。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-KltGlZfA-1604106691280)(https://www.zhihu.com/equation?tex=%5Coperatorname%7Blogloss%7D%3D-%5Cfrac%7B1%7D%7BN%7D+%5Csum_%7Bi%3D1%7D%5E%7BN%7D%5Cleft%28y_%7Bi%7D+%5Clog+%5Cleft%28p_%7Bi%7D%5Cright%29%2B%5Cleft%281-y_%7Bi%7D%5Cright%29+%5Clog+%5Cleft%281-p_%7Bi%7D%5Cright%29%5Cright%29)]
N是樣本數,yi是每個樣本的標籤,pi是下圖中單節點Scoring層的輸出,在本例中是一個Sigmoid函式。
Deep Crossing模型的結構圖
Embedding層:Embedding層將稀疏的類別型特徵轉換成稠密的Embedding向量。Embedding層由單層神經網路構成,一般形式為:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-r6eTj5mS-1604106691285)(https://www.zhihu.com/equation?tex=X_%7Bj%7D%5E%7BO%7D%3D%5Cmax+%5Cleft%28%5Cmathbf%7B0%7D%2C+%5Cmathbf%7BW%7D_%7Bj%7D+X_%7Bj%7D%5E%7BI%7D%2B%5Cmathbf%7Bb%7D_%7Bj%7D%5Cright%29)]
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-2MB50OSU-1604106691287)(https://www.zhihu.com/equation?tex=X_%7Bj%7D%5E%7BI%7D+%5Cin+%5Cmathbb%7BR%7D%5E%7Bn_%7Bj%7D%7D)] 是輸入特徵,Wj是一個mj×nj的矩陣, [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-6nXcatdU-1604106691289)(https://www.zhihu.com/equation?tex=%5Cmathbf%7Bb%7D+%5Cin+%5Cmathbb%7BR%7D%5E%7Bn_%7Bj%7D%7D)]
需要指出的是,Embedding的大小對模型的整體大小有著重大的影響。Figure1中的Feature#2代表了數值型特徵,可以看到,數值型特徵不需要經過Embedding層,直接進入了Stacking層。Embedding被用來減少輸入特徵的維度。
Stacking層:Stacking層的作用是將Embedding的輸出特徵和數值型特徵拼接在一起,形成新的包含全部特徵的特徵向量, [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-mHECerJf-1604106691290)(https://www.zhihu.com/equation?tex=X%5E%7BO%7D%3D%5Cleft%5BX_%7B0%7D%5E%7BO%7D%2C+X_%7B1%7D%5E%7BO%7D%2C+%5Ccdots%2C+X_%7BK%7D%5E%7BO%7D%5Cright%5D)] ,K為輸入特徵的數量。該層通常也被稱為連線層。
Multiple Residual Units層:該層的主要結構是多層感知機,相比標準的以感知機為基本單元的神經網路,Deep Crossing模型採用了多層殘差網路作為MLP的具體實現。在推薦模型中的應用,也是殘差網路首次在影像識別領域之外的成功推廣。通過多層殘差網路對特徵向量各個維度進行充分的交叉組合,使模型能夠抓取到更多的非線性特徵和組合特徵的資訊,進而使深度學習模型在表達能力上較傳統機器學習模型大為增強。
殘差層由如下圖的殘差單元構造而成。Deep Crossing簡單的修改了殘差單元,不適用卷積核。殘差單元的獨特之處在於兩個,(1)它是將原輸入特徵通過兩層以ReLU為啟用函式的全連線層後,生成輸出向量 。(2) 輸入可以通過一個短路通路直接與輸出向量進行元素加操作,生成最終的輸出向量。在這樣的結構下,殘差單元中的兩層ReLU網路其實擬合的是輸出和輸入之間的“殘差”( [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-fuorwgcm-1604106691291)(https://www.zhihu.com/equation?tex=x%5Eo-x%5Ei)] ),這就是殘差神經網路名稱的由來。
殘差神經網路的誕生主要解決了兩個問題:
(1)神經網路是不是越深越好?對於傳統的基於感知機的神經網路,當網路加深之後,往往存在過擬合現象,即網路越深,在測試集上的表現越差。而在殘差神經網路中,可以越過兩層ReLU網路,減少過擬合現象的發生。
(2)當神經網路足夠深時,往往存在嚴重的梯度消失現象。梯度消失現象是指在梯度反向傳播過程中,越靠近輸入端,梯度的幅度越小,引數收斂的速度越慢。殘差單元使用了ReLU啟用函式取代原來的sigmoid啟用函式。此外,輸入向量短路相當於直接把梯度毫無變化地傳遞到下一層,這也使殘差網路的收斂速度更快。
Scoring層:Scoring層作為輸出層,就是為了擬合優化目標而存在的。對於CTR預估這類二分類問題,Scoring層往往使用的是邏輯迴歸模型,而對於影像分類等多分類問題,Scoring層往往採用softmax模型。
以上就是Deep Crossing的模型結構,在此基礎上採用梯度反向傳播的方法進行訓練,最終得到基於Deep Crossing的CTR預估模型。
5.Deep Crossing模型對特徵交叉方法的革命
從歷史的角度看,Deep Crossing模型的出現是有革命意義的。Deep Crossing模型中沒有任何人工特徵工程的參與,原始特徵經Embedding後輸入神經網路層,將全部特徵交叉的任務交給模型。Deep Crossing模型可以通過調整神經網路的深度進行特徵之間的“深度交叉”,這也是Deep Crossing名稱的由來。
相關文章
- 人工智慧-深度學習-生成模型:GAN經典模型-->InfoGAN人工智慧深度學習模型
- 人工智慧-深度學習-生成模型:GAN經典模型-->VAEGAN人工智慧深度學習模型
- 深度學習模型調優方法(Deep Learning學習記錄)深度學習模型
- 基於深度學習模型Wide&Deep的推薦深度學習模型IDE
- 巨經典論文!推薦系統經典模型Wide & Deep模型IDE
- 深度學習的未來:神經架構搜尋深度學習架構
- 【深度學習篇】--神經網路中的池化層和CNN架構模型深度學習神經網路CNN架構模型
- 《DEEP LEARNING·深度學習》深度學習
- 深度學習(Deep Learning)深度學習
- 經典的CNN模型架構-LeNet、AlexNet、VGG、GoogleLeNet、ResNetCNN模型架構Go
- 【深度學習】大牛的《深度學習》筆記,Deep Learning速成教程深度學習筆記
- 深度學習 DEEP LEARNING 學習筆記(一)深度學習筆記
- 深度學習 DEEP LEARNING 學習筆記(二)深度學習筆記
- 深度學習經典卷積神經網路之AlexNet深度學習卷積神經網路
- 深度學習模型設計經驗分享深度學習模型
- 深度學習(Deep Learning)優缺點深度學習
- 【機器學習】深度學習與經典機器學習的優劣勢一覽機器學習深度學習
- 知識蒸餾、輕量化模型架構、剪枝…幾種深度學習模型壓縮方法模型架構深度學習
- 貝葉斯深度學習(bayesian deep learning)深度學習
- 深度學習模型深度學習模型
- Searching with Deep Learning 深度學習的搜尋應用深度學習
- 深度學習與圖神經網路學習分享:CNN 經典網路之-ResNet深度學習神經網路CNN
- 構建和優化深度學習模型(神經網路機器識圖)優化深度學習模型神經網路
- 分散式機器學習中的模型架構分散式機器學習模型架構
- 0801-深度學習程式架構設計深度學習架構
- 深度學習中的Normalization模型深度學習ORM模型
- Python 機器學習 HMM模型三種經典問題Python機器學習HMM模型
- 《深度學習》PDF Deep Learning: Adaptive Computation and Machine Learning series深度學習APTMac
- 深度學習問題記錄:Building your Deep Neural深度學習UI
- 推薦系統實踐 0x10 Deep CrossingROS
- Docker部署深度學習模型Docker深度學習模型
- AI+X 經典共讀-《動手學深度學習(Pytorch版)》Task打卡AI深度學習PyTorch
- 深度學習從入門到進階的12個經典問題及解答深度學習
- 關於深度學習的8大免費必讀經典書目推薦!深度學習
- CNN結構演變總結(一)經典模型CNN模型
- 深度學習的seq2seq模型深度學習模型
- 經典遊戲伺服器端架構概述遊戲伺服器架構
- 字串函式庫的經典使用學習字串函式