TGCL4SR论文阅读笔记
Temporal Graph Contrastive Learning for Sequential Recommendation论文阅读笔记
Abstract
现存问题:
但如何有效地利用时间信息并处理不断变化的用户行为中的不确定性噪声仍具有相当大的挑战性。
提出方法:
我们在本文中提出了一种用于序列推荐的时序图对比学习方法(TGCL4SR),它不仅利用局部交互序列,还利用全局时序图来理解项目相关性,并从时序角度分析用户行为。
具体来说,我们首先设计了时态项目转换图(TITG),充分利用全局交互来理解项目相关性,并通过基于邻居采样和时间干扰的双重转换来增强该图。因此,我们设计了一个时态项目转换图卷积网络(TiTConv)来捕捉 TITG 中的时态项目转换模式。然后,我们设计了一种新颖的时序图对比学习(TGCL)机制,以增强来自相同序列的增强图之间表征的一致性。针对局部交互序列,我们设计了一种时序编码器,将时间间隔嵌入纳入 Transformer 的架构中。
Introduction
第一段介绍序列推荐以及存在的问题
第二段介绍现有的一些序列推荐的方法
第三段介绍了SR中特定时间信息面临的挑战
首先,时间数据的多面性,无论是绝对还是相对数据,都带来了整合的复杂性。因此,要在连续推荐中适当、有效地利用多种类型的时间信息是很困难的。其次,用户兴趣演变的不同变化使得解读全局兴趣过渡模式变得复杂。学习用户兴趣的全局过渡模式既重要又困难。第三,不可预测和多样化的用户行为往往会引入噪声信息,这就要求在 SR 中进行稳健而准确的时间整合。
后面的部分就是提出本文的方法
为了应对上述挑战,我们在本文中提出了一种用于序列推荐的时序图对比学习方法(TGCL4SR),它不仅利用局部交互序列信息,还利用全局时序图来理解项目相关性和分析用户行为。具体来说,为了充分利用全局交互来探索项目相关性,我们首先设计了时序项目转换图(TITG),该图从序列中的相邻交互建立项目间的边,并将相应的时间戳和用户作为边的属性。
此外,由于噪声和提议的时序图规模较大,我们通过基于邻居采样和时间干扰的双重变换来增强 TITG。为了进一步分析增强 TITG 中的项目转换模式,我们设计了时态项目转换图卷积网络 (TiTConv),将具有绝对时间和用户的相邻项目的特征聚合在一起。然后,为了缓和数据稀疏性和用户行为的不确定性,我们提出了包括子图和干扰对比学习在内的时序图对比学习,以改善相同序列产生的增强图之间表征的一致性。对于局部交互序列,设计了一种时序编码器,将时间间隔嵌入纳入 Transformer 的架构中。从而准确捕捉用户兴趣的演变。最后,在训练阶段,除了交叉熵(cross-entropy)和对比损失(contrastive losses)外,我们还使用最大均值差异(MMD)损失来分别对齐全局图和局部序列的项目表示,从而保持语义的一致性。
本文的主要贡献如下:
- 为了充分理解项目相关性并从时间角度分析用户行为,我们提出了一种新方法,即 TGCL4SR,它可以学习全局时间图和局部交互序列。
- 我们专门设计了一个 TITG 来整合全局交互,从而有效地理解项目相关性。此外,为了分析 TITG 中的条目转换模式,我们设计了一个 TiTConv,以绝对时间和用户来聚合相邻条目的特征。
- 为了处理大规模图和噪声时间信息,我们通过基于邻居采样和时间干扰的双重变换来增强 TITG,并提出了一种时间图对比学习策略,以提高表示的鲁棒性和质量。
Problem Definition
构图是比较重要的一环,重点看看
时间物品转移图
为了从时间角度深入研究项目相关性,我们提出了一个时间项目转换图(TITG),用 G 表示。该图有效地融合了时间方面和用户表征,为所有用户行为序列中的时间项目关系提供了一个全面的视角。
对于一个用户的交互序列,我们将交互的物品与时间序列的后四个物品建立边
请注意,同一对项目可能有多条边,因为它们可以在不同的交互序列中同时出现。因此,我们使用五元组\(e = (v_i,v_j,u,t_1^u,t_2^u)\)来表示边 e 是根据用户 u 分别在\(t_1^u,t_2^u\)上与项目 vi , vj 互动的事实建立的。
Method
本节将介绍我们提出的 TGCL4SR 的技术细节。如图 2 所示,TGCL4SR 包括五个主要部分,即双图增强、TiTConv 层、时序图对比学习、时序编码器和预测层。通过上述部分,我们的方法从全局和局部两个角度学习行为序列表征。然后在预测层将每个序列的表征串联起来。最后,我们在训练阶段使用多任务方式进行模型学习。
双图增强
为了缓解数据稀疏性和噪声问题,我们通过双重变换来增强 TITG。我们首先对图上的节点邻居进行采样,得到子图,从而直接降低 TITG 的计算规模,缓解数据稀疏性问题。然后,我们在子图中添加随机时间干扰,从而减少模型受时间噪声的影响。
邻居采样
如上所述,TITG 是一个多边图。因此,直接计算整个图的表示代价高昂且效果不佳。此外,图数据的稀疏性可能会导致过度采样。因此,我们采用了邻接采样法来得出更小的增强图视图。具体来说,给定 TITG G 和交互序列 S,我们随机均匀地抽取 G 中每个项目 v∈S 的邻居节点。我们对每个深度的样本深度 M 和样本量 N 重复这一过程。这样,我们就可以生成两个增强子图视图
\(\mathcal{G}_{\mathcal{S}}^{1}=(\mathcal{V}_{\mathcal{S}}^{1},\mathcal{E}_{\mathcal{S}}^{1}) \mathrm{and} \mathcal{G}_{\mathcal{S}}^{2}=(\mathcal{V}_{\mathcal{S}}^{2},\mathcal{E}_{\mathcal{S}}^{2})\)
时间扰动
时间信息有时包含噪声,无法精确显示用户兴趣的变化,这就要求模型避免受到数据中时间噪声的过度影响。同时,数据的稀疏性和噪声可能会导致过度漂移。因此,我们设计了时间干扰方法来增强图数据。在这里,我们在 TITGs 中的边的时间戳属性中随机添加噪声,从而从给定的图中生成时间增强图视图。
通过上述两种图增强方法,我们最终得到了基于序列S的四个增强图\(\mathcal{G}_S^1,\mathcal{G}_S^2,\mathcal{G}_S^1,\mathcal{G}_S^{2^{\prime}}\)
TiTCov层
为了在 TITG 上学习细粒度的条目相关性,我们提出了一个时态条目转换图卷积层(TiTConv)。下面我们将详细介绍 TiTConv 在我们的模型中的第 (l + 1) 层。
对于边的时间戳属性,我们使用谐波编码器对它们进行编码
\(\boldsymbol{\phi}(t)=\left[\cos\left(w_1t+b_1\right),\ldots,\cos\left(w_nt+b_n\right)\right],\)
ϕ(t)表示时间戳t的嵌入
然后,对于输入图中的每条边\(e=(v_i,v_j,u,t_1^u,t_2^u)\), vi 通过 e 向 vj 传递的信息\(m_e^{(l)}\)计算如下:
\(\begin{aligned} &\boldsymbol{m}_i^{(l)}=\mathrm{Concat}\left(\boldsymbol{h}_i^{(l)},\boldsymbol{\phi}(0),\boldsymbol{u}\right), \\ &\boldsymbol{m}_j^{(l)}=\mathrm{Concat}\left(\boldsymbol{h}_j^{(l)},\mathrm{MLP}\left(\boldsymbol{\phi}\left(t_1\right)\left\|\boldsymbol{\phi}\left(t_2\right)\right),\boldsymbol{u}\right),\right. \\ &\boldsymbol{m}_e^{(l)}=\text{Concat}\left(\text{head}_1,\ldots,\text{head}_\eta\right)\boldsymbol{W}_h, \\ &\mathrm{head}_k=\mathrm{Attention}\Big(\boldsymbol{m}_i^{(l)}\boldsymbol{W}_k^Q,\boldsymbol{m}_j^{(l)}\boldsymbol{W}_k^K,\boldsymbol{m}_j^{(l)}\boldsymbol{W}_k^V\Big) \end{aligned}\)
需要注意的是,在许多实际数据集中,vi 和 vj 之间可能存在多条边,我们分别添加它们,并分别计算它们的信息。
经过信息传播后,我们就可以利用sum聚合和 MLP 在下一层获得 vk 的表示:
\(\boldsymbol{h}_k^{(l+1)}=\mathrm{MLP}\left(\boldsymbol{h}_k^{(l)}\|\sum_{e\in\mathcal{E}_{v_k}}\boldsymbol{m}_e^{(l)}\right),\)
在此之后,具有平均聚合的GraphSAGE被堆叠为更深的邻居特征。
在获取所有的邻居特征后进行平均聚合得到子图表示的特征
时序图对比学习
为了缓解数据稀疏性并加强稳定的项目表示,我们从时间角度设计了独特的图形对比学习。在 SR 场景中,正样本对由相同序列的不同视图组成,而同一迷你批次中不同序列的视图则为负样本对。该模型应尽量减小正样本对之间的距离,并降低负样本对之间的相似度,以提高相同序列衍生出的增强图之间表征的一致性。
也就是先用普通的两个邻居采样子图进行对比学习
然后再用两个同一采样子图的不同时序扰动图进行对比学习
时序的序列编码器
为了研究具有时间信息的用户本地交互序列表征,我们设计了一种时间序列编码器。为了有效地学习复杂的序列兴趣模式,我们利用堆叠变换器层作为基本序列编码器,它可以捕捉不断变化的用户兴趣。考虑到时间间隔的长度可能会影响当前交互对序列中下一次交互的影响,我们结合了项目和内部时间间隔的表示。给定序列 S 及其对应的时间戳序列 T,我们首先将 {t1, ..., t|S|} 转换为时间间隔序列:
\(\begin{Bmatrix}\delta_1,\delta_2,\ldots,\delta_{|S|}\end{Bmatrix}=\begin{Bmatrix}0,t_2-t_1,\ldots,t_{|S|}-t_{|S|-1}\end{Bmatrix}.\)
之后,根据用户兴趣的对数衰减,我们应用以下函数计算时间间隔 δi 的相应位置嵌入:
\(\mathrm{pos}_i=\lfloor a\log{(\delta_i/c+1)}\rfloor,\)
获取了时序表示后将其添加到序列表示上,然后将序列表示输入到Transformer上
预测层
首先连接获取的三个表示
\(\boldsymbol{P}^u=\mathrm{AttNet}\left(\left(\boldsymbol{H}_{S^u}^1\|\boldsymbol{H}_{S^u}^2\|\boldsymbol{R}_{S^u}\right)\boldsymbol{W}_T\right),\)
这个应该代表用户表示
最后预测结果的计算方式为:
\(\hat{\boldsymbol{y}}_v^{S^u}=\mathrm{Sigmoid}\left(\boldsymbol{P}^u\boldsymbol{v}^T\right),\)
模型优化
为了使模型训练更加稳定并获得更好的推荐性能,我们结合上述 TGCL,以多任务学习的方式,通过附加 MMD 损失来增强顺序推荐。
\(\mathcal{L}_{\mathrm{SR}}=-\sum_{u\in\mathcal{U}}\sum_{k=2}^{|S^u|}\log\frac{\exp\left(\hat{\boldsymbol{y}}_{v_k^u}^{S_{k-1}^u}\right)}{\sum_{v\in\mathcal{V}}\exp\left(\hat{\boldsymbol{y}}_v^{S_{k-1}^u}\right)},\)
我们还将 MMD作为辅助目标附加到我们的训练任务中,以提高项目嵌入与从 TITG 中学习到的表征之间的语义一致性。这里是最小化时序表示与全局表示的MMD损失
最终的损失函数为:
\(\mathcal{L}=\mathcal{L}_{\mathrm{SR}}+\sum_{u\in\mathcal{U}k=2}\left(\lambda_{1}\mathcal{L}_{TGCL}(S_{k-1}^{u})+\lambda_{2}\mathcal{L}_{MMD}(S_{k-1}^{u})\right),\)
总结
这篇文章的核心思路就构造了一个时序的物品-物品交互图,然后就是在进行对比学习时采用了时序的对比,以及在序列编码器时采用了带有时序信息的编码器