全新的深度模型在推薦系統(tǒng)中的應(yīng)用
文章作者:周浩?第四范式?研究員
編輯整理:汪方野
出品平臺:第四范式天樞、DataFunTalk
首先對推薦系統(tǒng)和深度學(xué)習(xí)進行簡單的介紹。什么是推薦系統(tǒng)?什么是深度學(xué)習(xí)?
1. Recommendation system (?推薦系統(tǒng)?)
維基百科給出對于推薦系統(tǒng)的定義:推薦系統(tǒng)是一個過濾系統(tǒng),推薦系統(tǒng)的目標是預(yù)測用戶對給定物品的評分或者喜好度,然后根據(jù)評分或者喜好度推薦給用戶對應(yīng)的物品。
以右圖為例,通過user profile和item properties,預(yù)測用戶對item1-4的打分,預(yù)測用戶的最后選擇item 1和item 2,然后推薦給用戶。在現(xiàn)實生活中的應(yīng)用, 不同的應(yīng)用軟件會向用戶推薦商品、電影、書籍、視頻等。
2. Deep Learning ( 深度學(xué)習(xí) )
維基百科對深度學(xué)習(xí)的介紹:
深度學(xué)習(xí)是機器學(xué)習(xí)的分支,一種基于人工神經(jīng)網(wǎng)絡(luò)的表征學(xué)習(xí)方法;
神經(jīng)網(wǎng)絡(luò)是受到生物神經(jīng)網(wǎng)絡(luò)的啟發(fā),從而構(gòu)建的計算系統(tǒng)。
一個簡單的神經(jīng)網(wǎng)絡(luò)分為三個部分:輸入特征,隱藏層,預(yù)測層。對于全連接的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),每一層的神經(jīng)元都是以前一層所有的輸出作為輸入。然后每個神經(jīng)元都有一個非線性的函數(shù),對輸出值做一個非線性的變化。有一種說法,只要神經(jīng)網(wǎng)絡(luò)的層數(shù)夠深,它就能擬合或者逼近任何一種函數(shù)。這種說法表達了神經(jīng)網(wǎng)絡(luò)強大的表征能力,也說明了神經(jīng)網(wǎng)絡(luò)主要功能之一,即學(xué)習(xí)輸入到輸出的函數(shù)變換。
可以將推薦系統(tǒng)分為以下四類,簡單介紹基于內(nèi)容的推薦算法、基于協(xié)同過濾的推薦算法、混合推薦算法,重點介紹基于模型的推薦算法。在介紹基于模型的推薦時,先給出了一些淺層的推薦算法,之后介紹了一些基于深度學(xué)習(xí)的推薦算法。
Contented based:
基于內(nèi)容的推薦算法。主要根據(jù)用戶的瀏覽記錄,或者購買記錄,向用戶推薦與其瀏覽記錄或者購買記錄相似的物品。
Collaborative Filter:
基于協(xié)同過濾的推薦算法。主要根據(jù)擁有相同經(jīng)驗或者相同群體的喜好,為用戶推薦感興趣的資訊或者物品。例如用戶A和用戶B相似,就可以把用戶B喜歡的物品推薦給用戶A。協(xié)同過濾算法還可以分為基于用戶的協(xié)同算法和基于物品的協(xié)同算法。
Hybrid:
混合推薦算法,將不同的算法混合使用??梢栽诓煌A段使用不同的推薦算法,也可以對多個推薦算法進行不同的處理,然后將多個推薦算法的結(jié)果耦合,將最終結(jié)果推薦給用戶。
Model Based:
基于模型的推薦算法。將用戶的profile和物品的properties作為特征,用機器學(xué)習(xí)模型,來預(yù)測用戶對物品的喜好程度。在推薦系統(tǒng)中,經(jīng)常會用到點擊率 ( CTR ) 來表示喜好程度。點擊率表示用戶點擊物品的概率,點擊率越高說明用戶對該物品的喜好程度越高。
在上圖中給出了一個例子,表示用戶對電影的點擊率。其中每一行是一個樣本,每一列是不同的特征,表示用戶的屬性,電影的特征,以及用戶的一些歷史行為記錄。在每一條樣本中,0表示用戶沒有點擊對應(yīng)的movie,1表示點擊對應(yīng)電影。那么此時問題已經(jīng)轉(zhuǎn)化為二分類問題。
接下來介紹下基于模型的常見方法:
1. 淺層的基于模型的方法
首先,是一些比較淺層的推薦方法,例如LR、FM、FFM等。邏輯回歸算法 ( Logistic Regression,LR ) 是推薦系統(tǒng)的常用方法之一。將用戶的瀏覽記錄和項目的信息、離散特征,通過one-hot編碼;將數(shù)值類特征歸一化,或者通過分桶技術(shù),進行離散化;然后通過LR模型進行訓(xùn)練。LR模型很穩(wěn)定, 但是缺乏學(xué)習(xí)高階特征的能力,尤其是特征間的交互。而FM模型和FFM模型則將高度的離散特征通過embedding,轉(zhuǎn)化為低維的稠密向量。然后用稠密向量的內(nèi)積表示特征之間的交互特征。
上圖展示了embedding的過程,Categorical Field xi是高維稀疏離散特征,通過one-hot表示,只有一元為1,其他都是0。因為xi的one-hot表示只有一元為1,通過矩陣乘法,取出Wi矩陣的xi列,得到對應(yīng)低維的稠密向量。LR、FM和FFM三種模型取得了較好的效果,但由于它們的結(jié)構(gòu)較淺,其表達能力也受到了限制。
2. 基于深度學(xué)習(xí)的方法
基于深度學(xué)習(xí)的推薦方法,以其中兩個典型的模型為例:DNN模型和Wide&Deep模型。
DNN模型。DNN方法使用了Embedding技術(shù),將離散和數(shù)值特征Embedding 到低維的稠密向量。然后和將稠密向量和數(shù)值特征拼接,作為DNN的輸入,然后直接預(yù)測輸出。
Wide&Deep模型。Wide&Deep方法,對比DNN方法。增加了Wide的部分,即專家手工設(shè)計的高階特征。然后把高階特征和DNN學(xué)到的特征拼接,作為模型的輸入,預(yù)測最終的點擊率。
其他深度學(xué)習(xí)的方法借鑒了Wide&Deep的模式。例如,在DeepFM模型中,將專家手工設(shè)計的部分 ( Wide部分 ) 替換成了FM;在xDeepFM模型中, 將Wide部分替換成了CNN;在AutoInt模型中,將Wide部分替換成self-attention的網(wǎng)絡(luò)。
在推薦系統(tǒng)中還有一類方法,基于用戶的興趣, 使用了用戶的歷史行為數(shù)據(jù),例如DIN、DSIN,但是這類方法不在本次討論范圍之內(nèi)。
3. 上述方法存在的問題
首先,現(xiàn)有方法直接融合不同特征域的向量表示,而未顯式地考慮域內(nèi)信息。我們將"每個特征域內(nèi)的不同特征值,均屬于同一個特征域"記為域內(nèi)信息。對于每個特征域中的特征,它們的內(nèi)在屬性是都屬于同一個特征域。以在線廣告場景為例,假設(shè)特征域 "advertiser_id" 和 "user_id" 分別表示廣告商和用戶的ID,則特征域 "advertiser_id"?( "user_id" ) 中的不同的廣告商ID ( 用戶ID ) 都屬于廣告商 ( 用戶 ) 這個特征域。此外,特征域有自己的含義,如 "advertiser_id" 和 "user_id" 分別代表廣告主和用戶,而不管域內(nèi)特征的具體取值。
其次,大多數(shù)現(xiàn)有方法使用預(yù)定義的特征域交互操作組合 ( 如DNN、FM ),而未考慮輸入數(shù)據(jù)。事實上,預(yù)定義的操作組合并不適用于所有的數(shù)據(jù),而是應(yīng)該根據(jù)數(shù)據(jù)選擇不同的操作,以獲得更好的分類效果。如上圖所示:
Wide&Deep中的Operations使用了Linear和DNN;
DeepFM使用了FM和DNN;
xDeepFM使用了CIN、Linear和DNN;
AutoInt中使用了self-attention和DNN。
同時他們在預(yù)測時,都是將不同的結(jié)果通過線性求和關(guān)聯(lián)起來,沒有考慮非線性的關(guān)系,即現(xiàn)有方法忽略了特征域交互操作 ( 如DNN和FM ) 的輸出之間的非線性。
接下來為大家全面介紹Network on Network。
1. NON模型整體結(jié)構(gòu)
為了解決上述問題,第四范式提出了深度稀疏網(wǎng)絡(luò) ( NON ),它由三部分組成:底層為域內(nèi)網(wǎng)絡(luò) ( Field-wise Network ) 中層為域間網(wǎng)絡(luò) ( Across Field Network ),頂層為融合網(wǎng)絡(luò) ( Operation Fusion Network )。域內(nèi)網(wǎng)絡(luò)為每個特征域使用一個DNN來捕獲域內(nèi)信息;域間網(wǎng)絡(luò)包含了大部分已有的Operation,采用多種域間交互操作來刻畫特征域間潛在的相互作用;最后融合網(wǎng)絡(luò)利用DNN的非線性,對所選特征域交互操作的輸出進行深度融合,得到最終的預(yù)測結(jié)果。
2. Field-wise network
每一個特征Field都和一個NN網(wǎng)絡(luò)相連,其中類別特征先進行Embedding操作,而數(shù)值型特征直接通過NN網(wǎng)絡(luò)。通過NN網(wǎng)絡(luò)強大的學(xué)習(xí)能力,顯示地學(xué)習(xí)特征域內(nèi)信息。鑒于DNN的強大的表達能力,特征域內(nèi)信息可以被充分地學(xué)習(xí)。還有一點需要注意,在模型中還加入了一個Gate Function,將NN的輸出和輸入耦合起來,常見的Gate Function包括concatenation、element-wise product以及其他更加復(fù)雜的操作。對于Field-wise network的詳細分析將在實驗中介紹。
3. Across field network
在域間網(wǎng)絡(luò) ( Across field network ) 中,利用已有的Operation,來學(xué)習(xí)特征之間的Interaction,這些Operation都是以Field-wise network的輸出為輸入。常見的特征域交互操作包括LR、DNN、FM、Bi-Interaction和多頭自注意網(wǎng)絡(luò)等。NON在設(shè)計上,兼容目前大部分學(xué)術(shù)上提出的Operation。在實際應(yīng)用中,NON將Operation作為超參數(shù),在訓(xùn)練過程中根據(jù)數(shù)據(jù)進行選擇?,F(xiàn)有方法中,域間交互操作的方式是用戶事先指定的。而在深度稀疏網(wǎng)絡(luò)中,可以通過數(shù)據(jù),自適應(yīng)地選擇最合適的操作組合,即在深度稀疏網(wǎng)絡(luò)中,操作組合的選擇是數(shù)據(jù)驅(qū)動的。
4. Operation fusion network
在融合網(wǎng)絡(luò) ( Operation fusion network ) 中,將域間網(wǎng)絡(luò)層的輸出拼接作為NN的輸入,并利用NN的非線性,學(xué)習(xí)不同Operation的高階特征表示。
需要注意一點,NON網(wǎng)絡(luò)設(shè)計的特別深,所以在訓(xùn)練過程中,很容易出現(xiàn)梯度消散的現(xiàn)象,導(dǎo)致模型效果變差。受到GoogLeNet的啟發(fā),在模型訓(xùn)練過程中引入了輔助損失。在DNN的每一層都加入了一條路徑,連接到最終的損失上,緩解了梯度消散問題。經(jīng)測試,該方案不僅能夠增加模型最終預(yù)測效果,也使得模型能在更短的時間內(nèi),取得更好的效果。如下圖所示。
至此模型介紹結(jié)束,接下來將分析實驗結(jié)果。
1. DNN with auxiliary losses
這是在Criteo的采樣數(shù)據(jù)集上的實驗結(jié)果,圖中的橫坐標是訓(xùn)練的輪次,縱坐標是AUC。從圖上可以看出,通過添加輔助損失,訓(xùn)練效率明顯提升。在同等AUC的情況下,產(chǎn)生了1.67倍的加速。本文之后的所有關(guān)于NON的訓(xùn)練都是通過添加輔助函數(shù)的方式進行訓(xùn)練的。
2. Ablation study of NON
在NON消融學(xué)習(xí)中,展示NON每一個模塊的作用。從左到右:第一列數(shù)據(jù)集;第二列,只有DNN;第三列,增加輔助損失的DNN,和DNN比較,添加了輔助損失可以提高性能;第四列,添加了Field-wise Network,從結(jié)果看出,域內(nèi)網(wǎng)絡(luò)捕獲的域內(nèi)信息有助于提高模型的泛化性能;第五列,加入了Across field network,結(jié)果有所提升;第六列,完整的NON模型,取得了最好的結(jié)果??梢钥闯鲭S著NON不同的組件堆疊,模型的預(yù)測效果持續(xù)增長。
3. Study of field-wise network
從定性和定量的角度分析Field-wise network的結(jié)果。右圖是不同特征域Embedding的可視化展示。第一行是通過Field-wise network之前,第二行是通過Field-wise network之后。不同的顏色表示不同F(xiàn)ield中的Embedding。通過對Field-wise network處理前后特征值對應(yīng)的向量進行可視化的比較,可以看出經(jīng)過Field-wise network后,每個Field內(nèi)的特征在向量空間中更加接近,不同F(xiàn)ield間的特征也更容易區(qū)分。
左側(cè)的表格展示了所有的Field 內(nèi)部的Embedding 平均余弦相似度 ( 數(shù)值越大,相似度越高 )。Field-wise network可以使余弦距離提高一到兩個量級,即能有效地捕獲每個域內(nèi)特征的相似性。
4. Study of operations
對Operation的學(xué)習(xí),就是對Across field network層的學(xué)習(xí)。這一部分做了兩個實驗。在Across field network,深度稀疏網(wǎng)絡(luò)將不同的交互操作視為超參數(shù),并根據(jù)在具體數(shù)據(jù)驗證集上的效果,選擇最適合的交互操作。其中,DNN 被視為必選,而其他操作 ( LR、Bi-Interaction和multi-head self-attention ) 被視為可選。第二個試驗,通過固定域間網(wǎng)絡(luò)中的操作組合來進行更多驗證。橫坐標是不同的組合,縱坐標是AUC??梢钥闯鰶]有一個操作組合能夠在所有數(shù)據(jù)集上都取得最優(yōu)效果,這表明了根據(jù)數(shù)據(jù)選擇操作組合的必要性。
上表列出了在不同數(shù)據(jù)集上表現(xiàn)好的Operation組合,可以看到DNN和LR都有,可能是因為LR的穩(wěn)定性很好。同時,從結(jié)果可以看出來,大數(shù)據(jù)集傾向于選擇容量大、復(fù)雜的操作組合;小數(shù)據(jù)集傾向于輕量、簡單的操作組合。再一次證明需要對不同的數(shù)據(jù)集需要選擇不同的Operation組合。
5. Comparison with SOTAs
和當(dāng)前的SOTA模型進行比較。與FFM、DNN、Wide&Deep、NFM、xDeepFM、AutoInt等模型相比,深度稀疏網(wǎng)絡(luò)在實驗數(shù)據(jù)集上均能獲得最好的結(jié)果,AUC可提高0.64%~0.99%,結(jié)果說明NON模型設(shè)計的有效性。其次,看一些細節(jié),在Talkshow數(shù)據(jù)集上,NFM模型的效果退步,說明網(wǎng)絡(luò)不一定越復(fù)雜越來,需要進行仔細的設(shè)計,才能獲得較好的結(jié)果。結(jié)果證明了NON模型設(shè)計范式的有效性。
嘉賓介紹:
特別推薦一個分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下:
長按訂閱更多精彩▼
如有收獲,點個在看,誠摯感謝
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!