自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

谷歌KDD'23工作:如何提升推薦系統(tǒng)Ranking模型訓練穩(wěn)定性

開發(fā) 架構(gòu)
本文以Youtube中的ranking模型為例,進行推薦系統(tǒng)ranking模型訓練穩(wěn)定性的分析。整體模型如下圖所示,包括特征輸入層、多任務共享層、每個任務私有參數(shù)層,整體包括CTR預估、CVR預估等多個任務聯(lián)合訓練。

谷歌在KDD 2023發(fā)表了一篇工作,探索了推薦系統(tǒng)ranking模型的訓練穩(wěn)定性問題,分析了造成訓練穩(wěn)定性存在問題的潛在原因,以及現(xiàn)有的一些提升模型穩(wěn)定性方法的不足,并提出了一種新的梯度裁剪方式,提升了ranking模型的訓練穩(wěn)定性。下面給大家詳細介紹一下這篇文章。

1、模型背景

本文以Youtube中的ranking模型為例,進行推薦系統(tǒng)ranking模型訓練穩(wěn)定性的分析。整體模型如下圖所示,包括特征輸入層、多任務共享層、每個任務私有參數(shù)層,整體包括CTR預估、CVR預估等多個任務聯(lián)合訓練。

圖片圖片

什么樣的訓練過程是穩(wěn)定性比較差的呢?如下圖所示,model-a的loss和auc曲線被文中稱為micro-diverged,即訓練過程中出現(xiàn)loss的突增,伴隨著auc下降,但是繼續(xù)訓練模型會恢復回來,最終不會影響模型效果。model-b的loss和auc曲線被文中稱為fully-diverged,即模型訓練過程中出現(xiàn)大幅度的loss增加和auc下降,并且后面也不會再恢復了,對模型的性能影響很大。本文更關注的是后面fully-diverged這種情況。

圖片圖片

2、影響穩(wěn)定性的因素

為什么推薦系統(tǒng)中的模型,存在這樣的訓練穩(wěn)定性問題呢?訓練過程不穩(wěn)定,本質(zhì)原因在于模型在優(yōu)化到一個比較陡峭的超平面時使用了一個較大的學習率,導致模型參數(shù)的更新出現(xiàn)嚴重問題,文中原話是“step size being too large when loss curvature is steep”。在推薦系統(tǒng)的ranking模型中,這種現(xiàn)象更為常見,主要由于以下幾個原因:

多任務學習:推薦系統(tǒng)中的ranking模型經(jīng)常采用多任務學習的方式,這導致當一個任務的梯度出現(xiàn)問題時,對共享參數(shù)層也會造成很大影響,增加了模型訓練不穩(wěn)定的可能性;

Sequential training:ranking模型經(jīng)常需要進行ODL或者增量更新,以適應線上數(shù)據(jù)分布的實時變化。這就導致模型的訓練數(shù)據(jù)一直是動態(tài)變化的,模型需要不斷擬合變化的數(shù)據(jù)分布,給模型的收斂帶來更大的不確定因素;

模型尺寸和輸入特征:相比其他領域的模型,ranking模型需要更多類型的輸入特征,并且目前的趨勢是不斷增大模型尺寸,這些都可能導致模型的優(yōu)化超平面變得更加陡峭導致難以收斂。

下圖展示了在相同的學習率下,loss平面的陡峭程度對于梯度更新的影響,越陡峭的超平面,以一個不適配(較大)的學習率更新會導致loss震蕩難以收斂。

圖片圖片

3、現(xiàn)有方法

為了解決這類訓練不穩(wěn)定問題,業(yè)內(nèi)已經(jīng)有一些相應的解決方案。例如,針對上述Sequential training需要適配數(shù)據(jù)分布而帶來的不收斂問題,可以采用滑動時間窗口的方式生成訓練樣本。每次讓模型使用滑動窗口內(nèi)的數(shù)據(jù)進行訓練,通過增大滑動窗口的尺寸,可以讓每輪訓練的模型見到的數(shù)據(jù)分布差異沒那么大,平滑的更新數(shù)據(jù)分布,緩解模型需要適配數(shù)據(jù)分布劇烈變化的問題。

不過,從本質(zhì)原因“step size being too large when loss curvature is steep”來講,一個治標治本的方法是直接優(yōu)化梯度更新的過程,對于陡峭的loss超平面使用更小的學習率,使用Hessian矩陣最大特征值計算,也可以近似利用梯度代替。Adagrad和梯度裁剪就是這類方法中的經(jīng)典工作。Adagrad通過每個參數(shù)歷史的梯度更新情況進行累計,來調(diào)整每個參數(shù)的學習率,歷史更新較多的參數(shù),學習率設置的更小一些,梯度更新公式如下所示:

圖片圖片

而梯度裁剪更加直接,如果計算的梯度大于一定的閾值,就將梯度縮?。ㄈ缦旅婀剑诵氖强s放系數(shù)sigmoid的計算,根據(jù)閾值和梯度的L2范數(shù)比值而來,梯度的L2范數(shù)太大就縮小梯度)。

圖片圖片

如何設計梯度裁剪中的閾值呢?后續(xù)的工作Adaptive Gradient Clipping提出了一種自動設計閾值的方式,核心思路是梯度的范數(shù)與模型參數(shù)范數(shù)比值不能太大,因此引入這一項幫助個性化調(diào)節(jié)不同參數(shù)的梯度:

圖片圖片

4、本文方法

雖然上述梯度裁剪方法有助于提升ranking模型訓練穩(wěn)定性,但是文中發(fā)現(xiàn)這類方法對于推薦系統(tǒng)中的ranking模型并不能起到有效作用。經(jīng)過分析,文中發(fā)現(xiàn),之前的梯度裁剪方法在梯度突然暴增的時候控制力不夠。文中提出了Clippy,主要修改的是梯度裁剪中的縮放系數(shù),相比原來的梯度裁剪主要有2個改進點,一方面將L2 norm改成了無窮范數(shù)(取各個維度L1最大值),同時對于分子改成了上文adagrad中的r,即歷史梯度的累積。

圖片圖片

這樣修改的原因為,如下圖所示,在step-b到step-c損失函數(shù)突增,梯度對應變大,但是之前的梯度裁剪方法得到的縮放系數(shù)并不足以控制梯度。將L2范數(shù)改成無窮范數(shù),可以方便捕捉某一個維度上的突變,對某一維度的梯度突增有更強的敏感性。另外,將分子變?yōu)槔塾嬏荻龋屇P透鶕?jù)累計梯度而不是當前梯度調(diào)整閾值,更適配Adagrad對模型參數(shù)的更新過程。通過這種方式,如下圖第二列所示,對梯度的約束更加強烈,可以有效限制梯度過大導致的訓練不穩(wěn)定問題。

圖片圖片

最后,文中給出了Clippy加入到Adagrad更新的整體算法流程,如下表:

圖片圖片

通過下面的實驗對比可以發(fā)現(xiàn),使用了Adagrad+Cliipy后,模型的訓練過程更加穩(wěn)定:

圖片 圖片

責任編輯:武曉燕 來源: 圓圓的算法筆記
相關推薦

2020-07-28 08:07:14

ElasticSear

2025-02-06 11:44:56

2013-05-23 16:00:20

負載均衡網(wǎng)絡優(yōu)化網(wǎng)絡升級

2022-09-15 08:33:27

安全生產(chǎn)系統(tǒng)Review

2012-04-12 13:48:37

無線網(wǎng)絡

2023-04-26 18:36:13

2011-12-21 09:46:46

程序員

2020-07-13 08:10:13

軟件設計系統(tǒng)

2011-07-28 16:17:10

2018-06-27 16:54:11

紅帽Linux 6.10企業(yè)

2010-08-11 09:08:51

KDE 4.5.0

2022-05-05 19:20:24

數(shù)據(jù)系統(tǒng)穩(wěn)定性峰會數(shù)據(jù)系統(tǒng)

2020-02-27 08:00:41

混沌工程系統(tǒng)失控條件

2024-12-12 09:18:21

2022-02-24 08:18:12

穩(wěn)定性高可用可用性

2022-05-12 18:09:18

Kubernetes公有云

2022-05-19 08:47:31

ITCIO企業(yè)

2021-01-18 09:43:58

Node.js前端服務端

2023-06-30 08:43:36

2020-07-29 10:20:24

技術(shù)研發(fā)指標
點贊
收藏

51CTO技術(shù)棧公眾號