連續遷移學習跨域推薦排序模型在淘寶推薦系統的應用
本文探討了如何在工業界的連續學習的框架下實現跨域推薦模型,提出了連續遷移學習這一新的跨域推薦范式,利用連續預訓練的源域模型的中間層表征結果作為目標域模型的額外知識,設計了一個輕量級的Adapter模塊實現跨域知識的遷移,并在有好貨推薦排序上取得了顯著業務效果。
背景
近些年隨著深度模型的應用,工業界的推薦系統的推薦效果取得了顯著的提升,隨著模型的持續優化,使得僅依賴場景內數據優化模型結構和特征變得較為困難。在淘寶這樣的大規模電商平臺上,為了滿足不同用戶的多樣化需求,存在一系列不同規模大小的推薦場景,如信息流推薦(首頁猜你喜歡)、有好貨、購后推薦、聚劃算等,這些場景共享淘寶商品體系,但在具體的選品池、核心用戶和業務目標等方面存在顯著差異,且不同場景的規模差異極大。我們的場景有好貨是淘寶精選商品的導購場景,和信息流推薦、主搜索等場景相比規模相對較小,因此如何利用遷移學習、跨域推薦等方法提升模型效果一直以來是有好貨排序模型優化的重點之一。
淘寶不同業務場景的商品和用戶雖有重合,但由于場景差異顯著,信息流推薦等大場景的排序模型直接應用于有好貨場景上效果不佳。因此,團隊在跨域推薦方向做了相當多的嘗試,包括利用預訓練-微調、多場景聯合訓練、全域學習等一系列已有方法。這些方法要么效果不夠明顯,要么在實際上線應用中存在相當多的問題。連續遷移學習項目就是針對這些方法在業務中應用的一系列問題,提出的簡單有效的新的跨域推薦方法。該方法利用連續預訓練的源域模型的中間層表征結果作為目標域模型的額外知識,并在淘寶有好貨推薦排序上取得了顯著業務效果。
本文詳細版本Continual Transfer Learning for Cross-Domain Click-Through Rate Prediction at Taobao已發布在ArXiv https://arxiv.org/abs/2208.05728。
方法
? 現有工作及其不足
分析現有的學術界和工業界的跨域推薦(Cross-Domain Recommendation, CDR)的相關工作,主要可分為兩大類:聯合訓練(Joint Learning)和預訓練-微調(Pre-training & Fine-tuning)。其中,聯合訓練方法同時優化源域(Source Domain)和目標域(Target Domain)模型。然而,這一類方法需要在訓練中引入源域的數據,而源域樣本通常規模很大,從而消耗巨大的計算和存儲資源,很多較小業務難以承擔如此大的資源開銷。另一方面,這一類方法需同時優化多個場景目標,場景之間的差異也可能帶來目標沖突的負面影響,因此預訓練-微調類方法在工業界很多場景有著更廣泛的應用。
工業界推薦系統一個重要的特點是模型訓練遵循連續學習(Continual Learning)范式,即模型需要使用最新的樣本,利用離線增量更新(Incremental Learning)或在線學習(Online Learning)等方式學習最新的數據分布。對于本文研究的跨域推薦任務而言,源域和目標域的模型都是遵循連續學習的訓練方式。我們由此提出了一個學術和工業上將有廣泛應用的新問題:連續遷移學習(Continual Transfer Learning),定義為從一個隨時間變化的領域到另一個也隨時間變化的領域的知識遷移。我們認為,現有的跨域推薦和遷移學習方法在工業推薦系統、搜索引擎、計算廣告等的應用應當遵循連續遷移學習范式,即遷移的過程應當是持續的、多次的。原因在于數據分布變化較快,只有通過連續的遷移才可以保證穩定的遷移效果。結合這一工業推薦系統的特點,我們可以發現預訓練-微調在實際應用上的問題。由于源域和目標域的場景差異,通常需要用大量樣本才可以利用源域模型微調得到一個效果較好的結果。而為了實現連續遷移學習,我們需要每隔一段時間都利用最新的源域模型重新微調,造成了非常巨大的訓練代價,這樣的訓練方式也是難以上線的。此外,利用這些大量樣本微調也可能使得源域模型遺忘掉保留的有用知識,避免模型出現災難性遺忘(Catastrophic Forgetting)問題;利用源域模型參數去替換掉原有的目標域已經學好的參數也丟棄了原有模型歷史上獲得的有用知識。因此,我們需要設計一個更加高效,適用于工業推薦場景的連續遷移學習模型。
本文提出了一個簡單有效的模型CTNet(Continual Transfer Network,連續遷移網絡)解決了上述問題。不同于傳統的預訓練-微調類方法,CTNet的核心思想是不能遺忘和丟棄所有模型在歷史上獲取的知識, 保留了原有的源域模型和目標域模型的所有參數。這些參數中保存了通過非常久的歷史數據學習得到的知識(例如淘寶有好貨的精排模型已經連續增量訓練兩年以上)。CTNet采用了簡單的雙塔結構,利用了一個輕量級的Adapter層將連續預訓練(Continually Pre-trained)的源域模型中間層表示結果映射并作為目標域模型的額外知識。不同于預訓練-微調類方法需回溯數據以實現連續遷移學習,CTNet只需要增量數據進行更新,從而實現了高效的連續遷移學習。
方法 | 無需利用大量的源域樣本 | 不受源域場景目標影響 | 只需要增量數據即可實現連續遷移學習 |
聯合訓練 | 否 | 否 | 是 |
預訓練-微調 | 是 | 是 | 否 |
本文提出的CTNet | 是 | 是 | 是 |
表1:CTNet和現有的跨域推薦模型的對比
? 問題定義
本文探討的是連續遷移學習這一新問題:
給定隨時間持續變化的源域和目標域,連續遷移學習(Continual Transfer Learning)希望能夠利用歷史或者當前獲得的源域和目標域知識提升在未來目標域上的預測準確率。
我們將連續遷移學習這一問題應用在淘寶的跨域推薦任務上。該任務具有如下特點:
- 不同推薦場景規模相差很大,可以利用較大的源域訓練的模型的知識提升目標域的推薦效果。
- 不同場景的用戶和商品共享同一個大底池。但不同場景由于精選商品池、核心用戶、圖文等展示效果不同存在較為明顯的領域差異。
- 所有推薦場景的模型都是基于最新數據持續增量訓練的。
圖1:模型部署示意圖
上圖展示了我們的方法部署上線的情景。在時刻之前源域模型和目標域模型都是只利用各自場景的監督數據單獨連續增量訓練的。從
時刻開始,我們在目標域上部署了跨域推薦模型CTNet,該模型將在不能遺忘歷史上獲取的知識的情況下,繼續在目標域數據上持續增量訓練,同時連續不斷地從最新的源域模型中遷移知識。
? 連續遷移網絡模型(CTNet)
圖2:連續遷移網絡CTNet
如圖2所示,我們提出的連續遷移網絡(Continual Transfer Network, CTNet)模型在原有的目標域的精排模型中嵌入了源域模型的全部特征及其網絡參數,形成一個雙塔的結構,其中CTNet的左塔為源塔(Source Tower),右塔為目標塔(Target Tower)。不同于常見的只利用源域模型最終打分分數或只利用一些淺層表示(如Embedding)的方法,我們通過一個輕量化的Adapter網絡將源域模型MLP的所有中間隱藏層(特別是源域MLP深層蘊含的user和item的高階特征交互信息)的表示結果映射到目標推薦域,并將結果加入到Target Tower的對應層
中(下面公式表示了
的情況)。
CTNet效果提升的關鍵就是利用了MLP中深層表征信息的遷移。借鑒Gated Linear Units(GLU)的思想,Adapter網絡采用了門控的線性層,可以有效實現對源域特征的自適應特征選擇,模型里有用的知識會做遷移,而與場景特點不符的的信息可被過濾掉。由于源域模型持續不斷的使用最新的源域監督數據進行連續預訓練,在我們的訓練過程中,Source Tower也將持續不斷的加載最新更新的源域模型參數并在反向傳播過程中保持固定,保證了連續遷移學習的高效進行。因此,CTNet模型非常適用于連續學習范式,使得目標域模型持續的學習到源域模型提供的最新知識以適應最新的數據分布變化。同時由于模型僅在目標域數據上進行訓練,保證了模型不受源域訓練目標的影響,且完全不需要源域數據訓練,避免了大量的存儲和計算開銷。此外,這樣的網絡結構采用了加法的設計方法,使得遷移過程中無需改變原始模型MLP層的維數,Target Tower完全由原有的目標域線上模型初始化,避免MLP層重新隨機初始化,可以在最大程度上保證原有模型的效果不受損害,僅需較少增量數據就可得到很好的效果,實現了模型的熱啟動。
我們定義源域模型為,原有的單域推薦的目標域模型為
,新部署的目標域跨域推薦模型為
,
為跨域推薦模型部署上線時間,該模型連續增量更新至時刻
。Adapter、Source Tower和Target Tower的參數分別為
、
和
。CTNet訓練的流程如下所示:?
圖3:CTNet的訓練
實驗
? 離線效果
表2:離線實驗結果
如上表所示,我們在有好貨業務的兩個子場景(表中Domain B和C)的對應的生產數據集上進行了一系列離線實驗,其中源域(表中Domain A)為首頁信息流推薦場景。可以看出,直接利用信息流推薦(首頁猜你喜歡)排序模型打分結果(表中的Source Domain Model)在有好貨業務上效果并不好,對比線上全量模型分別有絕對值GAUC-5.88%和GAUC-9.06%的顯著差距,證明了場景之間存在的差異。
我們還對比了一系列傳統的跨域推薦的Baseline方法,包括常見的預訓練-微調類方法和聯合訓練的方法(如MLP++、PLE、MiNet、DDTCDR、DASL等),提出的CTNet在兩個數據集上均明顯優于已有方法。對比線上全量主模型,CTNet在兩個數據集上分別取得GAUC+1.0%和+3.6%的顯著提升。我們進一步通過實驗分析了連續遷移(Continual Transfer)相比單次遷移的優勢。在CTNet的框架下,單次遷移帶來的效果提升會隨著模型的增量更新有所衰減,而連續遷移學習可以保證模型效果的穩定提升。
圖4: 連續遷移學習相比單次遷移的優勢
下表展示了傳統的預訓練-微調的效果,我們使用完整的源域模型在目標域數據上訓練。由于領域之間的差異,需要非常多的樣本(如120天樣本)才可以將模型的效果調到一個和線上全量Base模型相當的水平。為了實現連續遷移學習,我們需要每隔一段時間都利用最新的源域模型重新調整,每一次調整帶來的巨大代價也使得該方法不適用于連續遷移學習。此外,該方法并沒有在效果上超越無遷移的Base模型,主要原因是使用海量的目標域樣本訓練也使得模型遺忘掉了原有的源域的知識,最終訓練得到的模型效果也近似于一個只在目標域數據訓練的效果。在預訓練-微調的范式下,只加載一些Embedding參數的效果反而比復用所有參數更好(如表2所示)。
表3: 使用預訓練的源域模型在目標域上訓練的效果
? 線上效果
CTNet最早在2021年底完成,于2022年2月在有好貨推薦業務全量上線。在兩個推薦場景上相比上一代全量模型分別取得顯著業務指標提升:B場景:CTR+2.5%,加購+6.7%,成交筆數 +3.4%,GMV+7.7%C場景:CTR+12.3%, 停留時長+8.8%,加購+10.9%,成交筆數+30.9%,GMV+31.9%
CTNet采用了并行的網絡結構,為了節省計算資源我們共享了部分Attention層的參數和結果,使得Source Tower和Target Tower相同部分的Attention層只需計算一次。和Base模型相比,CTNet的線上響應時間(RT)基本持平。
總結和展望
本文探討了如何在工業界的連續學習的框架下實現跨域推薦模型,提出了連續遷移學習這一新的跨域推薦范式,利用連續預訓練的源域模型的中間層表征結果作為目標域模型的額外知識,設計了一個輕量級的Adapter模塊實現跨域知識的遷移,并在有好貨推薦排序上取得了顯著業務效果。這一方法雖針對有好貨的業務特點實現,但也是較為通用的建模方式,相關的建模方式和思想可以應用于諸多其他類似業務場景的優化。由于現有的CTNet的連續預訓練的源域模型僅利用信息流推薦場景,未來我們考慮將連續預訓練的源域模型升級為包括推薦、搜索、私域等更多場景在內的全域學習預訓練模型。
團隊介紹
我們是大淘寶技術-內容算法-有好貨算法團隊。有好貨是淘寶基于口碑推薦的,旨在幫助消費者發現好物的導購場景。團隊負責有好貨商品推薦和短視頻內容推薦業務的全鏈路算法優化,以提高優勢商品挖掘能力和頻道導購能力。目前主要的技術方向為連續遷移學習跨域推薦、無偏學習,推薦系統全鏈路建模、序列建模等。在創造業務價值的同時,我們還在SIGIR等國際會議上發表數篇論文,主要成果有PDN,UMI,CDAN等。