洪明利,王 靖,贾彩燕
(1. 北京交通大学 计算机与信息技术学院, 北京 100044;2. 北京交通大学 交通数据分析与挖掘北京市重点实验室, 北京 100044)
随着互联网技术的快速发展,网上的信息也日益丰富。人们难以从大量的信息中提取到有用的信息,这就是著名的信息过载现象。推荐系统[1]作为一种信息过滤技术,可以有效解决信息过载问题。但传统的协同过滤推荐算法仅使用用户-项目交互信息进行推荐,数据稀疏、分布不均匀等问题,常导致推荐效果不佳[2]。针对上述问题,人们通过引入社交关系来缓解数据稀疏性等问题,提升了推荐方法的性能。根据社交影响力现象,用户在购买项目时会受到社交朋友的影响。因此,社交推荐[3-4]是近年来推荐领域的重要研究方向之一,一系列社交推荐模型[5-15]相继被提出。
尽管社交推荐在近年取得比较大的成功,但是还存在许多待解决的问题。第一,如何有效提取和融合社交信息和用户-项目交互信息?已有的社交推荐系统使用简单相加、拼接或者多层感知机来融合用户的历史交互信息和社交信息,无法区分用户购买是因为用户本身的兴趣、还是受到朋友的影响。第二,如何区分出用户的购买动机?目前常见的神经网络会学习用户的嵌入表示,但是用户的多种兴趣纠缠在一起,影响推荐的结果。多成分图卷积协同过滤(multi-component graph convolutional collaborative filtering, MCCF)[16]使用多个图注意力来提取用户的多个表示,有利于学习用户对不同物品的可能喜好;但是MCCF无法区分多个通道表示之间的区别,缺乏可解释性和真正的解耦能力。
因此,本文提出多通道图注意力解耦社交推荐方法(multi-channel graph attention network with disentangling capability for social recommendation, MGAT-D)。该模型主要有三个部分:深度聚类模块、多通道图注意力聚合模块和评分预测模块。其中:深度聚类模块用于对用户和项目进行分组,并利用聚类结果将用户社交图和用户-项目图拆分成多个用户社交子图及用户-项目子图;聚类模块的目的是将同一类项目划分在一个用户-项目子图中,同一类用户划分在一个项目-用户子图中,从而完成用户兴趣的分组。多通道图注意力聚合模块融合不同子图上的信息,其目的是挖掘用户对不同类项目的兴趣以及项目更适合哪一类人群;用户的每个通道的嵌入表示指用户对某类项目的兴趣,从而完成用户兴趣的解耦表示。评分预测模块使用多层感知机进行评分预测。在两个基准数据集上的实验结果表明:本文的方法优于其他同类社交推荐方法,包括GraphRec[13]、DANSER[14]等。
随着社交平台的快速发展,社交推荐在近些年越来越受到关注。基于矩阵分解的推荐模型在矩阵分解的基础上融合社交信息以捕捉更具有表达性的用户偏好向量,它的特点是灵活性高、推荐性能较好等。基于矩阵分解的推荐模型可以分为两类:基于矩阵分解的协同分解法和基于矩阵分解的社交正则化法。协同分解法[6,17]同时分解用户-项目评分矩阵和社交矩阵,两者共享用户特征向量。基于概率矩阵分解的社会推荐模型(social recommendation using probabilistic matrix factorization, SoRec)[6]是一种基于矩阵分解的协同分解法,该方法共享一个由用户-项目评分矩阵和社会关系矩阵分解的共同的潜在用户特征向量。基于矩阵分解的社交正则化法[8-9]分解用户-项目评分矩阵,并且用社交矩阵限制用户特征向量。基于社会正则化的推荐系统(recommender systems with social regularization, SoReg)[8]是一个带社交正则化的矩阵分解模型,它利用社交矩阵对用户特征向量进行正则化约束。
由于基于矩阵分解的任务只提取了线性信息,所以研究人员又提出了基于深度神经网络(deep neural network, DNN)的非线性推荐方法。基于社会关系深度建模的推荐模型(deep modeling of social relations for recommendation, DeepSoR)[10]是一种基于深度神经网络的社交推荐模型,该模型首先将社交关系输入到图嵌入模型node2vec[18]来预训练用户节点嵌入,然后使用深度神经网络来提取社交关系矩阵中的用户非线性特征向量,并将其集成到概率矩阵分解中进行评分预测。深度社交协同过滤模型(deep social collaborative filtering, DSCF)[11]是另一种基于深度神经网络的社交推荐模型,它能提取高阶的社交邻居的信息,从而更好提取社交信息和用户-项目交互信息。
图神经网络[19-20]是基于图结构的广义神经网络,该网络提供了一种从相邻节点聚合信息以捕获节点的网络拓扑信息的方法。近年来,图神经网络被研究人员用在推荐领域[21-22]并取得很好的效果。新近提出的MCCF[16]在用户物品交互图上使用多个图注意力来提取用户和物品的多个表示。基于图神经网络的社交推荐模型(graph neural networks for social recommendation, GraphRec)[13]提出了一种基于图注意力网络的社交推荐系统,使用图注意力网络同时在用户物品交互图中捕获交互信息、在社交图中提取社交信息。双图注意力用于推荐系统中多方面社交影响的深度潜在表示(dual graph attention networks for deep latent representation of multifaceted social effects in recommender systems, DANSER)[14]是一种对偶图注意力神经网络,可以同时捕获用户和物品的社交同质性和社会影响力。其中,社交同质性用邻居的向量表示来聚合,社会影响力用邻居的上下文感知偏好来聚合。社会推荐的神经影响扩散模型(neural influence diffusion model for social recommendation, DiffNet)[23]使用GCNs来捕捉用户偏好在社交网络中的社交扩散过程。但现有模型缺乏学习用户购买动力的能力,不能对用户对不同类商品的兴趣及用户兴趣组进行端到端的建模。鉴于近年来兴起的深度聚类方法(deep embedding clustering, DEC)[24-25]可以在学习表示向量的同时对数据进行分组。因此,将深度聚类引入图神经网络模型中,以提高模型学习用户对不同类商品兴趣等的能力,从而提高模型的解耦能力。
本节提出社交推荐问题的形式化定义和模型MGAT-D及模型参数的学习过程。
设有M个用户和N个项目,令U={u1,u2,…,uM}和V={v1,v2,…,vN}分别表示用户集合和项目集合。设用户项目交互矩阵为R=[rui]M×N,其中rui表示用户u给项目i的评分。设RI(u)表示用户u评论的项目集合,RU(i)表示评论项目i的用户集合。设用户社交矩阵为S=[sij]M×M,sij=1表示用户i与用户j是朋友关系。SU(u)表示用户u的社交邻居。
通过项目的相似度来构造项目隐式矩阵T=[tij]N×N,当同时评论项目i和项目j的用户数目大于阈值h=5时,设tij=1,否则为0。TI(i)表示项目i在项目隐式矩阵上的相邻节点。
社会化推荐的任务可以形式化定义为:给定用户u和项目i,基于用户交互矩阵R、用户社交矩阵S和项目隐式矩阵T来预测评分。
图1表示模型MGAT-D的整体结构图,其核心主要由三部分组成:深度聚类模块、多通道图注意力聚合模块和评分预测模块。深度聚类模块利用聚类技术对用户和项目进行分组,目的是将同一类项目划分在一个用户-项目子图中,同一类用户划分在同一类项目-用户子图中,从而完成用户兴趣的分组。多通道图注意力聚合模块融合不同子图上的信息,其目的是挖掘用户对不同类项目的兴趣以及找到项目更适合哪一类人群。以用户为例,用户每个通道的嵌入表示用户对某类项目的兴趣从而完成兴趣的解耦表示。评分预测模块将学习到的用户表示向量和项目表示向量输入多层感知机进行评分预测。
2.2.1 深度聚类模块
嵌入表示:设P=[pi]D×M为用户表示向量,Q=[qi]D×N为项目表示向量,其中D为表示向量的维度。P和Q均随机初始化。
用于对用户和项目进行分组,并利用聚类结果将用户-项目图拆分成K1个用户-项目交互子图和K2个项目-用户交互子图,以学习用户和项目的特征分组、用户对不同类项目的兴趣。聚类模型的目的是将同一类项目划分在一个用户-项目子图,将同一类用户划分在一个项目-用户子图。如图1中红色的项目属于同一类,被划分在一个用户-项目子图中,黑色的用户为同类用户被划分到同一项目-用户子图中。训练用户和项目的嵌入表示P和Q,然后使用聚类算法将用户和项目分别聚成K2和K1类。由于需要多次聚类,所以选用复杂度较低的K-means聚类算法[26]。
图1 模型架构Fig.1 Model framework
设对M个用户节点进行聚类的聚类损失为:
(1)
式中,cu代表用户u被分配的聚类索引值,cu∈{1,2,…,K2},μcu代表用户u归属的类对应索引值的聚类中心。
对N个项目节点进行聚类的聚类损失为:
(2)
式中,di代表项目i被分配的聚类索引值,di∈{1,2,…,K1},νdi代表项目i归属的类对应索引值的聚类中心。
2.2.2 多通道图注意力聚合模块
图注意力网络通过注意力机制来衡量相邻节点的不同权重,使得模型能够过滤出图上的噪声并关注重要的相邻节点。 因此,使用了图注意力模型来更好地提取用户-项目交互图、用户社交图和项目隐式图的信息,从而使得社交影响和用户-项目交互信息影响可以通过图传播到相邻的节点。 多通道图注意力聚合模块的目的是挖掘用户对不同类项目的兴趣以及项目更适合哪一类人群。 以用户为例,用户每个通道的嵌入表示指用户对某类项目的兴趣从而完成兴趣的解耦表示为了实现这个目标,设计了多通道线性变换和两个聚合操作(即用户聚合操作和项目聚合操作)来分别捕获用户和项目的特征表示。
多通道线性变换:
假设用户购买项目是出于多种动机,所以提取用户和项目在不同聚类上的特征表示,每个类都表示一个通道。 因此,首先分别为用户和项目设计了K2和K1个线性变换。
对于用户u,设他在第n个类的表示向量为:
(3)
式中,Wnu是神经网络的权重,pu为初始的用户向量。
对于项目i,设它在第m个类的表示向量为:
(4)
式中,Wmi是神经网络的权重,qi为初始的项目向量。
在用户聚合模型中使用了两个图注意力模型来挖掘不同图上的信息。 第一个图注意力模型的目的是挖掘子图的嵌入表示。 第二个注意力模块用来融合社交子图和用户-项目子图从而获得用户一个通道的嵌入表示。 由于用户-项目子图可能信息稀疏,融合社交关系可以极大缓解这一问题。
(5)
(6)
式中,‖表示级联。
基于图注意力的社交信息聚合:关注用户u和他的社交图SU(u),然后使用图注意力模型来聚合社交图上的信息,得到用户u在第m个通道下的社交空间用户嵌入表示:
(7)
(8)
(9)
(10)
(11)
在项目聚合模型中,同样使用了两个图注意力模型,其目的与用户聚合模块类似。 第一个图注意力模型的目的是挖掘子图的嵌入表示。第二个注意力模块用来融合项目隐式图和项目-用户子图从而获得项目一个通道的嵌入表示。
(12)
(13)
(14)
(15)
(16)
(17)
最后将所有通道的项目嵌入表示连接起来当作项目的最终嵌入表示。项目的最终嵌入表示为:
(18)
2.2.3 评分预测模块
将用户的最终嵌入表示h和项目的最终嵌入表示z输入多层神经网络进行评分预测。 设
g1=[h‖z]
(19)
则有:
gl=σ(Wl·gl-1+bl)
(20)
r′ui=wT·gl
(21)
其中,l是隐藏层的层数(l=2,3,…),W和b表示权重和偏置,r′ui是用户u对项目i的预测评分。
2.2.4 模型训练
为了评估模型的效果,需要指定目标函数来进行优化。 损失函数衡量的是预测值与真实值之间的差异,即
(22)
式中,O是观察到的评分数据集合,|O|代表集合O的数量,rui是用户u在项目i上的真实评分。
深度聚类的损失包含两部分,分别是用户的聚类损失和项目的聚类损失,目标函数为:
L2=Lucls+Licls
(23)
在模型训练过程中,采用交替训练法,交替优化L1和L2。因此,本方法是一种带有聚类损失和预测损失指导的深度聚类模型。由于聚类过程的引入,可以对用户和项目进行分组聚类,用户可以同时聚合不同类的项目信息得到多个通道的用户信息,使得模型具有一定的解耦能力。
3.1.1 数据集
使用两个包含社交关系的推荐数据集Ciao和Epinions来测试不同算法的性能。Ciao(www.ciao.co.uk)是一个项目评价网站,Ciao数据集包含两部分信息:用户与项目的交互信息(评分1~5分),以及用户之间的直接信任关系。Epinions(www.epinions.com)是一个包含信任关系的消费者评论网站,用户可以在网站上给项目打分。Epinions数据集包含两部分信息:用户与项目的交互信息(评分1~5分),以及用户之间的直接信任关系。两个数据集的统计信息显示在表1中。
表1 实验数据集统计信息
对于每个数据集,随机选择80%的评分数据作为训练集,10%当作验证集,10%当作测试集。将每个实验重复10次并取其平均值作为模型的最终结果参与评价。
3.1.2 评估指标
使用两个常用的评估指标:平均绝对误差(mean absolute error, MAE)和均方根误差(root mean squared error, RMSE)来衡量评分预测的准确性。
(24)
(25)
其中,Rtest表示测试集,rui和r′ui分别是用户u对项目i的真实评分和预测评分。MAE和RMSE值越小,推荐性能越好。
3.1.3 基线模型
为了衡量实验精度,将MGAT-D模型与其他推荐模型进行比较。本文选择的具有代表性的基线模型如下:
1) PMF[27]:概率矩阵分解模型,仅仅使用用户与项目评分信息。该模型基于高斯分布对用户和项目的潜在因素进行建模。
2) SoReg[8]:一种社交正则化模型,将社交网络信息建模为正则化项来约束矩阵分解模型。
3) SocialMF[9]:一种经典的社会化推荐模型,该模型将基于社交网络的信任传播机制加入矩阵分解模型中。
4) DeepSoR[10]:一种基于深度神经网络的社交推荐模型,使用深度神经网络来捕获社会关系并将其集成到概率矩阵分解模型中进行评分预测。
5) MCCF[16]:一种基于图神经网络的推荐模型,该模型使用了图注意力神经网络从用户-项目交互图中提取用户和项目的多个潜在的购买动机。
6) DANSER[14]:一种基于对偶图注意力网络的社交推荐模型,它使用对偶图注意力神经网络来同时捕获用户和项目的社会同质性和社会影响力。
7) GraphRec[13]:一种基于图注意力网络的社交推荐模型,使用图注意力网络来捕获用户-项目图中的交互信息和观点信息。
3.1.4 参数设置
使用Pytorch作为实验环境。为了优化目标函数,采用RMSprop作为优化器。设置K1=K2范围为{1,2,3,4},嵌入向量维度d设为{8,16,32,64,128},学习率lr设为{0.005,0.001,0.000 5,0.000 1},每个节点聚合的节点数量F设为{15,30,45, 60},激活函数选用LeakyReLu函数,斜率设为0.2。设置提前停止法策略,如果验证集上的RMSE连续5个轮次未下降,就停止模型的训练。
表2展示MGAT-D模型和其他基线模型在两个数据集上的推荐效果。通过对比实验结果,可以得到以下结论:
1)同时使用社交矩阵和用户-项目评分矩阵的模型优于仅使用用户-项目评分矩阵的模型。基于矩阵分解的社交推荐模型SoReg和SocialMF性能优于仅使用用户-项目评分矩阵的概率矩阵分解模型PMF。基于图神经网络的社交推荐方法DANSER和GraphRec性能优于基于图神经网络的协同过滤模型MCCF。这表明使用社交信息可以有效提高推荐系统的性能。
表2 实验结果对比
2)基于深度神经网络的社交推荐模型DeepSoR的性能优于基于矩阵分解的社交推荐模型。这表明推荐系统中神经网络模型具有强学习能力。
3)基于图神经网络的模型MCCF、DANSER和GraphRec性能优于其他基线模型。这说明在推荐系统中图神经网络模型具有一定的优势,其原因为:图神经网络可以学习到节点的信息,并按拓扑结构进行传递。
4)MGAT-D优于所有基准方法,与GraphRec方法相比,在Ciao和Epinions数据集上MAE分别降低了2.58%和3.06%,RMSE分别降低了2.26%和2.07%。这说明通过学习多通道的用户和项目表示,可以提取到更加丰富的用户和项目的信息,从而提高推荐算法的精度,也使得模型具有一定的解耦能力。
本节分析模型的组件和模型的超参数对模型性能的影响。
3.3.1 通道数目的影响
为了研究MGAT-D模型的解耦能力,将通道数量设为{1,2,3,4}。表3总结了实验结果,其中:MGAT-D-3表示解耦为3个通道的模型;MGAT-D-1表示没有解耦能力的基模型,其不使用深度聚类方法仅提取单通道的用户和项目特征表示。表3中MGAT-D-2、MGAT-D-3和MGAT-D-4效果都比MGAT-D-1要好,从而可知提取多通道的用户和项目的特征表示可以有效提高推荐效果。表3中MGAT-D-4效果并不优于MGAT-D-3,这是因为随着通道数目增加,每个子图上的节点数量随之减少,反而会降低推荐的效果。
表3 不同通道数目的效果
3.3.2 社交图和物品隐式图对实验的影响
下面,对比分析用户社交图和物品隐式图对模型性能的影响。表4总结了实验结果,其中MGAT-D-S表示去除用户社交图的模型,MGAT-D-T表示去除物品隐式图的模型,MGAT-D-ST表示去除用户社交图和物品隐式图的模型。
由表4可知:MGAT-D性能优于MGAT-D-S、MGAT-D-T和MGAT-D-ST,即使用用户社交图和物品隐式图可以提高推荐的效果。
表4 社交图和物品隐式图对实验的效果
3.3.3 其他超参数对实验的影响
本小节对比分析模型中的一些超参数对模型性能的影响,包括学习率lr、向量维度d和每个节点聚合的节点数量F,它们在Ciao数据集上对模型的影响如图2~4所示。
由图2~4可见:学习率参数起着重要作用,如果学习率太高或者太低,模型都无法达到最优的效果,选择学习率lr=1×10-3来优化模型。嵌入向量维度d对模型起着重要的作用,需要适当的嵌入向量维度。如果值太小,则模型缺乏表达性;而如果值太大,则嵌入向量会由于过于稀疏而使模型性能下降。每个节点聚合的节点数量F对模型起着重要的作用,随着每个节点聚合的节点数量F的增加,MAE会有所下降但是RMSE反而上升,而且计算成本也随之增加。因此,选择每个节点聚合的节点数量F=30来平衡模型的复杂度和准确度。
(a) MAE
(b) RMAE图2 参数d在Ciao数据集上对模型的影响Fig.2 Influence of parameter d on Ciao dataset
(a) MAE
(b) RMAE图3 参数lr在Ciao数据集上对模型的影响Fig.3 Influence of parameter lr on Ciao dataset
(a) MAE
(b) RMAE图4 参数F在Ciao数据集上对模型的影响Fig.4 Influence of parameter F on Ciao dataset
本文提出了一种具有解耦能力的多通道图注意力社交推荐模型MGAT-D。该方法可以提取用户和项目多通道的信息来捕获更细粒度的用户偏好从而显著提高推荐的精度。具体地,使用深度聚类对用户和项目进行分组,并利用聚类结果将用户社交图和用户-项目图拆分成多个用户社交子图及用户-项目子图,以学习用户兴趣分组及用户对不同类别项目的兴趣,从而区分用户不同的购买动机。此外,为了更好地提取和融合用户-项目交互图和社交图的信息,采取图注意力网络来提取用户社交图、用户-项目交互图、物品隐式图上的信息并且基于注意力机制来融合不同图上的信息,从而提取更丰富的用户和项目嵌入表示。MGAT-D优于其他社交推荐算法,但是本文仅使用用户-项目评分信息和用户社交信息,未来将进一步将用户和项目的属性信息、用户和项目的知识图谱等信息进行融合,以进一步提高推荐算法的性能。