1. 引言
推荐系统作为一种解决信息过载问题的有力手段,通过预测用户对各种物品(如商品、新闻、音乐、电影等)的偏好和兴趣,为用户提供个性化的推荐内容,极大地提升了信息获取的效率[1]。它的核心功能在于连接用户与他们可能感兴趣但尚未发现的物品,从而提高用户满意度、增强用户粘性,并促进电子商务、社交媒体、娱乐等多个平台的经济效益[2]。传统推荐系统模型构成了现代个性化推荐技术的基础,它们主要依赖于用户行为数据、物品内容信息或两者的结合来生成推荐。
随着深度学习和图神经网络等技术的发展,基于图卷积网络(Graph Convolutional Networks, GCN)的模型在推荐领域取得了显著成功,这主要归功于其从非欧几里得结构中进行高效表示学习的能力。GCN模型的核心是通过聚合相邻节点的信息来更新中心节点的嵌入表示,这一过程允许模型捕捉节点间的依赖关系和图的整体结构特性,从而丰富了节点表示学习的能力,在一定程度上缓解了数据稀疏性问题[3]。例如,基于神经网络的图协同过滤(Neural Graph Collaborative Filtering, NGCF)模型[4]已经证明利用高阶连通性可以帮助缓解推荐中的稀疏性问题。
尽管GCN模型在处理图数据方面表现出色,但它仍面临过平滑的挑战,这是由于图卷积操作本质上是对图拉普拉斯的特殊平滑处理,进而导致在经过多层迭代卷积后,各节点的特征表示趋于一致,降低了节点区分度[5]。因此,大多数GCN模型仅通过堆叠少数几层就达到了最佳性能,继续增加网络深度将导致性能急剧下降。陈等人[6]通过研究发现,在GCN模型中,随着卷积层数的增加,用户/项目嵌入会因为过平滑问题变得愈发相似。基于观察结果,他们提出了基于线性残差网络的图卷积协同过滤(Linear Residual Graph Convolutional Collaborative Filtering, LR-GCCF)模型,该模型移除了GCN模型中的非线性激活以简化网络结构,并引入了残差网络以缓解迭代过程中的过平滑问题,相较于传统的GCN模型在推荐准确性上有了显著提升。何等人[7]提出特征转换与非线性激活函数的融入,并未对推荐系统的性能带来积极影响。相反,它们可能因增加了训练的复杂度而产生不利效果。因此,他们在设计轻量化图卷积网络(LightGCN)模型中仅保留邻域聚合操作。虽然LightGCN模型与LR-GCCF模型都在一定程度上缓解了过平滑问题,但却没考虑到当卷积层数增加时与用户兴趣不相似的高阶相邻用户所带来负面信息干扰,导致兴趣不相似的用户经过多层图卷积操作后得到相似的嵌入表示[5],从而导致推荐性能降低。
基于上述考虑,本文提出了一种基于多子图的图卷积网络推荐模型,通过子图生成模块将用户分类划分到不同子图中,并在子图内进行高阶嵌入传播。分类到同一子图中的用户被视为具有相似兴趣,与其直接交互的物品也被划分到相应的子图中。在子图中进行消息传递可以屏蔽兴趣不同的用户所带来的负面信息干扰,强化相似用户间的消息传递。本文在三个数据集上进行实验,实验结果表明,改进后的模型在性能上要优于其它模型,即使在增加网络深度的情况下,依然能够展现出卓越的性能,有效地缓解了图卷积网络中存在的过平滑问题,提高了模型的推荐性能。
2. 基于多子图的图卷积网络推荐模型
2.1. 符号说明
定义
为用户–物品邻接矩阵,其中N代表用户的数量,M为物品的数量。矩阵中的元素
表示用户
与物品
是否有交互行为,若有交互行为,可将其取值为1,反之,则取值为0。通过用户–物品邻接矩阵可以构建对应的用户–物品交互图
,其中W为图中节点集合,包含用户集合
和物品集合
,V为图中边的集合,描述了用户与物品之间的交互,若用户u与物品i有交互行为,则在图中存在一条用户节点u到物品节点i的边,可以表示为
。构建初始嵌入矩阵
如公式(1),其中
表示用户u的嵌入向量,
表示物品i的嵌入向量,d为嵌入向量的维度。将以上信息作为模型的输入,之后通过图卷积层来学习用户和物品的嵌入表示。
(1)
LightGCN在设计上简化了图卷积网络的复杂性,专注于利用图的连通性来提升节点的嵌入的学习效果。本文所提出的推荐模型也是在其基础上进行改进的。在LightGCN中的图卷积操作如下所示。
(2)
(3)
其中
和
分别表示用户u和物品i在k层图卷积后学到的嵌入表示,
和
表示与其有交互行为的集合,
是一个归一化项,可以有效的避免节点的嵌入表示随着图卷积操作而变大[8]。值得注意的是,LightGCN只包含邻居节点向中心节点的消息传递,而不包括节点的自连接。
2.2. 模型设计
模型整体结构如图1所示,首先通过图注意力网络层将图结构与用户节点特征结合对用户节点进行分类,将用户节点划分到多个子图中。然后在子图中进行高阶嵌入传播以学习节点的深层次嵌入表示。最后将节点本身的嵌入表示与不同卷积层下得到的嵌入表示聚合得到节点最终的嵌入表示。将得到的用户与物品的嵌入表示通过内积方式获得推荐候选集。
Figure 1. Overall structure diagram of model
图1. 模型整体结构图
2.2.1. 高阶嵌入传播层
为解决图卷积网络中存在的过平滑问题,通过用户分组策略对原有图中的消息传递过程进行优化。将原本的用户–物品交互图划分为多个交互子图,并在子图内部进行消息传递,避免了高阶邻居所带来的负面信息干扰,更有利于学习节点的嵌入表示。首先根据用户的特征对用户节点进行分类,划分到同一类别的用户视为具有相似兴趣,然后将同一类别用户划分到同一子图中,同时与这些用户直接相连的物品节点也划分到子图中,以保持子图内部用户–物品交互关系的完整性。每个用户只属于一个子图,而每个物品则可以存在于多个子图。将子图划分定义为Gg,
,Ng表示第g张子图。
在推荐系统中,用户的直接交互行为被视为其兴趣倾向的直接体现,因此,与用户发生过交互的物品可以作为用户节点的特征。同理,与物品有过交互行为的用户作为物品节点的特征。对具有交互行为的节点之间进行消息传递。将目标节点(无论是用户还是物品)的所有一阶邻居节点的信息,通过消息传递机制对这些邻居节点的特征进行聚合,从而生成一阶用户u和物品i嵌入表示。一阶消息传递的嵌入表示如下:
(4)
(5)
在高阶嵌入传播中,消息不仅仅在直接相邻的节点之间传递,而是通过多跳邻居节点逐步扩散,使得每个节点的嵌入能够学习到更远距离的邻居节点信息,从而捕获更深层次的图结构特征。子图由同一类别用户及其交互物品组成,因此用户可以接收到其所交互过的所有物品节点传递过来的消息,这些消息将共同构成用户节点的嵌入表示。由于同一物品可以存在于多个子图,所以物品节点接收的消息来自于多个子图。为学习到物品节点的嵌入表示,需要将每个子图中学习到物品节点的嵌入表示组合起来。其中
表示物品节点i在第g个子图中第k层图卷积后的的嵌入表示。本文将高阶图卷积操作定义为:
(6)
(7)
通过对节点进行分类并划分子图,可以确保消息传递只在各子图内部进行,避免了因无关节点间消息传递导致的噪声干扰,从而提升了节点的嵌入学习。改进的模型中特别强调了节点自身特征在构建其嵌入表示时的重要地位,认为节点本身的属性信息能够揭示其内在特性与行为模式,因此,在构造节点间消息传递时,加入了节点自身的特征信息。
表示从子图g中具有相似兴趣的用户学到的特征。将不同子图中学习到的物品节点的嵌入表示进行组合,获得物品i经过k层图卷积的嵌入表示,即:
(8)
其中G是物品节点i所属的子图集合。
2.2.2. 层组合和预测
经过多层图卷积后,将所有层的用户和物品的嵌入表示通过加权求和来得到最终用户u和物品i的最终表示。其中αk设为1/(k+1) (k是层数)。
(9)
(10)
将上述得到的用户嵌入表示
和物品嵌入向量
,采用内积的方式来获得用户对物品的偏好分数。
(11)
2.2.3. 模型优化
模型采用贝叶斯个性化排序损失函数进行优化[9]。
(12)
其中
表示训练数据集,包含用户u,正样本物品i和负样本物品j。σ是激活函数,λ是正则化系数。
代表模型参数。
是参数的L2范数的平方。另外采用梯度下降优化算法ADAM对模型参数进行更新。
2.3. 子图生成模块
本节主要介绍的是子图生成模块,该模块通过用户–物品交互图构建一系列子图
,其中每个子图由具有相似兴趣偏好的用户及其交互物品组成。本文将用户划分到不同子图的过程定义为一个分类问题,将每一个用户唯一地分配至一个子图中,而每一个物品可以存在于多个子图中。在构建子图模块时,采用图注意力网络(Graph Attention Networks, GAT) [10]作为用户分类器,根据用户特征对用户节点进行分类并划分到各子图中。对于每个子图,其内包含同一类别的用户,依据用户分类信息,若某用户不属于当前类别,则在原始用户–物品邻接矩阵中移除该用户与所有物品的邻接关系,从而得到子图的邻接矩阵。用户表示为一个特征向量,该向量融合了图结构信息与节点特征。通过注意力系数加强具有相近兴趣用户的表示,从而实现高效而精准的用户分类。
(13)
(14)
其中
和
是用户节点i和节点j的特征向量,
是权重矩阵,
表示向量拼接操作,a是一个单层矩阵,
表示节点i和节点j之间的注意力系数,
表示与节点i有交互行为的所有节点集合,
是归一化后的注意力系数。首先利用权重矩阵将节点特征向量从原始维度映射到一个新的特征空间。这样做的目的是为了使得不同特征维度间能够进行有意义的交互。对于节点i和j其变换后的特征分别表示为
和
。接下来,将变换后节点的特征向量拼接起来,形成一个更高维度的向量。然后,利用一个可学习的权重向量a和上述拼接后的向量进行点积操作,之后通过一个非线性激活函数LeakyReLU得到一个标量值
,为了确保所有邻居节点的注意力系数之和1,从而形成一个概率分布,需要对
进行归一化处理得到注意力系数
,通常使用softmax函数来实现。以上是注意力系数的计算方法,最后将得到的注意力系数与其对应的特征进行线性组合,以作为节点的最终输出特征,用于预测用户属于哪个子图。
(15)
在这一步中是一个消息传递的方式,通过加权求和的方式进行消息聚合。表示节点i的输出特征是与和它相邻的所有节点有关,是它们线性和非线性激活后得到的。本文采用无监督的方式将用户节点分到不同的子图中,所以并不需要真实的用户节点标签。
3. 实验
3.1. 实验设置
3.1.1. 数据集
本文在三个数据集上进行了实验,实验数据集如表1所示。
Table 1. Experimental data set
表1. 实验数据集
数据集 |
Gowalla |
Yelp2018 |
Amazon-book |
用户数量 |
29,656 |
30,858 |
51,986 |
物品数量 |
40,912 |
38,152 |
91,253 |
交互数量 |
1,035,220 |
1,558,592 |
295,264 |
稀疏度 |
0.00,083 |
0.00,125 |
0.00,059 |
3.1.2. 评价指标
本文采用召回率(Recall)和归一化折损累积增益(Normalized Discounted Cumulative Gain, NDCG)来衡量推荐系统的性能[11]。
3.1.3. 参数设置
模型基于深度学习框架pytorch1.8.0实现,实验参数如表2所示。
Table 2. Experimental parameters
表2. 实验参数
类别 |
参数 |
嵌入维度 |
64 |
正则化系数 |
0.0001 |
学习率 |
0.001 |
批处理数量 |
2048 |
迭代次数 |
1000 |
3.2. 模型分析
在本节中,首先评估MSGCN模型在不同卷积层数下的性能,然后研究子图数量对模型性能的影响。
3.2.1. 图卷积网络层数的选择
为了验证改进后的算法在深层结构下的有效性,选择Gowalla数据集作为测试数据集,增加模型深度并与LightGCN进行比较。图2展示这一系列对比实验的结果,其中G-LightGCN-2、G-LightGCN-3和G-LightGCN-4分别表示具有2、3、4个子图的模型。从数据中可以看出当图卷积层数从1层递增至9层时,各模型推荐性能的演变情况。
Figure 2. Comparison chart of recommended performance under different network layers of graph convolution
图2. 不同图卷积网络层数下推荐性能对比图
在图中可以发现随着图卷积层数的增加,LightGCN的各项评价指标呈现出持续下降的趋势。这表明它在深层结构中存在过平滑问题。相比之下,本文所提出的模型在经历同样层数增长的过程中,其评价指标却呈现出稳步提升的态势。结果证明了改进后的模型在缓解过平滑问题上的能力,验证了改进后的模型的有效性。
3.2.2. 子图个数的选择
Figure 3. Comparison chart of recommended performance with different number of subgraphs
图3. 子图个数不同推荐性能对比图
图3展示在相同卷积层数时,不同子图划分数量对性能的影响。随着子图划分数量的增长,推荐系统的性能指标呈现出持续下滑的趋势。当划分5个子图时,其性能不仅显著低于仅划分成少数子图(少于5个)的其他三个实验组,且差距明显,证明了过度细化子图划分对推荐性能的消极影响。这一现象提示我们,在子图划分的优化过程中,存在一个临界点,越过此点,继续增加子图数量非但无法带来性能增益,反而可能引入噪声或复杂性,对模型的泛化能力和推荐准确性造成负面影响。
3.3. 性能比较
为了验证MSGCN模型的有效性和可行性,本文选取几种主流的推荐算法来进行比较。
NeuMF:作为一种前沿的神经网络驱动的协同过滤模型,其运用多层隐藏神经网络架构,以及用户和物品嵌入向量的串联操作,精确捕捉用户与物品之间复杂的、非线性的特征交互模式。
Hop-Rec:将矩阵分解技术与图结构信息相结合,通过在用户–物品交互图上实施随机游走策略,依据节点的度信息以概率方式选取不同的正样本对。
NGCF:通过图卷积网络在用户–物品交互图上进行消息传递,以此来捕获用户和物品之间的高阶相关性。通过多层图卷积操作,逐步融合高阶邻居节点的信息,从而学到更丰富的用户和物品嵌入表示。
LightGCN:作为NGCF的优化升级版本,通过严谨的消融实验,去除不必要的特征变换与非线性激活操作,并在最终的节点表示聚合阶段引入权重因子以平衡不同阶邻居信息的贡献。
实验结果如表3所示,改进后的模型在3个数据集上都优于其他模型。
Table 3. Model performance experiment
表3. 模型性能实验
Model |
Gowalla数据集 |
Yelp2018数据集 |
Amazon-book数据集 |
Recall@20 |
NDCG@20 |
Recall@20 |
NDCG@20 |
Recall@20 |
NDCG@20 |
NeuMF |
0.1319 |
0.1022 |
0.0438 |
0.0352 |
0.0313 |
0.0242 |
Hop-Rec |
0.1389 |
0.1179 |
0.0529 |
0.0431 |
0.0288 |
0.0225 |
NGCF |
0.1542 |
0.1305 |
0.0549 |
0.0462 |
0.0332 |
0.0258 |
LightGCN |
0.1795 |
0.1510 |
0.0642 |
0.0503 |
0.0415 |
0.0316 |
MSGCN |
0.1876 |
0.1599 |
0.0683 |
0.0558 |
0.0459 |
0.0353 |
4. 结论
本文提出了一种基于多子图的图卷积网络推荐模型MSGCN,通过对用户进行分类构建对应子图,并在子图内进行高阶嵌入传播,在子图中进行消息传递可以屏蔽兴趣不同的用户所带来的负面信息干扰,强化相似用户间的消息传递。为了验证所提模型的优越性,在三种数据集上与主流推荐模型进行实验,实验结果表明,基于多子图的图卷积网络模型在性能上要优于其它模型,即使在增加网络深度的情况下,依然能够展现出卓越的性能,有效的缓解了图卷积网络中存在的过平滑问题,提高了模型的推荐性能。