1. 引言
互联网技术的飞速发展、互联网的广泛普及和信息产生的快速增长带来了海量的信息可供人们获取,然而这也导致了信息过载。在这个背景下,推荐系统(Recommender System)的重要性变得尤为突出。推荐系统可以根据用户的兴趣特点和历史行为,向用户推荐感兴趣的信息 [1] 。传统的推荐算法可以分为:基于内容的推荐方法、基于协同过滤的推荐方法、混合推荐方法 [2] 。近年来,基于图神经网络(Graph Neural Network, GNN)的推荐算法应用广泛。GNN将交互数据建模为图(例如,用户–项目交互图),并利用了图的连通性,能够聚合用户和项目的邻居节点信息,从而更为有效地学习用户和项目的嵌入用于推荐 [3] 。
大多数基于GNN的推荐算法都遵循(半)监督学习范式,需要足够的标记数据来进行模型训练 [4] ,然而许多实际的推荐场景都面临数据稀疏性问题 [5] 。为了获得更具泛化性和可迁移性的表示,解决数据稀疏问题,出现了自监督学习(Self-Supervised Learning, SSL)范式 [6] [7] ,它使GNN能够从未标记的图形数据构建任务中学习。作为一种先进的SSL技术,图对比学习(Graph Contrastive Learning, GCL) [8] [9] [10] 被用于推荐系统。图对比学习通过在图数据中构造变换视图来生成正样本对,并从图中选择其他样本作为负样本,最大化正样本对之间的相似度和最小化负样本对之间的相似度。从而捕获图中不同对象间的不变特性,并学习到对下游任务有用的图表示 [11] 。
在上述背景下,将图对比学习应用于推荐成为研究热点。Zhu等人提出了GCA [12] ,根据节点中心度计算节点和边的重要性,自适应地丢弃节点和边,进行数据增强用以图对比学习。Wang等人通过随机增强策略,提出了SGL [13] ,通过按一定比例对点和边进行随机删除来构建结构扰动视图,再通过图编码器来提取节点的表征,构造自监督学习任务。Yu等人不采用基于结构扰动的图增强方法,而是在嵌入空间中添加均匀噪声来创建对比视图,提出了SimGCL [14] 。Lin等人考虑到图中的潜在邻居,将用户(项目)结构上的邻居和语义空间上的邻居包含在正对比对中,提出了NCL [15] 。Cai等人提出了LightGCL [16] ,利用奇异值分解进行对比增强,而不是手工制作增强视图。Jiang等人分别使用图生成模型和图去噪模型作为可训练的对比视图生成器,提出了AdaGCL [17] ,生成自适应的对比视图进行对比学习,提升推荐效果。
尽管图对比学习证明了其有效性,但现有的研究仍存在一定的局限性。图数据的丰富性不仅体现在节点及其特征上,还包括节点间的连接性和图的整体拓扑结构 [18] 。图对比学习如果仅在节点级别进行 [19] [20] ,虽能捕捉到节点的局部特性,但有可能会忽略掉图的全局结构信息,如社区结构、中心性和聚类系数等宏观拓扑特征,这些全局信息对于理解整个图的结构和功能至关重要 [21] 。图对比学习如果仅在全图级别进行 [14] [22] ,虽然有助于捕捉整体的图结构,但可能会导致丢失重要节点的特征和属性,还可能忽视图中不同节点之间的局部关系和连接模式,如节点间的同质性或异质性 [23] 。
针对以上问题,本文提出了一种基于多粒度的图对比学习推荐算法(Multi-Granularity Graph Contrastive Learning, MGGCL)。MGGCL通过节点级对比学习、子图级对比学习和全图级对比学习相结合,从而实现对用户和项目的跨粒度建模。在节点级别,MGGCL使用邻域对比学习方法,考虑到用户–项目二分图的结构特点,有效地对用户(项目)与其同结构的邻居之间的关系进行建模。在子图级别,MGGCL使用随机游走的思路为节点生成不同的局部结构,进行子图级对比学习。在全图级别,MGGCL通过“相似子图-原图采样”的组合来构成全图级别的对比视图进行对比学习,把握整个图的全局结构。相比单一粒度下的研究,MGGCL算法通过综合多粒度的对比学习,实现了对图数据中各个方面进行深入而全面的建模。并有效指导图编码器 [24] 的参数更新过程,以生成高质量的嵌入向量,从而进一步提升推荐效果。
本文通过真实数据集Yelp和Amazon-Book对MGGCL进行了验证,并设置了对比实验、消融实验证明了该模型的有效性。另外对超参数进行了敏感性分析。
2. 符号和问题定义
2.1. 符号定义
给定用户集
和项目集
,当发生隐式反馈(如点击、购买、收藏等)时,观察到的隐式反馈矩阵即交互矩阵表示为
。如果存在交互则
,不存在交互则
。
基于交互矩阵
,可以建模用户项目交互图
,其中节点集
表示涉及的所有用户和项目,边集
表示观察到的交互。对于用户u、项目i,
、
分别表示其在交互图G中的邻居。
2.2. 问题定义
给定一个包含X个样本的数据集D,其中每个样本
表示用户u与项目i之间的交互。本文的核心任务是设计并训练出一个模型。该模型基于图编码器和图对比学习方法,能够从无标签信息中学习到用户u和项目i之间的关联关系表示以及一般偏好表示,最终根据性能评价指标对用户u给出前K个项目推荐。
3. 模型设计
3.1. 框架概述
所提出的MGGCL模型的整体框架如图1所示,包含输入模块、对比学习模块、推荐模块三个主要模块。首先是输入模块,输入模块接受用户和项目的交互数据,即用户项目二分图,作为模型的原始输入数据。接着是对比学习模块,在该模块中实现了基于多粒度的对比学习方法。具体而言,该模块包括节点对比学习、子图对比学习、全图对比学习和图编码器。通过在不同粒度下进行对比学习,可以充分理解图的信息,并捕捉图的全局结构。三个粒度下的对比损失和图编码器的BPR损失组合生成整体损失函数,用于指导模型参数的更新,提高嵌入的质量。图编码器执行从高维图数据到低维向量嵌入的转换,提取图的结构和特征信息。最后是推荐模块,该模块根据用户和项目的最终嵌入向量的内积得分进行排序,生成最终的top-k推荐序列。在下文中将重点介绍对比学习模块。
3.2. 图编码器
图编码器将用户和项目的复杂交互关系映射到低维表示空间中,从而为推荐任务提供更好的特征表达。本文所采用的图编码器是LightGCN [24] ,这是一种轻量级图卷积网络。LightGCN简化了信息传递和聚合的过程,从而降低了计算复杂度,并减少了信息损失。其采用简单的加权和聚合器,放弃了之前方法中的特征变换和非线性激活以及自连接 [3] 。用户u的传播公式和最终嵌入表示如下:
(1)
其中,
表示用户u的邻居集合,K为LightGCN的层数,
表示项目第k层的嵌入,
表示用户的最终嵌入表示。项目i的嵌入表示
与公式(1)类似。
LightGCN的模型预测,即用户u和项目i交互的可能性,被定义为用户和项目最终表示的内积:
(2)
为了优化模型参数,并在推荐任务中取得更好地表现,引入贝叶斯个性化排名(BPR, Bayesian Personalized Ranking)损失 [25] 。BPR损失使得已观察到的交互行为的预测分数高于未观察到的交互行为,公式如下:
(3)
其中,
是Sigmoid函数,
表示成对训练数据,
表示已观察到的正样本,即u与i发生交互,
表示未观察到的负样本,即u与j未发生交互。BPR损失使模型学习的正样本的预测分数高于负样本的预测分数。
3.3. 节点对比学习
在节点级别的对比学习上,选用结构邻域对比学习的方法。此方法将每个用户(或项目)与它的结构邻居进行对比。当用户与项目产生交互时,更有可能选择与自己较为相似的其他用户所交互过的项目,又由于用户项目交互图G是一个天然的二分图,其中节点与其偶数跳节点具有相似性。
通过这种方式,可以从图编码器的偶数层(例如2、4、6)输出中获得齐次邻域的表示。根据这些表示可以有效地对用户或项目与其同构结构邻居之间的关系进行建模。将用户自身的嵌入和其偶数层的对应嵌入视为正对,其他视为负对。在对比损失InfoNCE [26] 的基础上,提出了节点对比学习损失函数:
(4)
其中
是图编码器第k层的嵌入输出且k是偶数,
和
分别表示用户u和用户v的初始嵌入(
),
是softmax的温度超参数。同样的方式可以得到项目的结构对比损失函数:
(5)
完整的节点对比损失函数是上述两种损失的加权和:
(6)
其中,𝛼是一个超参数,用来平衡结构对比学习中两个损失的权重。
3.4.子图对比学
与节点级和全图级对比学习相比,子图级对比学习更注重于局部结构信息的学习。它在原始图上采样子图,并在子图粒度上进行对比学习。本文采用了一种基于随机游走 [27] 的方法来生成子图。随机游走策略可以保留用户–项目交互图G的局部结构信息和连接关系,从而揭示网络中相互连接紧密或属性相似的节点聚集区域。
具体而言,本文的随机游走策略是在每个图卷积网络的层级上都独立地生成一个子图 [13] ,这与传统的所有层共享一个子图的方法有所不同 [27] [28] 。为了达到这一目的,本文使用对层感知的掩码矩阵实现对每层进行不同的边丢弃操作,从而生成随机游走路径,以此实现从节点出发随机游走生成子图的目的。公式如下:
(7)
其中,
、
表示随机游走生成的子图,
分别是第L层的两个执行随机边丢弃的掩码矩阵。
在建立了原图的子图扩展视图之后,子图对比学习方法将同一节点在不同视图中的嵌入视为正样本对(比如,
),而将不同节点在各自视图中的嵌入视为负对(比如,
)。
通过对比学习,鼓励同一节点在不同视图下的特征一致,并强调不同节点间的特征差异。用户的子图对比学习损失函数如下式(8)。同理可得项目的子图对比损失函数。结合两个损失,可得子图对比学习的损失函数如下式(9):
(8)
(9)
其中,
是一个超参数,用来平衡子图对比学习中用户和项目损失的权重。
3.5. 全图对比学
全图对比学习区别于基于节点的对比学习方法,旨在捕捉整个图的全局特征,以实现对图整体结构和内在信息的宏观理解。与上一节讨论的子图对比学习相比,全图对比学习不局限于子图范围内的结构和特性,而是专注于学习和比较整个图的一致性表示和综合特征,为理解和应用图数据提供了一个更加全面的视角。
具体而言,在用户–项目交互图G的基础上,通过随机游走算法生成两个结构不同的子图
和
,如公式(7)所示。然后在两个子图上分别利用LightGCN编码器前向传播得到整个子图的表示:
(10)
其中,
和
表示子图
和
的整体图嵌入。
对于在全图对比学习中如何划分正负样本,主要基于两个考虑:1. 正样本需要保证代表相似的结构,才能学习到有效的图表示。随机游走保持了原图大部分结构,可视为一个干扰不大的视图,所以其表示可作为正样本。2. 负样本需要有一定结构差异。原图不同采样带来的结构变化较大,所以其表示可作为负样本。所以在本节中,采用“相似子图–原图采样”的组合,正样本对由相似子图构成,负样本对由原图采样构成,可以保证两者结构上有一定区分度。具体负采样公式如下:
(11)
其中,
表示在图G上进行第k次采样所生成的整体图嵌入,
表示第k次采样时的dropout比例。将这样获得的
作为负样本,全图对比损失函数如下:
(12)
3.6. 整体损失函数
为了帮助推荐模型更有效地对用户和项目之间的交互进行建模,本文将上述提及的多粒度对比学习损失作为补充,并利用多任务学习策略与BPR损失相结合,得到的模型整体损失函数如下:
(13)
其中
、
、
和
分别是控制所提出的不同粒度对比学习权重和正则化项权重的超参数,而
表示模型参数的集合。
4. 实验结果与分析
4.1. 实验设置
4.1.1. 数据集
本文采用两个公开数据集Yelp [24] 和Amazon-Book [13] 来进行实验。Yelp是一个公开可用的点评网站数据集,该数据集包含了来自8个主要城市的超过5万个商家,150万条评论和社交关系。Amazon-Book是一个公开的大规模数据集,主要包含了Amazon网站上用户对书籍的评分数据。表1显示了这两个数据集的统计信息。将数据集以7:1:2的比率划分成训练集、验证集和测试集。
4.1.2. 评价指标
本文采取topK推荐方法进行推荐,其中
,采用推荐系统任务中常用的召回率Recall和归一化折损累计增益NDCG (Normalized Discounted Cumulative Gain)作为性能评价指标。Recall是衡量topK推荐系统性能的指标之一,用于量化推荐列表中正确包含的用户历史交互商品数量占用户在测试集中所有历史交互商品数量的比例。召回率越高模型推荐效果越好。假定测试集全部用户集合为U,对任意用户
,topK的推荐列表为
,测试集中用户u的真实交互列表为
,则模型召回率的计算公式为:
(14)
NDCG衡量了推荐列表中不同位置推荐结果的相关性。NDCG越高,意味着对用户更相关的项目被放在了推荐列表的前列,说明推荐性能越好。公式如下:
(15)
(16)
(17)
其中,K表示最有可能向用户推荐的前K个项目,
表示处于位置i的推荐项目的相关性,
表示相关性最高的前K个项目的集合。
4.1.3. 对比模型
为了综合评估MGGCL的性能,本文采用如下对比模型。这些模型都是近年来一些经典的、有代表性的模型:
(1) BPRMF [29] :一种在矩阵分解框架下优化BPR损失函数的经典协同过滤算法。
(2) NeuMF [30] :一种用多层感知器代替矩阵分解模型中点积的推荐算法。
(3) NGCF [3] :一种基于图的协同过滤方法,使用标准的图卷积网络,并在消息传递过程中将二阶特征交互编码到信息中。
(4) LightGCN [24] :一种简单而高效的推荐算法,在NGCF基础上去掉了特征变换和非线性操作,保留了图卷积网络中的邻域聚合与线性传播用于推荐。
(5) SGL [13] :引入了自监督学习,对用户–项目交互图使用结构扰动生成对比视图,进行对比学习。本文采用SGL-RW作为SGL的实例化。
(6) MGGCL:本文提出的基于多粒度的图对比学习推荐模型。
4.1.4. 参数设置
为了进行公平地比较,本文所有对比模型均采用其原始论文中给出的最佳参数,并使用SELFREC [31] 框架实现了所有模型。SELFREC框架是一个用于自监督推荐的Python框架,集成了常用的数据集和指标。在实验过程中,使用Adam [32] 优化器对所有方法进行优化,在所有嵌入上都使用了Xavier [33] 初始化。嵌入大小为64,batch size为2048,学习率为10−3,温度超参数
为0.05,dropout的概率为0.1,超参数
为10−6,超参数
、
为10−7,超参数
为1,超参数
为10−4。
4.2. 实验结果与分析
4.2.1. 性能对比
本文提出的MGGCL算法与其他经典推荐算法在两个真实数据集上的实验结果如表2所示。其中Improv.代表本文算法相较于现有最优基线算法在各项指标上的提升比例。为了更形象直观,实验结果用图2进行了对比显示。
Table 2. Performance comparison of different recommendation models
表2. 不同推荐模型的性能比
观察实验结果可以发现,传统方法如BPRMF在数据集上表现不好,这表明内积不足以捕获用户和项目之间的复杂关系。NeuMF在所有情况下都优于BPRMF,证明了用户和项目嵌入之间的非线性特征交互的重要性。但以上两种方法都没有显式地对嵌入学习过程中的连通性进行建模,这很容易导致次优的表示结果。NGCF直接利用了图卷积网络对用户–项目的高阶连接性进行建模,大大提升了推荐性能。LightGCN取得的结果优于NGCF,这表明去掉了特征变换和非线性操作带来的简化架构的有效性和健壮性。SGL在两个数据集上的性能一致优于其他方法,这表明对比学习对提高推荐性能是有效的。但是SGL只从一个维度上进行对比学习,并没有从多个粒度上把握图的全局结构。
如表2、图2所示,本文提出的MGGCL模型对比各基准算法在Recall@20和NDCG@20指标上均取得了最好的效果。在两个数据集上,MSGCL较基准模型中表现最好的模型(SGL)在Recall@20指标上分别提升了4.24%、6.85%,在NDCG@20指标上分别提升了4.04%、9.66%。这种优势主要是由多粒度的图对比学习所带来的,MGGCL可以在不同粒度下考虑图的结构信息,以更加整体和全面的视角利用图的全局结构。
4.2.2. 消融实验
为了分析MGGCL中各组件的性能,验证不同粒度下的对比学习模块对改进推荐性能的有效性,定义了以下算法与LightGCN和MGGCL进行对比实验:
(1) V1:在原模型中去掉节点对比学习模块
(2) V2:在原模型中去掉子图对比学习模块
(3) V3:在原模型中去掉全图对比学习模块
在两个数据集Yelp和Amazon-Book上的消融实验结果如图3所示。由图3可知,删除每一种不同粒度的对比学习模块都会导致MGGCL性能的下降,但三个变体的性能都好于基准LightGCN。这证明了三种不同粒度的对比学习模块对改进图推荐模型的有效性,并说明了每个模块各自的重要性,它们相辅相成,在不同方面提升了整体的性能。
4.2.3. 超参数敏感性分析
(1) 温度超参数
如上文所述,式(4)、式(5)、式(8)和式(12)中定义的温度超参数𝜏在对比学习中起着重要作用。
主要用于调整对比损失函数中的softmax函数,从而影响模型对不同样本间差异的敏感度 [34] 。为了分析温度超参数对MGGCL的影响,将𝜏的范围设置在0.01到0.10之间,在Yelp数据集上分析温度超参数
的敏
Figure 2. Performance comparison of different recommendation models
图2. 不同推荐模型的性能比
感性,实验结果如图4所示。
可以观察到,将𝜏的值设置太大(例如,0.100)会导致模型性能下降,并且增加模型收敛所需的训练周期数。这表明模型在区分难以辨认的负样本(hard negatives)与易于辨认的负样本(easy negatives)方面的能力不足。将𝜏设置为太小的值(例如,0.010),也会对模型性能产生不利影响。少数负样本会对优化过程产生过大的影响,导致多负样本情景下的梯度多样性丧失,这是自监督学习目标的关键优势。本实验中将温度超参数设置成0.05,可以产生良好的推荐性能。
(2) 超参数
在上文公式(6)、公式(9)中,超参数
用来平衡不同粒度下对比学习中用户和项目损失的权重。为了
Figure 3. Results of ablation experiment
图3. 消融实验结果
Figure 4. The impact of the temperature hyperparameter τ on the model
图4. 温度超参数τ对模型的影响
Figure 5. The impact of the hyperparameter α on the model
图5. 超参数α对模型的影响
分析
对模型性能的影响,将
的值在0.1到2的范围内进行调整,在Yelp数据集上分析超参数
的敏感性,实验结果如图5所示。
可以观察到,当超参数
的值设置为1时,在Yelp数据集上的两个指标均能表现出最好的性能。这表明在MGGCL中用户和项目的对比损失被认为同等重要,还意味着模型在用户和项目的表征学习中达到了一种协调,从而使得推荐算法在捕捉用户的偏好和项目的特性方面均匀有效。
5. 结束语
本文提出了一种名为MGGCL的图对比学习推荐算法,采用多粒度策略,结合节点级、子图级和全图级对比学习,有效建模用户和项目,克服了现有模型局限于单一粒度的问题。在未来的工作中,需要进一步探索在不同粒度下更优的图对比学习策略,以适应更多种类的推荐任务和数据环境。
NOTES
*通讯作者。