何婧媛,田 原,姜 寧,謝生龍
(延安大學數學與計算機科學學院,716000,陜西,延安)
基于會話的推薦(Session-based Recommendation,SR)是預測用戶下一步會點擊哪個項目,僅基于當前的序列會話數據,不需要用戶標識[1]。SR在電子商務和搜索等推薦系統中扮演著重要的角色,因為它直接幫助用戶緩解了許多Web應用程序中的信息過載問題。由于其在工業(yè)和學術上都具有很高的實用價值,目前已經提出了許多方法。經典的方法是馬爾可夫鏈,它根據用戶的前一個點擊項目預測用戶的下一個點擊項目。在這種假設下,過去行為的獨立組合限制了預測的準確性。最近,深度學習的發(fā)展促進了使用深度神經網絡進行推薦[2-5]。然而,這些方法使用會話中相鄰物品之間的單向轉換對會話表示進行建模,而忽略了稀疏項目之間的復雜轉換。
為了建模項目之間的復雜轉換,圖神經網絡(Graph Neural Network,GNN)已經取得了先進性能,并在SR中顯示出了優(yōu)越性[6-7],這些方法得到了滿意的輸出,并被證明是有效的。然而,在現實的每個會話中,將輸入和輸出鄰域矩陣連接起來可能會在沒有交互的物品之間引入額外的關系,而將輸入和輸出鄰域矩陣一起編碼以生成當前項目的表示可能是不合理的。
全局偏好是由不同時間的局部偏好構成的,局部偏好圍繞全局偏好波動,這表明2個偏好之間是相互依賴和相互影響的。此外,協同信息在會話表示建模中扮演著重要的角色,并已被研究多年。為了同時考慮偏好依賴和協同信息,本文在框架中引入了并行協同注意力機制。相關研究表明,在包含正在進行的會話及其相鄰會話的會話塊中,考慮全局和局部偏好之間的交互是有意義的。
現有的SR方法主要有以下3種:1)傳統的SR方法。該類型方法主要基于項目對項目或項目在會話中同現的思想。Linden等[8]使用商品對商品的協同過濾進行推薦。Rendle[9]將矩陣分解和馬爾可夫鏈(Markov Chain, MC)結合起來,為下一個推薦建立序列行為模型。Chen等[10]將歌單建模為MC,并使用邏輯馬爾可夫嵌入來學習歌曲的表示,用于歌單預測。2)基于RNN的SR方法。循環(huán)神經網絡(Recurrent Neural Network, RNN)因其對序列行為的建模能力而受到廣泛關注。Hidasi等[2]第一個將RNN應用于SR的研究,他們將會話中的項目序列作為RNN的輸入。Li等[3]設計了一個名為NARM的模型,該模型將最后一個項目的隱藏狀態(tài)作為全局興趣,應用項目級注意力機制來構建主要目的。Liu等[4]提出了一種名為STAMP的方法,該方法捕獲穩(wěn)定和動態(tài)興趣,以產生全局興趣和主要目的。Wang等[5]引入了一種混合框架CSRM,該框架使用正在進行的會話信息和協同相鄰信息來提高推薦性能。Pan等[11]考慮了物品的重要性,即它們與用戶提高推薦性能的主要意圖的相關性。3)基于GNN的SR方法。近年來,GNN在各種任務中取得了巨大的成功,在SR中的應用也越來越廣泛。Li等[12]提出了Disen-GNN,在考慮每個項目的因素級注意力的情況下捕獲會話目的。Xu等[7]使用GNN和自注意力機制來學習所有項目的潛在向量和距離位置之間的全局依賴關系進行推薦。Yu等[13]設計了一個名為TAGNN的模型,該模型集成了圖形結構數據和用于SR的目標感知注意模塊。Xia等[14]提出了SHT,通過顯式地探索全局協作關系來增強用戶表示和推薦系統的魯棒性。綜上所述,現有方法都取得了一定成果,但仍存在一些缺陷。
針對SR的現有問題,本文基于會話的圖神經網絡推薦(Session-based Recommendation with Graph Neural Network, SR-GNN)[6]的啟發(fā),提出一種基于會話的輸入鄰域矩陣和輸出鄰域矩陣的偏好交互推薦(Session-based recommendation with preference interaction from separate incoming adjacent matrix and outcome adjacent matrix,SR-IOPI)框架。
SR的任務是在不訪問穩(wěn)定偏好文件的情況下,僅根據匿名的當前序列數據預測用戶下一步可能點擊的內容。這里給出模型中的符號。
SR中,V={v1,v2, … ,v|v|}表示所有會話中唯一項目的集合。給定一個塊{s1,...,sj-1,sj,sj+1,...,sm}和一個匿名會話序列sj=[v1,v2,...,vn],vi表示sj中一個有序的點擊項目,s1,...,sj-1,sj+1,...,sm為sj的鄰域會話,由其他匿名用戶生成。本文模型的目標是基于從sj及其鄰域會話中提取的信息來預測sj的下一個點擊項目vn+1。
本文提出的SR-IOPI基本思想是通過GNN和并行協同注意力機制(Parallel co-attention mechanism,PCM)獨立使用輸入關聯數據和輸出關聯數據來提高推薦性能。圖1中SR-IOPI的框架顯示在左邊,ISE和OSE的詳細模塊顯示在右邊。
圖1 SR-IOPI方法框架及ISE和OSE的詳細模塊
如圖1所示,SR-IOPI由3個主要組件組成:輸入會話表示編碼器(Incoming session representation en-coder,ISE)、輸出會話表示編碼器(Outcome session representation encoder,OSE)和推薦解碼器。首先,將會話序列建模為會話圖。對于ISE,通過門控GNN構建節(jié)點向量?;诠?jié)點向量,構建會話的輸入局部偏好和輸入全局偏好。然后,在塊中會話的幫助下,通過并行協同注意力機制,2個偏好通過正在進行的會話本身和鄰域會話的偏好交互更新。之后,將2個新的更新表示(輸入全局感知的局部偏好和輸入局部感知的全局偏好)連接起來,生成統一的輸入會話表示。對于OSE,與ISE的過程類似,OSE生成統一的輸出會話表示。最后,將ISE和OSE的輸出輸入推薦解碼器,利用融合門控機制平衡來自ISE和OSE的信息進行推薦。輸出的是每個候選項目的推薦概率。
給定一個輸入會話sj=[v1,...,vi,...,vn],首先將該會話建模為一個有向圖,其中每個項目vi表示為一個節(jié)點,每條邊(vi,vi+1)表示該會話中項目vi的下一個項目vi+1被點擊。因為多個項目可能在會話中重復出現,所以每條邊的計算方法是:邊的出現次數除以該邊的起始節(jié)點的度。因此,可以根據連接邊建立獨立輸入鄰域矩陣Ain和輸出鄰域矩陣Aout。將每個項目vi嵌入到統一的嵌入空間vi∈Rd。然后,將sj和Ain中嵌入的所有項目[v1,v2,...,vn]輸入到ICE中生成輸入會話表示,將sj和Aout中嵌入的所有項目[v1,v2,...,vn]輸入到OCE中生成輸出會話表示。
對于一個會話,通過門控GNN[15]學習節(jié)點的潛在向量。由于門控GNN可以在考慮豐富節(jié)點連接的情況下提取會話圖的特征,文獻[6]提出利用門控GNN作為編碼器來學習會話圖中的節(jié)點向量。形式上,對于會話圖和Ain中第i時刻嵌入的每個項目vi,不同節(jié)點之間的信息傳播計算為:
(1)
(2)
由于會話直接由節(jié)點組成,本文計劃從節(jié)點向量生成局部偏好和全局偏好。然后,采用局部偏好和全局偏好構建會話表示。具體所述如下。
(3)
(4)
(5)
具體來說,關聯矩陣Cin中的元素表示每個全局偏好和每個局部偏好之間的相似性。
(6)
第j行Cin的每個元素表示第j個全局偏好與每個局部偏好的相似度,第j列Cin的每個元素表示第j個局部偏好與每個全局偏好的相似度。因此,本文通過Cin的一個跨行和列的softmax函數,得到每個局部偏好和每個全局偏好的注意力權重:
(7)
(8)
(9)
PCM在塊中所有會話的幫助下更新會話的全局和局部偏好。即最終產生的輸入會話表示集成了來自持續(xù)會話的偏好依賴和來自鄰域會話的協同信息。
(10)
(11)
(12)
(13)
(14)
推薦解碼器是根據sj的混合輸入和輸出表示計算點擊下一個項目的概率。為了平衡ISE和OSE的信息重要性,本文通過融合門控機制構建最終會話表示sfinal:
(15)
其中,融合門控ft由以下公式確定:
(16)
(17)
其中,B∈Rd×2d,d為項目嵌入的維數。
(18)
本文分別使用Yoochoose和Diginetica數據集進行實驗。具體而言,Yoochoose1/64、Yoochoose1/4和Diginetica的統計數據見表1。
表1 數據集統計
為了便于與其他模型的比較,根據文獻[4]和[6]對數據集進行處理。本文首先在2個數據集中篩選出會話長度為1且項目出現次數小于5的數據。由于Yoochoose分數足以完成推薦任務,而增加數據的數量并不能提高推薦性能,因此將Yoochoose分為1/64和1/4訓練會話分數。此外,根據文獻[5]和文獻[13],本文為輸入會話[v1,v2,...,vn]構建一系列序列和標簽([v1],v2),([v1,v2],v3),…,([v1,v2,...,vn-1],vn)。
遵循前述工作[3,4,6,13],每個數據集中嵌入的項目為100。所有參數從均勻分布(-0.01, 0.01)隨機初始化。本文使用Adam在訓練時更新參數,初始學習率為0.001,每3個階段衰減0.1。另外,在模型中,批次大小為100,L2懲罰為10-5。對于評價指標,本文使用Recall@20和MRR@20(平均倒數排名)來衡量預測精度和推薦排名的順序。
本文將SR-IOPI與一些主流SR方法進行了比較。S-POP[2]根據它們在當前會話中的出現次數,推薦排名前n的項目。Item-KNN[16]推薦與最后一個項目相似度最高的項目,其相似度通過協同出現次數計算。FPMC[17]將MC和矩陣分解結合起來進行下一個推薦。GRU4Rec[18]為SR使用帶有并行會話的小批次訓練過程和基于排名的損失函數的RNN。NARM[3]使用基于RNN的方法和注意力機制來捕捉用戶的局部興趣和主要目的。STAMP[4]從長期和短期記憶中捕捉用戶的全局興趣和局部興趣。SR-GNN[6]使用基于節(jié)點表示的全局偏好和局部興趣進行推薦。CSRM[5]采用了一個內部內存編碼器和一個外部內存編碼器來為SR挖掘有用信息。TAGNN[13]引入了一個局部目標注意力單元來激活特定用戶的興趣并提高推薦性能。STAN[19]通過序列信息上不同優(yōu)先級的衰減因子將時間信息整合到SR中。SR-IEM[11]從具有自注意力機制的用戶穩(wěn)定偏好和最后一個項目嵌入的正在進行的會話中的最近行為中給出推薦。Disen-GNN[12]在考慮每個項目的因素級注意力的情況下捕獲會話目的。
基線方法和本文提出的SR-IOPI在Recall@20和MRR@20方面的性能見表2。這些值是每個模型5次的平均輸出,其中性能最好的用粗體表示。
表2 與基線方法的比較
對表2中的數據進行分析發(fā)現,在傳統方法中基于MC的FPMC的評價指標高于基于協同出現次數項目的S-POP,表示連續(xù)項目之間存在依賴關系。此外,Item-KNN的性能優(yōu)于FPMC,表示最后點擊的項目在推薦中起關鍵作用。
由于神經網絡方法具有對復雜上下文信息建模的能力,因此它們極大地優(yōu)于傳統方法。相比僅對正在進行的會話信息建模的方法,基于GNN(SR-GNN、TAGNN、STAN和Disen-GNN)的方法比基于RNN的方法(GRU4Rec、NARM)和多層感知器(STAMP)的方法有了改進。這可能是因為圖結構數據能夠捕獲更復雜的項目轉換模式,并且它驗證了GNN對會話信息建模是否友好。盡管Disen-GNN在基線方法中取得了最好的性能,但本文提出的SR-IOPI取得了超過Disen-GNN的顯著輸出。SR-IOPI不僅探討了鄰域會話的互助性,而且深入研究了正在進行的會話中2種興趣之間的相互引導關系。這表明,有效地挖掘會話的潛在信息可以保證較高的推薦性能。
為了說明本文模型中每種編碼器的效果,將SR-I、SR-O和SR-IO 3個變體進行比較。SR-I是指會話表示僅由輸入會話表示編碼器生成,不存在偏好交互。SR-O是指會話表示僅由輸出會話表示編碼器構建而成,不存在偏好交互。SR-IO是指會話表示僅由帶有融合門控機制的輸入和輸出會話表示編碼器產生,不存在偏好交互。表3顯示了SR的SR-I、SR-O和SR-IO的輸出性能。
表3 不同編碼器的性能比較
從表3中可以觀察到,這3種模型的性能都優(yōu)于GRU4Rec、NARM和STAMP,這再次表明,將會話建模為圖結構數據有利于推薦。與SR-GNN、TAGNN、STAN和SR-IEM相比,SR-IO的輸出更高。輸出表明,將輸入連接和輸出連接單獨編碼是合理的。同時,SR-I在Yoochoose 1/64數據集上的性能比SR-O差,而SR-O在Yoochoose 1/4數據集上的性能比SR-I差。這說明SR-I和SR-O是不相關的,它們對SR任務都很重要。此外,SR-IO的輸出證實了融合門控機制對于更好的推薦的有效性。
為了研究PCM在每個編碼器中的作用,本文還實施了獨立輸入會話表示編碼器(SR-ISE)和輸出會話表示編碼器(SR-OSE)。表4為SR的SR-ISE、SR-OSE和SR-IOPI輸出性能。
表4 具有并行協同注意力機制的SR-IOPI在不同編碼器上的性能比較
從表4可以看出,與SR-I、SR-O和SR-IO相比,SR-ISE、SR-OSE和SR-IOPI取得了明顯的改善,驗證了探討偏好之間相互作用以及在SR中引入鄰域會話的合理性。輸出也表明,PCM能夠挖掘更多有用的信息進行推薦。輸出連接信息在Yoochoose 1/64數據集上比輸入連接信息更有用,而在Yoochoose 1/4數據集上則相反。這些趨勢與表3的輸出一致,說明PCM不會對原始特征產生任何負面影響。
本文比較了SR-IOPI和SR-GNN中不同長度的會話在Diginetica上的差異,分析了會話長度的影響。對于表5,第2列和第3列的數字是每個時長間隔中真值項目排在前20名的會話數量。
表5 Diginetica上不同會話長度的比較
從表5中可以觀察到:1)SR-IOPI在所有長度上都始終優(yōu)于SR-GNN。輸出表明,分別編碼輸入矩陣和輸出矩陣適合于節(jié)點表示的設計,偏好交互使偏好更加精確。2)SR-IOPI的輸出在任意長度下都相對穩(wěn)定。說明該SR-IOPI模型具有良好的泛化能力。
本文從獨立的輸入鄰域矩陣和輸出鄰域矩陣框架出發(fā),提出了一種新的基于會話的偏好交互推薦方法。通過分別編碼具有偏好互動的輸入連接和具有偏好互動的輸出連接,提出的SR-IOPI將復雜項目轉換、偏好依賴和協同信息結合在一起。本文進行了實證實驗來研究SR-IOPI,在3個數據集上的實驗表明了該模型的有效性。