孫克雷,寧昱霖,周華平
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
序列推薦模型通過提取用戶與項(xiàng)目交互序列中項(xiàng)目之間的關(guān)聯(lián)性捕捉用戶偏好特征的動(dòng)態(tài)變化[1]。早期的序列推薦模型采用可以處理序列信息的馬爾可夫鏈模型,隨著深度學(xué)習(xí)在人工智能領(lǐng)域大放異彩,推薦系統(tǒng)領(lǐng)域也受益頗多?;谘h(huán)神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)以及自注意力機(jī)制的序列推薦模型先后被提出,其中基于自注意力機(jī)制的序列推薦模型是當(dāng)今序列推薦領(lǐng)域研究的熱點(diǎn)[2,3]。盡管基于自注意力機(jī)制的序列推薦模型已取得了優(yōu)異的成績(jī),但仍存在著一定程度的問題,大量的文獻(xiàn)證實(shí)了在自注意力機(jī)制中直接把輔助信息與項(xiàng)目序列的嵌入表征相加會(huì)導(dǎo)致信息過載,通常只會(huì)帶來負(fù)面的影響[2,4]。信息過載指的是由輔助信息的嵌入表征與項(xiàng)目序列的嵌入表征直接相加改變了項(xiàng)目序列嵌入表征原有的特征表達(dá),從而引入噪聲[4]。由于存在數(shù)據(jù)稀疏問題,如果自注意力網(wǎng)絡(luò)的輸入只有項(xiàng)目序列的嵌入表征,那么模型會(huì)因?yàn)閿?shù)據(jù)集提供的信息量過少無(wú)法支持網(wǎng)絡(luò)中大量參數(shù)的更新導(dǎo)致推薦精度不佳。因此,本文提出了一種有效緩解網(wǎng)絡(luò)信息過載的非侵入式嵌入自注意力網(wǎng)絡(luò)并且在網(wǎng)絡(luò)中引入了項(xiàng)目的類別信息,以緩解數(shù)據(jù)稀疏問題。實(shí)驗(yàn)結(jié)果表明,本文提出的模型可以有效地緩解自注意力網(wǎng)絡(luò)的信息過載問題以及數(shù)據(jù)稀疏問題,其評(píng)估指標(biāo)優(yōu)于近期所提出的基于自注意力機(jī)制的序列推薦模型。
近年來,深度學(xué)習(xí)受到人工智能各個(gè)領(lǐng)域研究人員的青睞,推薦系統(tǒng)領(lǐng)域也不例外。隨著DIN[5]、DIEN[6]等基于深度學(xué)習(xí)的推薦模型接二連三地被提出,推薦系統(tǒng)全面進(jìn)入深度學(xué)習(xí)時(shí)代。與傳統(tǒng)的機(jī)器學(xué)習(xí)模型相比,基于深度學(xué)習(xí)的推薦模型能夠挖掘出數(shù)據(jù)中更深層次的信息,并且模型結(jié)構(gòu)非常靈活,可以根據(jù)不同的數(shù)據(jù)或不同的應(yīng)用場(chǎng)景靈活調(diào)整模型[7]。
序列推薦早期通常利用馬爾可夫鏈模型從用戶與項(xiàng)目的交互歷史中捕獲用戶偏好的轉(zhuǎn)變。進(jìn)入深度學(xué)習(xí)時(shí)代后,循環(huán)神經(jīng)網(wǎng)絡(luò)首先被應(yīng)用到序列推薦模型中,基于循環(huán)神經(jīng)網(wǎng)絡(luò)的序列推薦模型通過一個(gè)隱藏狀態(tài)總結(jié)用戶所有的歷史行為,然后將這個(gè)隱藏狀態(tài)用于預(yù)測(cè)下一個(gè)行為。Tang等[8]基于卷積神經(jīng)網(wǎng)絡(luò)提出了Caser模型,該模型把用戶與項(xiàng)目交互序列的嵌入表征看成一張圖片矩陣,使用豎直和水平兩個(gè)方向的卷積核提取序列特征。近年來,自然語(yǔ)言處理領(lǐng)域的序列數(shù)據(jù)處理技術(shù)——自注意力機(jī)制在序列推薦領(lǐng)域得到了廣泛的應(yīng)用。Kang等[2]等根據(jù)自然語(yǔ)言處理中的Transformer模型[9]提出了SASRec模型,該模型將自注意力機(jī)制應(yīng)用在推薦任務(wù)里,成為了當(dāng)時(shí)的SOTA(state of the art)模型。隨后,越來越多的SASRec模型的變體被應(yīng)用到序列推薦任務(wù)中,如Li等[10]提出的TiSASRec模型,該模型在SASRec的基礎(chǔ)上融合了序列中項(xiàng)目之間的時(shí)間間隔信息,又如Wu等[11]提出的SSE-PT模型,該模型在SASRec的基礎(chǔ)上引用了一種新型正則化技術(shù)——Stochastic shared embeddings[12]。
盡管上述基于自注意力機(jī)制的序列推薦模型已取得良好的效果,但均沒有解決自注意力網(wǎng)絡(luò)存在的信息過載問題。由于它們皆引入了項(xiàng)目的絕對(duì)位置信息,而絕對(duì)位置信息的嵌入表征作為輔助信息的一種,直接與項(xiàng)目的嵌入表征相加會(huì)導(dǎo)致信息過載從而引入噪聲。接下來通過公式證明將輔助信息的嵌入表征與項(xiàng)目序列的嵌入表征相加會(huì)導(dǎo)致信息過載從而引入噪聲。例如在自注意力機(jī)制計(jì)算項(xiàng)目i與項(xiàng)目j之間的相關(guān)性時(shí)引入絕對(duì)位置信息, (Ei+Pi)(Ej+Pj)T=EiEj+EiPj+PiEj+PiPj,E代表項(xiàng)目的嵌入表征、P代表絕對(duì)位置信息的嵌入表征[4]。其中EiPj、PiEj分別是項(xiàng)目i與項(xiàng)目j的位置的點(diǎn)積、項(xiàng)目i的位置與項(xiàng)目j的點(diǎn)積,由于這兩部分的結(jié)果得不出任何相關(guān)性,因此,若輔助信息以直接相加的形式引入自注意力網(wǎng)絡(luò)中只會(huì)增加噪聲干擾模型捕捉項(xiàng)目之間的聯(lián)系,并且以此方式引入輔助信息的種類越多,產(chǎn)生的無(wú)關(guān)項(xiàng)就越多,引入的噪聲也就越多。雖然TiSASRec的作者意識(shí)到了數(shù)據(jù)稀疏問題,在模型中引入了項(xiàng)目之間的時(shí)間間隔信息,但他將時(shí)間間隔的嵌入表征直接與項(xiàng)目嵌入表征相加導(dǎo)致信息過載,因此,對(duì)模型的提升不大。對(duì)此,本文提出的NIESR模型通過使用多個(gè)自注意力機(jī)制提取不同種類的輸入信息以解決上述因直接把各種嵌入表征直接相加造成的問題,并引入項(xiàng)目類別信息緩解數(shù)據(jù)稀疏問題。
NIESR模型框架如圖1所示,模型從項(xiàng)目序列信息、項(xiàng)目的絕對(duì)位置信息、項(xiàng)目的類別信息3個(gè)角度提取用戶與項(xiàng)目交互信息的特征。模型可概括為:①嵌入層:將模型的輸入轉(zhuǎn)化成低維稠密的嵌入表征;②多標(biāo)簽類別信息拼接層:在提取項(xiàng)目類別信息的特征前對(duì)多標(biāo)簽類別信息的嵌入表征進(jìn)行拼接處理并使用一個(gè)線性層調(diào)整拼接后嵌入表征的維度;③非侵入式自注意力機(jī)制模塊:使用3個(gè)多頭自注意力機(jī)制分別提取3種輸入信息的線性特征;④偏好表征拼接層:對(duì)3個(gè)多頭自注意力機(jī)制提取的用戶偏好表征進(jìn)行拼接,再通過線性層調(diào)整拼接后的用戶偏好表征的維度;⑤前饋神經(jīng)網(wǎng)絡(luò):賦予模型非線性處理能力,提取輸入信息的非線性特征;⑥預(yù)測(cè)層:根據(jù)輸出的用戶偏好表征計(jì)算用戶下一個(gè)可能感興趣的項(xiàng)目。下文將仔細(xì)闡述模型各個(gè)部分的細(xì)節(jié)。
圖1 NIESR模型框架
在真實(shí)世界中,項(xiàng)目的類別標(biāo)簽通常不是單值,例如電影《泰坦尼克號(hào)》的類別標(biāo)簽既是愛情片又是災(zāi)難片。愛情片和災(zāi)難片就屬于多標(biāo)簽離散型類別。在本文提出的NIESR模型中,先把每個(gè)項(xiàng)目的類別標(biāo)簽轉(zhuǎn)化成定長(zhǎng)序列m,m等于數(shù)據(jù)集中擁有最多類別標(biāo)簽的項(xiàng)目的標(biāo)簽個(gè)數(shù)。類別標(biāo)簽長(zhǎng)度不足m的項(xiàng)目在類別標(biāo)簽序列后填充0直至長(zhǎng)度等于m,將類別標(biāo)簽轉(zhuǎn)化為嵌入表征后,填充項(xiàng)0轉(zhuǎn)化為零向量,對(duì)于多標(biāo)簽的處理方法采取拼接法,然后通過一個(gè)線性層調(diào)整嵌入維度的大小,使拼接后的嵌入表征的維度保持為單個(gè)嵌入表征的維度以保持維度的統(tǒng)一,保證模型中的殘差連接以及多層自注意力機(jī)制的迭代可以順利執(zhí)行。而在線性層調(diào)整嵌入維度的大小時(shí)將高維稀疏的嵌入表征壓縮成低維稠密的嵌入表征,相當(dāng)于提取一次非線性特征。多標(biāo)簽離散型類別信息的嵌入表征拼接處理的實(shí)現(xiàn)步驟如圖2所示。
圖2 多標(biāo)簽離散型類別信息的處理
2.3.1 嵌入層
首先為項(xiàng)目字典創(chuàng)建嵌入表征查找表MI∈R|I|×d,d代表嵌入層的維度。將數(shù)據(jù)集中每個(gè)用戶的交互序列轉(zhuǎn)換成定長(zhǎng)序列,設(shè)序列的長(zhǎng)度為n,對(duì)數(shù)據(jù)集中長(zhǎng)度大于n的序列進(jìn)行截?cái)嗖僮鳎磸男蛄心┪餐叭個(gè)項(xiàng)目,對(duì)于長(zhǎng)度小于n的序列進(jìn)行填充操作,即在序列的頭部添加填充項(xiàng)0,用零向量作為填充項(xiàng)的嵌入表征。通過檢索嵌入表征查找表MI將每個(gè)用戶交互序列轉(zhuǎn)換成嵌入表征EI=[i1,i2,…,in]T,EI∈Rn×d。
由于自注意力機(jī)制無(wú)法獲取項(xiàng)目的位置信息,因此,需要在自注意力網(wǎng)絡(luò)中加入一個(gè)可學(xué)習(xí)的位置嵌入表征EP=[p1,p2,…,pn]T,EP∈Rn×d。
最后為項(xiàng)目類別字典創(chuàng)建嵌入表征查找表MC∈R|C|×d, 通過檢索嵌入表征查找表MC找到每個(gè)序列中每個(gè)項(xiàng)目的類別嵌入表征,然后通過2.1節(jié)的方法進(jìn)行處理,最終得到類別嵌入表征EC=[c1,c2,…,cn]T,EC∈Rn×d。
2.3.2 非侵入式自注意力機(jī)制
非侵入式自注意力機(jī)制即使用不同的多頭自注意力機(jī)制處理不同類別的輸入信息。根據(jù)嵌入層的3個(gè)輸入序列EI、EP、EC,計(jì)算新的序列ZI=[z1,z2,…,zn]T,ZI∈Rn×d, 每個(gè)輸出項(xiàng)zj都是由3個(gè)輸入序列經(jīng)過非侵入式自注意力機(jī)制后進(jìn)行拼接再通過線性層轉(zhuǎn)換維度后得到,這里使用的拼接法與類別標(biāo)簽的拼接方法及思想一致。
非侵入式自注意力機(jī)制(NISA)的輸出O表示為
(1)
(2)
(3)
其中,F(xiàn)C代表調(diào)節(jié)拼接后嵌入層維度的線性層,⊙代表嵌入表征的拼接,h代表多頭自注意力機(jī)制中頭的數(shù)量,線性層W∈Rd×d。 為了防止自注意力機(jī)制未卜先知,在預(yù)測(cè)t+1項(xiàng)時(shí),模型應(yīng)只考慮前t項(xiàng),因此,需要屏蔽所有Qm與Kn(m 2.3.3 前饋神經(jīng)網(wǎng)絡(luò) 非侵入式自注意力機(jī)制本質(zhì)上是個(gè)線性模型,為了提取輸入信息的非線性特征在非侵入式自注意力機(jī)制后添加一個(gè)前饋神經(jīng)網(wǎng)絡(luò),為了防止模型過擬合以及訓(xùn)練不穩(wěn)定,引入了殘差連接、Dropout、層規(guī)范化來解決,其輸出F如下 (4) O′=LayerNorm(QI+QP+QC+Dropout(O)) (5) LeakyReLU激活函數(shù)可以在反向傳播過程中讓輸入小于零的部分也可以計(jì)算得到梯度,而不是像ReLU激活函數(shù)一樣將輸入小于零的部分置0。前饋神經(jīng)網(wǎng)絡(luò)中每層參數(shù)W和b互相獨(dú)立[13]。 2.3.4 多層非侵入式自注意力機(jī)制模塊 在第一層非侵入式自注意力機(jī)制模塊輸出后,模型可能沒有充分挖掘輸入信息。為進(jìn)一步挖掘輸入信息,將第一層模塊的輸出輸入到第二層非侵入式自注意力機(jī)制模塊中,以此類推。第b層(b>1)模塊的輸出定義如下 ZI=F(b)=FFN(O(b)) (6) O(b)=NISA(F(b-1)) (7) 其中,O(1)=O, 遞歸傳入NISA的張量替換模型的輸入EI,EP和EC共享整個(gè)多層非侵入式自注意力機(jī)制模塊。 2.3.5 預(yù)測(cè)層 在多層非侵入式自注意力機(jī)制模塊輸出之后可以得到項(xiàng)目序列信息、項(xiàng)目絕對(duì)位置信息和項(xiàng)目對(duì)應(yīng)的類別信息的組合表示。為了預(yù)測(cè)第t+1個(gè)項(xiàng)目,使用潛因子模型來計(jì)算用戶對(duì)項(xiàng)目i的偏好分?jǐn)?shù),其定義如下 (8) 模型的目標(biāo)是提供一個(gè)排序后的項(xiàng)目列表。本文采用負(fù)采樣優(yōu)化項(xiàng)目的排名,對(duì)于每個(gè)預(yù)期的正輸出oi都生成一個(gè)負(fù)樣本o′i?Su。 損失函數(shù)采用二元交叉熵函數(shù) (9) 為了驗(yàn)證本文提出模型的推薦效果,選擇3個(gè)真實(shí)場(chǎng)景中的數(shù)據(jù)集進(jìn)行驗(yàn)證: (1)Movielens 1M數(shù)據(jù)集:廣泛用于推薦算法的數(shù)據(jù)集,包含約6千名用戶對(duì)約4千部電影的100萬(wàn)條評(píng)分?jǐn)?shù)據(jù)。 (2)京東數(shù)據(jù)集:由京東競(jìng)賽公開,記錄了2016年2月至4月用戶的行為信息。本文選取了2016年2月的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),包含大約7萬(wàn)名用戶對(duì)2萬(wàn)個(gè)項(xiàng)目的455萬(wàn)條行為信息,行為信息包括瀏覽、加入購(gòu)物車、購(gòu)物車刪除、下單、關(guān)注、點(diǎn)擊。在本文實(shí)驗(yàn)中只選取行為信息中用戶瀏覽的部分。 (3)豆瓣影評(píng)數(shù)據(jù)集:本數(shù)據(jù)集采集于豆瓣電影,包含大約60萬(wàn)個(gè)用戶對(duì)大約7萬(wàn)部電影的400萬(wàn)條評(píng)分?jǐn)?shù)據(jù)。 以上數(shù)據(jù)集均包含用戶與項(xiàng)目交互的時(shí)間戳,在數(shù)據(jù)預(yù)處理后將每個(gè)用戶的交互序列根據(jù)時(shí)間戳升序排序。在構(gòu)建訓(xùn)練集、驗(yàn)證集和測(cè)試集時(shí),刪除序列長(zhǎng)度小于3的序列,以序列倒數(shù)第二個(gè)項(xiàng)目作為驗(yàn)證集,末尾的項(xiàng)目作為測(cè)試集,剩下的數(shù)據(jù)作為訓(xùn)練集。清洗后數(shù)據(jù)集的基本信息見表1。 表1 數(shù)據(jù)集的基本信息 由于模型會(huì)給用戶提供一個(gè)排序后的項(xiàng)目列表,因此,本文選取2個(gè)Top-N推薦評(píng)估指標(biāo),Hit Rate@N以及NDCG@N,以評(píng)估模型推薦的質(zhì)量。Hit Rate@N用于計(jì)算推薦成功的用戶在所有用戶中的占比,用戶下一個(gè)感興趣的項(xiàng)目出現(xiàn)在推薦列表的前N項(xiàng)中則代表推薦成功。NDCG@N考慮了用戶下一個(gè)感興趣的項(xiàng)目在推薦列表的前N項(xiàng)中的排名,排名越靠前得到的分值越高。對(duì)于每個(gè)用戶模型會(huì)隨機(jī)選取100個(gè)未在該用戶序列中出現(xiàn)的負(fù)樣本,根據(jù)這101個(gè)項(xiàng)目計(jì)算Hit Rate@N和NDCG@N。 Hit Rate@N計(jì)算如下所示 (10) 式中:UT代表推薦成功用戶,U代表所有參與計(jì)算的用戶。 NDCG@N計(jì)算如下所示 (11) 式中:r(i) 代表推薦列表中排在第i位的項(xiàng)目與需要推薦的正樣本的相關(guān)性分?jǐn)?shù)。若排在第i位的項(xiàng)目為正樣本,r(i) 為1;反之,r(i) 為0。 為驗(yàn)證本文提出模型的有效性,將模型與以下基于自注意力機(jī)制的序列推薦模型進(jìn)行對(duì)比: (1)SASRec[2]:首個(gè)基于自注意力機(jī)制的序列推薦模型。 (2)TiSASRec[10]:2020年提出的基于自注意力機(jī)制的序列推薦模型,在SASRec模型的基礎(chǔ)上融合了序列中項(xiàng)目和項(xiàng)目之間的時(shí)間間隔信息。 (3)SSE-PT[11]:2020年提出的基于自注意力機(jī)制的序列推薦模型,在SASRec模型的基礎(chǔ)上引入了一種新型的正則化技術(shù)SSE。 本節(jié)將在3個(gè)數(shù)據(jù)集上進(jìn)行消融實(shí)驗(yàn)以測(cè)試非侵入式自注意力機(jī)制能否解決信息過載問題并測(cè)試加入項(xiàng)目類別信息能否緩解數(shù)據(jù)稀疏問題;分析本文提出的NIESR模型中一些主要超參數(shù)對(duì)于模型性能的影響;與3個(gè)對(duì)比模型的性能作比較;分析NIESR模型的時(shí)空復(fù)雜度。為保持實(shí)驗(yàn)公平性,除超參數(shù)對(duì)比實(shí)驗(yàn)外的實(shí)驗(yàn),模型的超參數(shù)設(shè)置為默認(rèn)超參數(shù)(見表2),在超參數(shù)對(duì)比實(shí)驗(yàn)中對(duì)默認(rèn)超參數(shù)采取控制變量法,只改變一個(gè)超參數(shù)其它超參數(shù)不變。實(shí)驗(yàn)均在RTX2080Ti顯卡上部署。 表2 默認(rèn)超參數(shù)設(shè)置 3.4.1 消融實(shí)驗(yàn) 為驗(yàn)證本文提出的非侵入式自注意力機(jī)制能否解決信息過載問題,將刪除NIESR模型輸入的項(xiàng)目類別信息部分,并命名為NIESR-。NIESR-模型與基線模型SASRec有著相同的輸入,區(qū)別在于SASRec模型直接將項(xiàng)目序列的絕對(duì)位置信息的嵌入表征與項(xiàng)目序列的嵌入表征直接相加,然后用多頭自注意力機(jī)制提取特征,而NIESR-模型使用兩個(gè)多頭自注意力機(jī)制分別處理這兩種輸入信息,因此,將NIESR-模型與基線模型SASRec進(jìn)行對(duì)比即可驗(yàn)證本文提出的非侵入式自注意力機(jī)制能否解決信息過載問題。NIESR-模型作為NIESR模型刪去項(xiàng)目類別信息的版本,將它們的評(píng)估指標(biāo)作對(duì)比即可驗(yàn)證在模型中融合項(xiàng)目類別信息能否緩解數(shù)據(jù)稀疏問題。模型的主要超參數(shù)設(shè)置為表2提供的默認(rèn)超參數(shù)。實(shí)驗(yàn)結(jié)果見表3。其中最佳的評(píng)估指標(biāo)將用加粗字體標(biāo)注,次佳用下劃線標(biāo)注。 從表3可以看出,NIESR-模型的評(píng)估指標(biāo)皆優(yōu)于SASRec模型,驗(yàn)證了本文提出的非侵入式自注意力機(jī)制可以解決信息過載問題;NIESR模型的性能皆優(yōu)于NIESR-模型,這說明引入項(xiàng)目類別信息的確可以緩解數(shù)據(jù)稀疏問題。其中對(duì)于Top-1指標(biāo)的提升最大,這更能說明引入項(xiàng)目類別信息的重要性,因?yàn)樾蛄型扑]模型的任務(wù)就是給用戶推薦下一個(gè)他可能會(huì)感興趣的項(xiàng)目。 表3 消融實(shí)驗(yàn) 3.4.2 嵌入層維度對(duì)評(píng)估指標(biāo)的影響 為衡量嵌入層維度對(duì)評(píng)估指標(biāo)的影響,取嵌入層維度分別為8、16、32、64、128、256時(shí)評(píng)估指標(biāo)NDCG@10的結(jié)果進(jìn)行比較,如圖3所示。 圖3 嵌入層的維度對(duì)評(píng)估指標(biāo)的影響 從圖3可以看出,Movielens 1M數(shù)據(jù)集與京東數(shù)據(jù)集在嵌入層維度為128時(shí)趨近飽和,這在一定程度上表明了當(dāng)本文提出的模型面對(duì)稠密數(shù)據(jù)集時(shí),應(yīng)分配高維度的嵌入層。相反,豆瓣電影數(shù)據(jù)集在嵌入層維度為32時(shí)達(dá)到了飽和,這在一定程度上表明當(dāng)模型面對(duì)稀疏數(shù)據(jù)集時(shí)設(shè)置嵌入層維度不宜過大,否則會(huì)導(dǎo)致模型過度參數(shù)化[4],表現(xiàn)反而會(huì)更差。 3.4.3 序列長(zhǎng)度對(duì)評(píng)估指標(biāo)的影響 為衡量序列長(zhǎng)度對(duì)評(píng)估指標(biāo)的影響,取序列長(zhǎng)度分別為10、25、50、100、200時(shí)評(píng)估指標(biāo)NDCG@10的結(jié)果進(jìn)行比較,如圖4所示。 圖4 序列長(zhǎng)度對(duì)評(píng)估指標(biāo)的影響 從圖4可以看出,隨著序列長(zhǎng)度的增加本文提出的模型在3個(gè)數(shù)據(jù)集上的表現(xiàn)都是上升趨勢(shì),當(dāng)序列長(zhǎng)度低于序列平均長(zhǎng)度時(shí)隨著序列長(zhǎng)度的增加評(píng)估指標(biāo)的提高非常明顯,當(dāng)序列長(zhǎng)度高于序列平均長(zhǎng)度后評(píng)估指標(biāo)的提高開始減緩并趨近于飽和。 3.4.4 自注意力機(jī)制的頭數(shù)對(duì)評(píng)估指標(biāo)的影響 為衡量自注意力機(jī)制的頭數(shù)對(duì)評(píng)估指標(biāo)的影響,取頭數(shù)分別為1、2、4、8時(shí)評(píng)估指標(biāo)NDCG@10的結(jié)果進(jìn)行比較,如圖5所示。 圖5 自注意力機(jī)制的頭數(shù)對(duì)評(píng)估指標(biāo)的影響 Transformer模型的作者發(fā)現(xiàn)使用多頭注意力機(jī)制可以提高模型性能,它將注意力分布于h個(gè)子空間,每個(gè)子空間包含d/h維嵌入表征,而在本文提出的模型中多頭自注意力機(jī)制的頭數(shù)對(duì)于模型的影響很小,可能是因?yàn)樵赥ransformer模型中嵌入層維度d=512,而本文所提出的問題中所需的維度過小,不適合分解成更多的子空間。 3.4.5 自注意力機(jī)制的層數(shù)對(duì)評(píng)估指標(biāo)的影響 為衡量自注意力機(jī)制的層數(shù)對(duì)評(píng)估指標(biāo)的影響,取層數(shù)分別為1、2、3、4時(shí)評(píng)估指標(biāo)NDCG@10的結(jié)果進(jìn)行比較,如圖6所示。 圖6 自注意力機(jī)制的層數(shù)對(duì)評(píng)估指標(biāo)的影響 多層堆疊的自注意力機(jī)制可以捕獲數(shù)據(jù)集中更深層次的信息,如圖6所示,自注意力機(jī)制的層數(shù)對(duì)于模型的影響很小,是因?yàn)橐粚幼宰⒁饬C(jī)制已經(jīng)可以捕獲數(shù)據(jù)集中絕大多數(shù)的信息。 3.4.6 不同模型的實(shí)驗(yàn)結(jié)果對(duì)比 對(duì)比模型均以原文作者給出的原代碼運(yùn)行,在模型對(duì)比實(shí)驗(yàn)中所有模型的主要超參數(shù)都設(shè)置為表2的參數(shù),表中未提及的超參數(shù)保持原代碼的默認(rèn)設(shè)置,實(shí)驗(yàn)結(jié)果對(duì)比見表4。 表4列出了NIESR模型與其它對(duì)比模型在Top-N=1、Top-N=5以及Top-N=10時(shí)的評(píng)估指標(biāo),其中最佳表現(xiàn)與次佳表現(xiàn)分別用粗體和下劃線表示,提升率為次佳表現(xiàn)至最佳表現(xiàn)的提升。 從表4中可以看出NIESR模型在評(píng)估指標(biāo)NDCG以及Hit Rate上均達(dá)到了最好的結(jié)果。NIESR在評(píng)估指標(biāo)上的提升得益于模型在不造成信息過載的前提下融合了項(xiàng)目的類別信息,項(xiàng)目類別信息緩解了數(shù)據(jù)稀疏問題可以輔助模型更精確地捕捉項(xiàng)目之間的關(guān)聯(lián)性。SASRec相比于NIESR推薦效果不佳的原因是SASRec不但存在著數(shù)據(jù)稀疏問題,而且在融入項(xiàng)目絕對(duì)位置信息時(shí)造成了信息過載。TiSASRec相比于NIESR推薦效果不佳的原因是TiSASRec雖然在SASRec模型的基礎(chǔ)上融入了項(xiàng)目之間的時(shí)間間隔信息嘗試解決數(shù)據(jù)稀疏問題,但是使用直接相加的形式造成了模型輸入信息過載,導(dǎo)致模型對(duì)于SASRec的提升很小。SSE-PT相比于NIESR推薦效果不佳的原因是SSE-PT僅僅在正則化技術(shù)方面改善了SASRec,但是沒有改善數(shù)據(jù)稀疏問題,因此,對(duì)于SASRec模型的提高不是很明顯。通過表4還可以看出本文模型在數(shù)據(jù)集Movielens 1M和京東上的評(píng)估指標(biāo)提升不夠明顯,因?yàn)樵谶@兩個(gè)數(shù)據(jù)集中用戶與項(xiàng)目的平均交互長(zhǎng)度較長(zhǎng),序列信息較為充分,導(dǎo)致增加項(xiàng)目類別信息對(duì)于模型捕捉項(xiàng)目之間的關(guān)聯(lián)性的作用不明顯,而本文模型在用戶與項(xiàng)目的平均交互長(zhǎng)度較短的豆瓣電影上的評(píng)估指標(biāo)提高比較明顯,因?yàn)樾蛄休^短,模型可以學(xué)習(xí)到的信息有限,增加項(xiàng)目類別信息緩解了數(shù)據(jù)稀疏問題。因此,評(píng)估指標(biāo)的提升較為明顯。 表4 3個(gè)數(shù)據(jù)集上不同模型的實(shí)驗(yàn)結(jié)果比較 3.4.7 時(shí)空復(fù)雜度分析 由于本文提出的NIESR模型是基于SASRec模型進(jìn)行改進(jìn)的,因此,在本節(jié)將NIESR模型與SASRec模型在時(shí)空復(fù)雜度的層面進(jìn)行對(duì)比。 時(shí)間復(fù)雜度:本文提出的NIESR模型的時(shí)間復(fù)雜度主要受多標(biāo)簽類別信息拼接層、多頭自注意力機(jī)制、偏好表征拼接層以及前饋神經(jīng)網(wǎng)絡(luò)的影響,因此,模型的時(shí)間復(fù)雜度可表示為O(nmd2+n2d+nld2+nd2), 其中m代表項(xiàng)目擁有的類別標(biāo)簽的最大個(gè)數(shù),n代表序列的長(zhǎng)度,l代表偏好表征拼接層拼接的偏好表征個(gè)數(shù),d代表嵌入表征的維度。SASRec模型的時(shí)間復(fù)雜度可表示為O(n2d+nd2)。 接下來將對(duì)比這兩個(gè)模型在3個(gè)數(shù)據(jù)集上訓(xùn)練的時(shí)間開銷(1個(gè)epoch的訓(xùn)練時(shí)間)及測(cè)試的時(shí)間開銷。實(shí)驗(yàn)結(jié)果見表5。 表5 時(shí)間開銷對(duì)比 由表5可以看出,本文提出的NIESR模型訓(xùn)練所需的時(shí)間約為SASRec模型的1.5倍,測(cè)試時(shí)間約為SASRec模型的2倍,NIESR模型在時(shí)間開銷上高于SASRec模型的部分主要在于兩個(gè)調(diào)節(jié)嵌入表征拼接后大小的線性層,由于項(xiàng)目擁有的類別標(biāo)簽的最大個(gè)數(shù)m為常數(shù)且偏好表征拼接層拼接的偏好表征的個(gè)數(shù)l為常數(shù)3,通常情況下,m與l是小于n和d的,因此,NIESR模型的時(shí)間復(fù)雜度與SASRec模型的時(shí)間復(fù)雜度是同一個(gè)量級(jí)的。由于NIESR模型的評(píng)估指標(biāo)相對(duì)于SASRec模型的提升是可觀的,因此,NIESR模型的時(shí)間開銷高于SASRec模型的部分是適度的。 空間復(fù)雜度:空間復(fù)雜度代表了在模型訓(xùn)練過程中需要學(xué)習(xí)的參數(shù)量。本文提出的NIESR模型需要學(xué)習(xí)的參數(shù)來自于嵌入表征以及嵌入表征拼接使用的線性層、多頭自注意力機(jī)制、前饋神經(jīng)網(wǎng)絡(luò)和層規(guī)范化中的相關(guān)參數(shù)。NIESR模型與SASRec模型的參數(shù)量對(duì)比見表6。 表6 參數(shù)量對(duì)比 項(xiàng)目嵌入表征的參數(shù)量占整個(gè)模型訓(xùn)練過程中需要學(xué)習(xí)的參數(shù)量的主導(dǎo)地位,因此,在相同的數(shù)據(jù)集中,NIESR模型的參數(shù)量高于SASRec模型的部分僅在于類別信息的嵌入表征以及兩個(gè)調(diào)節(jié)嵌入表征拼接后大小的線性層。因此參數(shù)量高于SASRec模型的部分可以忽略不計(jì)。 本文提出的融合項(xiàng)目類別信息的非侵入式嵌入序列推薦模型通過使用多個(gè)多頭自注意力機(jī)制分別處理不同種類的輸入信息,解決了在基于自注意力機(jī)制的推薦模型中融合輔助信息會(huì)造成信息過載的問題,并通過融合項(xiàng)目類別信息緩解了數(shù)據(jù)稀疏問題。經(jīng)上述實(shí)驗(yàn)驗(yàn)證,在3個(gè)真實(shí)數(shù)據(jù)集上的評(píng)估指標(biāo)相比幾個(gè)近期提出的模型均得到了提升,但忽略了數(shù)據(jù)集中的用戶畫像信息,用戶畫像信息可以進(jìn)一步改善數(shù)據(jù)稀疏問題。下一步工作將著手研究如何將用戶畫像信息與模型相融合,進(jìn)一步緩解數(shù)據(jù)稀疏問題,提高模型的推薦性能。2.4 損失函數(shù)
3 實(shí) 驗(yàn)
3.1 數(shù)據(jù)集概況
3.2 評(píng)估指標(biāo)
3.3 對(duì)比模型
3.4 實(shí)驗(yàn)結(jié)果對(duì)比與分析
4 結(jié)束語(yǔ)
計(jì)算機(jī)工程與設(shè)計(jì)2022年12期