pdf:Session-based Recommendation with Graph Neural Networks(SR-GNN)
參考博客:https://sxkdz.github.io/research/SR-GNN/
摘要
基於會話的推薦問題旨在預測基於匿名會話的用戶操作。先前的方法將會話建模為序列,並估計項目表示以外的用戶表示,以提出建議。盡管取得了可喜的結果,但它們不足以在會話中獲得准確的用戶向量,而忽略了項目的復雜轉換。為了獲得准確的項目嵌入並考慮到項目的復雜過渡,我們提出了一種新穎的方法,即基於會話的Graph Neural Networks,SR-GNN的推薦。在提出的方法中,會話序列被建模為圖結構數據。基於會話圖,GNN可以捕獲項目的復雜轉換,這是以前的常規順序方法難以揭示的。然后,使用注意力網絡將每個會話表示為該會話的全局偏好和當前興趣的組成。在兩個真實數據集上進行的大量實驗表明,SR-GNN明顯優於基於會話的最新推薦方法。
RNN不足:
- 不能夠得到用戶的精確表示
- 忽略了條目之間的轉移關系
1 介紹
2 相關工作
3 提出的模型
SR-GNN的整體框架如下圖所示:

3.1符號定義
3.2構造會話圖(Session Graphs) (每個會話圖認為是全圖的一個子圖)
每一個會話序列s都可以被建模為一個有向圖Gs=(Vs,Es)。在該會話圖中,每個節點都代表一個物品 每一條邊( , )代表在會話s中,用戶在點擊了物品 后點擊了 。因為許多item可能會在會話序列中多次出現,因此論文給每一條邊賦予了標准化后的加權值,權重的計算方法為邊的出現次數除以邊起點的出度。論文將每個item通過GNN都映射到一個統一的詞嵌入空間中,且節點對應的詞嵌入向量v表示通過圖神經網絡學到的詞嵌入向量。基於每個節點的詞嵌入向量的表示形式,每個會話s就可以嵌入向量表示:各個節點的詞嵌入向量按時間順序拼接而成。
3.3在會話圖上的學習物品嵌入向量(Learning Item Embeddings on Session Graphs)
然后,我們提出如何通過圖神經網絡獲得節點的潛在向量。香草圖神經網絡由Scarselli等人提出。 (2009年),擴展了神經網絡方法來處理圖結構數據。 Li等。 (2015)進一步介紹了門控循環單元和提出門控GNN。GNN非常適合基於會話的推薦,因為它可以自動考慮富節點連接而提取會話圖的特征。我們首先演示會話圖中節點向量的學習過程。形式上,對於圖Gs的節點vs,i,更新函數如下所示:













定義為兩個鄰接矩陣和
的拼接,分別表示傳入邊和傳出邊的連接權重。具體例子如下圖所示:


具體來說,可以將數據特征與節點向量相對應起來處理這些信息。
3.4生成會話嵌入向量
之前基於會話的推薦方法一般假設對於每個會話的用戶都有明確的潛在表示。而SR-GNN恰恰相反,其不對生成的詞嵌入向量做任何假設。SR-GNN方法中的會話直接通過各個節點之間的聯系直觀表示。為了更好地預測用戶的下一次點擊,我們計划制定一項策略,將會話的長期偏好和當前興趣結合在一起,並使用這種組合的嵌入作為會話嵌入。
通過將所有的會話圖送入G-GNN中能夠得到所有節點的嵌入向量。接下來,為了將每個會話表示為嵌入向量 ,首先考慮局部嵌入向量s1,對於會話s=[ , ,… ],局部嵌入向量可以簡單定義為會話中最后點擊(last)的物品 ,對於具體的session也可以簡單表示為 ,即 。
然后,論文結合所有節點嵌入向量來計算會話圖的全局嵌入向量 ,鑒於不同節點信息可能存在不同的優先級,為了使全局嵌入向量有更好的表現,論文引入了soft-attention機制。
![]() |
q∈Rd*1, W1∈Rd*d, W2∈Rd*d,α∈R1*1 v∈Rd*1,s∈Rd*1 |
均是可訓練的,隨訓練迭代,控制着每個節點嵌入向量的權重
,最后對於每個節點對應的詞嵌入向量進行加權求和得到最后的全局詞嵌入向量。
最后將會話的局部嵌入向量和全局嵌入向量相結合即可得到融合的嵌入向量。其中矩陣W3∈Rd×2d將兩個組合的em層理矢量壓縮到潛在空間Rd中。
3.5推薦決策和模型訓練
進行建議和模型訓練在獲得每個會話的嵌入之后,我們通過將每個候選項目vi∈V的嵌入vi乘以會話表示sh來計算每個候選項vi∈V的分數zˆi,可以將其定義為:,sh∈Rd*1,v∈Rd*1, ziˆ∈R1*1
然后,我們應用softmax函數來獲取模型yˆ的輸出向量:其中zˆ∈Rm表示所有候選項目的推薦分數,yˆ∈Rm表示節點s似乎是會話s中的下一次單擊的概率。
對於每個會話圖,損失函數定義為預測與基本事實的交叉熵。可以這樣寫:,其中y表示地面真項的一熱編碼矢量。
最后,我們使用時間反向傳播(BPTT)算法訓練提出的SR-GNN模型。
請注意,在基於會話的推薦方案中,大多數會話的長度相對較短。因此,建議選擇相對較少的訓練步驟以防止過度擬合。

4. 實驗和分析
基線算法
評價指標
P@20:表示前20個推薦項目中正確推薦的准確率。
MRR@20(Mean Reciprocal Rank):代表正確推薦的物品優先級排名倒數的平均值,只計算前20個推薦中正確推薦的排名均值。MRR度量考慮推薦排名的順序,其中較大的MRR值表示正確的推薦位於排名列表的頂部。
參數設置
按照以前的方法(Li等人2017a; Liu等人。2018),我們為兩個數據集都設置了潛在向量的維數d = 100。此外,我們在驗證集上選擇其他超參數,該驗證集是訓練集的10%隨機子集。所有參數均使用高斯分布進行初始化,該分布的平均值為0,標准偏差為0.1。
與基准方法的比較
與各種連接方案的比較
所提出的SR-GNN方法可以靈活地構造圖中各項目之間的連接關系。由於會話中的用戶行為受到限制,因此在本節中,我們提出了另外兩種連接方式,以增強每個會話圖中項目之間的有限關系。
首先,我們將所有會話序列聚合在一起,並將它們建模為有向整體項目圖,此后稱為全局圖。在全局圖中,每個節點表示一個唯一的項目,每個邊表示從一個項目到另一個項目的有向過渡。其次,我們將一個會話中項目之間的所有高級關系明確建模為直接連接。總之,提出了以下兩種連接方案以與SR GNN進行比較:
- 具有歸一化全局連接的SR-GNN(SR-GNN-NGC)用基於SR-GNN的全局圖提取的邊權重替換連接矩陣。

- 具有完全連接的SR-GNN(SR-GNN-FC)使用布爾權重表示所有高階關系,並將其對應的連接矩陣附加到SR-GNN的連接矩陣。

不同連接方案的結果如圖3所示。從圖中可以看出,所有三種連接方案都可以達到與最新的STAMP和NARM方法更好或幾乎相同的性能,從而確認了其有用性。將會話建模為圖形。
- 與SR-GNN相比,SR-GNN-NGC減少了連接到節點的邊緣的影響。這種融合方法特別影響當前會話的完整性,尤其是當圖中邊緣的權重變化時,導致性能降級。
- 類似地,據說SR-GNN-FC的性能比SR-GNN差,盡管這兩種方法的實驗結果沒有太多差異。如此小的差異表明,在大多數推薦方案中,並非每個高階轉換都可以直接轉換為直接連接,而高階項之間的中間階段仍然是必不可少的。
請注意,SR-GNN-L是SR-GNN-AV的降級版本,其性能仍優於SR-GNN-AVG,並具有與SR-GNN-ATT幾乎相同的性能,支持當前的興趣和長期偏好對於基於會話的推薦至關重要。
會話序列長度的分析
我們進一步分析不同模型應對不同長度會話的能力。為了進行比較,我們將Yoochoose 1/64和Diginetica的會話分為兩組,其中“ Short”表示會話的長度小於或等於5,而每個會話中“ Long”的項都超過5。選擇樞軸值5是因為它是所有數據集中總會話平均長度的最接近整數。在Yoochoose數據上,屬於短組和長組的會話百分比為0.701和0.299,在Diginetica數據上為0.764和0.236。對於每種方法,我們在表3中報告根據P @ 20評估的結果。
我們提出的SR-GNN及其變體在會話長度不同的兩個數據集上穩定運行。它證明了該方法的優越性能以及圖神經網絡在基於會話的推薦中的適應性。相反,STAMP的性能在短期和長期小組中都有很大變化。STAMP(Liu et al。2018)根據重復的行為解釋了這種差異。它采用注意機制,因此在獲取用戶表示時可以忽略重復的項目。與STAMP類似,在Yoochoose上,NARM在短組中表現良好,但是性能隨着會話時間的增加而迅速下降,部分原因是RNN模型難以應對長序列。
然后,我們分析了具有不同會話表示形式的SR-GNN-L,SR GNN-ATT和SR-GNN的性能。與STAMP和NARM相比,這三種方法均取得了可喜的結果。可能是因為基於圖神經網絡的學習框架,我們的方法可以獲得更准確的節點向量。
這樣的節點嵌入不僅可以捕獲節點的潛在特征,還可以對節點連接進行全局建模。在此基礎上,SR GNN的變體之間的性能是穩定的,而兩種最新方法的性能在短數據集和長數據集上都有很大的波動。此外,該表顯示,盡管該變體僅使用本地會話嵌入向量,但SR-GNN-L也可以獲得良好的結果。可能是因為SR-GNN-L還隱含地考慮了會話圖中的一階和高階節點的屬性。圖4還證明了這種結果,其中SR-GNN-L和SR-GNN ATT都達到了接近最佳的性能。