日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

推荐算法DCN(Deep Cross)自动构造高阶交叉特征原理介绍

發布時間:2023/12/16 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 推荐算法DCN(Deep Cross)自动构造高阶交叉特征原理介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DCN(Deep & Cross)

  • 目標:
  • 概要:
  • 動機Motivation:
  • Model介紹:
    • Cross Layer交叉層
    • 聯合訓練
    • 模型分析
  • Experiment測試結果
  • Conclusion結論

目標:

斯坦福與Google聯合發表在AdKDD 2017上的論文《Deep & Cross Network for Ad Click Predictions》。
特點:對Wide@Deep模型的升級,可以自動自動構造高階交叉特征。可以說和華為同期提出的DeepFM屬于同一種思想,并且走得更遠。看了下作者,好像也是中國人。中國不注重AI人才,導致大量的AI領軍人物流失。真是可惜。
華為同期提出的DeepFM只是用了FM替換了Wide@Deep中的Wide(LR)部分,沒有提出更多的創新,DCN創新更大。

  • 模型優點:自動自動構造高階交叉特征。模型復雜度整體可控。
  • 缺點:基于Embedding向量的位(bit)進行的特征交叉,沒有基于向量 vector的交叉,基于向量 vector的交叉可以學到更多信息。FM是基于向量 vector的交叉,但是其復雜度基本上限制其停留在二階交叉。
  • 后續演進模型:xDeepFM,基于向量 vector的交叉,但是時間復雜度是硬傷。后續單獨介紹。

概要:

本文(知乎)介紹斯坦福與Google聯合發表在AdKDD 2017上的論文《Deep & Cross Network for Ad Click Predictions》。這篇論文是Google 對 Wide & Deep工作的一個后續研究,文中提出 Deep & Cross Network,將Wide部分替換為由特殊網絡結構實現的Cross,自動構造有限高階的交叉特征,并學習對應權重,告別了繁瑣的人工叉乘。
文章發表后業界就有一些公司效仿此結構并應用于自身業務,成為其模型更新迭代中的一環。觀看 作者對Deep & Cross的Oral視頻。


動機Motivation:

針對大規模稀疏特征的點擊率預估問題,Google在2016年提出 Wide & Deep 的結構來同時實現Memorization(記憶能力)與Generalization(泛化能力)。

  • 但是在Wide部分,仍然需要人工地設計特征叉乘。面對高維稀疏的特征空間、大量的可組合方式,基于人工先驗知識雖然可以緩解一部分壓力,但仍需要不小的人力和嘗試成本,并且很有可能遺漏一些重要的交叉特征。
  • FM可以自動組合特征,但也僅限于二階叉乘。

能否告別人工組合特征,并且自動學習高階的特征組合呢?Deep & Cross(DCN) 即是對此的一個嘗試。


Model介紹:

類似Wide & Deep,Deep & Cross的網絡結構如圖1所示,可以仔細觀察下:

文中對原始特征做如下處理:

  • 對sparse特征進行embedding,對于multi-hot的sparse特征,embedding之后再做一個簡單的average pooling;
  • 對dense特征歸一化,然后和embedding特征拼接,作為隨后Cross層與Deep層的共同輸入。

    注意:這里提供了一種思想:Cross層與Deep層的輸入相同,后面證實,這種方法可以讓模型通過線性的Cross層,結合深度Deep層進行后向反饋,能起到一種線性的Cross層給深度Deep層減負的作用,效果比“Cross層與Deep層的輸入不同 ”更好。
  • Cross Layer交叉層

    Cross的目的是以一種顯示、可控且高效的方式,自動構造有限高階交叉特征,我們會對這些特點進行解讀。Cross結構如上圖1左側所示,其中第l+1l+1l+1層輸出為:


    Cross Layer 設計的巧妙之處全部體現在上面的計算公式中,我們先看一些明顯的細節:

  • 每層的神經元個數都相同,都等于輸入 x0x_{0}x0?的維度ddd ,也即每層的輸入輸出維度都是相等的;
  • 受殘差網絡(Residual Network)結構啟發,每層的函數 fff 擬合的是xl+1?xlx_{l+1}-x_{l}xl+1??xl?的殘差,殘差網絡有很多優點,其中一點是處理梯度消失的問題,使網絡可以“更深”.
  • 那么為什么這樣設計呢?Cross究竟做了什么?對此論文中給出了定理3.1以及相關證明,但定理與證明過程都比較晦澀,為了直觀清晰地講解清楚,我們直接看一個具體的例子:假設Cross有2層,


    最后得到

    參與到最后的losslossloss計算。
    可以看到x1x_{1}x1? 包含了原始特征[x0,1,x0,2][x_{0,1},x_{0,2}][x0,1?,x0,2?]從一階到二階的所有可能叉乘組合,而x2x_{2}x2?包含了其從一階到三階的所有可能叉乘組合。現在大家應該可以理解cross layer計算公式的用心良苦了,上面這個例子也可以幫助我們更深入地理解Cross的設計:

  • 有限高階叉乘階數由網絡深度決定,深度LcL_{c}Lc? 對應最高Lc+1L_{c}+1Lc?+1 階的叉乘.

  • 自動叉乘:Cross輸出包含了原始特征從一階(即本身)到 Lc+1L_{c}+1Lc?+1 階的所有叉乘組合,而模型參數量僅僅隨輸入維度成線性增長2?d?Lc2*d*L_{c}2?d?Lc?

  • 參數共享:不同叉乘項對應的權重不同,但并非每個叉乘組合對應獨立的權重(指數數量級), 通過參數共享,Cross有效降低了參數量(這個在很多模型中有體現,比如GRU,記憶門和遺忘門用一個門限來控制,CNN中每層一個卷積核,并非每次運算一個卷積核,也是相同的參數共享思想)。此外,參數共享還使得模型有更強的泛化性和魯棒性。例如,如果獨立訓練權重,當訓練集中xi=0?xj=0x_{i}=0\bigcap x_{j}=0xi?=0?xj?=0這個叉乘特征出現 ,對應權重肯定是零,而參數共享則不會,類似地,數據集中的一些噪聲可以由大部分正常樣本來糾正權重參數的學習.

  • 這里有一點很值得留意,前面介紹過,文中將dense特征和embedding特征拼接后作為Cross層和Deep層的共同輸入。這對于Deep層是合理的,但我們知道人工交叉特征基本是對原始sparse特征進行叉乘,那為何不直接用原始sparse特征作為Cross的輸入呢?
    結合這里介紹的Cross設計,每層layer的節點數都與Cross的輸入維度一致的,直接使用大規模高維的sparse特征作為輸入,會導致極大地增加Cross的參數量。當然,可以暢想一下,其實直接拿原始sparse特征喂給Cross層,才是論文真正宣稱的“省去人工叉乘”的更完美實現,但是現實條件不太允許。所以將高維sparse特征轉化為低維的embedding,再喂給Cross,實則是一種trade-off的可行選擇。

    聯合訓練

    模型的Deep 部分如圖1右側部分所示,DCN拼接Cross 和Deep的輸出,采用logistic loss作為損失函數,進行聯合訓練,這些細節與Wide & Deep幾乎是一致的,在這里不再展開論述。
    另外,文中也在目標函數中加入L2正則防止過擬合。

    模型分析

    設初始輸入x0x_{0}x0?維度為ddd,Deep和Cross層數分別為 LcrossL_{cross}Lcross?LdeepL_{deep}Ldeep?,為便于分析,設Deep每層神經元個數為 mmm ,則兩部分的參數量為:

    可以看到Cross的參數量隨ddd 增大僅呈“線性增長”!相比于Deep部分,對整體模型的復雜度影響不大,這得益于Cross的特殊網絡設計,對于模型在業界落地并實際上線來說,這是一個相當誘人的特點。

    Experiment測試結果

    對比方法 文中選擇DNN,LR,FM與Deep Cross(DC)作為對比方法,其中DNN可看作將DCN去除Cross部分,LR使用所有稀疏特征(dense特征會被離散化)與部分精選交叉特征。

    實驗結果 實驗結果如下表,DCN不但效果明顯最優,而且相比之下僅用了DNN的40%內存。

    作者進一步對比了DCN與DNN在memory占用和效果上的差異,實驗結果如下兩表所示。為達到同樣性能,DCN所需的參數量顯著更少;此外,隨著參數量的上升,DNN與DCN的差距在減小,但DCN仍穩定占優。相比DNN,Cross可以輔助Deep,減小了Deep的“工作量”,通過特殊的cross layer設計,用更少的參數量有效捕獲有意義的、DNN難以捕捉的特征相關性。

    文中也在兩個Non-CTR數據集——Forest Covertype和Higgs上進行了實驗,這是UCI上的公開數據集,結果類似,DCN最優。此外,文中也對cross層數進行了實驗,實驗顯示cross層并非越多越好,具體結果如下圖:

    Conclusion結論

    • 論文提出一種新型的交叉網絡結構 DCN,其中 Cross 可以顯示、自動地構造有限高階的特征叉乘,從而在一定程度上告別人工特征叉乘,“一定程度”是因為文中出于模型復雜度的考慮,仍是僅對sparse特征對應的embedding作自動叉乘,但這仍是一個有益的創新。
    • Cross部分的復雜度與輸入維度呈線性關系,相比DNN非常節約內存。實驗結果顯示了DCN的有效性,DCN用更少的參數取得比DNN更好的效果。
    • 共享參數的設計,Cross層與Deep層的輸入相同,是其提供的新思想。

    總結

    以上是生活随笔為你收集整理的推荐算法DCN(Deep Cross)自动构造高阶交叉特征原理介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。