劉 乾,孫英娟,邢晶淇,車志敏
(1.長春師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,吉林 長春 130032; 2.長春市第一○三中學(xué),吉林 長春 130041)
基于會話的推薦是現(xiàn)代推薦系統(tǒng)的一個關(guān)鍵方面,它旨在通過關(guān)注用戶當(dāng)前的意圖來預(yù)測用戶的下一個興趣。由于用戶通過在各種平臺(如電子商務(wù)網(wǎng)站[1]、音樂流媒體服務(wù)[2]和社交媒體[3])上的互動產(chǎn)生的數(shù)據(jù)越來越多,基于會話的推薦已成為一個重要的研究領(lǐng)域。
大多數(shù)現(xiàn)有的會話推薦研究都將會話視為嚴(yán)格有序的序列[4]。在會話推薦研究之初,已經(jīng)提出了許多基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的模型,例如,GRU4Rec[5]通過對用戶交互的序列信息建模來捕獲用戶潛在的興趣。近年來,研究者提出了許多基于圖神經(jīng)網(wǎng)絡(luò)(GNN)的會話推薦模型[6-7],將會話建模為一個有向圖,并著重于用節(jié)點(diǎn)的成對關(guān)系對相鄰交互建模。這些算法有效地捕獲了序列信息,通過交叉熵?fù)p失函數(shù)來優(yōu)化參數(shù),從而取得很大的性能提升。
然而這些算法忽略了項(xiàng)目嵌入空間的優(yōu)化。圖注意力機(jī)制在節(jié)點(diǎn)信息聚合上有很大優(yōu)勢,通過在每個源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)之間分配權(quán)重,使節(jié)點(diǎn)能夠在聚合來自本地鄰居的消息時決定哪個鄰居節(jié)點(diǎn)更重要,而不是以相同的權(quán)重聚合來自所有鄰居的信息。對比學(xué)習(xí)通常作為優(yōu)化項(xiàng)目表示的一種有效方法,其核心是通過計(jì)算樣本表示之間的距離,拉近正樣本,拉遠(yuǎn)負(fù)樣本。本文使用圖注意力神經(jīng)網(wǎng)絡(luò)作為基礎(chǔ)模型,引入一種自我對比學(xué)習(xí)[8]輔助訓(xùn)練,改進(jìn)項(xiàng)目嵌入空間,在項(xiàng)目嵌入空間中實(shí)現(xiàn)了更好的均勻性,從而提高了模型性能。
首先將會話數(shù)據(jù)構(gòu)建成有向圖數(shù)據(jù),再在相鄰節(jié)點(diǎn)間使用注意力機(jī)制聚合數(shù)據(jù),然后生成會話嵌入,根據(jù)會話嵌入和候選項(xiàng)目生成推薦,同時使用對比學(xué)習(xí)輔助訓(xùn)練。算法流程如圖1所示。
圖1 算法流程
每個會話序列S可以建模為一個有向圖GS=(VS,ES)。其中,GS表示所有會話序列有向圖的集合,VS表示圖中節(jié)點(diǎn)集合,ES表示邊的集合,Vi,S表示會話S中的第i個節(jié)點(diǎn)(物品),(Vi-1,S,Vi,S)∈ES在圖上顯示為Vi-1,S指向Vi,S的有向邊,(Vi-1,S,Vi,S)對應(yīng)邊的值為1,兩物品之間無交互記為0。
Vi表示源節(jié)點(diǎn),Vj表示Vi的鄰居節(jié)點(diǎn),鄰居信息的聚合如下所示:
首先根據(jù)Vi和Vj求得權(quán)重系數(shù)αij。
(1)
其中,LR(·)表示激活函數(shù)LeakRelu。q1∈Rd。Vi,Vj∈Rd?!驯硎竟_(dá)瑪乘積,指對應(yīng)矩陣元素相乘。
然后對權(quán)重系數(shù)使用Softmax進(jìn)行歸一化。
(2)
其中,Ni表示節(jié)點(diǎn)i的鄰居結(jié)點(diǎn)的集合。
最后根據(jù)歸一化的權(quán)重系數(shù)聚合鄰居信息。
(3)
對節(jié)點(diǎn)的出度鄰居和入度鄰居使用相同的上述操作,最后合并出度和入度信息。
(4)
將更新后的圖的節(jié)點(diǎn)和原來的節(jié)點(diǎn)做一個合并。
Vl=LR(W1[Vl-1‖Vl]),
(5)
其中,Vl-1,Vl∈Rd,Vl-1表示l-1層圖節(jié)點(diǎn),Vl表示l層圖節(jié)點(diǎn),本算法只進(jìn)行一層圖更新?!硎具B接操作。W1∈Rd×2d,將拼接后的向量轉(zhuǎn)換到d維。
將得到的局部節(jié)點(diǎn)嵌入輸入到軟注意力機(jī)制中,用來捕獲全局會話嵌入,使用會話中最后一個項(xiàng)目嵌入作為查詢向量,注意力權(quán)重計(jì)算公式如下:
(6)
(7)
其中,q2∈Rd,W2,W3∈Rd×d是項(xiàng)目嵌入向量的參數(shù)矩陣,c∈Rd是偏置向量。
將會話嵌入和最后一個項(xiàng)目的嵌入合并:
S=W4[Vn,l‖Sg],
(8)
其中,W4∈Rd×2d,將拼接后的向量轉(zhuǎn)換到d維。
(9)
損失函數(shù)定義為預(yù)測結(jié)果的交叉熵:
(10)
其中,yi為真值項(xiàng)的one-hot向量。
LIU等[8]首先提出了自我對比學(xué)習(xí),是一種通過引入額外的損失函數(shù)來提高項(xiàng)目嵌入空間均勻性的直接解決方案,損失函數(shù)通過直接懲罰同一個批次內(nèi)項(xiàng)目嵌入的接近性實(shí)現(xiàn),該方案基于假設(shè)每個物品的嵌入應(yīng)該遠(yuǎn)離所有其他物品的嵌入。
將自我對比學(xué)習(xí)作為額外的損失函數(shù):
(11)
其中,xi表示正樣本,是一個批次的任一項(xiàng)目嵌入;xj表示負(fù)樣本,是一個批次內(nèi)的全部項(xiàng)目;n表示一個批次內(nèi)所有項(xiàng)目的總數(shù)。
(12)
其中,sim表示余弦相似性,τ表示溫度系數(shù)。
最后推薦損失和對比學(xué)習(xí)損失共同產(chǎn)生效果,δ是對比學(xué)習(xí)損失函數(shù)的權(quán)重系數(shù),作為可學(xué)習(xí)的參數(shù)。
(13)
使用兩個基準(zhǔn)數(shù)據(jù)集Diginetica和Yoochoose。其中,Diginetica來自2016年CIKM Cup挑戰(zhàn)賽的電子商務(wù)數(shù)據(jù)集;Yoochoose來自2015年RecSys挑戰(zhàn)賽的電子商務(wù)數(shù)據(jù)集。對兩個數(shù)據(jù)集進(jìn)行預(yù)處理。首先過濾掉長度為1的會話和出現(xiàn)次數(shù)少于5次的項(xiàng)目。然后對于Diginetica將最新一周的會話作為測試數(shù)據(jù),剩余的歷史數(shù)據(jù)用于訓(xùn)練。對于Yoochoose將最新一天的會話作為測試數(shù)據(jù),剩余的歷史數(shù)據(jù)用于訓(xùn)練,由于Yoochoose數(shù)據(jù)集比較大,取訓(xùn)練集中最新數(shù)據(jù)的1/64作為Yoochoose1/64數(shù)據(jù)集。最后對兩個數(shù)據(jù)集進(jìn)行數(shù)據(jù)擴(kuò)充,對于一個會話S=(v1,v2,…,vn),通過序列分裂預(yù)處理生成序列和相應(yīng)的標(biāo)簽,即([v1],v2), ([v1,v2],v3),…,([v1,v2,…,vn-1],vn)。數(shù)據(jù)集經(jīng)過預(yù)處理后的統(tǒng)計(jì)結(jié)果如表1所示。
表1 數(shù)據(jù)集信息
采用兩個廣泛使用的基于排名的指標(biāo):HR@K和MRR@K。HR@K是衡量召回率的指標(biāo),表示推薦列表能正確推薦的比例。MRR@K指標(biāo)用于度量會話推薦算法的排序質(zhì)量,即正確推薦項(xiàng)目在推薦列表中的位置的倒數(shù)。
(1)Item-KNN[9]:一種基于項(xiàng)目的最近鄰(KNN)推薦算法,通過計(jì)算會話向量之間的余弦相似度進(jìn)行推薦。
(2)FPMC[10]:一種基于馬爾科夫鏈的傳統(tǒng)推薦算法,通過建模相鄰點(diǎn)擊項(xiàng)目之間的順序行為預(yù)測用戶下一次可能點(diǎn)擊的項(xiàng)目。
(3)GRU4Rec[5]:首個有效的基于深度學(xué)習(xí)的會話推薦算法,使用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)對基于會話的用戶序列建模,通過堆疊多層門控循環(huán)單元(GRU)進(jìn)行訓(xùn)練。
(4)SR-GNN[11]:首個有效的基于圖神經(jīng)網(wǎng)絡(luò)(GNN)的會話推薦算法,通過將歷史會話序列構(gòu)建成網(wǎng)絡(luò)圖形式,通過GNN模塊編碼會話中項(xiàng)目之間的復(fù)雜轉(zhuǎn)移關(guān)系,采用軟注意力機(jī)制提取用戶的全局和當(dāng)前偏好,進(jìn)一步輸出推薦結(jié)果。
(5)TAGNN[12]:一種 SR-GNN的改進(jìn)算法,在原有算法的軟注意力模塊中引入目標(biāo)注意力單元,使算法能夠自適應(yīng)地激活不同的用戶偏好,從而提高算法的表達(dá)能力。
將向量維度設(shè)置為100,mini-batch大小設(shè)置為100。經(jīng)過多次實(shí)驗(yàn),將溫度系數(shù)τ設(shè)定為0.1。選擇訓(xùn)練集的隨機(jī)10%子集作為驗(yàn)證集。使用Adam優(yōu)化器,初始學(xué)習(xí)率為0.01,每3個epoch后衰減0.1,L2懲罰設(shè)置為10-5。
5個基線算法和本文算法在兩個真實(shí)數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果見表2,其中每列的最佳結(jié)果以加粗體字突出顯示??梢杂^察到,CLGNN在兩個數(shù)據(jù)集上的兩個指標(biāo)一致地達(dá)到了最佳性能,這確定了本文提出的方法的有效性。
表2 實(shí)驗(yàn)結(jié)果
本文提出了聯(lián)合對比學(xué)習(xí)的圖神經(jīng)網(wǎng)絡(luò)推薦算法,使用圖注意力機(jī)制獲得項(xiàng)目嵌入,通過軟注意力機(jī)制聚合會話內(nèi)的項(xiàng)目生成會話嵌入,同時使用自我對比學(xué)習(xí)來優(yōu)化項(xiàng)目嵌入空間。在Diginetica和Yoochoose1/64兩個真實(shí)數(shù)據(jù)集上取得了較好的推薦結(jié)果。