《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
没有性能下降,希望我们在未来的工作中解决这个问题。