Recommendation Model of Graph Convolutional Network Based on Multi-Subgraph
With the rise of deep learning, applying graph convolutional networks to recommendation models has brought significant performance improvements, but it also faces the problem of over-smoothing —as the number of network layers increases, the embedding representations of all nodes become similar, losing the original differentiated information, resulting in a decline in the model’s representation ability and affecting the recommendation performance. This paper proposes a recommendation model of graph convolutional network based on multi-subgraph (MSGCN). The model performs high-order embedding propagation within the subgraph. The subgraphs are composed of users with similar preferences and the items they interact with. To generate subgraphs, a graph attention network is used to classify user nodes and divide them into corresponding subgraphs. The improved model avoids forcibly associating nodes with significant differences in the high-order embedding propagation layer, alleviating the over-smoothing phenomenon that graph convolutional network models often encounter during training. The effectiveness of MSGCN is verified by experiments on three datasets. The experimental results show that the MSGCN model outperforms the best model in Recall@20 by 4.51%, 6.69%, and 10.61%, and in NDCG@20 by 5.89%, 10.93%, and 11.71%.
Recommendation Model
推荐系统作为一种解决信息过载问题的有力手段,通过预测用户对各种物品(如商品、新闻、音乐、电影等)的偏好和兴趣,为用户提供个性化的推荐内容,极大地提升了信息获取的效率
尽管GCN模型在处理图数据方面表现出色,但它仍面临过平滑的挑战,这是由于图卷积操作本质上是对图拉普拉斯的特殊平滑处理,进而导致在经过多层迭代卷积后,各节点的特征表示趋于一致,降低了节点区分度
基于上述考虑,本文提出了一种基于多子图的图卷积网络推荐模型,通过子图生成模块将用户分类划分到不同子图中,并在子图内进行高阶嵌入传播。分类到同一子图中的用户被视为具有相似兴趣,与其直接交互的物品也被划分到相应的子图中。在子图中进行消息传递可以屏蔽兴趣不同的用户所带来的负面信息干扰,强化相似用户间的消息传递。本文在三个数据集上进行实验,实验结果表明,改进后的模型在性能上要优于其它模型,即使在增加网络深度的情况下,依然能够展现出卓越的性能,有效地缓解了图卷积网络中存在的过平滑问题,提高了模型的推荐性能。
定义 为用户–物品邻接矩阵,其中N代表用户的数量,M为物品的数量。矩阵中的元素 表示用户 与物品 是否有交互行为,若有交互行为,可将其取值为1,反之,则取值为0。通过用户–物品邻接矩阵可以构建对应的用户–物品交互图 ,其中W为图中节点集合,包含用户集合 和物品集合 ,V为图中边的集合,描述了用户与物品之间的交互,若用户u与物品i有交互行为,则在图中存在一条用户节点u到物品节点i的边,可以表示为 。构建初始嵌入矩阵 如公式(1),其中 表示用户u的嵌入向量, 表示物品i的嵌入向量,d为嵌入向量的维度。将以上信息作为模型的输入,之后通过图卷积层来学习用户和物品的嵌入表示。
(1)
LightGCN在设计上简化了图卷积网络的复杂性,专注于利用图的连通性来提升节点的嵌入的学习效果。本文所提出的推荐模型也是在其基础上进行改进的。在LightGCN中的图卷积操作如下所示。
(2)
(3)
其中
和
分别表示用户u和物品i在k层图卷积后学到的嵌入表示,
和
表示与其有交互行为的集合,
是一个归一化项,可以有效的避免节点的嵌入表示随着图卷积操作而变大
模型整体结构如
为解决图卷积网络中存在的过平滑问题,通过用户分组策略对原有图中的消息传递过程进行优化。将原本的用户–物品交互图划分为多个交互子图,并在子图内部进行消息传递,避免了高阶邻居所带来的负面信息干扰,更有利于学习节点的嵌入表示。首先根据用户的特征对用户节点进行分类,划分到同一类别的用户视为具有相似兴趣,然后将同一类别用户划分到同一子图中,同时与这些用户直接相连的物品节点也划分到子图中,以保持子图内部用户–物品交互关系的完整性。每个用户只属于一个子图,而每个物品则可以存在于多个子图。将子图划分定义为Gg, ,Ng表示第g张子图。
在推荐系统中,用户的直接交互行为被视为其兴趣倾向的直接体现,因此,与用户发生过交互的物品可以作为用户节点的特征。同理,与物品有过交互行为的用户作为物品节点的特征。对具有交互行为的节点之间进行消息传递。将目标节点(无论是用户还是物品)的所有一阶邻居节点的信息,通过消息传递机制对这些邻居节点的特征进行聚合,从而生成一阶用户u和物品i嵌入表示。一阶消息传递的嵌入表示如下:
(4)
(5)
在高阶嵌入传播中,消息不仅仅在直接相邻的节点之间传递,而是通过多跳邻居节点逐步扩散,使得每个节点的嵌入能够学习到更远距离的邻居节点信息,从而捕获更深层次的图结构特征。子图由同一类别用户及其交互物品组成,因此用户可以接收到其所交互过的所有物品节点传递过来的消息,这些消息将共同构成用户节点的嵌入表示。由于同一物品可以存在于多个子图,所以物品节点接收的消息来自于多个子图。为学习到物品节点的嵌入表示,需要将每个子图中学习到物品节点的嵌入表示组合起来。其中 表示物品节点i在第g个子图中第k层图卷积后的的嵌入表示。本文将高阶图卷积操作定义为:
(6)
(7)
通过对节点进行分类并划分子图,可以确保消息传递只在各子图内部进行,避免了因无关节点间消息传递导致的噪声干扰,从而提升了节点的嵌入学习。改进的模型中特别强调了节点自身特征在构建其嵌入表示时的重要地位,认为节点本身的属性信息能够揭示其内在特性与行为模式,因此,在构造节点间消息传递时,加入了节点自身的特征信息。 表示从子图g中具有相似兴趣的用户学到的特征。将不同子图中学习到的物品节点的嵌入表示进行组合,获得物品i经过k层图卷积的嵌入表示,即:
(8)
其中G是物品节点i所属的子图集合。
经过多层图卷积后,将所有层的用户和物品的嵌入表示通过加权求和来得到最终用户u和物品i的最终表示。其中αk设为1/(k+1) (k是层数)。
(9)
(10)
将上述得到的用户嵌入表示 和物品嵌入向量 ,采用内积的方式来获得用户对物品的偏好分数。
(11)
模型采用贝叶斯个性化排序损失函数进行优化
(12)
其中 表示训练数据集,包含用户u,正样本物品i和负样本物品j。σ是激活函数,λ是正则化系数。 代表模型参数。 是参数的L2范数的平方。另外采用梯度下降优化算法ADAM对模型参数进行更新。
本节主要介绍的是子图生成模块,该模块通过用户–物品交互图构建一系列子图
,其中每个子图由具有相似兴趣偏好的用户及其交互物品组成。本文将用户划分到不同子图的过程定义为一个分类问题,将每一个用户唯一地分配至一个子图中,而每一个物品可以存在于多个子图中。在构建子图模块时,采用图注意力网络(Graph Attention Networks, GAT)
(13)
(14)
其中 和 是用户节点i和节点j的特征向量, 是权重矩阵, 表示向量拼接操作,a是一个单层矩阵, 表示节点i和节点j之间的注意力系数, 表示与节点i有交互行为的所有节点集合, 是归一化后的注意力系数。首先利用权重矩阵将节点特征向量从原始维度映射到一个新的特征空间。这样做的目的是为了使得不同特征维度间能够进行有意义的交互。对于节点i和j其变换后的特征分别表示为 和 。接下来,将变换后节点的特征向量拼接起来,形成一个更高维度的向量。然后,利用一个可学习的权重向量a和上述拼接后的向量进行点积操作,之后通过一个非线性激活函数LeakyReLU得到一个标量值 ,为了确保所有邻居节点的注意力系数之和1,从而形成一个概率分布,需要对 进行归一化处理得到注意力系数 ,通常使用softmax函数来实现。以上是注意力系数的计算方法,最后将得到的注意力系数与其对应的特征进行线性组合,以作为节点的最终输出特征,用于预测用户属于哪个子图。
(15)
在这一步中是一个消息传递的方式,通过加权求和的方式进行消息聚合。表示节点i的输出特征是与和它相邻的所有节点有关,是它们线性和非线性激活后得到的。本文采用无监督的方式将用户节点分到不同的子图中,所以并不需要真实的用户节点标签。
本文在三个数据集上进行了实验,实验数据集如
数据集 |
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 |
本文采用召回率(Recall)和归一化折损累积增益(Normalized Discounted Cumulative Gain, NDCG)来衡量推荐系统的性能
模型基于深度学习框架pytorch1.8.0实现,实验参数如
类别 |
参数 |
嵌入维度 |
64 |
正则化系数 |
0.0001 |
学习率 |
0.001 |
批处理数量 |
2048 |
迭代次数 |
1000 |
在本节中,首先评估MSGCN模型在不同卷积层数下的性能,然后研究子图数量对模型性能的影响。
为了验证改进后的算法在深层结构下的有效性,选择Gowalla数据集作为测试数据集,增加模型深度并与LightGCN进行比较。
图2. 不同图卷积网络层数下推荐性能对比图
在图中可以发现随着图卷积层数的增加,LightGCN的各项评价指标呈现出持续下降的趋势。这表明它在深层结构中存在过平滑问题。相比之下,本文所提出的模型在经历同样层数增长的过程中,其评价指标却呈现出稳步提升的态势。结果证明了改进后的模型在缓解过平滑问题上的能力,验证了改进后的模型的有效性。
图3. 子图个数不同推荐性能对比图
为了验证MSGCN模型的有效性和可行性,本文选取几种主流的推荐算法来进行比较。
NeuMF:作为一种前沿的神经网络驱动的协同过滤模型,其运用多层隐藏神经网络架构,以及用户和物品嵌入向量的串联操作,精确捕捉用户与物品之间复杂的、非线性的特征交互模式。
Hop-Rec:将矩阵分解技术与图结构信息相结合,通过在用户–物品交互图上实施随机游走策略,依据节点的度信息以概率方式选取不同的正样本对。
NGCF:通过图卷积网络在用户–物品交互图上进行消息传递,以此来捕获用户和物品之间的高阶相关性。通过多层图卷积操作,逐步融合高阶邻居节点的信息,从而学到更丰富的用户和物品嵌入表示。
LightGCN:作为NGCF的优化升级版本,通过严谨的消融实验,去除不必要的特征变换与非线性激活操作,并在最终的节点表示聚合阶段引入权重因子以平衡不同阶邻居信息的贡献。
实验结果如
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 |
本文提出了一种基于多子图的图卷积网络推荐模型MSGCN,通过对用户进行分类构建对应子图,并在子图内进行高阶嵌入传播,在子图中进行消息传递可以屏蔽兴趣不同的用户所带来的负面信息干扰,强化相似用户间的消息传递。为了验证所提模型的优越性,在三种数据集上与主流推荐模型进行实验,实验结果表明,基于多子图的图卷积网络模型在性能上要优于其它模型,即使在增加网络深度的情况下,依然能够展现出卓越的性能,有效的缓解了图卷积网络中存在的过平滑问题,提高了模型的推荐性能。