《Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation》
session-based recommendation: SBR 是一种新兴的推荐范式,其中无法获得长期的 user profile。一般而言,一个 session 是一个在购物事件(shopping event)中包含了很多购买的 item 的交易(transaction),session-based 推荐专注于通过利用实时的用户行为来预测 next-item 。
session-based 推荐领域的大多数研究工作都将 session 视为有序的序列,其中 RNN-based 方法和 GNN-based 方法已经展示出强大的性能。
在 RNN-based 方法中,成功的关键是将 session-based 数据建模为单向序列,因为数据通常是在短时间内生成的,并且可能具有时间依赖性。然而,这个假设也可能会限制住这些 RNN-based 模型,因为它考虑不全面。
实际上,与严格顺序的方式生成的语言序列不同,在用户行为序列中可能没有如此严格的时间顺序。例如,在 Spotify 上,用户可以选择随机播放专辑或按顺序播放,这会生成两个不同的收听记录。但是,这两种播放模式都对应同一组歌曲。换句话讲,在这种情况下打乱两个 item 的顺序并不会导致用户偏好的扭曲。相反,严格且独立地建模 item 的相对顺序可能会使得推荐模型容易过拟合。
最近,GNN 已被证明在 session-based 推荐领域是有效的。与 RNN-based 方法不同,GNN-based 方法将 session-based 数据建模为有向子图,将 item transition 建模为 pairwise relation ,这稍微放松了连续 item 之间的时间依赖性假设。
然而,与 RNN-based 方法相比,现有的 GNN-based 方法仅展示出微不足道的提升。潜在的原因是它们忽略了 session-based 数据中复杂的 item correlation 。在实际场景中,一个 item 转移往往是由先前很多 item clicks 的联合效果(joint effect)来触发的,并且 item 之间存在 many-to-many 的高阶关系。显然,简单的图无法描述这种类似集合(set-like)的关系。
为了克服这些问题,论文 《Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation》 提出了一种基于超图(hypergraph)的新的 session-based 推荐方法来建模 session 中 item 之间的高阶关系。从概念上讲,超图由节点集合和超边(hyperedge)集合组成,其中每条超边可以连接任意数量的节点并用于编码高阶的数据相关性。
作者还假设 session 中的 item 是时间相关(temporally correlated)的,但是不是严格顺序依赖的。超边的特性完全符合作者的假设,因为超边是 set-like 的,它强调所涉及元素的一致性(coherence)而不是相对顺序。因此,超边为我们提供了捕获 session 中复杂交互的灵活性和能力。
从技术上讲:
首先,论文将每个 session 建模为一个超边,其中所有 item 相互链接。不同的超边通过共享的 item 相互链接从而构成了超图,其中超图包含 item-level 的高阶相关性。
然后,论文通过将每条超边建模为一个节点从而在超图的基础上构建一个线性图(line graph),并且聚焦于超边之间的连通性,其中这种连通性刻画了 session-level 的关系。
之后,论文开发了双通道超图卷积网络(Dual channel Hypergraph Convolutional Network: DHCN)从而分别从两个 graph 中捕获复杂的 item 相关性、以及 cross-session 的信息。
下图说明了所提出方法的超图构造和 pipeline 。

通过在两个通道中堆叠多个层,论文可以借助超图卷积的优势来生成高质量的推荐结果。然而,由于每条超边仅包含有限数量的 item,固有的数据稀疏性问题可能会限制超图建模带来的好处。为了解决这个问题,论文创新性地将自监督集成到模型中,从而增强超图建模。
直观而言,DHCN 的两个通道可以看做是描述 session 的 intra-information 和 inter-information 的两个不同视图,而它们中的每一个都对对方的信息知之甚少。利用自监督学习最大化通过两个通道学到的 session representation 之间的互信息,这两个通道可以相互获取新的信息从而提高各自在 item/session 特征抽取中的性能。然后,论文将推荐任务和自监督任务统一在一个 primary & auxiliary learning 框架下。通过联合优化这两个任务,推荐任务的性能获得了不错的收益。
总而言之,这项工作的主要贡献总结如下:
作者为 session-based 推荐提出了一种新颖的 DHCN ,该模型可以通过超图建模来捕获 item 之间的 beyond pairwise relation 、以及 cross-session information 。
作者创新地将自监督任务集成到模型训练中,从而增强超图建模并改进推荐任务。
大量实验表明,作者提出的模型比 SOTA baseline 具有压倒性的优势,并且在 benchmark 数据集上实现了统计显著的改进。
相关工作:
session-based 推荐:session-based 推荐的早期探索主要集中在序列建模上,其中马尔科夫决策过程是该阶段的首选技术。深度学习的发展为利用序列数据提供了替代方案。RNN 和 CNN 等深度学习模型随后被用于 session-based 推荐并取得了巨大成功,GRU4Rec、GRU4Rec++、NARM、STAMP 是经典的 RNN-based 模型。
GNN 最近在 session-based 推荐中的应用也展示出有前景的结果。与处理序列数据的 RNN-based 方法不同,GNN-based 方法在 session 导出的图上学习 item transition 。
SR-GNN 是一项开创性的工作,它使用 gated GNN 从而将 session 建模为图结构数据。
GC-SAN 采用自注意力机制通过图信息聚合来捕获 item 依赖关系。
FGNN 构建 session graph 来学习 item transition pattern ,并重新思考 session-based 推荐中 item 的序列模式。
GCE-GNN 对单个 session graph 和 global session graph 进行图卷积,从而学习 session-level embedding 和 global-level embedding 。
尽管这些研究表明 GNN-based 模型优于其它方法(包括 RNN-based 方法),但是它们都未能捕获到复杂的、高阶的 item 相关性。
超图学习( Hypergraph Learning):超图为复杂的高阶关系提供了一种自然的方式。HGNN 和 HyperGCN 是首先将图卷积应用于超图的。《Dynamic hypergraph neural networks》 提出了一个动态超图神经网络,并且 《Line Hypergraph Convolution Network: Applying Graph Convolution for Hypergraphs》 开发了线性超图卷积网络。
还有一些研究将超图学习与推荐系统相结合。与我们最相关的工作是 HyperRec,它使用超图来建模短期用户偏好从而用于 next-item 推荐。然而,它没有利用超边之间的信息,并且也不是为 session-based 场景而设计的。此外,该模型的高复杂度使得它无法在实际场景中部署。目前,还没有研究将超图神经网络和 session-based 推荐相结合,我们是首个填补这一空白的人。
自监督学习:自监督学习是一种新兴的机器学习范式,旨在从原始数据中学习 data representation 。
由于自监督学习目前仍处于起步阶段,目前只有几项研究将其与推荐系统相结合。与我们工作最相关的是用于序列推荐的 S3-Rec,它使用 feature mask 来创建自监督信号。但是它不适用于 session-based 推荐,因为 session 数据非常稀疏,masking feature 不能产生强的自监督信号。
目前,自监督学习在 hypergraph representation learning 和 session-based 推荐方面的潜力尚未研究。我们是第一个将自监督学习集成到 session-based 推荐和超图建模的场景中。
令 item 集合,其中 item 数量。每个 session 表示为 session session item 。
我们将每个 item embedding 空间,记做 item representation,item 在第 representation 记做
每个 session session-based 推荐的任务是:对于任意给定的 session next item , 即
超图:令 unique 节点的节点集合,
矩阵
刻画的是超边之间的连接,这里用对角矩阵表示任意两个超边之间没有连接。
超图可以用关联矩阵(incidence matrix)
对于每个节点和每个超边,它们的 degree 定义为:
节点的度矩阵为
超图的线性图(line graph):给定超图
线性图
如果超图
具体而言,
我们为线性图的每条边
为了在 session-based 推荐中捕获超越 pairwise 的关系,我们采用超图 session 表示为超边。具体而言,我们将每个超边表示为 item
超图构建前后,数据结构的变化如下图所示。
原始的 session 数据组织为线性序列,其中两个 item
将 session 数据转换为超图之后,session 中的任意两个 item 都将被连接起来。
需要注意的是,我们将 session 序列转换为无向图,这符合我们的直觉,即 session 中的 item 仅仅是时间相关(temporally related)的而不是顺序依赖(sequentially dependent)的。通过这种方式,我们具体化了 many-to-many 的高阶关系。

此外,我们进一步导出了超图的线性图。每个 session 被建模为一个节点,并且不同的 session 通过共享 item 来连接。与描述 item-level 高阶关系的超图相比,线性图描述了 session-level 关系,也称作 cross-session 信息。
在超图构建之后,我们开发了一个双通道超图卷积网络(Dual channel Hypergraph Convolutional Network: DHCN),从而捕获 item-level 高阶关系和 session-level 关系。网络中的每个通道都负责从一个图/超图中抽取有用信息,从而通过图/超图卷积来改善 session-based 推荐。
超图通道对超图进行编码。由于有两个通道,直接将完整的 basic item embedding embedding 的幅度,我们使用带 self-gating unit: SGU 的 pre-filter,它的定义为:
其中:
gating 参数,
sigmoid 函数。
self-gating 机制通过在各维度上重新加权从而以 feature-wise 粒度来调节 basic item embedding 。然后我们获得特定于超图通道的 item embedding item embedding
为什么直接将完整的
basic item embedding同时馈入两个通道是不明智的?作者并未给出理由。个人猜测的原因是:希望两个通道各司其职,从而得到更好的效果。但是,这里并没有监督信息使得两个通道的能力尽可能不同(因为如果两个通道的能力尽可能相同,那么只需要一个通道就够了)。
在超图上定义卷积操作的主要挑战是如何传播 item embedding 。参考 《Hypergraph neural networks》 中提出的谱超图卷积(spectral hypergraph convolution),我们将超图卷积定义为:
其中:
上式的括号内可以重新组织为:
。 其中:
内层:对于每条超边
,聚合它包含的所有节点 representation。其中权重为(这里设定为 0/1的二元值),并且节点representation经过的线性投影。 外层:聚合节点
所属的所有超边,其中权重为 。由于本文中 设置为 1,因此权重等于(为 0/1二元值)。
根据 《Simplifying graph convolutional networks》 的建议,我们不使用非线性激活函数。对于 1 。因此,上述等式的行归一化(row normalization)形式的矩阵方程为:
超图卷积可以看做是对超图结构执行 node-hyperedge-node 特征变换的两阶段 refinement :
乘法操作
而在前者的基础上在左乘
在将 item embedding 取平均,从而获得 final item embedding :
这里直接取平均的优势是计算简单。但是,是否每一层都是同样地重要?可以考虑非均匀加权,通过模型自动学习权重(例如参数化的权重系数,或者
attention机制)。
可以通过聚合该 session 中 item 的 representation 来表达 session embedding 。我们遵循 SR-GNN 中使用的策略来 refine session embedding :
其中:
session last item embedding ,它表示当前用户意图。
session item 的 embedding 。
session 中的 general interest embedding,它通过 soft-attention 机制聚合 item embedding 来表示,其中 item 具有不同的重要性。
item 权重
hybrid session embedding
hybrid session embedding 转换到
注意,根据我们在前面描述的动机,我们放弃了其它 session-based 推荐技术中使用的序列建模技术,如 GRU 单元和 self-attention 机制。当前意图是我们使用的唯一的时间因素(temporal factor),因此我们的模型非常高效且轻量级。
线性图通道对超图的线性图进行编码。下图展示了我们如何将超图转换为它的线性图。线性图可以看做是一个简单的图,它包含 cross-session 信息并描述了超边的连通性。

在卷积操作之前,类似地,我们通过将 SGU 从而获得特定于线性图通道的 item embedding item,我们首先通过查找属于每个 session 的 item 并取这些 item embedding 的均值(从 session embedding
incidence matrix)定义为
其中:
在每个卷积层中,session 都从它的邻居那里收集信息。通过这种方式,学到的 cross-session 信息。同样地,我们将 session embedding 取平均,从而获得 final session embedding :
这里直接取平均的优势是计算简单。但是,是否每一层都是同样地重要?可以考虑非均匀加权,通过模型自动学习权重(例如参数化的权重系数,或者
attention机制)。
给定一个 session item
其中
这里假设每个通道都是同样重要,是否可以区分不同通道的重要性?
然后,我们使用一个 softmax 函数来计算每个 item 成为 session 中 next item 的概率:
我们的学习目标为交叉熵损失函数(单个样本):
其中:ground-truth 的 one-hot 编码向量,
为简单起见,我们忽略了 L2 正则化项。我们通过 Adam 优化器来优化该损失函数。
超图建模使得我们的模型能够实现显著的性能。然而,我们认为 session 数据的稀疏性可能会阻碍超图建模,这将导致推荐性能次优(suboptimal)。受到简单图上自监督学习成功实践的启发,我们创新地将自监督学习集成到网络中,从而增强超图建模。
自监督学习通过以下两个步骤进行:
创建自监督信号:回想以下,在 DHCN 中,我们通过两个通道学习两组特定于通道的 session embedding。由于每个通道都编码一个图/超图,因此两组 embedding 对彼此知之甚少但是可以相辅相成。简单而言,这两组 embedding 可以作为彼此的 ground truth 而用于自监督学习,并且这种 one-to-one 映射被视为 label augmentation 。如果两个 session embedding 都表示同一个 session 的不同视图,那么我们将这一对标记为 ground-truth,否则标记为 negative 。
对比学习:我们将 DHCN 中的两个通道视为刻画 session 不同方面的两个视图。然后对比了通过两个视图学到的两组 session embedding 。我们采用 InfoNCE ,并使用来自 ground-truth 样本(positive)和 negative 样本之间的二元交叉熵作为学习目标:
其中:
negative 样本,它是通过对
这个目标函数被解释为最大化在不同视图中学到的 session embedding 之间的互信息(《Deep Graph Infomax》)。通过这种方式, 它们可以从彼此获取信息,从而改善它们各自在 item/session 特征抽取中的性能。尤其是那些仅包含几个 item 的 session 可以利用 cross-session 信息来改善它们的 embedding 。
最后,我们将推荐任务和自监督任务统一为一个 primary&auxiliary 学习框架,其中推荐任务是主任务、自监督任务是辅助任务。联合学习的目标函数为:
其中
数据集:Yoochoose 和 Diginetica 。
对于这两个数据集,我们遵循 SR-GNN 和 NARM 从而删除仅包含一个 item 的 session 、以及删除出现次数少于 5 次的 item ,然后将数据集拆分为训练集和测试集。
对于 Yoochoose 数据集,测试集由最近几天的 session 组成。
对于 Diginetica 数据集,测试集由最近几周的 session 组成。
然后我们通过序列拆分的方式来进行数据集增强,即对于 session
由于 Yoochoose 的训练集非常大,我们遵循 SR-GNN 、STAMP 和 NARM 仅利用整个训练序列中最近的 1/64 和 1/4 ,从而形成两个新的训练集,并将它们命名为 Yoochoose1/64 和 Yoochoose1/4 。
数据集的统计信息如下表所示。

baseline 方法:
item-KNN:推荐与 session 中先前点击的 item 所相似的 item,其中相似度使用 session 向量之间的余弦相似度。
session向量:长度为总的session个数。如果item出现在第个 session中,则该向量的第个元素为 1。
FPMC:是一种基于马尔科夫链的序列方法。
GRU4REC:利用 session-parallel 的 mini-batch 训练过程,并采用 ranking-based 损失函数来建模用户行为序列。
NARM:一个 RNN-based 模型来建模用户序列行为。
STAMP:采用自注意力机制来增强 session-based 推荐。
SR-GNN:应用 gated graph convolutional layer 来学习 item transition 。
FGNN:将 session 中的 next item 推荐形式化为图分类问题。
此外,我们评估了 DHCN 的另一个变体
没有和
HyperRec的对比。毕竟相关工作里已经提到了HyperRec。猜测原因是:HyperRec是在不同数据集上评估的,因此作者这里没有把HyperRec拿来对比。
评估指标:Precision: P@K、Mean Reciprocal Rank: MRR@K 。
超参数配置:
通用配置:embedding size = 100、batch size = 100、L2 正则化系数为
对于 DHCN:采用两层架构,初始学习率为 0.001 。
对于 baseline 模型:我们参考了他们在原始论文中报告的最佳参数配置,并在可用时直接报告他们的结果,因为我们使用相同的数据集和评估设置。
实验结果:整体性能如下表所示。我们没有像 NARM 一样报告 FPMC 的结果,因为在 Yoochoose1/4 数据集上运行 FPMC 的内存需求对于普通的深度学习计算平台而言太大了。
可以看到:
GNNs-based 模型:SR-GNN 和 FGNN 优于 RNN-based 模型。这些改进可以归因于 GNN 的巨大容量。但是,与 DHCN 带来的改进相比,这些改进是微不足道的。
DHCN 在所有数据集的所有 baseline 上都展示出压倒性的优势,尤其是在 Diginetica 数据集上。在分析了 Diginetica 的数据模式之后,我们发现许多 item 经常以 item-set 的形式在不同的 session 中共现,这是超图建模的理想选择。这可能是导致如此卓越结果的原因。
与 SR-GNN 和 FGNN 相比,我们的模型有两个优势:
它使用超图来捕获超越 pairwise 的关系。通过将每个超边建模为团 clique(其中,团内的 item 之间完全相互连接) ,可以利用远距离 item 之间的关联。
线性图考虑了 cross-session 信息。
此外,需要注意的是,MRR 的改进比 Precision 的改进更为显著,这意味着 DHCN 不仅可以成功命中 groud-truth item,而且在 top-K 推荐列表中的排名也大大提升。
虽然不如超图建模带来的效果那么可观,但是自监督学习带来的提升也还可以。具体而言,在两个平均 session 长度较短的数据集上,自监督学习发挥着更重要的作用,这与我们的假设一致:即 session 数据的稀疏性可能会阻碍超图建模的好处。同时,通过自监督学习来最大化DHCN 中两个视图之间的互信息可以解决这个问题。

消融研究:为了研究 DHCN 中每个模块的贡献,我们开发了 DHCN 的三个变体:
DHCN-H:仅使用超图通道。
即:推荐分
。
DHCN-L:仅使用线性通道。
即:推荐分
。
DHCN-NA:没有 soft attention 机制的版本。
即:
。
我们将它们在 Yoochoose1/64 和 Diginetica 数据集上与完整的 DHCN 进行比较。
从下图可以看到:
每个组件都对最终性能有贡献。
超图通道贡献最大。当仅使用超图通道时(使用注意力机制),在这两个数据集上的效果远高于其它的两个变体。
相比之下,仅使用线性图通道会导致模型在这两个数据集上的性能大幅下降。这可以证明建模高阶 item 相关性的有效性,以及捕获 cross-session 信息以捕获 item-level 信息的必要性。
此外,移除超图通道中的 soft attention 也导致模型这两个数据集上的性能大幅下降,这与我们在前面的假设保持一致,即,session 中的 item 是时间相关的。
根据这个消融实验,我们可以得出结论:一个成功的 session-based 推荐模型应该同时考虑时间因素(temporal factor)和高阶的item 相关性。
这里时间因素是通过
last click item来表现的。

超参数研究:
不同 session 长度的影响:遵从 STAMP,我们将 Yoochoose1/64 和 Diginetica 的 session 分为两个不同长度的组,分别命名为 Short 和 Long。Short 包含长度小于或等于 5 的 session,而 Long 包含长度大于 5 的 session。我们选择切分点为 5,是因为它是所有 session 中最常见的长度。
然后我们比较了 DHCN, NARM, STAMP, SR-GNN 在 Short 组和 Long 组上的 P@20 性能,结果如下表所示。可以看到:在这两个数据集上,在大多数情况下,DHCN 在不同 session 长度的情况下稳定地优于所有其它 baseline 模型,尤其是在 Long 组。

模型深度的影响:我们将 DHCN 的层数范围限制在 {1, 2, 3, 4} 以内,结果如下图所示。可以看到:DHCN 对于层数不是很敏感。层数为 2 时效果最好,但是层数大于 2 时由于过度平滑导致模型性能略有下降。

自监督学习的影响:我们向
当使用自监督任务时,推荐任务获得了不错的收益。
小的 Prec@20 和 MRR@20 。
随着 MRR@20 开始下降,但是 Prec@20 仍然保持增加。目前,我们不知道为什么 Prec@20 没有性能下降,希望我们在未来的工作中解决这个问题。
