全新的深度模型在推薦系統(tǒng)中的應用
文章作者:周浩?第四范式?研究員
編輯整理:汪方野
出品平臺:第四范式天樞、DataFunTalk
首先對推薦系統(tǒng)和深度學習進行簡單的介紹。什么是推薦系統(tǒng)?什么是深度學習?
1. Recommendation system (?推薦系統(tǒng)?)

維基百科給出對于推薦系統(tǒng)的定義:推薦系統(tǒng)是一個過濾系統(tǒng),推薦系統(tǒng)的目標是預測用戶對給定物品的評分或者喜好度,然后根據(jù)評分或者喜好度推薦給用戶對應的物品。
以右圖為例,通過user profile和item properties,預測用戶對item1-4的打分,預測用戶的最后選擇item 1和item 2,然后推薦給用戶。在現(xiàn)實生活中的應用, 不同的應用軟件會向用戶推薦商品、電影、書籍、視頻等。
2. Deep Learning ( 深度學習 )

維基百科對深度學習的介紹:
深度學習是機器學習的分支,一種基于人工神經(jīng)網(wǎng)絡的表征學習方法;
神經(jīng)網(wǎng)絡是受到生物神經(jīng)網(wǎng)絡的啟發(fā),從而構建的計算系統(tǒng)。
一個簡單的神經(jīng)網(wǎng)絡分為三個部分:輸入特征,隱藏層,預測層。對于全連接的神經(jīng)網(wǎng)絡結構,每一層的神經(jīng)元都是以前一層所有的輸出作為輸入。然后每個神經(jīng)元都有一個非線性的函數(shù),對輸出值做一個非線性的變化。有一種說法,只要神經(jīng)網(wǎng)絡的層數(shù)夠深,它就能擬合或者逼近任何一種函數(shù)。這種說法表達了神經(jīng)網(wǎng)絡強大的表征能力,也說明了神經(jīng)網(wǎng)絡主要功能之一,即學習輸入到輸出的函數(shù)變換。
可以將推薦系統(tǒng)分為以下四類,簡單介紹基于內容的推薦算法、基于協(xié)同過濾的推薦算法、混合推薦算法,重點介紹基于模型的推薦算法。在介紹基于模型的推薦時,先給出了一些淺層的推薦算法,之后介紹了一些基于深度學習的推薦算法。

Contented based:
基于內容的推薦算法。主要根據(jù)用戶的瀏覽記錄,或者購買記錄,向用戶推薦與其瀏覽記錄或者購買記錄相似的物品。
Collaborative Filter:
基于協(xié)同過濾的推薦算法。主要根據(jù)擁有相同經(jīng)驗或者相同群體的喜好,為用戶推薦感興趣的資訊或者物品。例如用戶A和用戶B相似,就可以把用戶B喜歡的物品推薦給用戶A。協(xié)同過濾算法還可以分為基于用戶的協(xié)同算法和基于物品的協(xié)同算法。
Hybrid:
混合推薦算法,將不同的算法混合使用。可以在不同階段使用不同的推薦算法,也可以對多個推薦算法進行不同的處理,然后將多個推薦算法的結果耦合,將最終結果推薦給用戶。
Model Based:
基于模型的推薦算法。將用戶的profile和物品的properties作為特征,用機器學習模型,來預測用戶對物品的喜好程度。在推薦系統(tǒng)中,經(jīng)常會用到點擊率 ( CTR ) 來表示喜好程度。點擊率表示用戶點擊物品的概率,點擊率越高說明用戶對該物品的喜好程度越高。
在上圖中給出了一個例子,表示用戶對電影的點擊率。其中每一行是一個樣本,每一列是不同的特征,表示用戶的屬性,電影的特征,以及用戶的一些歷史行為記錄。在每一條樣本中,0表示用戶沒有點擊對應的movie,1表示點擊對應電影。那么此時問題已經(jīng)轉化為二分類問題。
接下來介紹下基于模型的常見方法:
1. 淺層的基于模型的方法

首先,是一些比較淺層的推薦方法,例如LR、FM、FFM等。邏輯回歸算法 ( Logistic Regression,LR ) 是推薦系統(tǒng)的常用方法之一。將用戶的瀏覽記錄和項目的信息、離散特征,通過one-hot編碼;將數(shù)值類特征歸一化,或者通過分桶技術,進行離散化;然后通過LR模型進行訓練。LR模型很穩(wěn)定, 但是缺乏學習高階特征的能力,尤其是特征間的交互。而FM模型和FFM模型則將高度的離散特征通過embedding,轉化為低維的稠密向量。然后用稠密向量的內積表示特征之間的交互特征。
上圖展示了embedding的過程,Categorical Field xi是高維稀疏離散特征,通過one-hot表示,只有一元為1,其他都是0。因為xi的one-hot表示只有一元為1,通過矩陣乘法,取出Wi矩陣的xi列,得到對應低維的稠密向量。LR、FM和FFM三種模型取得了較好的效果,但由于它們的結構較淺,其表達能力也受到了限制。
2. 基于深度學習的方法

基于深度學習的推薦方法,以其中兩個典型的模型為例:DNN模型和Wide&Deep模型。
DNN模型。DNN方法使用了Embedding技術,將離散和數(shù)值特征Embedding 到低維的稠密向量。然后和將稠密向量和數(shù)值特征拼接,作為DNN的輸入,然后直接預測輸出。
Wide&Deep模型。Wide&Deep方法,對比DNN方法。增加了Wide的部分,即專家手工設計的高階特征。然后把高階特征和DNN學到的特征拼接,作為模型的輸入,預測最終的點擊率。
其他深度學習的方法借鑒了Wide&Deep的模式。例如,在DeepFM模型中,將專家手工設計的部分 ( Wide部分 ) 替換成了FM;在xDeepFM模型中, 將Wide部分替換成了CNN;在AutoInt模型中,將Wide部分替換成self-attention的網(wǎng)絡。
在推薦系統(tǒng)中還有一類方法,基于用戶的興趣, 使用了用戶的歷史行為數(shù)據(jù),例如DIN、DSIN,但是這類方法不在本次討論范圍之內。
3. 上述方法存在的問題

首先,現(xiàn)有方法直接融合不同特征域的向量表示,而未顯式地考慮域內信息。我們將"每個特征域內的不同特征值,均屬于同一個特征域"記為域內信息。對于每個特征域中的特征,它們的內在屬性是都屬于同一個特征域。以在線廣告場景為例,假設特征域 "advertiser_id" 和 "user_id" 分別表示廣告商和用戶的ID,則特征域 "advertiser_id"?( "user_id" ) 中的不同的廣告商ID ( 用戶ID ) 都屬于廣告商 ( 用戶 ) 這個特征域。此外,特征域有自己的含義,如 "advertiser_id" 和 "user_id" 分別代表廣告主和用戶,而不管域內特征的具體取值。
其次,大多數(shù)現(xiàn)有方法使用預定義的特征域交互操作組合 ( 如DNN、FM ),而未考慮輸入數(shù)據(jù)。事實上,預定義的操作組合并不適用于所有的數(shù)據(jù),而是應該根據(jù)數(shù)據(jù)選擇不同的操作,以獲得更好的分類效果。如上圖所示:
Wide&Deep中的Operations使用了Linear和DNN;
DeepFM使用了FM和DNN;
xDeepFM使用了CIN、Linear和DNN;
AutoInt中使用了self-attention和DNN。
同時他們在預測時,都是將不同的結果通過線性求和關聯(lián)起來,沒有考慮非線性的關系,即現(xiàn)有方法忽略了特征域交互操作 ( 如DNN和FM ) 的輸出之間的非線性。
接下來為大家全面介紹Network on Network。
1. NON模型整體結構

為了解決上述問題,第四范式提出了深度稀疏網(wǎng)絡 ( NON ),它由三部分組成:底層為域內網(wǎng)絡 ( Field-wise Network ) 中層為域間網(wǎng)絡 ( Across Field Network ),頂層為融合網(wǎng)絡 ( Operation Fusion Network )。域內網(wǎng)絡為每個特征域使用一個DNN來捕獲域內信息;域間網(wǎng)絡包含了大部分已有的Operation,采用多種域間交互操作來刻畫特征域間潛在的相互作用;最后融合網(wǎng)絡利用DNN的非線性,對所選特征域交互操作的輸出進行深度融合,得到最終的預測結果。
2. Field-wise network

每一個特征Field都和一個NN網(wǎng)絡相連,其中類別特征先進行Embedding操作,而數(shù)值型特征直接通過NN網(wǎng)絡。通過NN網(wǎng)絡強大的學習能力,顯示地學習特征域內信息。鑒于DNN的強大的表達能力,特征域內信息可以被充分地學習。還有一點需要注意,在模型中還加入了一個Gate Function,將NN的輸出和輸入耦合起來,常見的Gate Function包括concatenation、element-wise product以及其他更加復雜的操作。對于Field-wise network的詳細分析將在實驗中介紹。
3. Across field network

在域間網(wǎng)絡 ( Across field network ) 中,利用已有的Operation,來學習特征之間的Interaction,這些Operation都是以Field-wise network的輸出為輸入。常見的特征域交互操作包括LR、DNN、FM、Bi-Interaction和多頭自注意網(wǎng)絡等。NON在設計上,兼容目前大部分學術上提出的Operation。在實際應用中,NON將Operation作為超參數(shù),在訓練過程中根據(jù)數(shù)據(jù)進行選擇?,F(xiàn)有方法中,域間交互操作的方式是用戶事先指定的。而在深度稀疏網(wǎng)絡中,可以通過數(shù)據(jù),自適應地選擇最合適的操作組合,即在深度稀疏網(wǎng)絡中,操作組合的選擇是數(shù)據(jù)驅動的。
4. Operation fusion network

在融合網(wǎng)絡 ( Operation fusion network ) 中,將域間網(wǎng)絡層的輸出拼接作為NN的輸入,并利用NN的非線性,學習不同Operation的高階特征表示。
需要注意一點,NON網(wǎng)絡設計的特別深,所以在訓練過程中,很容易出現(xiàn)梯度消散的現(xiàn)象,導致模型效果變差。受到GoogLeNet的啟發(fā),在模型訓練過程中引入了輔助損失。在DNN的每一層都加入了一條路徑,連接到最終的損失上,緩解了梯度消散問題。經(jīng)測試,該方案不僅能夠增加模型最終預測效果,也使得模型能在更短的時間內,取得更好的效果。如下圖所示。

至此模型介紹結束,接下來將分析實驗結果。
1. DNN with auxiliary losses

這是在Criteo的采樣數(shù)據(jù)集上的實驗結果,圖中的橫坐標是訓練的輪次,縱坐標是AUC。從圖上可以看出,通過添加輔助損失,訓練效率明顯提升。在同等AUC的情況下,產生了1.67倍的加速。本文之后的所有關于NON的訓練都是通過添加輔助函數(shù)的方式進行訓練的。
2. Ablation study of NON

在NON消融學習中,展示NON每一個模塊的作用。從左到右:第一列數(shù)據(jù)集;第二列,只有DNN;第三列,增加輔助損失的DNN,和DNN比較,添加了輔助損失可以提高性能;第四列,添加了Field-wise Network,從結果看出,域內網(wǎng)絡捕獲的域內信息有助于提高模型的泛化性能;第五列,加入了Across field network,結果有所提升;第六列,完整的NON模型,取得了最好的結果??梢钥闯鲭S著NON不同的組件堆疊,模型的預測效果持續(xù)增長。
3. Study of field-wise network

從定性和定量的角度分析Field-wise network的結果。右圖是不同特征域Embedding的可視化展示。第一行是通過Field-wise network之前,第二行是通過Field-wise network之后。不同的顏色表示不同F(xiàn)ield中的Embedding。通過對Field-wise network處理前后特征值對應的向量進行可視化的比較,可以看出經(jīng)過Field-wise network后,每個Field內的特征在向量空間中更加接近,不同F(xiàn)ield間的特征也更容易區(qū)分。
左側的表格展示了所有的Field 內部的Embedding 平均余弦相似度 ( 數(shù)值越大,相似度越高 )。Field-wise network可以使余弦距離提高一到兩個量級,即能有效地捕獲每個域內特征的相似性。
4. Study of operations

對Operation的學習,就是對Across field network層的學習。這一部分做了兩個實驗。在Across field network,深度稀疏網(wǎng)絡將不同的交互操作視為超參數(shù),并根據(jù)在具體數(shù)據(jù)驗證集上的效果,選擇最適合的交互操作。其中,DNN 被視為必選,而其他操作 ( LR、Bi-Interaction和multi-head self-attention ) 被視為可選。第二個試驗,通過固定域間網(wǎng)絡中的操作組合來進行更多驗證。橫坐標是不同的組合,縱坐標是AUC。可以看出沒有一個操作組合能夠在所有數(shù)據(jù)集上都取得最優(yōu)效果,這表明了根據(jù)數(shù)據(jù)選擇操作組合的必要性。

上表列出了在不同數(shù)據(jù)集上表現(xiàn)好的Operation組合,可以看到DNN和LR都有,可能是因為LR的穩(wěn)定性很好。同時,從結果可以看出來,大數(shù)據(jù)集傾向于選擇容量大、復雜的操作組合;小數(shù)據(jù)集傾向于輕量、簡單的操作組合。再一次證明需要對不同的數(shù)據(jù)集需要選擇不同的Operation組合。
5. Comparison with SOTAs

和當前的SOTA模型進行比較。與FFM、DNN、Wide&Deep、NFM、xDeepFM、AutoInt等模型相比,深度稀疏網(wǎng)絡在實驗數(shù)據(jù)集上均能獲得最好的結果,AUC可提高0.64%~0.99%,結果說明NON模型設計的有效性。其次,看一些細節(jié),在Talkshow數(shù)據(jù)集上,NFM模型的效果退步,說明網(wǎng)絡不一定越復雜越來,需要進行仔細的設計,才能獲得較好的結果。結果證明了NON模型設計范式的有效性。
嘉賓介紹:

特別推薦一個分享架構+算法的優(yōu)質內容,還沒關注的小伙伴,可以長按關注一下:

長按訂閱更多精彩▼
如有收獲,點個在看,誠摯感謝
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!





