日本在线看黄a美女久草|日本动漫亚洲在线一区|日韩人妻无码免费视频|A√有码中文字幕|日韩一级片视频热久久久|一区二区三区四区精品无码在线|亚洲AV成人无码一二三app|亚洲综合图片绯色|91极品人妻在线网站|国产成人精品一区二三区四区五区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能學(xué)術(shù) 正文
發(fā)私信給知情人士
發(fā)送

0

100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型

本文作者: 知情人士 2021-06-29 16:43
導(dǎo)語:今天,AI 科技評論將為大家介紹一篇由中科院先進(jìn)所、騰訊、華南理工近日合作發(fā)表在信息檢索領(lǐng)域頂會 SIGIR 2021上的一篇論文

100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型

AI科技評論報道

編輯 | 陳大鑫

大家都知道,現(xiàn)有的序列推薦算法大多采用淺層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
而今天,AI 科技評論將為大家介紹一篇由中科院先進(jìn)所、騰訊、華南理工近日合作發(fā)表在信息檢索領(lǐng)域頂會 SIGIR 2021上的一篇論文這篇論文發(fā)現(xiàn)通過對殘差塊結(jié)構(gòu)進(jìn)行微小的修改,序列推薦模型能夠使用更深的網(wǎng)絡(luò)結(jié)構(gòu)以進(jìn)一步提升精準(zhǔn)度,也就是,推薦模型也能夠像計算機(jī)視覺領(lǐng)域的模型那樣擁有100層以上的深度并獲得最優(yōu)性能。
在此基礎(chǔ)上,論文提出一個高效且通用的框架 StackRec 來加速深度序列推薦模型的訓(xùn)練,并應(yīng)用到多種實際的推薦場景中。
100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型
論文地址:https://arxiv.org/pdf/2012.07598.pdf
代碼+數(shù)據(jù)地址:https://github.com/wangjiachun0426/StackRec

1

100層深的序列推薦模型

由于推薦系統(tǒng)中的數(shù)據(jù)稀疏性問題以及深度學(xué)習(xí)中的梯度消失、梯度爆炸問題,現(xiàn)有的序列推薦算法往往采用淺層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(一般不超過10層,例如GRU4Rec通常1層最優(yōu),SASRec通常2個殘差塊最優(yōu))。
而本文這篇StackRec論文發(fā)現(xiàn),通過對序列推薦模型的殘差塊進(jìn)行微小的修改,在殘差塊的殘差映射上添加一個權(quán)重系數(shù),極深的網(wǎng)絡(luò)也能得到有效的穩(wěn)定的訓(xùn)練,從而緩解過擬合問題。
具體來說,如圖1所示,我們可以對殘差塊中的殘差映射添加一個系數(shù),來衡量殘差映射的權(quán)重,信號傳播公式為:
100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型
其中,被初始化為0,使得殘差塊在初始化階段表示為一個單位函數(shù),從而滿足動態(tài)等距理論 [1]。論文作者在NextItNet [2]上進(jìn)行實驗,發(fā)現(xiàn)當(dāng)訓(xùn)練數(shù)據(jù)充足時,隨著網(wǎng)絡(luò)深度的增加,推薦模型的表現(xiàn)越來越好,最多可使用128層的深度并獲得最優(yōu)性能,如圖2(b)所示。
100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型
圖1 改進(jìn)后的殘差塊結(jié)構(gòu)圖
100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型
圖2 不同訓(xùn)練數(shù)據(jù)量和網(wǎng)絡(luò)深度的影響

2

StackRec算法動機(jī)

加深序列推薦模型帶來了明顯的精準(zhǔn)度提升,但訓(xùn)練時間也會受到影響。
一方面,深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練本身就需要大量的時間來進(jìn)行計算和迭代優(yōu)化;
另一方面,在現(xiàn)實應(yīng)用中,推薦系統(tǒng)承載的用戶數(shù)量和物品數(shù)量往往可達(dá)到成百上千萬,交互記錄數(shù)量可達(dá)到數(shù)百億,這樣大規(guī)模訓(xùn)練數(shù)據(jù)的使用也在一定程度上增加了特別深模型的訓(xùn)練時間。如何在不損失精準(zhǔn)度的條件下提升深度序列推薦模型的訓(xùn)練效率是一個極具學(xué)術(shù)研究意義和商業(yè)應(yīng)用價值的問題,StackRec論文對此進(jìn)行研究和探討。
論文對現(xiàn)有的深度序列推薦算法進(jìn)行觀察,總結(jié)了一些特點(diǎn)和規(guī)律:
1、現(xiàn)有的深度序列推薦模型呈現(xiàn)為“三明治”結(jié)構(gòu),包含三個模塊,底層是用于表示交互序列的嵌入表示層,頂層是用于生成預(yù)測結(jié)果概率分布的Softmax層,中間是多個隱含層(通常為殘差網(wǎng)絡(luò))。網(wǎng)絡(luò)的深度可以通過控制殘差塊的數(shù)量來改變。
2、最近的研究工作CpRec [3]展示了深度序列推薦模型的中間層參數(shù)可以通過多種方式跨層共享。例如,CpRec頂部的層/塊使用與底部完全相同的參數(shù),從而減少參數(shù)的存儲空間,實現(xiàn)模型壓縮。
3、如圖3所示,在深度序列推薦模型的中間層中,每兩個相鄰殘差塊輸出的特征圖非常相似,這潛在地表明這些塊在某種程度上具有相似的功能。
100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型
圖3 殘差塊輸出的特征圖之間的余弦相似度
這些觀察表明,中間層學(xué)習(xí)到的知識可以通過某種方式進(jìn)行共享,因為它們存在高度的相似性。
這啟發(fā)了論文作者思考,能否先訓(xùn)練一個淺層推薦模型,然后復(fù)制其參數(shù)并堆疊出一個更深的模型。通過添加新的層,或許能夠擴(kuò)展模型容量,提高推薦精準(zhǔn)度。
通過為新加的層賦予較好的初始化參數(shù),或許能夠加快模型收斂,減少訓(xùn)練時間,事實上這種現(xiàn)象在CV和NLP等模型上也存在。

3

StackRec算法框架

StackRec算法的非常簡單,就是采用對一個淺層序列推薦模型進(jìn)行多次層堆疊(Layer Stacking),從而得到一個深層序列推薦模型。
具體來說,訓(xùn)練過程包含以下步驟:
1)預(yù)訓(xùn)練一個淺層序列推薦模型;
2)對該模型進(jìn)行層堆疊,得到一個兩倍深度的模型;
3)微調(diào)這個深層模型;
4)將深層模型作為一個新的淺層模型,重復(fù)1)至3)直到滿足業(yè)務(wù)需求。
100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型
圖4 兩種按塊進(jìn)行的堆疊方式示意圖
對于步驟2),論文提出兩種按塊進(jìn)行的堆疊方式:相鄰塊堆疊(Adjacent-block Stacking)和交叉塊堆疊(Cross-block Stacking)。假設(shè)我們有一個訓(xùn)練好的擁有塊的模型(也就是淺層模型),那么我們可以通過復(fù)制這個淺層模型的參數(shù)來構(gòu)造一個擁有塊的深層模型。我們按照以下方式進(jìn)行相鄰塊堆疊:對于,深層模型的第個塊和第個塊與淺層模型的第個塊擁有相同的參數(shù)。同理,我們按照以下方式進(jìn)行交叉塊堆疊:對于,深層模型的個塊和第個塊與淺層模型的第個塊擁有相同的參數(shù)。圖4展示了相鄰塊堆疊和交叉塊堆疊這兩種堆疊方式,假設(shè)為2。這兩種堆疊方式是可以互相替代的。它們剛好對應(yīng)了CpRec中兩種按塊進(jìn)行的參數(shù)共享機(jī)制。
通過這兩種堆疊方式,步驟1)中訓(xùn)練好的淺層模型參數(shù)可以遷移到深層模型中,這對于深層模型來說是一種很好的熱啟動方式。通過步驟3)的微調(diào),深層模型能夠快速收斂,達(dá)到其最優(yōu)性能。這種方式比起標(biāo)準(zhǔn)的從頭開始訓(xùn)練方式,能夠獲得一定程度的訓(xùn)練加速效果。而且StackRec算法可以循環(huán)執(zhí)行上述堆疊過程,快速獲得一個很深的模型。
StackRec算法是一個通用的框架,可以使用NextItNet、GRec、SASRec、SSEPT等深度序列推薦模型作為基準(zhǔn)模型,提升它們的訓(xùn)練效率。論文作者使用NextItNet作為案例來闡述StackRec算法的使用,但在實驗中也報告了StackRec算法在其它模型上的性能表現(xiàn),以證明StackRec算法的通用性。
StackRec算法在三種場景中的應(yīng)用
論文作者將StackRec算法應(yīng)用到持續(xù)學(xué)習(xí)、從頭開始訓(xùn)練、遷移學(xué)習(xí)這三種常見的推薦場景中。

(1)持續(xù)學(xué)習(xí)場景

100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型
圖5 持續(xù)學(xué)習(xí)場景中StackRec算法架構(gòu)圖
在真實的生產(chǎn)環(huán)境中,推薦系統(tǒng)會經(jīng)歷兩個階段:數(shù)據(jù)匱乏階段和數(shù)據(jù)充沛階段。
在數(shù)據(jù)匱乏階段,推薦系統(tǒng)處于使用初期,缺乏訓(xùn)練數(shù)據(jù),無論是用戶和物品數(shù)量還是交互行為數(shù)量都很有限。在這個冷啟動階段,由于訓(xùn)練數(shù)據(jù)過于稀疏,使用淺層的推薦模型就足以獲得較好的性能。若使用深層的推薦模型,可能會遇到過擬合問題,而且還會導(dǎo)致無意義的計算成本。
推薦系統(tǒng)部署上線后,隨著新數(shù)據(jù)的產(chǎn)生,訓(xùn)練數(shù)據(jù)逐漸累積,推薦系統(tǒng)進(jìn)入數(shù)據(jù)充沛階段,原有的淺層模型表達(dá)能力不足,我們需要重新構(gòu)建并訓(xùn)練一個更深的網(wǎng)絡(luò)以獲得容量更大的模型,從而實現(xiàn)更好的推薦精準(zhǔn)度。
在這樣的場景中,StackRec算法就能起到很大的作用,因為它能夠從淺層模型中遷移有用的知識到目標(biāo)深層模型中,加速深層模型的訓(xùn)練,這使得我們不需要從頭開始訓(xùn)練一個模型。
更具前瞻性的是,真實的推薦系統(tǒng)會持續(xù)產(chǎn)生新的訓(xùn)練樣本,最終能夠變成終身學(xué)習(xí)(Lifelong Learning)系統(tǒng)。StackRec算法能夠輕松地訓(xùn)練一個層數(shù)更多、容量更大的推薦模型,即時應(yīng)用到終身學(xué)習(xí)系統(tǒng)中。
我們將這種推薦場景命名為持續(xù)學(xué)習(xí)(Continual Learning,CL)場景
算法 1 持續(xù)學(xué)習(xí)場景中的逐步堆疊

100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型

StackRec算法在CL場景中的使用如圖5所示。假設(shè)是訓(xùn)練樣本,是在系統(tǒng)上收集訓(xùn)練樣本的時間刻度。在初始時刻,我們用樣本訓(xùn)練一個隨機(jī)初始化的有個塊的淺層NextItNet,并將得到的模型部署上線。推薦系統(tǒng)處于冷啟動狀態(tài),模型開始提供服務(wù)。當(dāng)系統(tǒng)積累了更多的訓(xùn)練數(shù)據(jù)(包含),模型由于網(wǎng)絡(luò)較淺,無法實現(xiàn)最優(yōu)的性能。此時我們希望使用一個層數(shù)更多、表達(dá)能力更強(qiáng)的模型,于是,我們執(zhí)行StackRec的堆疊操作,將NextItNet的層數(shù)翻倍為個塊。
由于網(wǎng)絡(luò)的連接突然發(fā)生變化,深層網(wǎng)絡(luò)需要在樣本上進(jìn)行微調(diào)直到收斂,即可得到模型。真實的推薦系統(tǒng)每天都會產(chǎn)生大量新的數(shù)據(jù),上述堆疊和微調(diào)操作可以重復(fù)執(zhí)行下去。算法1展示了這樣的逐步堆疊過程。事實上,按照這樣的方式,StackRec可以被視作終身學(xué)習(xí)模型,輕松快捷地獲得一個深度模型并投入使用。
(2)從頭開始訓(xùn)練場景
在具體實踐中,不同于持續(xù)學(xué)習(xí)場景,有時候我們需要從頭開始訓(xùn)練一個新的深度序列推薦模型,而不利用舊模型的知識。在這種從頭開始訓(xùn)練(Training from Scratch,TS)場景中,StackRec算法同樣能夠起到一定程度的訓(xùn)練加速作用。當(dāng)我們需要一個深層模型時,我們可以先訓(xùn)練一個淺層模型若干步,接著使用StackRec算法將它復(fù)制并堆疊成深層模型,然后進(jìn)一步訓(xùn)練它直到收斂。
與CL場景相比,StackRec算法在TS場景中的使用有兩個不同點(diǎn):
1、淺層模型使用全部數(shù)據(jù)進(jìn)行訓(xùn)練,而非部分?jǐn)?shù)據(jù);
2、淺層模型不能訓(xùn)練直到收斂。
如果我們知道訓(xùn)練一個模型直到收斂的總步數(shù),那么我們只需要訓(xùn)練淺層模型大約其步即可。在TS場景中,StackRec算法能夠幫助我們減少模型訓(xùn)練時間,是因為訓(xùn)練淺層模型所需時間更少,速度更快,并且堆疊方式中的知識遷移也帶來一定的訓(xùn)練加速作用。
值得注意的是,淺層模型和深層模型使用相同的數(shù)據(jù)進(jìn)行訓(xùn)練,如果將淺層模型訓(xùn)練直到收斂,那么深層模型會快速過擬合,無法找到更優(yōu)的參數(shù)空間。算法 2闡述了StackRec算法在從頭開始訓(xùn)練場景中的使用。
算法 2 從頭開始訓(xùn)練場景中的逐步堆疊

100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型

(3)遷移學(xué)習(xí)場景
序列推薦模型可以通過無監(jiān)督/自監(jiān)督方式來訓(xùn)練,因此模型的輸出可以被視作個性化的用戶表示,并遷移到下游任務(wù)中,解決下游任務(wù)的用戶冷啟動問題。PeterRec是第一個展示序列推薦模型具有遷移學(xué)習(xí)能力的工作。
受此啟發(fā),StackRec論文試圖探索StackRec算法能否作為通用的預(yù)訓(xùn)練模型,有效地應(yīng)用到下游任務(wù)中。
因此,在遷移學(xué)習(xí)(Transfer Learning,TF)場景中,我們可以使用StackRec算法訓(xùn)練一個深度序列推薦模型作為預(yù)訓(xùn)練模型,然后應(yīng)用到下游任務(wù)中。根據(jù)實際業(yè)務(wù)需要,我們可以自由地選擇使用CL場景中的StackRec算法過程,或是TS場景中的StackRec算法過程。論文作者按照CL場景的算法過程來展示StackRec算法在TF場景中的表現(xiàn)。
事實證明,在TF場景中,StackRec算法同樣能夠用于加速預(yù)訓(xùn)練模型的訓(xùn)練,并且成功遷移到下游任務(wù)中,不損失預(yù)訓(xùn)練模型和目標(biāo)模型的精準(zhǔn)度。

4

實驗

論文作者在ML20、Kuaibao和ColdRec這三個真實世界的數(shù)據(jù)集上進(jìn)行大量實驗,使用MRR@N、HR@N和NDCG@N這三個評估指標(biāo)來評估模型的推薦精準(zhǔn)度,并報告了相對于基準(zhǔn)模型的訓(xùn)練加速比Speedup以分析訓(xùn)練效率。
其中StackA-Next-k:代表使用相鄰塊堆疊方式的StackRec;StackC-Next-k:代表使用交叉塊堆疊方式的StackRec,后綴-k表示所含塊數(shù)。
(1)StackRec算法在持續(xù)學(xué)習(xí)場景中的表現(xiàn)
這個實驗?zāi)M了持續(xù)學(xué)習(xí)場景中數(shù)據(jù)不斷增加的過程。由表1可見,首先,在ML20和Kuaibao這兩個數(shù)據(jù)集上,NextItNet-8 () 比NextItNet-4 () 表現(xiàn)得更好,這表明當(dāng)序列推薦模型擁有更多訓(xùn)練數(shù)據(jù)時,使用一個更深的網(wǎng)絡(luò)結(jié)構(gòu)能獲得更高的精準(zhǔn)度。其它設(shè)置(和)下的實驗結(jié)果也展示了相同的情況。
然而,從頭開始訓(xùn)練一個更深的模型需要花費(fèi)更多的計算成本和訓(xùn)練時間。而StackRec模型,包括StackC-Next-8和StackA-Next-8,實現(xiàn)了與NextItNet-8 () 同等甚至更好的推薦精準(zhǔn)度,同時獲得2.5倍的訓(xùn)練加速效果。
這表明,使用好的參數(shù)初始化方式來熱啟動深度序列推薦模型,能使模型在微調(diào)過程中快速收斂,并保持同等的精準(zhǔn)度。圖6展示了相應(yīng)的收斂過程,很明顯,在相同的層數(shù)下,StackRec比NextItNet收斂更快,推薦精準(zhǔn)度也略高。
表1 持續(xù)學(xué)習(xí)場景中的實驗結(jié)果
100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型
100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型
圖6 持續(xù)學(xué)習(xí)場景中的收斂過程
(2)StackRec算法在從頭開始訓(xùn)練場景中的表現(xiàn)
為了獲得一個32塊的StackRec,首先可以訓(xùn)練一個8塊的NextItNet(訓(xùn)練時間用黃色線表示),然后使用相鄰塊堆疊將它加深為16塊,并執(zhí)行微調(diào)(訓(xùn)練時間用橙色線表示);而后,進(jìn)一步將它加深為32塊,并訓(xùn)練直到收斂(訓(xùn)練時間用紅色線表示)。
由圖7可見,在ML20數(shù)據(jù)集上,StackRec總的訓(xùn)練時間縮短了40%(280分鐘相對于490分鐘),在Kuaibao數(shù)據(jù)集上則縮短了35%(480分鐘相對于740分鐘)。
StackRec能夠獲得訓(xùn)練加速的原因在于:
1、訓(xùn)練一個淺層模型需要的時間更少;
2、從淺層模型遷移參數(shù)來熱啟動深層模型有助于訓(xùn)練收斂。
100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型
圖7 從頭開始訓(xùn)練場景中的訓(xùn)練曲線
(3)StackRec算法在遷移學(xué)習(xí)場景中的表現(xiàn)
為了檢驗StackRec算法的遷移學(xué)習(xí)能力,我們在ColdRec的源域數(shù)據(jù)集上使用StackRec算法預(yù)訓(xùn)練一個模型,然后簡單地在最后一個隱含層后面增加一個新的Softmax層。原有的層使用預(yù)訓(xùn)練的參數(shù),新的層使用隨機(jī)初始化參數(shù),隨后,在目標(biāo)域數(shù)據(jù)集上微調(diào)所有參數(shù)。
從表2可以看出,StackRec相比于NextItNet-16獲得3倍的訓(xùn)練加速,并且它的精準(zhǔn)度在預(yù)訓(xùn)練和微調(diào)后沒有任何損失。在實際應(yīng)用中,預(yù)訓(xùn)練模型通常需要使用一個大規(guī)模數(shù)據(jù)集進(jìn)行長時間的訓(xùn)練,對高性能硬件資源和時間成本的需求阻礙了它的應(yīng)用落地,預(yù)訓(xùn)練模型的訓(xùn)練效率成為遷移學(xué)習(xí)的關(guān)鍵問題。StackRec算法能在這樣的遷移學(xué)習(xí)場景中起到很大作用。
表2 遷移學(xué)習(xí)場景中的實驗結(jié)果
100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型
(4)另外,StackRec論文還進(jìn)行了大量消融分析和通用性證明實驗,包括不同堆疊方式的比較、不同堆疊塊數(shù)的比較、不同基準(zhǔn)模型的實例化等實驗,以探究StackRec算法的合理性、有效性、靈活性和通用性。
具體實驗結(jié)果可查閱論文原文。

5

總結(jié)

StackRec論文探究了深度序列推薦模型中網(wǎng)絡(luò)深度的影響,發(fā)現(xiàn)了模型隱含層之間具有很高的相似性,然后設(shè)計了相鄰塊堆疊和交叉塊堆疊兩種堆疊方式。
并將算法實例化到NexItNet等多個序列推薦模型上,應(yīng)用到持續(xù)學(xué)習(xí)、從頭開始訓(xùn)練、遷移學(xué)習(xí)三個推薦場景中,在不損失推薦精準(zhǔn)度的條件下,實現(xiàn) 2倍以上的訓(xùn)練加速效果。
值得注意的是,StackRec僅僅適用于training階段,對于線上推理階段深度序列推薦模型加速問題,可以參考同時期工作SkipRec [4]發(fā)表在AAAI2021。
參考文獻(xiàn):
[1] Dynamical isometry and a mean field theory of cnns: How to Train 10,000- Layer Vanilla Convolutional Neural Networks. Xiao et al, ICML2018
[2] A Simple Convolutional Generative Network for Next Item Recommendation. Yuan et al. WSDM2019
[3] A Generic Network Compression Framework for Sequential Recommender Systems. Sun et al. SIGIR2020
[4] SkipRec: A User-Adaptive Layer Selection Framework for Very Deep Sequential Recommender Models. Chen et al. AAAI2021

100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型

雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)


雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

100層序列推薦模型也能被加速訓(xùn)練!這篇頂會論文帶你探索Very Deep RS模型

分享:
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說