SelfGNN论文阅读笔记
SelfGNN: Self-Supervised Graph Neural Networks for Sequential Recommendation论文阅读笔记
Abstract
现存的问题:
首先,现有的序列模型主要关注单个交互序列的长期建模,忽略了不同用户行为之间有价值的短期协作关系。其次,真实世界的数据通常包含噪音,尤其是用户的短期行为,这些噪音可能来自临时意图或错误点击。这些噪音会对图形和序列模型的准确性产生负面影响,从而使建模过程更加复杂。
提出方法:
为了应对这些挑战,我们提出了一种用于顺序推荐的新型框架,称为自监督图神经网络(SelfGNN)。SelfGNN 框架基于时间间隔对短期图进行编码,并利用图神经网络 (GNN) 学习短期协作关系。它通过时间间隔融合和动态行为建模,在多个粒度水平上捕捉长期用户和项目表征。重要的是,我们的个性化自增强学习结构可根据用户的长期兴趣和个人稳定性来减轻短期图中的噪声,从而增强模型的稳健性。
Introduction
第一段介绍推荐系统和现存的一些方法
第二段介绍顺序推荐和现存的一些方法
第三段介绍基于SSL的推荐器和基于GNN的推荐器存在的问题,没有考虑时间
第四段介绍现有的方法取得成果是因为数据质量高,以及介绍噪音问题
后面就是介绍本文提出的方法
鉴于上述挑战,本研究提出了一种用于顺序推荐的自监督图神经网络(SelfGNN)。SelfGNN 旨在通过纳入动态协作信息和个性化短期去噪,并通过自我增强学习来捕捉用户兴趣。SelfGNN 建立在三个关键范例之上。
短期图协作编码
全局用户项目图根据时间间隔被划分为多个短期图。采用 GCN 传播协作的高阶信息。例如,在图 1 中,𝑢1 和𝑢2 在第一阶段有显著的协作信号,而𝑢3 在第二阶段与𝑢2 有类似的行为。这样,我们不仅捕捉到了协作模式,还包含了短期时间信息
多层次的长期顺序学习
我们进行了双层序列建模,形成了不同粒度的兴趣互补。在时间间隔层面,从不同短期图谱中学习到的特征被视为序列,从而为用户生成长期协作表征。在实例层面,用户行为的完整序列由自我关注机制建模。
个性化的自我增强学习的去噪
设计了一个自增强学习任务,根据用户的长期兴趣修正短期图中的相应关系。该任务为用户学习个性化的权重,并根据用户兴趣的稳定性调整噪音水平(例如,图 1 中的𝑢2 具有稳定的倾向,而𝑢4 则具有多变的兴趣)。因此,SelfGNN 可以在短期内分辨异常互动,并通过适应不同用户来减轻其影响。
本文的主要贡献如下:
- 我们介绍了一种新颖的自监督图推荐框架,该框架通过整合区间级周期性协作关系学习和贴心的实例级顺序建模,有效地捕捉了用户的动态兴趣。
- 我们的方法包含一个个性化的自增强学习组件,能够有效地对稀疏短期图中的噪声交互进行去噪处理。它还能生成个性化的权重,以适应不同的用户,从而提高模型满足个人偏好和稳定性的能力。
Method
在本节中,我们将介绍我们提出的SelfGNN框架,并在图2中说明了整个模型架构。
短期协作关系建模
前面按照时间划分把用户的交互数据转化为多个不同的邻接矩阵
也就是采用类似于LightGCN来获取每个时间段的用户-物品的表示
多层次的长期序列建模
在本节中,我们旨在从两个层面对长期关系进行建模:
i) 时间间隔级序列模式建模,它基于时间注意力将短期特征整合到长期嵌入中,捕捉不同时间段的动态变化;
ii) 实例级序列模式建模,它直接学习特定项目实例之间的配对关系。
时间间隔级序列模式建模
对于每个用户和项目,我们都会根据其短期嵌入构建一个按时间顺序排列的嵌入序列。为了将时间信息注入区间级序列,我们使用了门控递归单元(GRU)网络,而不是 Transformer 中使用的位置编码,因为在我们的工作中,当处理少量区间时,位置嵌入过于简单,无法捕捉时间信息。用户 𝑢𝑖 和项目 𝑣𝑗 的序列定义如下:
\(\begin{aligned}&S_{i}^{intv}=(\mathbf{h}_{1,i}^{(u)},\cdots,\mathbf{h}_{t,i}^{(u)},\cdots,\mathbf{h}_{T,i}^{(u)})\\&S_{j}^{intv}=(\mathbf{h}_{1,j}^{(v)},\cdots,\mathbf{h}_{t,j}^{(v)},\cdots,\mathbf{h}_{T,j}^{(v)})\\&\mathbf{h}_{t,i}^{(u)}=\mathrm{GRU}(\mathbf{e}_{t,i}^{(u)},\mathbf{h}_{t-1,i}^{(u)}), \mathbf{h}_{t,j}^{(v)}=\mathrm{GRU}(\mathbf{e}_{t,j}^{(v)},\mathbf{h}_{t-1,j}^{(v)})\end{aligned}\)
h代表GRU的隐藏状态,e为短期的建模表示。
然后利用多头点积注意力机制在这些序列上
\(\bar{\mathbf{H}}_{i}^{(u)}=\mathrm{Self-Att}(S_{i}^{intv}),\quad\bar{\mathbf{H}}_{j}^{(v)}=\mathrm{Self-Att}(S_{j}^{intv})\)
然后我们按照时间来对表示进行累加,获取最终的表示
\(\bar{\mathbf{e}}_i^{(u)}=\sum_{t=1}^T\bar{\mathbf{H}}_{i,t}^{(u)},\quad\bar{\mathbf{e}}_j^{(v)}=\sum_{t=1}^T\bar{\mathbf{H}}_{j,t}^{(v)}\)
其中,\(\bar{\mathbf{e}}_i^{(u)},\bar{\mathbf{e}}_j^{(v)}\)∈R𝑑 指的是𝑢𝑖 和 𝑣𝑗的输出嵌入向量,包含它们的长期模式。与仅对实例序列建模相比,我们的区间级建模利用周期性协作信号丰富了模块。
实例级序列模式建模
受自我关注机制成功的启发,我们也直接在包含用户互动项目实例的序列上使用自我关注网络来增强我们的 SelfGNN。将用户 𝑢𝑖 的第 𝑚 个交互项目表示为\(v_{i,m}\),其中 𝑚∈ {1, 2, ..., 𝑀} 和 𝑀 表示最大交互长度,我们组成以下序列来记录 𝑢𝑖 的操作:
\(S_{i,0}^{inst}=(\bar{\mathbf{e}}_{v_{i,1}}^{(v)}+\mathbf{p}_1,\cdots,\bar{\mathbf{e}}_{v_{i,M}}^{(v)}+\mathbf{p}_M)\)
其中\(p\)为可学习的位置嵌入
之后应用\(L_a\)层自注意力网络和残差链接来获取最后的表示
\(S_{i,l}^{inst}=\sigma(\text{Self-Att}(S_{i,l-1}^{inst}))+S_{i,l-1}^{inst},\quad\tilde{\mathbf{e}}_{i}^{(u)}=\sum S_{i,L_{a}}^{inst}\)
多视图聚合和预测
在预测之前,我们汇总了从实例级和区间级方法中得出的多视角用户特征,并做出如下最终预测:
\(\hat{\mathcal{A}}_{T+1,i,j}=\hat{\mathbf{e}}_i^{(u)\top}\cdot\bar{\mathbf{e}}_j^{(v)},\quad\hat{\mathbf{e}}_i^{(u)}=\bar{\mathbf{e}}_i^{(u)}+\tilde{\mathbf{e}}_i^{(u)}\)
最后的损失函数为:
\(\mathcal{L}_{rec}=\sum_{i=1}^I\sum_{k=1}^{N_{pr}}\max(0,1-\hat{\mathcal{A}}_{T+1,i,p_k}+\hat{\mathcal{A}}_{T+1,i,n_k})\)
个性化的去噪自增强
我们的 SSL 任务侧重于利用长期行为模式过滤短期的非固有用户偏好。从长远来看,这种嘈杂的行为数据可能会干扰用户真实兴趣的建模。此外,为了准确识别这类噪声短期行为,我们对 SSL 任务进行了个性化处理,针对不同用户采用不同强度的去噪 SSL,以满足用户不同程度的兴趣多样性,如图 3 所示。
具体而言,对于去噪 SSL 的每个训练样本,我们从短期图 A𝑡 中随机抽取两条观察到的用户-项目边(𝑢𝑖 , 𝑣𝑗)和(𝑢𝑖 ′, 𝑣𝑗 ′),并对齐给出的成对似然差分数。以 (𝑢𝑖 , 𝑣𝑗) 为例,计算公式如下
\(s_{t,i,j}=\sum_{k=1}^d\sigma(e_{t,i,k}^{(u)}\cdot e_{t,j,k}^{(v)}),\quad\bar{s}_{i,j}=\sum_{k=1}^d\sigma(\bar{e}_{i,k}^{(u)}\cdot\bar{e}_{j,k}^{(v)})\)
其中,\(s_{t,i,j},\bar{s}_{i,j}\) 分别表示𝑢𝑖与𝑣𝑗在第 𝑡 期和长期相互作用的可能性。
通过可能性分数,SelfGNN对短期和长期观点之间的得分差异。根据主要任务的损失设计,我们采用了SSL目标函数:
\(\mathcal{L}_{sal}=\sum_{t=1}^T\sum_{(u_i,v_j),(u_{i^{\prime}},v_{j^{\prime}})}\max(0,1-d_1\cdot d_2)\\d_{1}=w_{t,i}\bar{s}_{i,j}-w_{t,i^{\prime}}\bar{s}_{i^{\prime},j^{\prime}},\quad d_{2}=s_{t,i,j}-s_{t,i^{\prime},j^{\prime}}\)
其中,𝑑1 代表长期视图中边(𝑢𝑖 , 𝑣𝑗)与(𝑢𝑖 ′, 𝑣𝑗′)之间的似然差。𝑑2 代表第 𝑡 期短期视图中边(𝑢𝑖 , 𝑣𝑗)与(𝑢𝑖 ′, 𝑣𝑗 ′)之间的差异得分。
特别是,SelfGNN 运用学习到的𝑤𝑡,𝑖 和 𝑤𝑡,𝑖′ 权重来捕捉用户短期和长期偏好一致性的不同程度。这些权重的计算公式如下,它们对自我监督学习进行了个性化处理,以避免错误的跨视角偏好对齐:
\(w_{t,i}=\mathrm{sigm}(\Gamma_{t,i}\cdot\mathbf{W}_{2}+b_{2}),\\\Gamma_{t,i}=\sigma((\bar{\mathbf{e}}_{i}^{(u)}+\mathbf{e}_{t,i}^{(u)}+\bar{\mathbf{e}}_{i}^{(u)}\odot\mathbf{e}_{t,i}^{(u)})\mathbf{W}_{1}+\mathbf{b}_{1})\)
最终的损失函数如下:
\(\mathcal{L}=\mathcal{L}_{rec}+\lambda_{1}\cdot\mathcal{L}_{sal}+\lambda_{2}\cdot\|\Theta\|_{\mathrm{F}}^{2}\)
关于这个\(L_{sal}\)损失函数的公式的解释比较复杂,也就是说,有两条边A,B,A的长期偏好的得分比较高,B的长期偏好的得分比较低,且A的偏好的稳定性比B大,那么就会导致d1是正的,那么按照损失函数的优化d2就得变大,就表明A的短期偏好就会被增强,B的短期偏好就会被削弱
这个损失函数感觉就是如果一个用户的长期偏好很稳定,而另一个用户的爱好比较多变,就会导致长期偏好的得分不高。那么在短期偏好方面,稳定长期偏好用户的短期偏好就更加稳定可靠,而爱好多变的用户的短期偏好噪声就可能比较多,不太可信。
总结
这篇文章的核心感觉是两处地方,一处是按照时间切片的构图方式,另外一种是比较新颖的去噪方式。以及一个长短期兴趣的理论建模。