【论文解读】DCN-M:Google提出改进版DCN,用于大规模排序系统的特征交叉学习(附代码)...
“?本文結(jié)合DeepCTR-Torch中的代碼實現(xiàn),介紹了DCN的改進版——DCN-M。該模型能更有效地學習特征交叉,并通過低秩矩陣分解對參數(shù)矩陣進行降維,降低計算成本。受MOE結(jié)構(gòu)啟發(fā),作者還在多個子空間中建模特征交叉。實驗表明,傳統(tǒng)的基于ReLU的神經(jīng)網(wǎng)絡在學習高階特征交叉時效率較低;DCN-M能夠在保證效率較高的同時,取得優(yōu)于SOTA方法的效果。”
本文介紹的論文是《DCN-M: Improved Deep & Cross Network for Feature Cross Learning in Web-scale Learning to Rank Systems》 論文地址:https://arxiv.org/abs/2008.13535
代碼實現(xiàn):DeepCTR-(https://github.com/shenweichen/DeepCTR-Torch)中DCN-M和DCN-Mix(點擊文末閱讀原文可訪問)
摘要
在大規(guī)模(幾十億樣本)場景下,DCN[1]中cross網(wǎng)絡的表達能力有限,無法學到更加有用的特征交叉。盡管學術(shù)界做出了大量進展,但工業(yè)界很多深度模型還是依賴于傳統(tǒng)的DNN來低效地學習特征交叉。
基于DCN的優(yōu)缺點以及現(xiàn)有的特征交叉方法,作者提出了改進版的DCN-M[2]來使模型更容易在大規(guī)模工業(yè)場景下落地。大量實驗結(jié)果表明,DCN-M在學習特征交叉時的表達能力更強且效率較高,在主流數(shù)據(jù)集上能夠超過SOTA方法。在引入混合低秩矩陣后效果更好。DCN-M結(jié)構(gòu)簡單,容易作為building blocks,且在許多大規(guī)模L2R系統(tǒng)中取得了顯著的線下和線上指標提升。
貢獻
提出了一種新的DCN-M模型來有效地學習顯式和隱式特征交叉,模型高效、簡單的同時,表達能力更強。
基于DCN-M中學習出的低秩矩陣,利用低秩方法來在子空間中進行近似特征交叉,在模型效果和時延上達到了更好的權(quán)衡。受MOE結(jié)構(gòu)啟發(fā),將矩陣分解至多個子空間,隨后通過門控機制來對這些子空間進行融合。
使用人造數(shù)據(jù)集進行了研究,結(jié)果表明傳統(tǒng)的基于ReLU的神經(jīng)網(wǎng)絡在學習高階特征交叉時效率較低。
在Criteo和ml-1m數(shù)據(jù)上的大量實驗表明,DCN-M模型能夠顯著勝過SOTA方法。
模型
DCN回顧
首先回顧一下DCN的模型結(jié)構(gòu):
特征經(jīng)過embedding、stack后,分別輸入cross network和DNN,兩路的輸出stack后經(jīng)過單層nn映射為一維的預測分數(shù)。
embedding/stack/DNN不必贅述,主要看cross network。cross network的核心思想是更高效地實現(xiàn)顯式特征交叉,每一層的計算如下:
其中
圖示:
, , , 都是d維的列向量,形狀是(d,1)。的形狀是(d,1) * (1,d) * (d,1)=(d,1),與, 一致。cross網(wǎng)絡每一層僅增加2d個參數(shù)(和),整體參數(shù)量為(為網(wǎng)絡層數(shù)),參數(shù)量相比DNN是少得多的。
cross網(wǎng)絡的改進
DCN中cross網(wǎng)絡的參數(shù)是向量,DCN-M中換成了矩陣來提高表達能力、方便落地。DCN-M是指“DCN-matrix” ,原來的DCN在這里稱為DCN-V(“DCN-vector”)。
其中,
圖示:
目前最新版的DeepCTR-Torch[3]中已實現(xiàn)了DCN和DCN-M,只需調(diào)整parameterization參數(shù)即可切換模型。其中CrossNet的核心代碼如下:
if?self.parameterization?==?'vector':xl_w?=?torch.tensordot(x_l,?self.kernels[i],?dims=([1],?[0]))dot_?=?torch.matmul(x_0,?xl_w)x_l?=?dot_?+?self.bias[i] elif?self.parameterization?==?'matrix':dot_?=?torch.matmul(self.kernels[i],?x_l)??#?W?*?xi??(bs,?in_features,?1)dot_?=?dot_?+?self.bias[i]??#?W?*?xi?+?bdot_?=?x_0?*?dot_??#?x0?·?(W?*?xi?+?b)??Hadamard-product x_l?=?dot_?+?x_l完整代碼地址:https://github.com/shenweichen/DeepCTR-Torch/blob/bc881dcd417fec64f840b0cacce124bc86b3687c/deepctr_torch/layers/interaction.py#L406-L461
Deep和cross的結(jié)合方式
結(jié)合方式分為堆疊(串行)和并行兩種:
這兩種結(jié)合方式下的DCN-M效果都優(yōu)于基準算法。但這兩種結(jié)構(gòu)之間的優(yōu)劣不能一概而論,與數(shù)據(jù)集有關(guān)。串行結(jié)構(gòu)在criteo數(shù)據(jù)集上更好,而并行結(jié)構(gòu)在Movielen-1M上效果更好。
損失函數(shù)
損失函數(shù)為帶L2正則化的log loss:
混合低秩矩陣
工業(yè)界模型往往受計算資源和響應時間限制,需要在保證效果的同時降低計算成本。低秩方法被廣泛用于降低計算成本——將一個稠密矩陣近似分解為兩個”高瘦“的低秩矩陣。而且,當原矩陣的奇異值差異較大或快速衰減時,低秩分解的方法會更加有效。作者發(fā)現(xiàn),DCN-M中學到的參數(shù)矩陣是低秩的(所以比較適合做矩陣分解)。下圖展示了DCN-M中學到的參數(shù)矩陣的奇異值衰減趨勢,比初始化的矩陣衰減更快:
因此,作者將參數(shù)矩陣分解為了兩個低秩矩陣:
這個公式有兩種解釋:
(1)在子空間中學習特征交叉
(2)將輸入特征x映射到低維空間中,然后再映射回到
這兩種解釋分別激發(fā)了作者隨后的兩處改進:
(1)激發(fā)了作者使用Mixture-of-Experts (MoE)的思想,在多個子空間中學習,然后再進行融合。MOE方法包含兩部分:專家網(wǎng)絡(即上個公式中使用低秩矩陣分解的cross網(wǎng)絡)和門控單元(一個關(guān)于輸入的函數(shù)),通過門控單元來聚合個專家網(wǎng)絡的輸出結(jié)果:
圖示:
(2)激發(fā)了作者利用映射空間的低秩性。在映射回原有空間之前,施加了非線性變換來提煉特征:
此公式的代碼實現(xiàn):(低秩空間中的非線性函數(shù)目前采用tanh)
??#?E(x_l)#?project?the?input?x_l?to?$\mathbb{R}^{r}$v_x?=?torch.matmul(self.V_list[i][expert_id].T,?x_l)??#?(bs,?low_rank,?1)#?nonlinear?activation?in?low?rank?spacev_x?=?torch.tanh(v_x)v_x?=?torch.matmul(self.C_list[i][expert_id],?v_x)v_x?=?torch.tanh(v_x)#?project?back?to?$\mathbb{R}^ozvdkddzhkzd$uv_x?=?torch.matmul(self.U_list[i][expert_id],?v_x)??#?(bs,?in_features,?1)dot_?=?uv_x?+?self.bias[i]dot_?=?x_0?*?dot_??#?Hadamard-product完整代碼:https://github.com/shenweichen/DeepCTR-Torch/blob/bc881dcd417fec64f840b0cacce124bc86b3687c/deepctr_torch/layers/interaction.py#L464-L537
復雜度
DCN-M中的cross網(wǎng)絡的時空復雜度是,采用混合低秩矩陣后(稱作DCN-Mix)的時空復雜度是,當rK<<d時會更加高效。
實驗
「RQ1:在什么情況下,顯式學習特征交叉的模型能比基于ReLU的DNN更有效?」
很多CTR的工作都在針對顯式特征交叉進行建模(傳統(tǒng)神經(jīng)網(wǎng)絡無法高效地學習到),但很多工作都只在公開數(shù)據(jù)集上進行研究,這些公開數(shù)據(jù)集上特征交叉的模式是未知的,且包含許多噪聲數(shù)據(jù)。因此,作者通過特定的特征交叉模式來生成數(shù)據(jù)集,驗證各模型的效果。
首先考慮「2階特征交叉」。按照難度由易到難的順序指定特征交叉的模式:
中的集合和權(quán)重是隨機指定的。下面我們看看各模型能否有效的學習到這些特征交叉(CN是指單獨的Cross Network):
從RMSE上來看模型擬合的效果:CN-V和CN-M效果較好。當交叉的模式變得復雜時(),所有方法的效果都有所下降,但CN-M仍然是很準確的。DNN的效果較差,即使是使用更寬、更深的DNN(DNN-large),效果仍然較差。
「1-4階特征交叉」(與實際情況較為接近):
CN-M和DNN的效果如下表所示:
當增大層數(shù)時,CN-M能夠捕捉數(shù)據(jù)中更高階的特征交叉、達到更好的效果。由于CN-M中的殘差項和偏置項,即使模型超過3層(引入了多余的特征交叉),效果也沒有變差。
「RQ2:去掉DNN后,baselines中的特征交叉部分表現(xiàn)如何?」
數(shù)據(jù)集:Criteo
更高階的模型會比2階的模型效果更好,說明在Criteo數(shù)據(jù)集上更高階的交叉也是有意義的。
在高階模型中,Cross Network取得了最好的效果
「RQ3 DCN-M的效果與baselines相比如何?能否在準確性和計算成本上取得更好的權(quán)衡?」
數(shù)據(jù)集:Criteo、ml-1m
FLOPS是模型運行時間的近似估計。大部分模型的運行時間大約是參數(shù)量#Params的2倍,但xDeepFM卻高出了一個數(shù)量級,難以落地。DCN-M效果最好,而且相對來說效率比較高;DCN-Mix進一步降低了計算成本,在準確性和計算成本上實現(xiàn)了更好的權(quán)衡。
「RQ4 cross網(wǎng)絡能否替代ReLU層?」
作者進一步對比了DNN和CrossNet的效果。由于實際生產(chǎn)環(huán)境中資源有效,往往需要限制模型大小。因此作者限制了模型的內(nèi)存占用(即參數(shù)量)。結(jié)果顯示,在相同的參數(shù)量限制下,CrossNet的效果更好。那是不是說CrossNet就能替代ReLU層?作者表示:還需要更多實驗和分析...
「RQ5 DCN-M中的各項參數(shù)是如何影響模型效果的?」
1.網(wǎng)絡層數(shù):
當cross網(wǎng)絡層數(shù)增加時,效果會穩(wěn)定提升,說明能夠捕捉更有用的交叉。但提升的速度越來越慢,說明高階特征交叉的作用是低于低階交叉的。作者也對比了一個相同規(guī)模的DNN,層數(shù)<=2時DNN效果比cross網(wǎng)絡更好,但層數(shù)更多時,差距會減小甚至出現(xiàn)反超。
2.矩陣的秩:
當秩小于64時,logloss幾乎是呈線性下降;大于64時下降速度放緩。這說明最重要的特征能夠被最大的64個奇異值所捕捉。
3.專家網(wǎng)絡的數(shù)量:
當其他參數(shù)設置為最優(yōu)時,使用更多的專家網(wǎng)絡并沒有明顯的提升,這可能是由于門控機制和優(yōu)化方法比較樸素。作者認為,如果采用更精細化的門控機制和優(yōu)化方法,會從MOE結(jié)構(gòu)中取得更大收益。
「RQ6 DCN-M能否捕捉重要的特征交叉?」
DCN-M中的權(quán)重矩陣能夠反映不同交叉特征的重要程度:
根據(jù)繪制出不同交叉特征的權(quán)重圖譜:
可以看到,模型能夠?qū)W到一些強特征,例如gender × userid,movieId × userid。
總結(jié)
DCN-M模型能夠簡單且有效地建模顯式特征交叉,并通過混合低秩矩陣在模型效果和時延上實現(xiàn)了更好的權(quán)衡。DCN-M已成功應用于多個大型L2R系統(tǒng),取得了顯著的線下及線上收益。實驗結(jié)果表明DCN-M的效果超過了現(xiàn)有SOTA方法。
參考資料
[1] Wang R, Fu B, Fu G, et al. Deep & cross network for ad click predictions[M]//Proceedings of the ADKDD'17. 2017: 1-7.
[2] Wang R, Shivanna R, Cheng D Z, et al. DCN-M: Improved Deep & Cross Network for Feature Cross Learning in Web-scale Learning to Rank Systems[J]. arXiv preprint arXiv:2008.13535, 2020.
[3] DeepCTR-Torch: https://github.com/shenweichen/DeepCTR-Torch
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統(tǒng)計學習方法》的代碼復現(xiàn)專輯 AI基礎(chǔ)下載機器學習的數(shù)學基礎(chǔ)專輯獲取一折本站知識星球優(yōu)惠券,復制鏈接直接打開:
https://t.zsxq.com/y7uvZF6
本站qq群704220115。
加入微信群請掃碼:
總結(jié)
以上是生活随笔為你收集整理的【论文解读】DCN-M:Google提出改进版DCN,用于大规模排序系统的特征交叉学习(附代码)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 豆瓣评分9.9!机器学习“蜥蜴书”最新版
- 下一篇: 【推荐系统】面向科研的推荐系统Bench