張曉暉,馬慧芳,王文濤,高子皓
(西北師范大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,蘭州 730070)
近年來(lái),基于會(huì)話的推薦(Session-Based Recommendation,SBR)方法受到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注[1-3]。與傳統(tǒng)的推薦算法不同,會(huì)話推薦側(cè)重于根據(jù)用戶當(dāng)前正在進(jìn)行的會(huì)話學(xué)習(xí)用戶的最新偏好,以推薦下一個(gè)項(xiàng)目。因此,通過(guò)預(yù)測(cè)用戶的最新偏好以推薦下一個(gè)項(xiàng)目是SBR 的核心任務(wù)。由于SBR 具有很高的實(shí)用價(jià)值,因此研究人員提出了許多推薦方法[4-5]。盡管這些方法取得了較好的推薦效果,但大多都僅基于當(dāng)前會(huì)話建模用戶偏好,忽略了跨會(huì)話信息和項(xiàng)目知識(shí)。而事實(shí)上,其他會(huì)話的交互數(shù)據(jù)和知識(shí)圖譜中豐富的實(shí)體和關(guān)系信息有助于捕獲項(xiàng)目之間的依賴關(guān)系、緩解數(shù)據(jù)稀疏問(wèn)題等。
馬爾可夫鏈(Markov Chain,MC)是最早被用于會(huì)話推薦的模型,其依據(jù)會(huì)話序列中用戶的前一個(gè)行為預(yù)測(cè)下一個(gè)行為,取得了較好的會(huì)話推薦效果[6]。然而,用戶行為往往受多步依賴關(guān)系的影響,僅從相鄰項(xiàng)目的轉(zhuǎn)換中捕獲信息,不足以建模用戶感興趣的演化過(guò)程。為了挖掘這種多步依賴的影響關(guān)系,研究人員提出基于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的會(huì)話推薦方法[7-8]。其中,GRU4REC[9]利用多層門(mén)控循環(huán)單元(Gated Recurrent Unit,GRU)捕獲完整的會(huì)話序列信息。NARM[10]在RNN 上利用注意力機(jī)制捕捉用戶的序列行為特征,該方法將數(shù)據(jù)簡(jiǎn)單地視為時(shí)間序列,存在預(yù)測(cè)偏差的問(wèn)題。因此,文獻(xiàn)[11]利用注意力網(wǎng)絡(luò)來(lái)代替循環(huán)編碼器,通過(guò)多層感知機(jī)(Multi-Layer Perceptron,MLP)和注意力網(wǎng)絡(luò)來(lái)捕獲用戶的一般興趣和當(dāng)前興趣。盡管該方法取得了一定進(jìn)展,但采用的線性序列結(jié)構(gòu)表達(dá)能力不強(qiáng),難以表示與建模項(xiàng)目之間復(fù)雜的非序列依賴關(guān)系。
近年來(lái),圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)廣泛應(yīng)用在包括會(huì)話推薦在內(nèi)的各種任務(wù)中[12-14],在空間上建模項(xiàng)目之間的轉(zhuǎn)換模式,有助于捕獲項(xiàng)目間復(fù)雜的依賴關(guān)系[15-16]。其中,SR-GNN[17]將GNN應(yīng)用到會(huì)話推薦任務(wù)中,并設(shè)計(jì)門(mén)控圖神經(jīng)網(wǎng)絡(luò)(Gated Graph Neural Network,GGNN)模型來(lái)捕獲復(fù)雜的項(xiàng)目轉(zhuǎn)換關(guān)系。此外,文獻(xiàn)[18]在SR-GNN 基礎(chǔ)上,采用多層自注意力機(jī)制獲得用戶的長(zhǎng)期興趣。然而,以上方法僅基于當(dāng)前會(huì)話來(lái)建模用戶偏好,忽略了跨會(huì)話信息對(duì)當(dāng)前會(huì)話重要性的影響。因此,文獻(xiàn)[19]結(jié)合不同的會(huì)話信息設(shè)計(jì)一個(gè)廣泛連接的會(huì)話圖,并使用多頭注意力機(jī)制學(xué)習(xí)每個(gè)項(xiàng)目的表示。盡管該方法考慮了其他會(huì)話的信息,但其忽略了知識(shí)圖譜中的項(xiàng)目知識(shí),并難以緩解數(shù)據(jù)稀疏和冷啟動(dòng)問(wèn)題,具有次優(yōu)推薦性能。
針對(duì)以上問(wèn)題,本文綜合考慮跨會(huì)話信息、知識(shí)圖譜中豐富的實(shí)體和關(guān)系信息,設(shè)計(jì)基于跨會(huì)話知識(shí)圖譜的圖注意力網(wǎng)絡(luò)推薦方法ARCK?;跁?huì)話數(shù)據(jù)和知識(shí)圖譜構(gòu)建跨會(huì)話知識(shí)圖譜,利用知識(shí)感知的注意力機(jī)制捕獲跨會(huì)話的項(xiàng)目轉(zhuǎn)換信息和知識(shí)圖譜中的項(xiàng)目知識(shí)來(lái)更新項(xiàng)目節(jié)點(diǎn)表示,采用注意力網(wǎng)絡(luò)和GRU模型建模目標(biāo)用戶的長(zhǎng)、短期興趣。在生成預(yù)測(cè)時(shí),通過(guò)跨會(huì)話知識(shí)圖譜獲得語(yǔ)義信息更加豐富的項(xiàng)目嵌入,從而得到更精確的會(huì)話推薦結(jié)果。
本文設(shè)S={s1,s2,…,s|S|}為項(xiàng)目集合V={v1,v2,…,v|V|}上的會(huì)話集合。第t個(gè)匿名會(huì)話是按時(shí)間順序排列的項(xiàng)目列表,其中∈V為第j個(gè)被點(diǎn)擊的項(xiàng)目,n為會(huì)話st的長(zhǎng)度。st可能包含重復(fù)的項(xiàng)目。為了緩解數(shù)據(jù)稀疏問(wèn)題,ARCK 模型考慮關(guān)于項(xiàng)目的側(cè)信息(如項(xiàng)目屬性和外部知識(shí))。這些側(cè)信息由真實(shí)世界的實(shí)體和它們之間的關(guān)系組成。例如,一首歌可以由它的歌手、語(yǔ)言和流派來(lái)描述。本文以知識(shí)圖譜的形式組織項(xiàng)目的側(cè)信息,給定知識(shí)圖譜GK={(h,r,t)|h,t∈E,r∈R},其中E表示所有的實(shí)體節(jié)點(diǎn),R表示所有節(jié)點(diǎn)的關(guān)系,每一個(gè)三元組都描述了從尾實(shí)體t到頭實(shí)體h之間存在一類關(guān)系r。例如,三元組(昨日重現(xiàn),歌手,Carpenters)描述了Carpenters 是歌曲《昨日重現(xiàn)》的歌手。此外,本文給定項(xiàng)目-實(shí)體對(duì)齊集A={(v,e)|v∈V,e∈ε},其中(v,e)表示項(xiàng)目v可以與知識(shí)圖譜中的實(shí)體e對(duì)齊。

本文主要符號(hào)描述如表1 所示。

表1 本文主要符號(hào)描述 Table 1 Description of main symbols in this paper
本文提出的ARCK 方法架構(gòu)如圖1 所示。其流程主要分為4 個(gè)步驟:1)基于跨會(huì)話圖GC和知識(shí)圖譜GK構(gòu)建跨會(huì)話知識(shí)圖譜GCK;2)通過(guò)知識(shí)感知的注意力機(jī)制在跨會(huì)話知識(shí)圖譜GCK上學(xué)習(xí)項(xiàng)目相關(guān)性,并將其編碼到項(xiàng)目表示中;3)將用戶行為序列視為GC中的子圖,并利用GRU 和注意力網(wǎng)絡(luò)學(xué)習(xí)會(huì)話嵌入;4)在預(yù)測(cè)層將學(xué)習(xí)到的會(huì)話嵌入、項(xiàng)目嵌入拼接后輸入至MLP,最終得到目標(biāo)會(huì)話-項(xiàng)目對(duì)的預(yù)測(cè)分?jǐn)?shù)。

圖1 本文方法架構(gòu)Fig.1 Framework of the proposed method
為了充分捕獲跨會(huì)話信息和項(xiàng)目知識(shí)來(lái)緩解數(shù)據(jù)稀疏問(wèn)題,本文將會(huì)話數(shù)據(jù)和知識(shí)圖譜中豐富的實(shí)體和關(guān)系信息進(jìn)行圖數(shù)據(jù)建模,并利用知識(shí)感知的注意力機(jī)制對(duì)其他會(huì)話的項(xiàng)目轉(zhuǎn)換信息和知識(shí)圖譜中的項(xiàng)目屬性進(jìn)行編碼,從而獲得項(xiàng)目嵌入矩陣。
2.1.1 跨會(huì)話知識(shí)圖譜構(gòu)建
本文給定跨會(huì)話圖GC、知識(shí)圖譜GK及項(xiàng)目-實(shí)體對(duì)齊集A,構(gòu)建跨會(huì)話知識(shí)圖譜GCK={(v,r,e)|v∈V,e∈E′,r∈R′},其中E′=V∪E,R′=R∪{transition}。
2.1.2 項(xiàng)目嵌入學(xué)習(xí)
知識(shí)圖譜嵌入是一種將實(shí)體和關(guān)系作為向量表示進(jìn)行參數(shù)化的有效方法,同時(shí)還可以保留圖的結(jié)構(gòu)信息。然而,在真實(shí)數(shù)據(jù)集中的項(xiàng)目通常由索引標(biāo)識(shí)組成,而這些原始索引表示能力非常有限。因此,受文獻(xiàn)[20]的啟發(fā),本文首先選擇廣泛使用的TransR[21]方法來(lái)學(xué)習(xí)跨會(huì)話知識(shí)圖譜上每個(gè)項(xiàng)目節(jié)點(diǎn)v、實(shí)體節(jié)點(diǎn)e和關(guān)系r的原始嵌入,即ev,ee,er∈Rd。通過(guò)將原始嵌入向量輸入到嵌入傳播層,即知識(shí)感知的注意力機(jī)制,生成每個(gè)項(xiàng)目的知識(shí)嵌入。設(shè)項(xiàng)目知識(shí)嵌入矩陣I=[v1,v2,…,v|V|],其中|V|為跨會(huì)話知識(shí)圖譜中的項(xiàng)目節(jié)點(diǎn)數(shù),vk∈Rd表示項(xiàng)目vk的知識(shí)嵌入,d為嵌入維度。具體地,本文給定跨會(huì)話知識(shí)圖譜GCK,對(duì)于圖中的項(xiàng)目節(jié)點(diǎn)v,三元組集合Nv={(v,r,e)|(v,r,e)∈GCK}稱為項(xiàng)目v的自我中心網(wǎng)絡(luò)[12]。為了獲得項(xiàng)目v的l階表示,項(xiàng)目v的自我中心網(wǎng)絡(luò)的線性組合計(jì)算如式(1)所示:

其中:π(v,r,e)為區(qū)分實(shí)體鄰居重要性的注意力分?jǐn)?shù),表示每條邊(v,r,e)上傳播的衰減因子,控制有多少信息在關(guān)系r的條件下從e傳播到v。具體地,π(v,r,e)由知識(shí)感知的 注意力機(jī)制計(jì)算,并利用Softmax 函數(shù)對(duì)與v相連的所有三元組系數(shù)進(jìn)行歸一化,如式(2)所示:

其中:Wr∈Rd×d為可學(xué)習(xí)的權(quán)重矩陣。由于距離更近的實(shí)體能傳播更多的信息,因此該方法使得注意力分?jǐn)?shù)依賴于關(guān)系r空間中ev和ee之間的距離。

為了獲得節(jié)點(diǎn)v的知識(shí)嵌入,本文對(duì)執(zhí)行l(wèi)層嵌入傳播操作獲得的項(xiàng)目節(jié)點(diǎn)v的l個(gè)表示進(jìn)行拼接,以實(shí)現(xiàn)層聚合操作,如式(4)所示:

其中:l為知識(shí)感知的注意力機(jī)制層數(shù);“||”為拼接操作。由此得到項(xiàng)目v的最終特征向量,即項(xiàng)目級(jí)嵌入。通過(guò)上述傳播過(guò)程獲得項(xiàng)目集V中每個(gè)項(xiàng)目的知識(shí)嵌入,即得到融合跨會(huì)話信息和項(xiàng)目知識(shí)的項(xiàng)目知識(shí)嵌入矩陣I∈R|V|×Ld。
盡管項(xiàng)目嵌入捕獲了跨會(huì)話信息和項(xiàng)目知識(shí),但其未揭示特定會(huì)話的上下文信息。已有研究表明,會(huì)話推薦模型應(yīng)充分利用當(dāng)前會(huì)話來(lái)反映用戶最近的偏好[19]。因此,通過(guò)學(xué)習(xí)會(huì)話級(jí)嵌入來(lái)保留原始會(huì)話st的信息并獲取用戶當(dāng)前偏好的做法是十分必要。本文給定目標(biāo)會(huì)話,會(huì)話嵌入學(xué)習(xí)包含兩個(gè)任務(wù):1)執(zhí)行嵌入查找操作,從項(xiàng)目知識(shí)嵌入矩陣I中提取出st特定的會(huì)話嵌入矩陣Is=[v1,v2,…,vn],其中Is∈Rn×Ld,vk∈RLd為會(huì)話st中第k個(gè)項(xiàng)目的知識(shí)嵌入;2)根據(jù)Is生成會(huì)話st當(dāng)前偏好和全局偏好表示。
GRU 克服了RNN 中存在的梯度消失問(wèn)題,其比長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)模型效率更高[23]。因此,本文采用GRU 來(lái)建模目標(biāo)會(huì)話的當(dāng)前偏好scurrentt,如式(5)所示:

其中:hn為會(huì)話st在GRU 中的第n步所輸出的隱藏狀態(tài)(向量);φGRU為GRU 中待學(xué)習(xí)的參數(shù)。該隱藏狀態(tài)的計(jì)算基于vn和第n-1 步的隱藏狀態(tài)hn-1。
通過(guò)聚合會(huì)話圖Gst中所有節(jié)點(diǎn)向量來(lái)得到目標(biāo)會(huì)話的全局偏好,如式(6)所示:

其中:vi為會(huì)話圖Gst中項(xiàng)目節(jié)點(diǎn)的知識(shí)嵌入。鑒于st中的項(xiàng)目可能具有不同的重要性,因此采用注意力網(wǎng)絡(luò)為每個(gè)項(xiàng)目分配相應(yīng)的權(quán)重ai,n,如式(7)所示:

其中:ai,n為會(huì)話st中第i個(gè)項(xiàng)目與最后一個(gè)項(xiàng)目之間的相似性分?jǐn)?shù)。
最后,將目標(biāo)會(huì)話的當(dāng)前偏好與全局偏好拼接生成最終的會(huì)話嵌入st,如式(8)所示:

如果一個(gè)項(xiàng)目和目標(biāo)會(huì)話越相似,那么該項(xiàng)目對(duì)于推薦就越重要。因此,利用目標(biāo)會(huì)話的最終嵌入st與候選項(xiàng)目vk∈V的嵌入vk計(jì)算得到,如式(9)所示:

對(duì)于會(huì)話推薦主任務(wù),本文將損失函數(shù)定義為模型預(yù)測(cè)結(jié)果和真實(shí)數(shù)據(jù)的交叉熵,如式(10)所示:

其中:yst,vk為真實(shí)數(shù)據(jù)中項(xiàng)目的one-hot 編碼向量。
此外,TransR 的訓(xùn)練考慮了有效三元組和無(wú)效三元組之間的相對(duì)順序,本文通過(guò)成對(duì)排名損失對(duì)其進(jìn)行區(qū)分。成對(duì)排名損失函數(shù)如式(11)所示:

其中:T={(h,r,t,t′)|(h,r,t)∈GCK,(h,r,t′)∈GCK};(h,r,t′)為通過(guò)隨機(jī)替換有效三元組中的尾實(shí)體而構(gòu)造的無(wú)效三元組;σ(·)為Sigmoid 函數(shù)。
考慮到以上兩種角度的損失,最后結(jié)合式(10)和式(11)得到模型中聯(lián)合優(yōu)化的目標(biāo)函數(shù),如式(12)所示:

其中:Θ為模型參數(shù)集;λ為超參數(shù);為L(zhǎng)2正則化項(xiàng),以防止模型出現(xiàn)過(guò)擬合現(xiàn)象。
ARCK 算法流程如下:
算法1ARCK 算法

本文在兩個(gè)真實(shí)數(shù)據(jù)集上設(shè)計(jì)實(shí)驗(yàn),驗(yàn)證ARCK方法的性能優(yōu)勢(shì),跨會(huì)話知識(shí)圖譜的構(gòu)建對(duì)ARCK 的性能影響,以及不同會(huì)話長(zhǎng)度和不同超參數(shù)的選取對(duì)ARCK 性能的影響。
為驗(yàn)證本文所提方法的有效性,本文選取兩個(gè)真實(shí)數(shù)據(jù)集進(jìn)行驗(yàn)證:1)KKBOX數(shù)據(jù)集(https://www.kaggle.com/c/kkbox-music-recommendation-challenge/data),包含用戶在特定時(shí)間段內(nèi)聽(tīng)音樂(lè)的歷史記錄,根據(jù)用戶行為頻率,將會(huì)話的持續(xù)時(shí)間閾值設(shè)置為2 000 min,將音樂(lè)及音樂(lè)屬性(如藝人(歌手)、類型、語(yǔ)言和發(fā)行年份)視為知識(shí)圖譜中的實(shí)體;2)JDATA 數(shù)據(jù)集(https://www.kaggle.com/c/kkbox-music-recommendationchallenge/data),收集自京東,其中包含兩個(gè)月內(nèi)的用戶歷史記錄,根據(jù)用戶在京東上的行為頻率,將會(huì)話的持續(xù)時(shí)間閾值設(shè)置為1 h,并將產(chǎn)品及產(chǎn)品屬性(如品牌、商店、類別和發(fā)布年份)視為項(xiàng)目知識(shí)。
根據(jù)文獻(xiàn)[17]的設(shè)置,過(guò)濾掉長(zhǎng)度為1 的會(huì)話和在數(shù)據(jù)集中出現(xiàn)次數(shù)少于3 次的項(xiàng)目。對(duì)于每個(gè)數(shù)據(jù)集,本文選擇前90%的用戶行為訓(xùn)練模型,剩下10%用來(lái)測(cè)試模型性能。兩個(gè)數(shù)據(jù)集的統(tǒng)計(jì)信息如表2所示。

表2 數(shù)據(jù)集信息統(tǒng)計(jì) Table 2 Information statistics of dataset
3.2.1 基線方法
本文對(duì)ARCK 方法與基線方法進(jìn)行對(duì)比,以驗(yàn)證ARCK 方法的有效性?;€方法主要有:1)GRU4REC[9],通過(guò)堆疊多個(gè)GRU層,將用戶序列編碼到最終狀態(tài);2)STAMP[11],采用注意力機(jī)制代替之前工作中的RNN 編碼器,以捕獲用戶的當(dāng)前興趣和一般興趣;3)SR-GNN[17],將會(huì)話數(shù)據(jù)建模為圖,并利用GGNN 來(lái)捕獲會(huì)話內(nèi)復(fù)雜的項(xiàng)目轉(zhuǎn)換關(guān)系,但該方法未考慮跨會(huì)話信息和項(xiàng)目知識(shí);4)FGNN[19],將會(huì)話序列構(gòu)建為全局圖,并使用圖注意力網(wǎng)絡(luò)來(lái)學(xué)習(xí)項(xiàng)目節(jié)點(diǎn)表示,但該方法僅基于會(huì)話信息進(jìn)行推薦,沒(méi)有考慮項(xiàng)目知識(shí)。
3.2.2 評(píng)價(jià)指標(biāo)
本文使用SBR 評(píng)估中的兩個(gè)指標(biāo)來(lái)驗(yàn)證模型的性能。這兩個(gè)指標(biāo)分別是Hit@k和MRR@k,此處設(shè)定k=20。
Hit@k(top-k項(xiàng)目的命中率)是top-k排名列表中命中樣本與測(cè)試集中所有樣本的比例,如式(13)所示:

其中:N表示測(cè)試集中項(xiàng)目的個(gè)數(shù);Number of Hits@k表示計(jì)算候選項(xiàng)目在排名列表中處于前k位的個(gè)數(shù)。Hit@k值越高,推薦性能越好。
MRR@k(按top-k項(xiàng)目計(jì)算的平均倒數(shù)排名)是正確推薦項(xiàng)目排名倒數(shù)的平均值,如式(14)所示:

MRR@k得分越高,推薦性能越好。
3.2.3 實(shí)驗(yàn)設(shè)置
為保證實(shí)驗(yàn)結(jié)果的可靠性,本文實(shí)驗(yàn)采用五次五折交叉驗(yàn)證法來(lái)評(píng)價(jià)ARCK 方法的性能。
在ARCK 方法的訓(xùn)練階段,本文將知識(shí)感知注意力機(jī)制迭代的層數(shù)l設(shè)置為3,批量大小固定為256,初始學(xué)習(xí)率設(shè) 為0.001,L2 正則化系數(shù)λ在{10-5,10-4,10-3,10-2,10-1}中進(jìn)行調(diào)優(yōu)。實(shí)驗(yàn)使用Xavier[24]初始化所有參數(shù),并使用Adam 優(yōu)化器[25]來(lái)優(yōu)化。為了公平起見(jiàn),將所有模型的嵌入尺寸設(shè)置為100,基線方法除了嵌入維度以外均使用原始論文中默認(rèn)的超參數(shù)設(shè)置。此外,實(shí)驗(yàn)所用操作系統(tǒng)為Windows10 64位,顯卡為NVIDIA GTX1080-8G,內(nèi)存為16 GB,實(shí)驗(yàn)代碼通過(guò)Python3.6.5 由PyTorch1.6進(jìn)行實(shí)現(xiàn)。本文實(shí)驗(yàn)顯示模型在其最佳超參數(shù)設(shè)置下的平均結(jié)果。
本節(jié)將ARCK 方法與上文所提的基線方法進(jìn)行對(duì)比,通過(guò)評(píng)估Hit@20 和MRR@20 得分來(lái)表示ARCK的整體性能。在KKBOX 和JDATA 數(shù)據(jù)集上不同方法的評(píng)價(jià)指標(biāo)對(duì)比如表3 所示。其中,加粗?jǐn)?shù)據(jù)表示基線方法中的最佳性能,帶星號(hào)的加粗?jǐn)?shù)據(jù)表示所有方法中的最佳性能,Improve.表示帶星號(hào)的加粗?jǐn)?shù)據(jù)與加粗?jǐn)?shù)據(jù)的差值。

表3 不同會(huì)話推薦方法的評(píng)價(jià)指標(biāo)對(duì)比 Table 3 Evaluation indicators comparison among different session recommendation methods
從表3 可以看出,ARCK 性能最佳,其原因在于ARCK 方法相比SR-GNN 進(jìn)一步考慮了跨會(huì)話的信息,并對(duì)知識(shí)圖譜中豐富的實(shí)體和關(guān)系信息進(jìn)行建模,提升了會(huì)話推薦的性能。
FGNN 通過(guò)構(gòu)建連接不同會(huì)話的廣泛連接會(huì)話圖來(lái)捕獲跨會(huì)話信息,因此性能表現(xiàn)較佳。SR-GNN將會(huì)話序列轉(zhuǎn)換為會(huì)話圖,并使用GGNN 改進(jìn)項(xiàng)目嵌入,其會(huì)話推薦結(jié)果相對(duì)傳統(tǒng)的GRU4REC 和STAMP 較準(zhǔn)確,但由于SR-GNN 僅基于當(dāng)前會(huì)話建模用戶偏好,因此性能表現(xiàn)不如FGNN 方法。傳統(tǒng)的GRU4REC 和STAMP 在兩個(gè)數(shù)據(jù)集上的性能都較差,這表明僅使用神經(jīng)網(wǎng)絡(luò)而不考慮會(huì)話中項(xiàng)目之間的轉(zhuǎn)換關(guān)系,不足以建模用戶偏好。
為了進(jìn)一步驗(yàn)證將跨會(huì)話信息和項(xiàng)目知識(shí)整合到會(huì)話推薦的重要性,本節(jié)設(shè)計(jì)了消融實(shí)驗(yàn)以評(píng)估三個(gè)ARCK 變體方法的性能。ARCK-GCK是從ARCK 模型中去除跨會(huì)話知識(shí)圖譜,即不考慮跨會(huì)話信息和項(xiàng)目知識(shí),僅從會(huì)話圖中學(xué)習(xí)項(xiàng)目嵌入。ARCK-GC是從ARCK 模型中去除跨會(huì)話圖,即不考慮跨會(huì)話信息,僅通過(guò)會(huì)話圖和知識(shí)圖譜學(xué)習(xí)項(xiàng)目嵌入。ARCK-GK是從ARCK 模型中去除知識(shí)圖譜,即不考慮項(xiàng)目側(cè)信息,僅通過(guò)跨會(huì)話圖學(xué)習(xí)項(xiàng)目嵌入。
跨會(huì)話知識(shí)圖譜的消融實(shí)驗(yàn)結(jié)果如表4 所示。從表4 可以看出:原始ARCK 方法的性能優(yōu)于三種變體方法,說(shuō)明在ARCK 方法中,跨會(huì)話信息和項(xiàng)目知識(shí)對(duì)性能提升均起到積極作用,特別是在較小的數(shù)據(jù)集KKBOX上,ARCK 相對(duì)于ARCK-GCK有很大程度的性能提升,進(jìn)一步驗(yàn)證了跨會(huì)話知識(shí)圖譜的構(gòu)建對(duì)于緩解數(shù)據(jù)稀疏性問(wèn)題是很有必要。

表4 跨會(huì)話知識(shí)圖譜的消融實(shí)驗(yàn)結(jié)果 Table 4 Ablation experimental results of the cross-session knowledge graph
ARCK-GCK的性能略優(yōu)于最佳基線FGNN,表明在會(huì)話圖上利用TransR 的方法學(xué)習(xí)項(xiàng)目初始嵌入,并利用知識(shí)感知的注意力機(jī)制學(xué)習(xí)項(xiàng)目嵌入,能夠有效提升模型性能。
3.5.1 會(huì)話長(zhǎng)度分析
為評(píng)估ARCK 方法處理不同會(huì)話長(zhǎng)度的能力,根據(jù)文獻(xiàn)[19]的設(shè)置,本文將KKBOX 和JDATA 中的會(huì)話劃分為兩組,分別為“短”會(huì)話和“長(zhǎng)”會(huì)話?!岸獭北硎久總€(gè)會(huì)話的長(zhǎng)度小于等于5,“長(zhǎng)”表示每個(gè)會(huì)話的長(zhǎng)度大于5。本文選擇中間值5 是由于其為最接近所使用數(shù)據(jù)集中平均會(huì)話長(zhǎng)度的整數(shù)。圖2 和圖3 所示為不同方法在兩個(gè)數(shù)據(jù)集上的Hit@20 平均評(píng)估結(jié)果。

圖2 在KKBOX 數(shù)據(jù)集上不同會(huì)話長(zhǎng)度對(duì)方法性能的影響Fig.2 Influence of different session lengths for methods performance on KKBOX dataset

圖3 在JDATA 數(shù)據(jù)集上不同會(huì)話長(zhǎng)度對(duì)方法性能的影響Fig.3 Influence of different session lengths for different methods performance on JDATA dataset
從圖2 和圖3 可以看出,隨著會(huì)話長(zhǎng)度的增加,所有模型的性能都會(huì)隨著噪聲信號(hào)的引入而下降。其中STAMP 降幅最大,這表明僅將會(huì)話數(shù)據(jù)建模為時(shí)間序列,更容易受到長(zhǎng)會(huì)話噪聲的干擾。SR-GNN僅基于單獨(dú)的會(huì)話建模用戶的長(zhǎng)期和短期興趣,因此在長(zhǎng)會(huì)話上性能會(huì)有所下降。由于FGNN 考慮了跨會(huì)話的信息,因此其在不同長(zhǎng)度會(huì)話上的性能相較于SR-GNN 較優(yōu),但在長(zhǎng)會(huì)話上性能略差。與此同時(shí),隨著會(huì)話長(zhǎng)度的增加,ARCK 方法對(duì)于不同長(zhǎng)度的會(huì)話均表現(xiàn)出穩(wěn)定的性能。因此,ARCK 方法可以有效建模不同長(zhǎng)度的會(huì)話。
3.5.2 超參數(shù)研究
損失函數(shù)中的L2 正則化系數(shù)λ是影響ARCK 模型推薦準(zhǔn)確度的主要超參數(shù)。本文實(shí)驗(yàn)的L2 正則化系數(shù)λ取{10-5,10-4,10-3,10-2,10-1},分別計(jì)算MRR@20和Hit@20。在MRR@20 和Hit@20上,超參數(shù)λ對(duì)ARCK性能的影響分別如圖4和圖5所示。從圖4和圖5可以看出,ARCK 方法的MRR@20 和Hit@20 隨著λ的增大而增大,但在KKBOX數(shù)據(jù)集上當(dāng)超參數(shù)λ超過(guò)10-3時(shí),在JDATA數(shù)據(jù)集上超過(guò)10-2時(shí),MRR@20和Hit@20呈下降趨勢(shì)。當(dāng)超參數(shù)λ較小時(shí),ARCK 方法會(huì)發(fā)生過(guò)擬合現(xiàn)象;當(dāng)超參數(shù)λ較大時(shí),方法的性能發(fā)生退化。因此,在10-3和10-2附近選擇超參數(shù)λ是合適的,在不使模型退化的情況下防止過(guò)擬合現(xiàn)象的發(fā)生。

圖4 在MRR@20 上超參數(shù)λ 對(duì)ARCK 性能的影響Fig.4 Influence of hyperparameter λ on ARCK performance in terms of MRR@20

圖5 在Hit@20 上超參數(shù)λ 對(duì)ARCK 性能的影響Fig.5 Influence of hyperparameter λon ARCK performance in terms of Hit@20
本文提出基于跨會(huì)話知識(shí)圖譜的圖注意力網(wǎng)絡(luò)推薦方法ARCK。通過(guò)構(gòu)建跨會(huì)話知識(shí)圖譜來(lái)全面捕獲跨會(huì)話信息和項(xiàng)目知識(shí),同時(shí)利用知識(shí)感知的注意力機(jī)制捕獲復(fù)雜的項(xiàng)目轉(zhuǎn)換模式。此外,采用注意力網(wǎng)絡(luò)和門(mén)控循環(huán)單元網(wǎng)絡(luò)建模用戶的長(zhǎng)短期興趣。在KKBOX 和JDATA 兩個(gè)真實(shí)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,該方法能有效地增強(qiáng)會(huì)話推薦的性能。下一步將嘗試同時(shí)考慮用戶間的社交關(guān)系和項(xiàng)目側(cè)信息,構(gòu)建異質(zhì)知識(shí)圖譜,并在異質(zhì)知識(shí)圖譜上學(xué)習(xí)細(xì)粒度的項(xiàng)目嵌入,以增強(qiáng)會(huì)話推薦性能。