胡開喜 李 琳 吳小華,2 解 慶 袁景凌
隨著互聯(lián)網(wǎng)、5G 等信息技術(shù)的快速發(fā)展,信息系統(tǒng)記錄了大量的用戶行為,例如購物[1-2]、點擊瀏覽[3-5]、移動位置[6-7]等.人們將用戶行為按發(fā)生的時間先后順序排列,可構(gòu)成隱含用戶興趣的行為序列[8-10].序列推薦(Sequential recommendation,SR)旨在建模行為序列中動態(tài)興趣的演變關(guān)系,從候選集中預(yù)測下一個行為,已廣泛用于各類Web 應(yīng)用,幫助人們解決信息過載的問題.作為一項基礎(chǔ)技術(shù),序列推薦備受學術(shù)界和工業(yè)界關(guān)注,并逐漸推廣到更多應(yīng)用場景.
近年來,深度學習通過層次化地建模序列數(shù)據(jù)中行為演變的特征表示,在捕獲用戶興趣方面表現(xiàn)出了優(yōu)越性[1,3,5,10-11].然而,現(xiàn)實世界中用戶與行為的交互是在該用戶當時興趣的影響下產(chǎn)生的,具有動態(tài)不確定的特點[12-15].以圖1 中的電影推薦為例,假設(shè)用戶按時間順序觀看了不同類型的電影(喜劇片m1,恐怖片m2,愛情片m3),則歷史的行為序列反映出了多種用戶興趣,導致下一個行為的產(chǎn)生存在多種可能性(恐怖片m4 或喜劇片m5).在學習興趣演變關(guān)系的過程中,采用固定向量表示的單模型通常不足以建模行為背后隱含的動態(tài)興趣,使模型的精度提升有限.此外,用戶觀影行為較少時,通過行為序列分析的用戶興趣也會更加不確定.在行為序列提供信息有限的情況下,如何通過建模用戶動態(tài)興趣緩解模型不確定性[16],是一個具有挑戰(zhàn)性的問題.
圖1 用戶動態(tài)興趣在潛在空間中的表示與推斷Fig.1 The representation and inference of dynamic interests in latent representation spaces
目前,大多數(shù)序列推薦方法[1,9,17]通過建模行為序列在特征空間中的固定向量表示,并引入額外的用戶信息來幫助預(yù)測模型學習用戶興趣.在不引入額外信息的情況下,最近的研究工作[13-15]利用分布函數(shù)表示用戶興趣,使學習到的興趣表示可以覆蓋更大的行為序列空間.如圖1(a)所示,每個觀影行為隱含的動態(tài)興趣都可以用一個分布函數(shù)來表示,最后通過積分計算推斷的興趣分布表示與觀影行為向量表示(三角形)之間的距離預(yù)測下一個行為.但是在模型參數(shù)中引入分布函數(shù),主要存在以下不足:1) 通常需要預(yù)設(shè)一種先驗的分布形式,但只有少數(shù)幾種分布可以求出積分的閉式解,對更復雜的分布需要近似求解[15];2) 分布函數(shù)傾向于在有限的函數(shù)空間(興趣表示空間的實線上)探索用戶興趣,對模型精度的提升有限[18-19].
針對上述分布函數(shù)的不足,計算機視覺領(lǐng)域的工作[20-22]通常采用多模型集成的方式建模圖像中的不確定性,并驗證了隨機初始化和擾亂數(shù)據(jù)樣本的順序就足以獲得較好的性能[20].如圖1(b)所示,采用多模型集成建模動態(tài)興趣時,模型可以在不同的訓練迭代中探索分布函數(shù)(虛線)以外的點,并通過融合不同的模型推斷更優(yōu)的固定向量來表示用戶興趣.同時,為了提升模型在測試階段的效率,計算機視覺[22]、自然語言處理[23-24]和推薦[25-26]等領(lǐng)域的工作都表明知識蒸餾(Knowledge distillation,KD)[27]是一種有效的融合方式,可以通過拉近兩個模型興趣表示的距離,將多個教師模型的知識遷移到學生模型.但是,傳統(tǒng)的知識蒸餾將教師模型預(yù)測的概率分布作為學生模型學習的軟標簽[28],導致學生模型更傾向于從教師模型輸出的高置信度樣本中獲取知識[29-30].由于用戶的行為序列具有動態(tài)不確定的特點[16],在訓練過程中如果教師模型學習的用戶興趣表示距離真實發(fā)生的下一個行為(Ground-truth)較遠就會使模型產(chǎn)生低置信度,而低置信度的樣本中通常也包含可被加強訓練的樣本(潛在樣本),可以提供更加豐富的信息,幫助模型學習分類決策邊界即類間信息[31].傳統(tǒng)的知識蒸餾未能有效地從這些潛在樣本中學習動態(tài)興趣,影響了推薦的精度.
為了緩解上述問題,本文提出一種同伴知識互增強下的序列推薦方法(Sequential recommendation enhanced by peer knowledge,PeerRec).該方法首先設(shè)計了多個結(jié)構(gòu)相同但隨機初始化參數(shù)不同的同伴網(wǎng)絡(luò),使每個同伴網(wǎng)絡(luò)學習差異化的興趣固定向量表示.其次,按照課程學習[32]由易到難的認知過程,本文通過第1 階段的知識蒸餾[27]關(guān)注同伴輸出的高置信度樣本,以模仿訓練的方式拉近興趣表示的距離.然后,在此基礎(chǔ)上提出了第2 階段基于刻意訓練[33]的互相學習,通過動態(tài)最小組策略將多個同伴組成學習共同體,從低置信度樣本中挖掘過濾噪音后的潛在樣本,推動模型在解空間中探索更優(yōu)的興趣表示.相比于最好的基線方法,本文提出的方法在推薦性能和在線推斷效率上均具有優(yōu)勢.總體而言,本文的主要貢獻如下:
1) 分析并總結(jié)了序列推薦中用戶動態(tài)興趣導致行為序列具有不確定的特點,提出了一種同伴知識互增強下的序列推薦方法,利用多個同伴建模差異化的用戶興趣固定向量表示,并按照人類由易到難的認知過程互相學習,共同提升序列推薦的精度;
2) 提出了一種基于刻意訓練[33]的互相學習方法,在知識蒸餾的基礎(chǔ)上進一步通過動態(tài)最小組策略增強模型對潛在樣本中動態(tài)興趣的學習;
3) 公開的ML-1m、LastFM和Toys 數(shù)據(jù)集上的實驗結(jié)果表明,提出的PeerRec 方法相對于最新的序列推薦方法在NDCG@5 指標上分別提升了9.02%、5.03%和1.31%,且具有良好的推薦效率.
本文內(nèi)容安排如下: 第1 節(jié)為現(xiàn)有序列推薦方法及以知識蒸餾為代表的知識遷移方法的概述;第2 節(jié)介紹問題定義、總體框架及PeerRec 模型的網(wǎng)絡(luò)結(jié)構(gòu);第3 節(jié)重點闡述同伴知識互增強的訓練,并進一步討論模型在互相學習過程中的梯度變化;第4 節(jié)介紹數(shù)據(jù)集、實驗設(shè)置、評價指標及分析結(jié)果;第5 節(jié)總結(jié)全文工作并展望未來的研究方向.
本節(jié)首先介紹目前序列推薦中建模用戶動態(tài)興趣的方法,然后闡述以知識蒸餾為代表的知識遷移方法以及該類方法與提出的基于刻意訓練[33]的互相學習方式的異同.
在現(xiàn)有工作中,動態(tài)興趣的建模主要分為基于固定向量表示的方法和基于分布函數(shù)的方法.
基于固定向量表示的方法主要通過引入外部的信息來增強單模型學習興趣的固定向量表示.例如,Song 等[34]對點擊率預(yù)估中用戶行為和額外的畫像特征進行不同階次的組合.Wang 等[9]利用超圖卷積建模不同時間段內(nèi)用戶與物品的動態(tài)關(guān)聯(lián),并利用多頭自注意力融合不同時刻的用戶興趣.STKG(Spatial-temporal knowledge graph)模型[6]通過構(gòu)建一個帶權(quán)重的興趣點連接圖和輔助的空間信息來優(yōu)化節(jié)點的表示.BERT4Rec[17]雖然沒有引入額外信息,但增強了對雙向序列信息的建模.此外,模型去噪的方法[11,35]通過過濾動態(tài)性較高的噪音用戶,使模型捕獲更加普遍的用戶興趣,但也會丟失一部分有效的信息.例如Wang 等[11]利用模型自身的響應(yīng)來剔除損失較大的噪聲樣本.Qin 等[35]通過對比用戶偏好的估計,設(shè)計了一種去噪生成器.
近年來,基于分布函數(shù)的方法[12-15]在不引入額外信息的情況下建模動態(tài)興趣,引起了研究人員的廣泛關(guān)注.Jiang 等[15]在模型輸入的嵌入矩陣中引入高斯分布 N(μ,Σ),擴大了物品和用戶的表示空間.Neupane 等[12]結(jié)合元證據(jù)學習建模輸出分布的參數(shù).最近,Fan 等[13-14]在嵌入矩陣引入高斯分布的基礎(chǔ)上,進一步采用Wasserstein 距離1一種基于最優(yōu)傳輸理論衡量兩個分布間距離的度量方式,目前只在一維分布、高斯分布等少數(shù)幾種分布上存在閉式解.計算自注意力層和預(yù)測層中分布的距離.
上述基于單模型固定向量表示的方法假設(shè)動態(tài)興趣是確定的,并通過信息引入、去噪等方式優(yōu)化向量表示.基于分布函數(shù)的方法利用先驗分布建模了動態(tài)興趣,但實踐中對預(yù)設(shè)分布的近似求解復雜,性能提升效果并不如模型集成的方法顯著[18-19].受分布函數(shù)和知識蒸餾的啟發(fā),本文采用多個同伴網(wǎng)絡(luò)以互相學習的方式共同探索更佳的興趣固定向量表示,提升序列推薦的精度.
知識蒸餾起源于模型壓縮[27,36-37]任務(wù),主要基于學生向教師模仿的策略,在訓練階段將從多個模型提煉的知識遷移到單模型,提升測試階段的效率.假設(shè)pt和ps為教師模型和學生模型在一個樣本上預(yù)測的概率分布,則教師-學生單向模仿的梯度為
其中,C為類別的數(shù)量,pt,*和ps,*分別代表教師和學生對正例輸出的概率,即置信度,pt,i和ps,i分別代表教師和學生對第i個負例輸出的概率,y*是正例樣本的標簽,*和i分別為概率分布中正例和負例的索引.
現(xiàn)有工作表明,式(1)的第1 項和第2 項在模型訓練中具有不同的作用[29,38].從第1 項中可以看出,教師模型對正例輸出的置信度pt,*與學生模型對樣本學習的重要性權(quán)重有較大的關(guān)聯(lián),反映了樣本學習的難度.如果教師模型輸出的置信度較大(pt,*≈1),則學生模型相當于從硬標簽y*中學習,樣本的梯度貢獻較大.反之,教師模型輸出的置信度較小,則會在當前訓練批次的全局訓練信號上減少該樣本的貢獻.第2 項則更多地反映了樣本內(nèi)部負例與正例的相似性信息.因此,在模仿過程中,學生模型會更傾向于從教師模型輸出的高置信度樣本中獲取知識[29-30].
后續(xù)的工作通過融合多個模型緩解建模中的不確定性,并從學習方式和教師選擇上優(yōu)化了融合效果.文獻[39-40]優(yōu)化了離線學習方式,通過兩個結(jié)構(gòu)相同但參數(shù)不同的深度網(wǎng)絡(luò)互相學習擴大參數(shù)的搜索空間,減少模型因初始化導致的不確定性.同一網(wǎng)絡(luò)在不同的訓練階段上自蒸餾[29]也是一種特殊的互相學習方式.此外,通過增加教師模型的數(shù)量來提升學生模型是一種直觀的方式.其中,平均多個不同來源模型的輸出,是一種最直觀的融合方式[39],但會損失一部分多樣性.隨后,Chen 等[41]引入了輔助和領(lǐng)導的概念來引導互相學習.Zhu 等[25]引入了門控機制動態(tài)賦予教師不同的權(quán)重.Kang等[26]認為注意力加權(quán)的方式會引入弱關(guān)聯(lián)信息,因此,每次只從多個教師中選擇一個專家傳遞知識.
但知識蒸餾傾向于從教師模型輸出的高置信度樣本中獲取知識,未能有效發(fā)掘可進一步學習的低置信度樣本.不同于模仿策略,刻意訓練[33]從另一個角度闡述了教師-學生傳遞知識的方式,認為教師針對性地給學生訓練有待提高(低置信度)的樣本,可以進一步提升學生模型.因此,按照人類課程學習[32]由易到難的認知過程,本文在知識蒸餾的基礎(chǔ)上進一步提出了第2 階段基于刻意訓練的互相學習,加強模型從低置信度的潛在樣本中學習動態(tài)興趣.
本文的核心思想是集成多個具有差異的同伴網(wǎng)絡(luò)建模動態(tài)興趣的固定向量表示,同時通過加強同伴在訓練階段的知識傳遞,優(yōu)化自身對行為序列的建模,共同提升推薦精度.因此,本文提出了一種同伴知識互增強下的序列推薦方法(PeerRec).該方法主要以目前主流的多頭自注意力網(wǎng)絡(luò)為主體,設(shè)計了包含多同伴網(wǎng)絡(luò)的模型結(jié)構(gòu)和同伴知識互增強的兩階段訓練.
如圖2 所示,PeerRec 模型主要由行為序列嵌入層、用戶興趣表示層和行為預(yù)測層組成.用戶興趣表示層需要學習輸入序列中被掩蓋行為的用戶興趣固定向量表示,并通過行為預(yù)測層輸出其與候選集中行為匹配的概率分布.在訓練階段,用戶興趣表示層中的多個同伴網(wǎng)絡(luò)分別建模用戶興趣,并按照人類由易到難的認知過程開展基于知識蒸餾和刻意訓練的兩階段的互相學習(如圖中虛線箭頭所指向的p(1)和p(2)).由于多個同伴網(wǎng)絡(luò)知識互相傳遞,在后續(xù)測試及工業(yè)部署階段,可以僅保留一個同伴網(wǎng)絡(luò),提升推薦系統(tǒng)的在線推斷效率.
圖2 PeerRec 模型的網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 The architecture of our proposed PeerRec
值得注意的是,互相學習通常需要雙方有一定的共識和足夠的差異性.現(xiàn)有工作表明[20,39],隨機初始化就足以使模型獲得多樣性,學習具有差異的用戶興趣固定向量表示.因此,本文在設(shè)計多個同伴網(wǎng)絡(luò)時,采用了共享的嵌入矩陣和相同的序列學習結(jié)構(gòu)促使同伴網(wǎng)絡(luò)對序列關(guān)系的捕獲方式形成共識,并通過不同的隨機初始化方式確保同伴網(wǎng)絡(luò)具備捕獲差異化用戶興趣的能力.
2.4.1 用戶興趣表示學習
由于多頭自注意力機制[42]可以捕獲不同子空間的信息,提升模型的表達能力.本文在現(xiàn)有工作[17]的基礎(chǔ)上,設(shè)計T個結(jié)構(gòu)相同但隨機初始化參數(shù)不同的自注意力同伴網(wǎng)絡(luò),學習用戶的興趣表示.如圖2 所示,任意一個同伴網(wǎng)絡(luò)都由L層編碼器組成.編碼器包含一個多頭自注意力子層和前饋網(wǎng)絡(luò)子層,其中第l層編碼器的輸入為Hl-1,輸出為Hl.
多頭自注意力子層將輸入的編碼矩陣Hl-1同時映射到M個子空間,得到M個注意力頭的表示矩陣{hd1,···,hdm,···,hdM},然后將這些矩陣拼接在一起,輸出該過程的定義為
為了引入更多的非線性因素,多頭自注意力子層后面連接了兩層前饋網(wǎng)絡(luò),具體為
2.4.2 興趣表示與同伴知識互增強的關(guān)系
由于不同的同伴網(wǎng)絡(luò)可以學習到具有差異的用戶興趣表示,通過行為預(yù)測層計算的概率分布p(j)也會反映出差異化的知識.因此,本文設(shè)計了一種同伴知識互增強訓練方式,通過同伴間互相交換概率分布p()j,優(yōu)化興趣表示的學習.
如圖2 右側(cè)所示,經(jīng)過L層同伴網(wǎng)絡(luò)迭代的序列特征學習后,被掩蓋的下一個行為的用戶興趣表示向量輸入到行為預(yù)測層.該層包含一個在同伴網(wǎng)絡(luò)間共享的前饋網(wǎng)絡(luò)O和與行為序列嵌入層共享的行為嵌入矩陣U.在第j個同伴網(wǎng)絡(luò)中,被掩蓋行為的概率分布p()j的計算過程為
為了融合多個同伴網(wǎng)絡(luò)對用戶興趣的建模,提升測試階段單模型的推薦性能,本文結(jié)合課程學習[32]與知識遷移技術(shù),設(shè)計了由易到難的兩階段同伴知識互增強訓練.
1) 第1 階段的知識蒸餾利用教師模型輸出的概率分布作為軟標簽,通過相對熵關(guān)注高置信度樣本,拉近同伴之間興趣表示的距離.借鑒文獻[39-40]中的定義,對于第i個被掩蓋的待預(yù)測行為,第j個同伴網(wǎng)絡(luò)在第1 階段的損失函數(shù)定義為
2) 第2 階段基于刻意訓練的互相學習以第1階段知識蒸餾學習的模型參數(shù)作為新的初始化參數(shù),繼續(xù)從低置信度樣本中挖掘出可被加強訓練的潛在樣本,增強模型對用戶動態(tài)興趣的建模.刻意訓練理論[33]認為教師應(yīng)該找到一系列學生有待加強的知識,并進行強化訓練.基于此,本文設(shè)計了動態(tài)最小組策略(第3.1 節(jié))和同伴間刻意訓練的損失函數(shù)(第3.2 節(jié)).
本文認為低置信度的樣本中通常包含有待加強的潛在樣本,而挖掘?qū)κ苡枌W生模型有幫助的潛在樣本的難點在于: 深度學習模型具有強大的數(shù)據(jù)擬合能力,可以在沒有捕獲有效序列特征的情況下暴力擬合樣本,在后續(xù)訓練過程中也會發(fā)生災(zāi)難性遺忘[43],僅憑受訓學生模型本身輸出的概率分布很難充分挖掘出需要關(guān)注的潛在樣本.因此,本文首先設(shè)計了動態(tài)最小組策略 Ω(·),利用多個同伴共同挖掘低置信度的潛在樣本.
如圖3 所示,動態(tài)最小組策略 Ω(·) 主要分為兩步.
圖3 基于刻意訓練的互相學習Fig.3 An illustration of deliberate practice based mutual learning
步驟 1.為了盡可能多地挖掘出低置信度的樣本,本文收集T-1 個同伴網(wǎng)絡(luò)對正例預(yù)測概率最小的概率分布并重構(gòu)為一個偽同伴.對于第i個被掩蓋的待預(yù)測行為,第j個同伴網(wǎng)絡(luò)的偽同伴定義為
步驟 2.由于低置信度樣本通常也包括噪音樣本,對這些樣本的過度擬合會影響模型的泛化性能[11].本文進一步假設(shè)如果一個序列不能被所有同伴網(wǎng)絡(luò)預(yù)測正確,那么它很可能是噪音且損失相對較大[11].因此,本文在第2 階段的刻意訓練中減少這些樣本對模型學習的貢獻,進一步將偽同伴在樣本i上的概率分布重新定義為
其中,|I|是訓練批次中樣本的總數(shù)量.代表任意一個同伴網(wǎng)絡(luò)在樣本i上輸出正例的概率,rank(·)是訓練批次中樣本i的交叉熵損失經(jīng)降序排列后的名次.考慮到過度地過濾不能被所有同伴網(wǎng)絡(luò)預(yù)測正確的樣本反而會丟失重要信息,不利于建模動態(tài)興趣,本文還設(shè)置了一個超參數(shù)β來控制過濾噪音樣本的比例.
如圖3 中的三角形所示,為了使受訓學生模型注意到動態(tài)最小組策略篩選出的潛在樣本,本文利用偽同伴的概率分布計算受訓學生模型訓練的樣本權(quán)重,即刻意訓練的強度.對于第j個同伴網(wǎng)絡(luò),其同伴間刻意訓練的損失函數(shù)在正例上的定義為
式(8)中的刻意訓練損失函數(shù)主要由偽同伴和模型自身輸出的概率兩部分構(gòu)成,可將多個同伴網(wǎng)絡(luò)組成一個學習共同體,從同一批次樣本的全局訓練信號上感知潛在的樣本.其包含如下性質(zhì):
性質(zhì) 2.模型自身和偽同伴響應(yīng)不一致,則損失函數(shù)的大小介于性質(zhì)1 的兩種情況之間.相對于同一個訓練批次內(nèi)的其他樣本,正確響應(yīng)的模型為避免暴力擬合或災(zāi)難性遺忘[43]會增加刻意訓練強度;錯誤響應(yīng)的模型為關(guān)注損失更高的其他樣本,會降低刻意訓練強度.因此,模型對樣本的學習會同時考慮自身和同伴的學習狀態(tài),從全局角度優(yōu)化訓練強度,使模型更好地學習用戶興趣表示.
相似地,為避免候選集中高度相似的行為對預(yù)測產(chǎn)生干擾,本文對所有負例的損失函數(shù)定義為
最后,本文結(jié)合傳統(tǒng)交叉熵損失(圖3 中的圓形)和同伴間刻意訓練的損失函數(shù),計算最終的損失函數(shù)為
其中,α為平衡傳統(tǒng)交叉熵損失和同伴間刻意訓練損失的超參數(shù).
為了更加直觀地解釋同伴網(wǎng)絡(luò)是如何結(jié)合偽同伴和模型自身輸出的概率建模動態(tài)的用戶興趣,本節(jié)進一步探討同伴間刻意訓練的損失函數(shù)對第j個同伴網(wǎng)絡(luò)梯度變化的影響.對于同伴網(wǎng)絡(luò)j中的正例損失函數(shù),式(8)中關(guān)于模型最后一層輸出的梯度推導如下:
因此,本文提出的同伴間刻意訓練的損失函數(shù)可以在學習過程中動態(tài)地縮放梯度.在訓練階段,同伴網(wǎng)絡(luò)會同時考慮其他網(wǎng)絡(luò)在上一輪學習中輸出的概率分布,結(jié)合不同的用戶興趣表示來調(diào)整自身下一輪學習的方向,直到彼此都預(yù)測正確.
為了評估提出的序列推薦模型PeerRec 的有效性,本文設(shè)置了以下4 個研究問題(Research question,RQ):
RQ 1.PeerRec 模型與目前最新的序列推薦模型相比,推薦精度如何?
RQ 2.本文提出的基于同伴知識互增強的訓練方式,對模型準確率的影響有多大?
RQ 3.增加同伴網(wǎng)絡(luò)的數(shù)量是否能進一步提升PeerRec 模型的推薦精度?
RQ 4.本文提出的PeerRec 模型是否具有良好的在線推薦效率?
針對RQ 1,本文將對比目前最新的序列推薦模型;針對RQ 2,本文將通過拋棄實驗設(shè)計不同的變體,并觀察模型的性能變化;針對RQ 3,本文通過引入更多的同伴網(wǎng)絡(luò),研究模型的性能變化;針對RQ 4,本文在不同數(shù)據(jù)集上與最新的序列推薦模型對比,觀察模型的運行速率.此外,本文還對PeerRec 模型的參數(shù)敏感性和不同初始化下的穩(wěn)定性進行了討論和分析.
通常,用戶的動態(tài)興趣與序列中交互行為的數(shù)量存在較大的相關(guān)性.一方面,單個用戶的交互行為較多,更容易包含多樣化的用戶興趣;另一方面,單個用戶的交互行為較少,可反映出有效信息不足導致的不確定性.因此,本文以平均序列長度為準則,選取現(xiàn)有工作[1,14,17]中廣泛使用的3 個公開推薦數(shù)據(jù)集(ML-1m 電影評分[17]、LastFM 音樂藝術(shù)家推薦[1]和Toys 亞馬遜評論子類別[1])進行了相關(guān)實驗.數(shù)據(jù)集的具體情況如表1 所示.
表1 實驗集數(shù)據(jù)統(tǒng)計表Table 1 Statistics of dataset
借鑒文獻[1,17]中的數(shù)據(jù)預(yù)處理方式,本文將用戶行為按發(fā)生的時間先后順序排列,并剔除了序列長度小于5 的不活躍用戶,將每個序列中的最末一個行為作為測試集,倒數(shù)第二個行為作為驗證集,其余部分構(gòu)成訓練集.最大序列長度N設(shè)置為200.為了保證序列的長度在最大范圍內(nèi),本文將較長的序列從右到左分割成多個子序列.
本文使用Adam和線性衰減學習率(初始值為1 × 10-4) 訓練模型,訓練的樣本批量大小設(shè)置為256.在同伴網(wǎng)絡(luò)中,本文設(shè)置多頭自注意力層數(shù)L為2,頭數(shù)R為2,嵌入向量表示的維度d為64,中間隱藏層維度為256.本文采用目前主流的網(wǎng)格搜索方式[9,14],通過驗證集在{0,0.1,0.2,0.3,···,0.9,1.0},{0,0.01,0.02,0.03}和{0,0.5,1.0,1.5,2.0}范圍內(nèi)尋找同伴知識互增強訓練超參數(shù)α、β和γ的最佳組合,并報告其在測試集上的性能.最后,本文在ML-1m、LastFM和Toys 數(shù)據(jù)集上得出的最佳參數(shù)組合 (α,β,γ) 分別為 (0.5,0,2.0),(0.5,0.01,1.0)和(0.5,0.02,1.0).
本文的實驗環(huán)境配置如下: Intel(R) Xeon(R)CPU E5-2650 v4 @ 2.20 GHz,NVIDIA TITAN Xp GPU (顯存12 GB),11.0 版本的CUDA.實驗代碼采用2.7 版本的Python和1.14.0 版本的Tensorflow 實現(xiàn)PeerRec 模型.
根據(jù)常用的評估方法[1,17],序列推薦模型的性能可以通過 Top-k命中率(Hit ratio,HR@k)、Top-k歸一化折扣累計收益(Normalized discounted cumulative gain,NDCG@k)和平均倒數(shù)排名(Mean reciprocal rank,MRR)評估,這3 個指標的取值越高,模型的性能就越好.在本文的工作中,指標的k值設(shè)為 {1,5,10}.當k取1 時,HR@1 等于NDCG@1.為了在大量的候選行為中實現(xiàn)高效計算,本文隨機選取99 個負例行為與預(yù)測目標的行為進行排序.
為了驗證本文提出的PeerRec 模型的有效性,實驗按照第1.1 節(jié)中現(xiàn)有序列推薦方法對用戶動態(tài)興趣建模方式的分類,設(shè)置了6 個主流的序列推薦模型,具體如下:
1) POP (Popularity).最簡單的基線模型,僅通過用戶與行為交互的頻次(流行度)預(yù)測用戶的下一個行為.
2) BERT4Rec (Sequential recommendation with bidirectional encoder representations from transformer)[17].一種基于BERT 語言模型,利用雙向序列信息建模動態(tài)興趣的推薦方法.
3) S3-Rec (Self-supervised learning for sequential recommendation)[1].一種利用互信息最大化建模序列和用戶數(shù)據(jù)內(nèi)部關(guān)聯(lián)的序列推薦方法.為了公平對比,本文去除了對額外用戶信息建模的模塊,僅利用文中的MIP (Masked item prediction)和SP (Segment prediction)最大化行為序列的內(nèi)部關(guān)聯(lián).
4) HyperRec (Next-item recommendation with sequential hypergraphs)[9].一種利用超圖卷積建模不同時刻用戶動態(tài)興趣的推薦方法.
5) R-CE (Reweighted cross-entropy)[11].一種自適應(yīng)的去噪策略,本文使用該策略重新訓練原始的BERT4Rec 模型.
6) STOSA (Stochastic self-attention)[14].目前最新的建模序列動態(tài)興趣和行為關(guān)系傳遞性的方法.
本文所使用的推薦模型BERT4Rec、S3-Rec、HyperRec、STOSA 的源代碼均由作者發(fā)布.所有模型都采用了原論文中推薦的參數(shù)設(shè)置.
表2 列出了采用2 個同伴網(wǎng)絡(luò)時,本文提出的PeerRec 方法與基線方法的對比結(jié)果.為了便于比較,表2 中加粗的數(shù)值表示最優(yōu)的結(jié)果,下劃線標記的數(shù)值表示次優(yōu)的結(jié)果.本文可得出如下結(jié)論:
表2與基線模型在精度指標上的對比Table 2 The comparison with baselines in terms of accuracy based metrics
1) 基于固定向量表示的方法在ML-1m 電影數(shù)據(jù)集上表現(xiàn)較好,但不同指標上的優(yōu)勢不穩(wěn)定.從表2 中可以看出,S3-Rec 在沒有引入額外用戶信息時表現(xiàn)不佳.HyperRec 雖然從行為序列的子圖中提取了不同時刻的用戶興趣,但序列子圖所能提供的信息有限,限制了模型的性能.BERT4Rec 的性能整體優(yōu)于 S3-Rec和HyperRec,說明BERT4Rec可以有效利用序列中的雙向語義信息豐富興趣表示的學習.基于去噪的R-CE 方法在序列信息較豐富的ML-1m 數(shù)據(jù)集上表現(xiàn)較好,而在序列行為較少的LastFM和Toys 數(shù)據(jù)集上表現(xiàn)較差,說明用戶交互行為較少時,去噪方法更容易導致有效信息丟失,使推薦性能欠佳.
2) 基于分布函數(shù)的STOSA 方法在短序列上表現(xiàn)較好,尤其在Toys 數(shù)據(jù)集上取得了優(yōu)越的性能,原因在于概率分布增加了模型擬合的行為序列空間,能夠有效捕獲用戶行為之間的演變關(guān)系.在Toys 數(shù)據(jù)集的HR@1 指標上,PeerRec 性能稍弱于STOSA,原因在于PeerRec 采用多同伴網(wǎng)絡(luò)集成的方式,可探索更大的解空間[18-19],在候選行為類別數(shù)量較大的Toys 數(shù)據(jù)集上,會更傾向于從整體優(yōu)化推薦精度.
3) PeerRec 方法中的兩個同伴網(wǎng)絡(luò)在絕大多數(shù)指標上差異較小且優(yōu)于基線方法.在ML-1m、LastFM和Toys 數(shù)據(jù)集上,PeerRec 相比于最好的基線方法,在NDCG@5 指標上分別提升了9.02%、5.03%和1.31%.原因在于PeerRec 方法利用多個同伴網(wǎng)絡(luò)建模行為序列中的動態(tài)興趣,可比基于分布函數(shù)的方法探索更大的表示空間,且采用的兩階段同伴知識互增強訓練方式優(yōu)化了同伴網(wǎng)絡(luò)對潛在樣本中動態(tài)興趣的建模能力.由于兩個同伴性能差異較小并且得到共同提升,在后續(xù)測試及部署階段,可以只保留一個同伴網(wǎng)絡(luò),提升在線推薦效率.
如表3 所示,本文首先完全拋棄第2 階段的刻意訓練,分析其對模型性能的影響.然后,如圖4 所示,本文保留第1 階段的知識蒸餾并拋棄第2 階段刻意訓練中的不同成分,設(shè)置如下刻意訓練的變體:
表3 知識蒸餾與刻意訓練對比Table 3 The comparison between knowledge distillation and deliberate practice
圖4 PeerRec 變體在HR@1 指標上的對比Fig.4 The comparison between the variants of PeerRec in terms of HR@1
1)變體 I.拋棄式(10)中刻意訓練對動態(tài)興趣的建模(即α設(shè)置為1),僅保留第1 階段的知識蒸餾和第2 階段中的基于硬標簽的交叉熵訓練;
2)變體II.拋棄式(7)中利用動態(tài)最小組策略過濾低置信度樣本中的噪音.
通過對比知識蒸餾和2 個變體在最嚴格的HR@1 指標上輸出的平均值,可得到如下結(jié)論.
1) 第2 階段的刻意訓練可以在第1 階段知識蒸餾的基礎(chǔ)上進一步提升性能.本文提出的Peer-Rec 模型是基線模型BERT4Rec 的擴展,即僅采用1 個同伴網(wǎng)絡(luò)時,PeerRec 模型可退化為BERT4-Rec 模型.結(jié)合表3和圖4 可以看出,實驗結(jié)果與本文在第1.2 節(jié)中的分析一致,知識蒸餾的性能優(yōu)于傳統(tǒng)單模型的BERT4Rec,而PeerRec 模型可以在知識蒸餾的基礎(chǔ)上進一步增強對潛在樣本中用戶動態(tài)興趣的學習,表明了本文提出的兩階段同伴知識互增強訓練的有效性.
2) 采用2 個同伴網(wǎng)絡(luò)進行兩階段的學習,但在第2 階段只進行硬標簽學習,變體I 的性能會出現(xiàn)不同程度下降.如圖4 所示,變體I 與完整的Peer-Rec 模型相比,在ML-1m、LastFM和Toys 數(shù)據(jù)集上的平均性能分別下降了1.65%、7.43%和11.54%.這表明通過刻意訓練的互相學習可以有效地利用多個同伴建模序列中的動態(tài)興趣,提升模型的性能.
3) 拋棄動態(tài)最小組策略的噪音過濾后,模型性能出現(xiàn)下降.通過對比完整的PeerRec 模型和變體II 可以發(fā)現(xiàn),在LastFM和Toys 數(shù)據(jù)集上,本文以比例γ動態(tài)地過濾在所有同伴網(wǎng)絡(luò)中交叉熵損失都較高的樣本,減少它們對模型刻意訓練的損失貢獻,有助于序列推薦精度的提升.相比于純粹去噪的RCE 方法,完整的PeerRec 模型在ML-1m 數(shù)據(jù)集上沒有過濾噪音(γ設(shè)置為0),取得了更佳的性能.這主要是因為該數(shù)據(jù)集用戶序列較長且候選集較小,可以通過動態(tài)興趣建模利用信息,避免純粹去噪方法對信息的丟失.
為了研究PeerRec 模型中同伴網(wǎng)絡(luò)數(shù)量和動態(tài)最小組策略的影響,本文在相同的硬件條件下,通過采用行為類別數(shù)量較少的ML-1m 數(shù)據(jù)集并減小樣本批量的大小(批量大小為128),使有限的內(nèi)存可以容納更多的同伴網(wǎng)絡(luò).通過逐步增加同伴網(wǎng)絡(luò)的數(shù)量,對比分析動態(tài)最小組策略和損失平均[39]融合方式在HR@1 指標上的均值(圖5 中的陰影部分為動態(tài)最小組策略中同伴波動的范圍),可得出如下結(jié)論: 三個同伴網(wǎng)絡(luò)可以進一步提升性能.從圖5中可以看出,相對于2 個同伴網(wǎng)絡(luò),3 個同伴網(wǎng)絡(luò)在ML-1m 數(shù)據(jù)集上的性能提升了1.36%.實驗結(jié)果表明,刻意訓練可以充分利用多個同伴網(wǎng)絡(luò)之間的知識差異,互相提升性能.
圖5 不同同伴網(wǎng)絡(luò)數(shù)量的性能對比Fig.5 The evaluation on different number of peers
多個同伴網(wǎng)絡(luò)(3 個及以上)提升效果有限.從圖5 中可以看出,在相同的參數(shù)設(shè)置下,隨著同伴網(wǎng)絡(luò)數(shù)量增多,模型性能逐漸上升,而后平穩(wěn)變化.這說明采用2 個或3 個同伴網(wǎng)絡(luò)時,模型性能提升的效果就足以飽和,并不是同伴網(wǎng)絡(luò)的數(shù)量越多,模型的性能越好.
相比于損失平均的同伴融合方式,第2 階段的刻意訓練采用動態(tài)最小組策略,可以取得更佳的性能.這主要是因為通過同伴選擇策略可以有效避免均值計算帶來的同伴多樣性丟失問題.
不同于現(xiàn)有基線模型采用的單模型結(jié)構(gòu),Peer-Rec 模型利用多同伴網(wǎng)絡(luò)互相學習的方式建模動態(tài)興趣,且在第4.7 節(jié)中驗證了2 個或3 個同伴網(wǎng)絡(luò)就足以獲得較好的性能.因此,本節(jié)進一步評估采用2 個同伴網(wǎng)絡(luò)的PeerRec 模型和基線模型的運行效率.如圖6 所示,本文列出了樣本批量為256時模型的迭代速率(iter/s),并標出了PeerRec 模型在訓練和測試階段的速率差異.可以發(fā)現(xiàn),Peer-Rec 模型在ML-1m和LastFM 數(shù)據(jù)集上超過目前最新的STOSA 模型,并在Toys 數(shù)據(jù)集上保持相當?shù)乃俾?這主要是因為PeerRec 模型在測試階段只保留1 個同伴網(wǎng)絡(luò),模型的參數(shù)數(shù)量減少到與BERT4Rec 模型一致,可以顯著提升在線推薦速率,而STOSA 模型概率分布的參數(shù)(如均值和方差)進一步增加了模型的參數(shù)量.
圖6 Batch 大小設(shè)置為256 時,模型的迭代速率Fig.6 The running speed of different models with batch size 256
在訓練階段,由于PeerRec 模型采用了多個同伴網(wǎng)絡(luò),迭代速率低于基于固定向量表示的基線模型,但與基于分布函數(shù)的STOSA 模型相當.從圖6可以看出,STOSA 模型迭代速率在Toys 數(shù)據(jù)集上增大,原因在于STOSA 模型采用的貝葉斯個性化排序(Bayesian personalized ranking,BPR)損失在候選集較大時的計算代價更小.值得注意的是,在工業(yè)部署和實際應(yīng)用中,訓練過程以較高的計算代價換取精度的提升通常是可以接受的,而測試階段的在線推薦通常對模型的效率有較高的要求.因此,本文提出的PeerRec 模型的優(yōu)勢在于,通過多個同伴間的互相學習不僅使模型精度獲得提升,而且可以保持良好的在線推薦效率.
本文在第4.2 節(jié)給出了通過網(wǎng)格搜索[9,14]獲得的最佳參數(shù)組合.為了單獨研究不同參數(shù)對第2 階段刻意訓練的影響,本節(jié)分別調(diào)節(jié)最佳參數(shù)組合下超參數(shù)α,β,γ的大小,同時保持其他參數(shù)值不變,并觀察模型在測試集上的性能變化,可以觀察到如下現(xiàn)象: 1) 關(guān)于損失平衡因子α的影響.以圖7(a)中陰影區(qū)域為界,可以看出隨著損失平衡因子α由小變大,模型會分別進入3 種不同的學習狀態(tài),即基于刻意訓練的主導狀態(tài)、刻意訓練與交叉熵學習的平衡狀態(tài)、基于交叉熵學習的主導狀態(tài).在前兩個狀態(tài)中(基于刻意訓練的主導狀態(tài)和平衡狀態(tài)),可以觀察到兩個同伴網(wǎng)絡(luò)的性能差異較小,而基于交叉熵學習的主導狀態(tài)中兩個模型的性能差異逐漸拉大,表明本文提出的基于刻意訓練的互相學習,可以拉近兩個同伴的距離.此外,相對于知識蒸餾,交叉熵中對硬標簽的訓練,同樣可以關(guān)注到一部分潛在樣本,只是增強的效果有限.從圖7(a)中可以看出,對于不同的學習狀態(tài),曲線都會出現(xiàn)下降或先上升再下降的趨勢,這是因為在學習狀態(tài)的切換過程中,非主導作用的學習起到正則項的作用,可以給模型提供關(guān)于參數(shù)學習的額外信息,避免模型陷入欠擬合或過擬合.2) 關(guān)于過濾噪音比例β的影響.從圖7(b)中可以看出,在ML-1m 數(shù)據(jù)集上,隨著過濾比例β增大,模型性能下降.這表明簡單地將包含動態(tài)興趣的序列當作噪音處理,會損失一部分有用的信息.3) 關(guān)于調(diào)節(jié)刻意訓練強度的超參數(shù)γ的影響.從圖7(c)中可以看出,隨著γ增大,模型性能整體呈現(xiàn)上升趨勢,說明較大的γ值會使模型對同伴傳遞的知識更加敏感,一定程度上有利于模型對序列中的動態(tài)興趣建模.
圖7 超參數(shù)敏感性分析Fig.7 Sensitivity analysis of hyper-parameters
本文主要采用截斷正態(tài)分布(Truncated normal distribution,TND)隨機初始化同伴網(wǎng)絡(luò),使模型獲得多樣性[20,39].為了分析不同初始化方式對模型穩(wěn)定性的影響,本文在兩個同伴網(wǎng)絡(luò)的基礎(chǔ)上,進一步對比另外兩種主流的初始化方式,即Xavier[44]和Kaiming[45],并觀察模型在各個指標上均值的差異.
從表4 中可以看出,本文提出的PeerRec 模型受初始化方式的影響較小,在3 個數(shù)據(jù)集上都表現(xiàn)出良好的性能.該實驗結(jié)果與本文在第3.2 節(jié)中的分析一致.這主要是因為多個同伴網(wǎng)絡(luò)從不同的初始點開始互相學習,弱化了初始化對同伴網(wǎng)絡(luò)的影響,并且多個網(wǎng)絡(luò)組成一個學習共同體,可以從全局的角度探索更大的解空間,尋找到比單個模型更佳的局部最優(yōu)解,獲得較好的泛化性能.
表4 PeerRec 模型采用不同初始化的性能對比Table 4 The performance comparison between different initializations of our PeerRec
本文針對序列推薦任務(wù)中,由用戶動態(tài)興趣導致的行為序列建模不確定性問題進行研究,提出了一種同伴知識互增強下的序列推薦方法(PeerRec).該方法結(jié)合多個同伴網(wǎng)絡(luò)和同伴知識互增強的訓練,允許多個同伴在同一框架下互相學習,通過交換不同用戶興趣表示預(yù)測的概率分布,優(yōu)化自身對用戶動態(tài)興趣的建模.通過同伴知識互增強的訓練,所有同伴網(wǎng)絡(luò)的推薦性能可以得到共同提升,且在測試階段僅保留任意一個同伴網(wǎng)絡(luò),可以獲得良好的在線推薦效率.3 個公開數(shù)據(jù)集上的實驗結(jié)果表明了本文提出的PeerRec 方法的優(yōu)越性.
本文的后續(xù)工作將從兩方面展開.一方面,Peer-Rec 模型主要關(guān)注序列的下一個行為.然而,實際場景需要考慮更多的狀況,如多個用戶之間的關(guān)聯(lián)、連續(xù)行為的預(yù)測.如何擴展PeerRec 模型到多模態(tài)序列推薦、序列到序列(Seq2Seq)推薦等復雜的序列任務(wù)依然存在挑戰(zhàn).另一方面,第2 階段刻意訓練雖然可以有效彌補第1 階段知識蒸餾的不足,但這種分開訓練的方式粒度較粗,為進一步研究知識蒸餾內(nèi)部機制留下了空間.