张俊三,肖 森,高 慧,邵明文,张培颖,朱 杰
1.中国石油大学(华东)计算机科学与技术学院,山东 青岛 266580
2.河北大学数学与信息科学学院河北省机器学习与计算智能重点实验室,河北 保定 071002
随着互联网的发展,信息过载越来越成为一个重要问题。为了缓解这一问题,推荐系统应运而生。推荐系统已被广泛应用在避免信息过载的各种应用程序上,例如在线购物、社交网络和网页搜索[1]等。其主要目的是为用户提供个性化的信息服务,即根据历史交互信息来预测用户是否会与某个物品进行交互(点击、收藏、添加到购物车、购买等),从而帮助用户发现潜在的感兴趣的物品。
作为一种广泛使用的解决方案是使用协同过滤(CF)[2],在假设行为相似的用户可能对物品有相似偏好的情况下,通过建模用户-物品的交互历史来学习用户和物品的表征。例如矩阵分解(MF)[3]可以直接将用户/物品嵌入到向量表示中,并通过用户和物品表示之间的内积对用户-物品交互进行建模。随着神经网络的发展,He等人[4]提出NCF,该算法用神经网络代替MF中的内积,以模拟用户与物品之间的非线性交互。
近年来,为了进一步提高嵌入质量、减缓数据稀疏带来的影响,一个重要的方向是利用GNN 的非欧几里得结构来表示结点的特征[5-7],通过用户-物品交互图来探索结点之间的高阶连通性。该方向在推荐领域取得了巨大成功。GNN的核心是迭代聚合邻居结点的特征信息,该方法可以从图结构中有效提取高阶信息,从而改善了用户和物品的表示特征,并在一定程度上缓解了数据稀疏问题。NGCF[6]、LightGCN[7]这些基于GNN 的算法已经在Web规模的应用程序取得了先进的性能。
在GNN 推荐中,正负样本的采样是必要的。通常情况下,将用户观测到的交互物品作为正样本,而将其未观测到的物品作为负样本,但是这样存在一定的局限性。首先,数据集是稀疏的,对于用户而言,其全局未观测的样本数量是巨大的,而计算所有用户的未观测物品更是不现实的。其次,将用户没有观测过的物品直接作为负样本也是不恰当的,因为没有被观测的物品也有可能是用户潜在喜欢的。有研究表明[8]对于采样的负样本质量能影响用户/物品嵌入质量和推荐任务的有效性。文献[9]发现只有5%的负样本对下游任务的训练很有必要,这类负样本被称为强负样本。最常用的采样策略是使用均匀分布的随机采样,但是这样会平等对待所有的负样本。为了提高负样本的质量,现在已经有推荐算法尝试设计新的采样分布来对负样本进行采样,以更细粒度地区分正负样本之间的差距,然而在大多数的GNN算法中,虽然关注了负采样的分布设计,但很少从独特的GNN 结构中发现邻居结点之间的关系,忽略了信息传播机制中按照图中邻域进行采样的可能性。
针对以上问题,本文提出了一种基于邻域采样的多任务图推荐算法(multi-task graph recommendation algorithm based on neighborhood sampling,NSM-GCN),利用图结构的特点,对结构相似的邻居进行负采样,以解决传统采样方法中的问题。在用户-物品图中,以用户为中心结点,其一阶邻居作为用户的正样本。在选择负样本时,次高阶(三阶)邻居与中心结点更相关性,并含有更多信息来区分正负样本,因此被并选作强负样本。除了原有的监督任务基础外,还提出了一种余弦边际损失(margin loss of cosine,MCL)进行多任务学习。MCL 可以过滤一部分信息量少的负样本,减少噪声数据对模型产生影响。最后,该算法在三个公开数据集上进行了大量实验,结果表明NSM-GCN在多项推荐指标上优于其他基准算法。
综上所述,本文有如下贡献:
(1)设计了一种基于GNN的邻域采样策略,能够在图结构中更有效地挖掘强负样本,有助于模型更好地学习样本信息,提高模型区分正负样本边界的能力,从而改善推荐效果。
(2)设计了一种余弦边际损失来进行多任务学习,在原有的监督任务下,更细致地考虑到用户与物品之间的关系,减少噪声数据对模型的影响,并辅助模型来进行更高效地训练。
1.1 GNN的推荐
相较于传统深度学习方法,GNN 具备处理非欧几里得数据的优势,并在计算机视觉[10]、自然语言处理[11]、推荐系统[12-13]中得到广泛应用。其中基于GNN 的推荐算法取得了显著的成果[6-7]。例如NGCF[6]是一种高效的推荐算法,它将用户物品的交互信息与用户-物品图结构相结合,将结点的高阶连通性引入到推荐中。Light-GCN[7]在NGCF的基础上进行了改进,是目前基于GNN的最有效的推荐算法之一。已出现许多基于LightGCN的改进算法[14-16],其中Mao 等人[14]通过简化GCN 公式、构造约束函数,大大提高了模型的训练效率。Liu 等人[15]采用兴趣感知消息传递方法,设计了无监督子图生成模块并执行高阶图卷积,缓解了GNN过平滑问题,提升了模型性能。
1.2 负采样问题
在推荐系统中,获得的数据通常为隐式反馈数据,如点击、浏览、收藏和购买等,在本文中统称为交互数据。由于用户只与少量物品发生交互,因此最简单有效的方法是将用户直接交互的物品作为其正样本。然而,推荐系统常常面临数据稀疏的问题,因此如何从庞大未观测的物品集中选择负样本已成为近年来研究的热点问题。
从用户未交互的物品集中随机选择作为负样本是一种常见的方式[17]。然而,这种平等对待所有负样本的方式缺乏针对性,无法更好地利用强负样本。强负样本是高质量的样本,与正样本相似并包含更多信息。近年来,研究人员已经做了很多尝试[18-21]以改进推荐模型的性能。例如,文献[20]针对CF中的隐式反馈提出了基于分数和基于方差的采样分布准则,在合成数据集和真实数据集上都表现了更高的准确性和更强的鲁棒性。文献[21]采用正负样本混合和层跳混合的方法生成强负样本,而非对数据集中的负样本进行采样,从而改善了模型的性能。
2.1 问题定义
在基于GNN 的推荐中,通常将用户集合U={u}和物品集合I={i}构建成图G=(V,E)。其中相邻的两个结点表示两者之间发生了交互。用户u的交互结点集合为Nu,物品i的交互结点集合为Ni,所有用户的交互集为。
用户和物品的交互矩阵定义为A∈RN×M,其中N、M分别表示用户、物品的数量,如果用户u∈U与物品i∈I发生过交互,则A矩阵中的元素aui=1 ;
否则aui=0。
2.2 模型框架
图1 展示了NSM-GCN 的总体框架图。以l=3 层为例,并对结点u1进行嵌入传播,其他结点的嵌入方式与u1相同。
图1 NSM-GCN模型框架Fig.1 NSM-GCN model framework
本模型分为三个模块:基础模型、采样策略和模型优化。首先,用户和物品通过初始化得到嵌入向量,然后利用图卷积模块聚合邻域信息来进行消息传播;
最后经过池化形成统一的嵌入表示。在采样策略上分为两部分:一部分采用均匀分布的随机采样生成BPR损失的负样本,另一部分采用邻域采样策略生成邻域采样负样本。模型采用多任务学习的方式进行优化,最终根据预测结果计算用户对物品的偏好程度,并通过排序获得用户的推荐列表。
2.2.1 基础模型
NSM-GCN 主要包括三个部分:嵌入初始化、嵌入传播和模型预测。
(1)嵌入初始化。早期的推荐模型[22]常常将用户与物品的交互矩阵的一行作为向量表示,但由于数据稀疏,导致向量不能准确地表示用户的高阶特征。为了解决此问题,后来引入隐向量[2]的概念,将用户和物品映射为低维稠密向量。所有用户和物品可以构建成嵌入矩阵,具体定义为:
同时,将E(0)作为模型的训练参数,并使用相应的损失函数和采样策略对其优化。基于GNN的推荐模型可以根据用户与物品之间的邻域关系进行多层嵌入传播,从而更新嵌入矩阵,并通过层连接的方式将其输入到模型预测层中。这有助于传递更多用户和物品之间的协作信号,通过学习结点之间的高阶连通性来增强嵌入向量的表达能力。
(2)嵌入传播。根据协同原理,与同一个用户有过交互的两个物品之间可能存在相似性,同理,与同一物品有过交互的两个用户也可能具有相似之处。此外,用户-物品交互图中的高阶邻居也有可能捕获到用户与用户、物品与物品、用户与物品之间更丰富的协作信号,这也是图神经网络的核心思想。为了传播更多的特征信息与协作信号,图卷积神经网络(GCN)对所有结点进行多层嵌入传播操作。NSM-GCN的嵌入公式如式(2)、(3):
(3)模型预测。GNN 通常会采用池化生成结点的最终表示。文献[24]证明这样做有助于减缓过平滑,并能确定结点在不同范围内的重要性。经过l次图卷积操作后,就得到了(l+1)个用户u、物品i的嵌入层表示:。
u、i最终表示的计算方法如公式(4):
最后,使用内积方式来计算用户u对物品i的偏好程度。如公式(5):
2.2.2 采样策略
本小节详细介绍了NSM-GCN 的采样策略。按照样本的用途,分为BPR 采样[17]与邻域采样两部分。如图2所示。
图2 采样策略Fig.2 Sampling strategy
(1)BPR采样。由于用户往往对感兴趣的物品产生交互,因此对正样本的采样而言,最直接有效的方式是从用户的交互物品集(一阶邻居)中随机选择作为正样本。
在推荐任务中,将用户可能喜欢的前K个物品推荐给用户,因此可以将推荐任务称为排序任务。假设用户喜欢的物品排名高于其他物品,在BPR损失中采用的采样策略是从用户u未交互的物品集合中均匀随机采样负样本,从图上可以理解为中心结点除了一阶以外的单数阶邻居(3、5、7……),因为这样符合“用户-物品-用户-物品”的交互图构建方式。
最后构成三元组:
(2)邻域采样。前文介绍了强负样本对训练任务的重要性。本研究从图结构的角度出发,尝试寻找一种新的方法来挖掘负样本中的强负样本。相比于BPR全局随机采样,距离中心结点较近的区域更可能存在强负样本。因此,本文提出了基于邻域的负采样方法:对于中心结点,从其三阶邻居中进行负采样,负采样使用均匀随机采样方法。接下来,本文将从以下两个角度分析邻域采样的合理性与可行性。
首先,GNN 推荐模型存在过平滑问题。即随着传播层数l的增加,性能会先提高后下降,通常在l=3 时达到顶峰。这是由于嵌入层过多会导致结点之间的相似性,同时随着层数的增加,在嵌入过程中也会不断传递噪声并累积负面消息。而中心结点的嵌入层l=3 是性能转折点所在的区域,也是较容易区分正负样本的区域,大多数强负样本可能存在于该区域。这一现象也进一步证明了在图卷积中,l=3 时性能最佳,继续叠加层数会导致性能下降。
其次,从社会影响理论[25]的角度看,同一个社交网络中的用户之间互相影响,具有相似的偏好,因此社交推荐[26]是从这一角度出发进行用户推荐的。将其推广到用户-物品交互图中,例如(u1→i1→u2→i2),若用户u1与u2同时与i1发生交互,根据社会影响理论,u1、u2同属于一个社区,二者可能有着相似的兴趣爱好;
同时u2与i2发生交互,即与用户u1具有相似偏好的u2可能对i2产生兴趣。因此,相比其他物品,i2更有可能被u1喜欢。但由于u1、u2是两个独立的个体,存在差异,i2同样可能不被u1喜欢,成为区分u1、u2以及其他用户的强负样本。因此,三阶邻居的样本可能富含更多信息,通过训练强负样本,挖掘其信息,可以更好地区分正负样本之间的边界,学习中心结点更深层次的信息。
2.2.3 模型优化
本模型采用多任务优化方法,在原有的BPR监督任务中,提出余弦边际损失(MCL)来进行联合优化。BPR损失采用三元组的形式,鼓励模型将观测到的物品排名比没观测的物品更靠前,从而提高排序的精度。计算公式如式(7):
本文根据邻域采样策略,提出了一种新的余弦边际损失。定义如下:
其中,α是权重参数,用来调整BPR损失与MCL的权重大小,K是邻域采样的负样本个数,[ ]x+=max()0,x,是用户u与邻域负样本j-之间的余弦相似度,m是边界值,满足m>0。MCL 损失通过引入边界值m来过滤掉一些冗余、信息少的样本。具体而言,当时,此时MCL的损失为0,只有满足的强负样本才会带来损失。因此,调整合适的m值可以更好地学习强负样本的信息并提高模型对样本的分辨能力,从而生成更具判别性的嵌入表示。
综上所述,NSM-GCN的损失函数定义为:
通过损失函数L去更新NSM-GCN的权重参数,即基础模型中的嵌入矩阵E(0),由于模型没有特征变换矩阵,因此采用L2正则化足以防止过拟合,这样做可以引入更少的训练参数,使模型具有较低的复杂度。
3.1 实验设置
3.1.1 数据集
为了保证模型评估的公平性和有效性,本文遵循基于GNN 的推荐模型设置,并在三个公开基准数据集(Amazon-Books[27]、Yelp2018[7]、Gowalla[28])上进行实验,使用与LightGCN相同的数据集划分方法。数据集的基本信息如表1。
表1 数据集统计信息Table 1 Statistics of datasets
3.1.2 评测指标
本文采用基于Top-K推荐的评测方法,将K设为20,将召回率Recall@20和归一化折损累计增益NDCG@20作为评测指标,其中,Recall 表示模型正确预测的样本在正样本中所占的比例,NDCG评估模型推荐结果中排序的准确性。这两个指标都是GNN模型中常用的性能指标。
3.1.3 对比模型与参数设置
为了综合评估NSM-GCN的性能,本文采用几种较为先进的模型作为对比方法:
(1)MF-BPR[17]:经典的协同过滤模型,使用BPR 损失来训练模型。
(2)GC-MC[5]:提出了一种图自动编码器框架,并通过在用户-物品交互图上传递消息生成用户和物品的表示。
(3)NGCF[6]:基于GNN的协同过滤模型,将用户-物品的高阶连通性引入到推荐中。
(4)LightGCN[7]:基于GNN 的模型,在NGCF 的基础上移除了特征变换和非线性激活模块,使基于GNN的方法更加简洁,取得了先进的性能。
(5)DGCF[29]:强调了区分不同用户意图的重要性,更细粒度地学习用户的潜在意图。
(6)TSA[30]:使用邻接矩阵的SVD 分解生成用户和物品嵌入,然后使用感知器模型来学习它们之间的相关性。
(7)GTN[31]:引入了一种图趋势协同过滤技术,并提出了一种新的图趋势过滤网络框架来捕获用户和物品之间的自适应可靠性。
NSM-GCN是在LightGCN的Pytorch官方代码基础上实现的,并在Ubuntu 22.04,Intel®Xeon®Gold 5118 CPU@2.30 GHz,512 GB,RTX3090 的环境下进行实验。嵌入维度d=64,Xavier 初始化嵌入矩阵E(0),使用Adam[32]优化器来训练NSM-GCN,采用小批量梯度下降mini-batch=2 048,学习率设置为0.001。使用L2正则化,搜索范围在{10-3,10-4,10-5},并在3.2 节报告最终的实验结果。
通过一系列的实验调整,将权重参数α设置为0.1,并将GNN 的层数在Gowalla、Yelp2018、Amazon-Books中分别设置为3、4、4,以达到最佳性能。此外,本文还对邻域采样的负样本个数K、边界值m参数进行了详细分析和实验,具体的细节内容请见3.3节。
3.2 性能比较
表2展示了在相同评测标准下NSM-GCN与其他算法模型的比较结果。
表2 在三个数据集上不同模型间的性能对比Table 2 Overall performance comparison between different models on 3 datasets
通过表2的结果对比有如下发现:
NSM-GCN 在三个基准数据集上均表现出优异的性能,且在大多数评测指标上优于其他算法模型。这一结果验证了本文方法的有效性。
具体来说,与MF-BPR、GC-MC、NGCF、LightGCN、DGCF、TSA、GTN相比,NSM-GCN在Gowalla和Yelp2018数据集上的Recall@20 和NDCG@20 性能指标上均取得了最优效果。本文提出的NSM-GCN是基于LightGCN框架进行的改进,与LightGCN相比,在Gowalla、Yelp2018和Amazon-Books 数据集上的Recall@20 和NDCG@20指标上分别提升了(3.8%,3.4%)、(4.7%,4.9%)、(9.4%,11.1%)。与GC-MC相比,在三个数据集上的Recall@20和NDCG@20指标上分别提升了(35.8%,33.2%)、(47.1%,46.7%)、(56.5%,56.2%)。这说明本文所提出的邻域采样方法可以更好地挖掘出强负样本,同时余弦边际损失函数有效地过滤了部分噪声信息。
在Amazon-Books 数据集上,NSM-GCN 的性能稍差于TSA。经过分析发现,这是因为Amazon-Books 数据集较为稀疏,其稠密度为0.000 62(见表1),其稀疏性明显高于Gowalla和Yelp2018 数据集。因此,从邻域负采样中选择的K个负样本无法很好地代表整个负样本集合的特征,从而导致在Amazon-Books 数据集上的Recall@20和NDCG@20性能指标结果稍低。
3.3 消融实验
3.3.1 模型分析
本文在Gowalla 和Yelp2018 数据集上进行了对照实验,以分析模型设计中采样策略和余弦边际损失的影响,并证明了模型的合理性和有效性。
为此,本文提出了LightGCN、NSM-GCN的变体:
(1)LightGCNns:保留LightGCN 的设置,仅采用邻域采样(neighborhood sampling)的负样本进行模型训练。
(2)NSM-GCNgs:对于余弦边际损失中的负样本,使用全局负采样(global sampling)方法代替邻域采样,模型的其他部分保持不变。
为了更直观地比较邻域采样的优势,本文还通过图3展示了Gowalla和Yelp2018数据集中邻域采样的负样本在所有负样本集合中所占的比例p,计算公式如式(10):
图3 邻域负样本在数据集中占所有负样本的比例Fig.3 Proportion of neighborhood negative samples in datasets in all their negative samples
其中,N、M分别为用户和物品的数量,表示用户un的三阶邻居的数量,即邻域采样的负样本个数,表示用户un与物品发生交互的数量。
图4展示了最终的实验结果,通过分析得出以下结论:
图4 LightGCN、NSM-GCN及其变体的性能比较Fig.4 Performance comparison of LightGCN,NSM-GCN and their variants
模型性能大小排名为LightGCNns 此外,LightGCN和NSM-GCNgs的结果表明,即使在MCL 中保持常规的全局负采样的情况下,NSM-GCNgs模型性能仍可以进一步改进,这说明了MCL 可以过滤一些信息量少、噪声数据多的负样本。NSM-GCN的性能最好,因为它结合了MCL与邻域采样,这也证明了本文提出算法的有效性。 最后,本实验还对比了NSM-GCN与其他变体模型达到图4 报告的性能结果所需要的训练轮数。最终的报告结果如表3所示。 表3 模型收敛在训练轮数的比较Table 3 Model convergence in comparison of number of training epochs 值得注意的是,相比于LightGCN,LightGCNns在仅使用邻域负样本的情况下表现出了更快的模型收敛速度。这一结果表明挖掘强负样本的深层信息对于加速模型训练具有重要意义。与此同时,NSM-GCNgs和NSM-GCN 的训练轮数也是少于LightGCN,不同的是,前者虽然没有直接引入邻域负样本,但模型中的MCL仍可以过滤掉信息量少的样本,使模型有更大的概率训练强负样本,从而提高模型训练效率,后者把邻域负样本引入到了模型中进行训练,进一步提供了更有意义的信息以指导模型优化。 3.3.2 参数分析 为了研究邻域阶数对实验结果的影响,本文选择了L-hop=1,3,5 作为邻域负样本集,并进行了对比实验。Gowalla、Yelp2018 以及Amazon-Books 的实验结果如表4所示。 表4 模型邻域负样本阶数的比较Table 4 Comparison of negative sample orders in model neighborhoods 通过实验分析,与一、五阶邻居相比,L-hop=3 实验表现最优,这证实了三阶邻居中更有可能存在强负样本的观点,通过挖掘潜在的强负样本可以提高模型的推荐性能。相较而言,在三个数据集上进行的L-hop=1 和5的对比实验结果表明,由于BRP损失所关注的负样本区域已经包含在一阶邻居中,因此在一阶邻域中,邻域采样挖掘强负样本的效果不如三阶邻域。而随着阶数增加至五阶,虽然可能会挖掘更多的强负样本,但同时也引入了更多的噪声偏差,从而导致推荐效果略低于一阶邻域。 为了进一步分析超参数对模型性能的影响,本文研究了邻域采样的负样本数量K和边界值m对NSM-GCN性能的影响,并在图5和图6中报告了实验结果。 图5 K 值影响(m=0.3)Fig.5 Impact of K(m=0.3) 图6 m 值影响Fig.6 Impact of m (1)K的影响。为了保证公平性,本研究将NSMGCN的边界值m设为0.3,在保持其他参数不变的情况下,通过调整K的大小以分析实验结果。总体而言,NSM-GCN 的性能先升后降。对于Gowalla 和Amazon-Books 数据集,当K=10 时,达到最佳性能; (2)m的影响。通过调整边界值m的大小,可以控制邻域采样中负样本对模型的影响程度,进而提升模型对样本的分辨能力。实验通过固定邻域采样的数量K(分别采用了K=10,K=15,K=10),来研究m对模型性能的影响。结果表明,当m=0.3 时,模型在三个数据集上表现最佳,而过大或过小的m都会导致模型性能下降。过小的m几乎起不到过滤负样本的作用,而过大的m则可能会过滤掉大多数负样本,使邻域采样中的强负样本无法给模型带来损失,从而导致性能下降。 本文旨在从图的结构中挖掘更有效的负样本,提出了一种基于邻域采样的多任务图推荐算法(NSM-GCN)。本文探索了一种更有效的基于邻域的采样方式来提高负样本的质量,并采用多任务策略联合余弦边际损失与BPR 损失来对模型进行联合优化。在三个公开数据集上进行了大量实验,证明了该想法的可行性与有效性。在未来的工作中,将进一步尝试将用户对于物品的不同意图引入到交互中,并利用GNN 的信息传播机制来增强用户、物品的表示,从而提升模型的可解释性与推荐性能。
而对于Yelp2018 数据集,K=15 则更有利于模型达到一个较好的推荐效果。值得注意的是,在Gowalla 和Yelp2018数据集上当K=20 时性能急剧下滑,经过分析其原因可能是随着K的增加,即使MCL起到一定的过滤冗余负样本的作用,仍会引入额外的噪声偏差。另外,在保持α不变的情况下,K的变化会影响MCL的系数α/K,不利于超参数的调整,难以使BPR 损失和MCL 损失处于一个相对平衡的状态。因此在针对不同的数据集时,需要仔细选择适当的K值以提高模型的性能。