胡勝利,林 凱
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
序列推薦系統(tǒng)的主要目標(biāo)是挖掘用戶交互序列中的關(guān)系模式[1].最先應(yīng)用于序列推薦的是Rendle等[2]提出的個(gè)性化馬爾科夫鏈分解模型(factorizing personalized markov chains,FPMC),模型通過矩陣分解和轉(zhuǎn)移矩陣對用戶的長期偏好和動態(tài)轉(zhuǎn)移進(jìn)行建模.隨著深度學(xué)習(xí)技術(shù)的飛速發(fā)展[3],已出現(xiàn)多種基于該技術(shù)的序列推薦模型.Hidasi等[4]提出了基于循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的序列推薦模型.隨后Hidasi等[5]在其原有模型基礎(chǔ)上引入了項(xiàng)目屬性信息,并將門控循環(huán)單元引入到序列推薦(gate recurrent unit for recommendation,GRU4Rec+)中建模序列項(xiàng)目之間的關(guān)系,推薦效果進(jìn)一步提升.Tang等[6]提出了基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的序列嵌入推薦模型(sequence embedding recommendation,SER),通過CNN對短期序列的信息進(jìn)行提取,挖掘項(xiàng)目之間聯(lián)合級的順序關(guān)系.Ying等[7]利用2個(gè)分層注意力網(wǎng)絡(luò)模型解決了用戶長期偏好隨時(shí)間推進(jìn)而不斷變化的問題.但在上述基于深度學(xué)習(xí)方法的序列推薦模型中,基于RNN和CNN的模型只能依靠其結(jié)構(gòu)來對序列交互行為提取項(xiàng)目及位置信息[8].基于RNN的模型存在訓(xùn)練過程較難以及難以并行化處理的問題,基于CNN的模型難以捕捉遠(yuǎn)距離特征以及需要較深的層次才能感知任意行為間的影響[9].
Kang等[10]受到Transformer啟發(fā),提出了采用自注意力機(jī)制的序列推薦模型(self attention for sequential recommendation,SASRec)來對用戶的歷史行為信息建模,提取到了更有價(jià)值的信息.現(xiàn)有的大多數(shù)序列推薦模型過分關(guān)注用戶短期偏好,而實(shí)際上用戶的長期行為也包含了大量的信息,由此Zhang等[11]使用自注意力機(jī)制提取短期偏好信息,并使用度量學(xué)習(xí)獲取長期偏好.研究者們利用自注意力機(jī)制對序列行為進(jìn)行特征提取,不但更好地建立起各個(gè)交互行為間的關(guān)聯(lián),而且實(shí)現(xiàn)了高度并行化計(jì)算.但自注意力機(jī)制僅通過位置編碼來簡單引入交互行為中項(xiàng)目的絕對位置信息,其捕捉到的序列位置信息只包含順序關(guān)系[12].這種位置編碼限制了用戶交互行為間的潛在聯(lián)系,使其無法反映用戶行為被時(shí)間跨越尺度大小的影響[13-14].
在上述的序列推薦模型中,雖然可以建模復(fù)雜的序列關(guān)系,但忽略了序列行為的時(shí)間上下文信息,導(dǎo)致模型很難捕捉動態(tài)變化的用戶興趣.此外,忽略交互行為間的項(xiàng)目成對關(guān)系及邊信息也對推薦結(jié)果有較明顯地影響[15].由此提出一種融合時(shí)間上下文和長短期偏好的序列推薦模型(combines temporal context with long-short term sequence recommendation,TCLSRec),利用感知時(shí)間間隔的自注意力機(jī)制[16]挖掘短期交互行為之間的深層次聯(lián)系,然后通過注意力權(quán)重動態(tài)調(diào)整獲得用戶的短期動態(tài)興趣.模型同時(shí)考慮用戶長期偏好信息和項(xiàng)目間的成對聯(lián)系,提高推薦準(zhǔn)確度.
圖1 TCLSRec模型框圖Fig.1 Overall structure diagram of TCLSRec model
TCLSRec模型的結(jié)構(gòu)分為4個(gè)部分,分別為嵌入層、短期行為處理部分、長期行為處理部分及預(yù)測層.TCLSRec的模型如圖1所示.
(1)
(2)
2.1.1 嵌入表示層 用戶短期行為序列的項(xiàng)目嵌入表示EI∈Rn×d,如式(3)所示:
EI=[ms1,ms2,ms3,…,msn]T,
(3)
(4)
(5)
2.1.2 感知時(shí)間間隔的自注意力區(qū)塊層 設(shè)置感知時(shí)間間隔的自注意力層的輸入查詢?yōu)樾蛄行袨榍度搿㈡I和值為序列行為2種相對位置嵌入.則感知時(shí)間間隔的自注意力區(qū)塊層輸出序列嵌入表示如式(6)所示:
Z=(z1,z2,z3,…,zn)T,zi∈d
(6)
式(6)中每個(gè)輸出zi的嵌入表示可由式(7)計(jì)算得到
(7)
式(7)中WV∈d×d是可學(xué)習(xí)的權(quán)重矩陣,權(quán)重系數(shù)αi,j通過式(8)來計(jì)算得到
(8)
hi,j是當(dāng)前項(xiàng)目和序列行為項(xiàng)目序列的關(guān)系向量,可由式(9)得到
(9)
式(9)中WQ∈d×d和WK∈d×d是查詢和鍵可學(xué)習(xí)的2個(gè)參數(shù)矩陣,d是每個(gè)項(xiàng)目的嵌入維度.為了賦予模型非線性,增強(qiáng)模型性能和緩解過擬合等問題,模型在自注意力層之后加入了殘差連接、層歸一化函數(shù)(LayerNorm)、丟棄層(Dropout)和激活函數(shù)為ReLu的2層全連接層(fully connected layer,F(xiàn)CN).
其中FCN層輸出由式(10)計(jì)算得到
FCN(zi)=max(0,ziW1+b1)W2+b2,
(10)
式(10)中W1、W2∈d×d,b1、b2∈d×1,由此最終得到融合了項(xiàng)目信息、項(xiàng)目位置信息和項(xiàng)目之間相對時(shí)間間隔信息的聯(lián)合嵌入表示如式(11)所示:
Zi=LayerNorm(zi+Dropout(FCN(LayerNorm(zi)))),
(11)
(12)
(13)
(14)
式(14)中WP∈d×d,bp∈d×1.最終pu∈d×1是用戶的長期興趣偏好表示.
圖2 雙線性特征交叉結(jié)構(gòu)Fig.2 Bilinear characteristic cross structure
(15)
式(15)中W3、W4、W5∈d×d,bG∈d×1,最終用戶行為偏好表示d×1由式(16)計(jì)算得到(⊙是元素乘符號):
(16)
在序列推薦問題中對項(xiàng)目成對關(guān)系的學(xué)習(xí)非常重要,聯(lián)系比較密切的項(xiàng)目在未來的交互序列中可能會連續(xù)出現(xiàn)[17].傳統(tǒng)元素積的形式難以有效地對稀疏數(shù)據(jù)進(jìn)行特征交叉建模且模型的表達(dá)能力不強(qiáng).為了捕捉用戶這種項(xiàng)目之間的共現(xiàn)模式,使用雙線性交叉函數(shù)學(xué)習(xí)其嵌入表示,其結(jié)構(gòu)如圖2表示.
圖2中Wp,q∈d×d為參數(shù)矩陣,·是內(nèi)積運(yùn)算,⊙是哈達(dá)瑪積,p、q∈(1,2,3,…,m),m為目標(biāo)項(xiàng)目數(shù)量.則運(yùn)算公式如式(17)所示:
cp,q=vp·Wp,q⊙vq.
(17)
項(xiàng)目p和項(xiàng)目q的特征交叉結(jié)果cp,q∈Rd×1通過平均池化聚合為當(dāng)前項(xiàng)目的嵌入向量表示cp=avg(cp,q),cp∈d.由此將候選項(xiàng)目集的嵌入表示進(jìn)行雙線性特征交叉后得到包含項(xiàng)目聯(lián)系信息的候選項(xiàng)目集嵌入表示C∈|I|×d.
(18)
yi,t表示在時(shí)間點(diǎn)t之前給出用戶交互序列后,第i個(gè)項(xiàng)目成為用戶感興趣的相關(guān)性.因此yi,t越高則說明具有更高的相關(guān)性,最后根據(jù)相關(guān)性大小的排序列表進(jìn)行推薦.
模型訓(xùn)練時(shí)定義最終交叉熵?fù)p失函數(shù)為式(19):
(19)
訓(xùn)練時(shí)針對每一時(shí)刻的正樣本,都會隨機(jī)生成一個(gè)項(xiàng)目j作為負(fù)樣本來平衡訓(xùn)練過程中的正負(fù)樣本比例.
表1 數(shù)據(jù)集數(shù)據(jù)統(tǒng)計(jì)Tab.1 Statistical data sets
為了驗(yàn)證提出的TCLSRec模型的推薦性能,采用了TensorFlow深度學(xué)習(xí)框架,實(shí)驗(yàn)采用的操作系統(tǒng)是Windows 10,顯卡型號是RTX 2080ti,CPU型號是Intel3×XeonE5-2678v,Python版本為3.7.在集成開發(fā)工具Pycharm2020.3.3和TensorFlow2.2.0深度學(xué)習(xí)框架下進(jìn)行實(shí)驗(yàn)和分析.
實(shí)驗(yàn)采用了MovieLens-1m(ML-1m)數(shù)據(jù)集和Amazon公開數(shù)據(jù)集下子數(shù)據(jù)集Beauty和Electronics.3個(gè)數(shù)據(jù)集都包含了用戶-物品交互的時(shí)間戳信息,并且利用項(xiàng)目的種類、品牌等屬性以及用戶的一些屬性作為輔助信息.其中處理過的ML-1m數(shù)據(jù)集包含了用戶編號、電影編號、評分、時(shí)間戳信息,電影的相關(guān)信息包括名稱、上映年份和類別,以及用戶的年齡和性別信息.處理過的Amazon子數(shù)據(jù)集去除了在評論中沒有出現(xiàn)過的項(xiàng)目,其中包含的數(shù)據(jù)類型有評論者編號、評論項(xiàng)目編號、審查評分、評論內(nèi)容、項(xiàng)目評分、評論關(guān)鍵詞以及評論時(shí)間戳信息.為了緩解冷啟動對模型推薦性能的影響,模型不考慮交互次數(shù)少于5的用戶和項(xiàng)目交互序列.所使用的3個(gè)公開數(shù)據(jù)集數(shù)據(jù)統(tǒng)計(jì)結(jié)果如表1所示.
使用命中率HR@k(hit ratio)和歸一化折損累積增益NDCG@k(normalized discounted cu-mulative gain)作為評價(jià)指標(biāo),其中k為推薦列表的長度,設(shè)置k=10來評估模型的好壞.
1) 命中率HR@k是評價(jià)推薦結(jié)果的召回率,衡量的是推薦算法的準(zhǔn)確性,由式(20)計(jì)算得到
(20)
其中#users是用戶總數(shù),而#hits是測試集中的項(xiàng)目出現(xiàn)在Top-k推薦列表中的用戶數(shù)量.
2) 歸一化折損累計(jì)增益NDCG@k則更多考慮所推薦的項(xiàng)目是否出現(xiàn)在用戶更容易關(guān)注的位置,即強(qiáng)調(diào)了推薦列表的順序性,由式(21)計(jì)算得到
(21)
其中r(i)是推薦列表中項(xiàng)目i的相關(guān)性分?jǐn)?shù),如式(22)所示:
(22)
其中p為推薦列表,G為實(shí)驗(yàn)測試集,pi表示推薦列表中的第i個(gè)項(xiàng)目.
將對比模型設(shè)置為FPMC[2]、GRU4Rec+[5]、Caser[6]、SASRec[10]及AttRec[11].在實(shí)驗(yàn)中,將數(shù)據(jù)集進(jìn)行處理之后劃分為訓(xùn)練集、驗(yàn)證集及測試集.生成的每一個(gè)樣本序列最后1個(gè)項(xiàng)目用作測試,倒數(shù)第2個(gè)項(xiàng)目用作驗(yàn)證,其余則用作訓(xùn)練.在實(shí)驗(yàn)中對于3組數(shù)據(jù)集,用戶和項(xiàng)目的向量表示維度均設(shè)置為50,批次大小設(shè)置為512,L2正則化系數(shù)設(shè)置為1×10-6,學(xué)習(xí)率為0.001,采用Adam優(yōu)化器優(yōu)化.模型AttRec和所提出的TCLSRec模型,長期交互序列長度設(shè)置為50,短期交互序列的長度設(shè)置為10.
所提出的TCLSRec模型和其他基準(zhǔn)模型的性能對比如表2所示.
表2 TCLSRec與其他基準(zhǔn)模型的性能對比Tab.2 Performance comparison between TCLSRec and other benchmark models
通過分析,可得出以下結(jié)論:
1) 在Beauty和Electronics數(shù)據(jù)集上,模型FPMC的指標(biāo)NDCG@10都優(yōu)于模型GRU4Rec+和Caser,但是在ML-1m數(shù)據(jù)集上,F(xiàn)PMC的指標(biāo)NDCG@10比他們要差.這說明在稀疏數(shù)據(jù)集上使用時(shí)間序列的信息進(jìn)行序列建模時(shí),其效果要優(yōu)于一些基于神經(jīng)網(wǎng)絡(luò)的模型.
2) SASRec模型在3個(gè)數(shù)據(jù)集中都獲得了不俗的效果,這說明使用疊加的多個(gè)自注意力層可以捕捉更多的特征變換,從而可以更好地學(xué)習(xí)到用戶偏好信息,相較于傳統(tǒng)的基于RNN和CNN的模型取得了明顯的優(yōu)勢.
3) TCLSRec模型相較于其他基準(zhǔn)模型在不同數(shù)據(jù)集上均取得了一些提高,相較于SASRec和AttRec模型,TCLSRec模型利用增加感知時(shí)間間隔自注意力塊來捕捉用戶動態(tài)變化的短期偏好信息,使用門控機(jī)制將長短期行為偏好融合后提取到了更精準(zhǔn)的用戶偏好信息,進(jìn)行預(yù)測后獲得了更好的推薦效果.
在3個(gè)數(shù)據(jù)集ML-1m、Beauty和Electronics上對模型進(jìn)行了消融實(shí)驗(yàn),驗(yàn)證了有無感知時(shí)間間隔的自注意力機(jī)制和雙線性特征交叉層對模型的影響.實(shí)驗(yàn)結(jié)果如圖3所示,其中NT-TCLSRec代表無時(shí)間間隔信息的TCLSRec模型,NT-TCLSRec對短期行為偏好進(jìn)行建模時(shí)使用自注意力機(jī)制代替.NB-TCLSRec代表無雙線性特征交叉層的TCLSRec模型.
(a) HR@10評價(jià)指標(biāo)下的模型效果(b) NDCG@10評價(jià)指標(biāo)下的模型效果圖3 3個(gè)數(shù)據(jù)集下的消融實(shí)驗(yàn)結(jié)果Fig.3 Ablation experiment results on three data sets
根據(jù)圖3(b)的實(shí)驗(yàn)結(jié)果可以觀察到:首先,在缺少時(shí)間間隔自注意力機(jī)制時(shí)指標(biāo)NDCG@10在ML-1m和Beauty數(shù)據(jù)集上有明顯下降,這說明增加感知時(shí)間間隔的自注意力機(jī)制可以更有效地捕獲多層次用戶興趣的動態(tài)變化,提高推薦效果.其次,使用未進(jìn)行雙線性特征交叉的候選集嵌入表示進(jìn)行預(yù)測,在指標(biāo)HR@10上只有小幅下降,但指標(biāo)NDCG@10下降較明顯,這說明捕捉項(xiàng)目間的共現(xiàn)模式可以提高推薦的質(zhì)量,使得感興趣的項(xiàng)目出現(xiàn)在推薦列表更靠前的位置,從而提高用戶滿意度.
3.6.1 用戶和項(xiàng)目維度d的影響 在TCLSRec模型中,超參數(shù)d是一個(gè)很重要的參數(shù).當(dāng)d越大時(shí),表示的向量越復(fù)雜,包含的信息也越多,但d較大造成模型復(fù)雜等問題也會影響最終效果.圖4展示了在2個(gè)數(shù)據(jù)集中不同維度下TCLSRec模型的HR@10和NDCG@10性能.從圖4上可以看出當(dāng)維度d=50時(shí),TCLSRec模型在2個(gè)不同的數(shù)據(jù)集上,2個(gè)性能指標(biāo)均取得了最好的效果.由于Electronics數(shù)據(jù)集與Beauty數(shù)據(jù)集的數(shù)據(jù)類型相同,且稀疏度相差較小,則Electronics數(shù)據(jù)集在不同維度下的實(shí)驗(yàn)結(jié)果與在Beauty數(shù)據(jù)集的變化類似.
3.6.2 短序列長度N的影響 為了探究用戶短期序列長度對模型效果的影響,在上述參數(shù)實(shí)驗(yàn)和消融實(shí)驗(yàn)的基礎(chǔ)之上進(jìn)一步實(shí)驗(yàn).在長期序列長度設(shè)置為50的基礎(chǔ)上,將短序列長度設(shè)置為5種長度,分別為10、20、30、40和50,以此來觀察短序列長度對實(shí)驗(yàn)結(jié)果的影響.實(shí)驗(yàn)結(jié)果如表3所示.
由表3可知,在密集數(shù)據(jù)集ML-1m上,當(dāng)短序列長度越長時(shí),模型性能反而降低,可能是因?yàn)槊芗瘮?shù)據(jù)集的平均交互序列較長.隨著短序列長度的增加,序列中噪聲增多,導(dǎo)致模型的準(zhǔn)確率下降.在稀疏數(shù)據(jù)集Beauty上,模型的效果保持穩(wěn)定.這種結(jié)果可能是此稀疏數(shù)據(jù)集中數(shù)據(jù)處理后的大多數(shù)交互序列較短,模型最終的興趣偏好受短期行為影響較多.當(dāng)短期序列長度增加后模型效果略有提升,之后趨于平穩(wěn).
本文提出了一種融合時(shí)間上下文信息與長短期偏好的序列推薦模型TCLSRec,該模型首先利用感知時(shí)間間隔的自注意力機(jī)制捕捉用戶短期行為序列與時(shí)間上下文的關(guān)系,之后將其與長短期偏好通過門控機(jī)制融合得到用戶興趣表示.使用雙線性特征交叉的方法對候選項(xiàng)目集建模項(xiàng)目共現(xiàn)模式,并與用戶興趣表示一起輸入到預(yù)測層進(jìn)行項(xiàng)目推薦.實(shí)驗(yàn)結(jié)果表明提出的模型在推薦性能上有所提高.
盡管提出的模型在評價(jià)指標(biāo)上略有提升,但是在長期交互行為處理上忽略了不同項(xiàng)目在序列間的相互影響.下一步將繼續(xù)研究長短期行為的差異和如何有效提取長期偏好,以構(gòu)建更精準(zhǔn)的推薦模型.