本文Global Context Enhanced Graph Neural Networks for Session-based Recommendation,是发表在SIGIR20上的一篇文章。
本篇是推荐系统经典论文阅读的第三篇,前两篇分别是SRGNN、LESSR。
前置知识
图神经网络和会话推荐:参见前两篇文章前置知识部分。
全局图:是本文提出的定义,具体来说就是一个项目 v 3 v_3 v3与多个会话有关系,例如 s e s s i o n 1 : v 1 → v 3 → v 2 session1:v_1 \rightarrow v_3 \rightarrow v_2 session1:v1→v3→v2、 s e s s i o n 2 : v 4 → v 3 → v 1 session2:v_4 \rightarrow v_3 \rightarrow v_1 session2:v4→v3→v1,则将其汇聚成具有四个节点 v 1 , v 2 , v 3 , v 4 v_1,v_2,v_3,v_4 v1,v2,v3,v4和三条无向边 v 1 − v 3 , v 2 − v 3 , v 4 − v 3 v_1-v_3,v_2-v_3,v_4-v_3 v1−v3,v2−v3,v4−v3的无向图。
概述(动机和存在的问题)
原文概述:基于会话的推荐 (SBR) 是一项具有挑战性的任务,旨在根据匿名行为序列推荐项目。现有的 SBR 解决方案几乎都仅基于当前会话来建模用户偏好,而不利用其他会话,而其他会话可能包含与当前会话相关和不相关的项目转换。本文提出了一种称为全局上下文增强图神经网络 (GCE-GNN) 的新方法,以更微妙的方式利用所有会话中的项目转换,以更好地推断当前会话的用户偏好。具体而言,GCE-GNN 分别从会话图和全局图中学习两级项目嵌入:(i) 会话图,通过对当前会话中的成对项目转换进行建模来学习会话级项目嵌入;(ii) 全局图,通过对所有会话中的成对项目转换进行建模来学习全局级项目嵌入。在 GCEGNN 中,我们提出了一种新颖的全局级项目表示学习层,它采用会话感知注意机制以递归方式合并全局图上每个节点的邻居嵌入。我们还设计了一个会话级项目表示学习层,它使用会话图上的 GNN 来学习当前会话中的会话级项目嵌入。此外,GCE-GNN 使用软注意机制聚合了两个级别中学习到的项目表示。在三个基准数据集上的实验表明,GCE-GNN 始终优于最先进的方法。
概述中得到的信息:当前几乎所有的会话推荐都只关注当前的对话(实际与其建模和任务有关),本文主要利用了其他会话的信息结合推荐。具体针对当前的会话和全局的会话进行嵌入。
引言
此处原文探讨了早期基于会话的推荐,主要使用两种方法:基于相似性和基于链的方法。前者严重依赖当前会话中项目的共现信息(实际就是呈现出来的项目一致性),而忽略了顺序行为模式(就是没考虑顺序)。后者推断出用户对所有商品的所有可能选择序列(根据其他链),这对于商品数量巨大的实际应用来说可能会遇到难以计算的问题。
2020年之前许多深度学习方法被提出,例如使用RNN或记忆网络。引入了两个问题:
(1)一个会话可能会包含用户多方面的选择,包含噪声。对item-transation产生影响。
(2)例如SRGNN中使用了自注意力机制的图神经网络,较为依赖会话中每项对最后一项的item-transation,并通过这些学习整个会话的表示。
此外,几乎当时所有研究都基于当前会话对用户建模而忽略其他会话的项目转换模式。除了CSRM使用了m个会话协作,其中将每个会话视作最小单元,但是这种协作会引入不相干的信息,如下图所示:
假设当前会话为Session 2,那么会话1和3都会被使用进来,CSRM利用其他会话的item-transation有助于模拟当前偏好,例如 v 2 v_2 v2。但同时也会引入不相干的噪声 v 6 v_6 v6。
针对上述挑战,本文使用Global Context Enhanced Graph Neural Networks (GCE-GNN),以更微妙的方式利用所有会话中的item-transation,以便更好地推断当前会话的用户偏好。
Embedding部分:GCEGNN分别从会话图和全局图中学习两个级别的项目嵌入:(i) 会话图,通过对当前会话中的成对item-transation进行建模来学习会话级项目嵌入;(ii) 全局图,通过对会话(包括当前会话)中的成对item-transation进行建模来学习全局级项目嵌入。
模型部分:GCE-GNN提出了一种新颖的全局级项目表示学习层,它采用会话感知注意力机制以递归方式合并全局图上每个节点的邻居嵌入。还设计了一个会话级项目表示学习层,该层使用会话图上的 GNN 来学习当前会话中的会话级项目嵌入。此外,GCE-GNN 使用软注意力机制聚合了两个级别中学习到的项目表示。
主要贡献(除实验):
- 第一项利用所有会话中的全局级item-transation来学习全局级上下文信息进行会话推荐的工作。
- 提出了一个统一的模型,利用来自两个级别的图模型(即会话图和全局图)的成对item-transation信息来提高当前会话的推荐性能。
- 还提出了一种位置感知注意力机制,将反向位置信息纳入项目嵌入中,这显示了基于会话的推荐的优越性能。
相关工作
本文的这一部分值得一看,因为其详细介绍了会话推荐2010~2020间会话推荐的发展:
10年使用马尔科夫链。
接着着重介绍了深度学习相关的会话推荐:[GRU4REC](https://arxiv.org/abs/1511.06939)、[NARM](Neural attentive session-based recommendation)、基于注意力的短期记忆网络STAMP、Transformer启发的SASRec、混合通道模型建模的MCPRM、门控图神经网络SRGNN,以及其一定的变体GC-SAN、多头注意力聚合邻居嵌入的[FGNN](Rethinking the Item
Order in Session-based Recommendation with Graph Neural Network)。
基于协同过滤的仍与深度学习有竞争力。
方法
问题陈述
具有 V = { v 1 , v 2 , . . . , v m } V=\{v_1,v_2,...,v_m\} V={ v1,v2,...,vm}这么多个item,以及一个匿名的会话序列 S = [ v 1 s , v 2 s , . . . , v l s ] S=[v^s_1,v^s_2,...,v^s_l] S=[v1s,v2s,...,vls]预测 S S S下一次点击,即 v n + 1 s v^s_{n+1} vn+1s。在该模型下,输出所有可能项目的前 N N N个项目 ( 1 ≤ N ≤ ∣ V ∣ ) (1\leq N \leq |V|) (1≤N≤∣V∣)。
会话图和全局图的模型
会话图模型
每个会话序列都被转换成一个会话图,用于通过 GNN 学习当前会话中项目的嵌入,具体如下图:
其中每对相邻项目 v i → v j v_i\rightarrow v_j vi→vj都有一条有向边 < i , j > <i,j> <i,j>,并对每个节点 v i v_i vi添加自循环 < i , i > <i,i> <i,i>,本文不同item之间设置了四种不同关系的边:分别表示为 𝑟𝑖𝑛、𝑟𝑜𝑢𝑡、𝑟𝑖𝑛−𝑜𝑢𝑡 和 𝑟𝑠𝑒𝑙𝑓。对于边 ( v i s , v j s ) (v_i^s, v_j^s) (vis,vjs),𝑟𝑖𝑛 表示仅存在从 v i s v_i^s vis到 v j s v_j^s vjs的过渡,𝑟𝑜𝑢𝑡 意味着仅存在从 v j s v_j^s vjs到 v i s v_i^s vis的过渡,而 𝑟𝑖𝑛−𝑜𝑢𝑡 表明同时存在从 v i s v_i^s vis到 v j s v_j^s vjs的过渡和从 v j s v_j^s vjs到 v i s v_i^s vis的过渡; 𝑟𝑠𝑒𝑙𝑓指的是某项的自我转换。
全局图模型
通过整合会话中所有成对item-transation,考虑全局级item-transation以进行全局级项目表示学习。因此,提出了一种用于学习全局级项目嵌入的新型全局图模型,该模型打破了序列独立性假设,基于所有会话(包括当前会话)中的成对转换链接所有项目对。 接下来,我们首先提出一个用于建模全局级项目转换的概念(即𝜀-邻居集),然后给出全局图的定义。
定义 1. 𝜀-邻居集( N ε ( v ) \mathcal{N}_{\varepsilon}(v) Nε(v))。对于会话 S p S_p Sp中的任何项目 v i p v_{i}^{p} vip, v i p v_{i}^{p} vip的𝜀-邻居集表示一个项目集合,其中每个元素定义如下,
N ε ( v i p ) = { v j q ∣ v i p = v i ′ q ∈ S p ∩ S q ; v j p ∈ S q ; j ∈ [ i ′ − ε , i ′ + ε ] ; S p ≠ S q } \mathcal{N}_{\varepsilon}(v_{i}^{p})=\left\{v_{j}^{q}|v_{i}^{p}=v_{i'}^{q}\in S_{p}\cap S_{q};v_{j}^{p}\in S_{q};j\in[i^{'}-\varepsilon,i^{'}+\varepsilon];S_{p}\neq S_{q}\right\} Nε(vip)={
v