融合注意力机制的GNN推荐算法
2022-10-24吴长旺胡婷婷
吴长旺,黄 刚,胡婷婷
(南京邮电大学 计算机学院、软件学院、网络空间安全学院,江苏 南京 210023)
0 引 言
随着大数据时代的到来,各种社交媒体和电子商务不断地发展使得信息和数据快速增长,导致人们在使用互联网时,产生了大量的冗余信息,这些信息给人们带来了极大的烦恼。用户无法有效地整合自己所需要的信息,同时用户对信息的反映速度跟不上信息的更新速度,这就导致了信息利用率的下降,这类问题被称为信息过载[1]。解决信息过载的方法其中之一便是推荐系统,推荐系统的过滤机制可以提取有用的信息来帮助用户,更好地满足用户个性化需求。
图神经网络(GNN)是近几年热门应用的推荐算法之一,它是由卷积神经网络(CNN)发展而来的新型神经网络[2],包含着丰富的关系型信息,可以提取图领域的数据特征,是一种易扩展、高效的新型神经网络结构,在学习图相关的数据方面展现了强大的功能。传统的深度学习更加注重物品和用户之间的联系,用户和物品本身的联系容易被忽视。而图神经网络通过对节点的迭代可以更加精准地描绘图模型中实体之间的关联,利用这种新型的方式来分析推荐系统,有助于挖掘更深层次的信息。近几年来,使用图神经网络的推荐系统越来越多,研究者们也在图神经网络方面开展了许多工作,但仍有以下问题尚未解决:
(1)用户和他的朋友都有各自的兴趣爱好,大部分情况下,用户只是在某方面和朋友有着类似的爱好。但是,在现实中,并不能确定用户在哪一方面和他的朋友有着共同的兴趣爱好。
(2)图神经网络中节点之间的交互信息通常不会随着时间的变化而发生改变,这对于每时每刻都有海量数据产生的推荐系统而言,新物品、新用户以及新的交互都会改变原有的拓扑关系。这说明节点的时序信息非常重要,但却未被充分利用。
因此,该文提出了一种融合多头注意力机制和门控循环单元的图网络算法MGRU。首先,建立用户-物品图,用户交互过的物品根据时间序列进行排序,依次为用户节点的相邻节点。在图神经网络迭代局部图时,通过门控循环单元学习潜在信息,融合注意力机制后与用户进行聚合。其次,建立用户-用户图,用户相邻的节点是与其有社交关系的朋友节点。将用户和朋友的嵌入表示输入注意力记忆网络,得到朋友对用户不同方面的影响。然后,利用多头注意力机制调节上一步得到的数据,控制朋友对用户兴趣爱好的影响。最后,利用门控网络把融入时序信息的用户节点和用户的社交信息进行融合得到用户对物品的预测评分。
1 相关工作
1.1 注意力机制与社会化推荐
信息化的增长和网络交流的兴起,使得线上的交流与沟通成为人们日常生活的一部分,这也给推荐系统带来了新的启发。随着注意力机制的快速发展[3],研究者开始考虑用这项技术来改善推荐系统,再进行了大量的实验工作后[4],验证了注意力机制可以提高推荐准确性。
Pei等人[5]认为现有的推荐系统中用户项目的每个历史信息都与推荐同等相关,但这在现实场景中并不适用。同时,许多推荐系统分别针对用户和项目建模,没有考虑两者之间的动态联系,因此通过注意力机制获得交互关系的推荐系统被提出。柴等人[6]发现针对评论文本的推荐系统中,大部分只考虑了项目评论和评分,却忽视了蕴藏在文本中的信息,所以把双重注意力机制融入了推荐系统,从而可以在文本中获取更多的重点信息。在因子分解机器中Chen等人[7]学习神经注意力机制网络的交互特征,聚合注意力网络组件,通过项目和注意力机制的结合,得到最终的用户表示进行推荐。Guo等人[8]提出了一种神经注意力推荐模型,他们利用用户的隐式反馈行为,将用户向量化表示,从用户的项目历史中提取时序信息,最后将信息融合,从而提高推荐性能。
1.2 GNN推荐算法
2008年,Franco和Marco等人最早提出了图神经网络[9]的概念,接着在2017年出现的GCN[10]模型更加快速地推动了图神经网络的发展;NGCF[11]模型引入GCN推荐算法,在用户项目二分图中进行高阶连通性建模,从而以显性方式将协作信号注入到嵌入过程中;KGCN-PN[12]模型通过GCN进行信息融合,更好地捕捉局部图的结构,并存储在各个实体中;KGAT[13]算法融合普通的注意力机制到图神经网络中,提升了推荐系统的准确度;BGANR[14]算法融合注意力机制加入偏置量得以更好地捕捉不同节点间的高阶连通性;基于图神经网络的GraphRec[15]模型提出了一种方法,可以同时捕获用户项目图中的交互信息,并分别进行建模。
尽管上述算法可以很好地提取用户和项目之间的关系,但大部分基于GNN的推荐算法没有考虑到深度学习在处理其他信息的优势,因此,该文首先利用时序性对用户兴趣的影响,来增加用户与物品的关系,再通过注意力机制的优势来提取用户与用户之间的兴趣偏好,最终通过融合的方式来提升模型性能。结构如图1所示,其中基于注意力机制的聚合算法、多头注意力机制将在算法介绍部分展示详细图示。
2 MGRU算法:
2.1 用户物品模型
图1 基于MGRU的图网络推荐算法框架
(1)
输入感知机降维:
(2)
xt=δt*ht
(3)
rt=σ(Wirxt+bir+Whrh(t-1)+bhr)
(4)
zt=σ(Wizxt+biz+Whzh(t-1)+bhz)
(5)
nt=tanh(Winxt+bin+rt⊙(Whnh(t-1)+bhn))
(6)
ht=(1-zt)⊙nt+zt⊙h(t-1)
(7)
将当前节点的输入xt和上一时刻的状态h(t-1)进行拼接,通过全连接层,得到rt控制重置的门控和zt控制遗忘的门控。由于rt和zt经过Sigmoid激活,所以取值范围在0到1之间,其中zt越接近1,代表“记忆”下来的数据越多;而越接近0则代表“遗忘”的越多;得到门控信号后,先使用rt重置上一时刻的状态,再将结果与输入拼接并用tanh激活函数将数据取值范围放缩到-1和1之间,即得到nt;最后一步(1-zt)⊙nt:表示选择性“遗忘”nt中一些信息;zt⊙h(t-1):表示选择性“记忆”包含节点信息的h(t-1),同时也会忘记一些不重要的信息;最终通过上述步骤实现了对输入和时序信息的选择性遗忘和记忆。
图2 基于注意力机制的聚合算法
(8)
yi=ReLU(Wxi+b)
(9)
(10)
(11)
(12)
(13)
2.2 用户社交模型
用户社交模型是由用户节点ui和朋友节点uj构成的局部图 (图1左下方)。本算法中边为无向边,每条边表示用户与用户的社交关系,则邻域节点为互相关注的用户集合,即用户和用户朋友对。
步骤1 嵌入:对于所有用户ui和用户朋友u(i,j),利用门控网络得到融合嵌入向量,获得嵌入表示:
Sgate=tanh(w1*ui+w2*u(i,j)+b)
(14)
S=Sgate*ui+(1-Sgate)*u(i,j)
(15)
步骤2 注意力网络:用户和朋友之间的社交关系向量可以采用注意力记忆模块[16]来学习,其中Q为记忆矩阵,Ql为每一个记忆片,e为用户物品的嵌入维度。在本模块中,输入用户和朋友的嵌入表示,输出该朋友和用户的共同兴趣偏好向量。
嵌入表示为S,注意力权重矩阵为X,则注意向量a为:
(16)
其中,X∈Re。接着,对a使用softmax函数进行归一化,并通过朋友u(i,j)扩展记忆矩阵Q:
(17)
Fl=u(i,j)⊙Ql
(18)
其中,⊙表示元素乘积,矩阵F表示朋友在不同方面的偏好。最后,使用注意力分数计算朋友向量f(i,j):
(19)
其中,f(i,1),f(i,2),…,f(i,j)为用户ui的朋友关系向量,其中f(i,j)表示朋友u(i,j)对用户ui偏好影响的向量。
步骤3 多头注意力(如图3所示):普通的注意力机制是给朋友的影响力分配不同的权重,用户只有在交互时权重才会发生变化。但在现实中,用户并不是一视同仁地对待每一个朋友的建议,在某个领域更专业的朋友或者关系更亲密的朋友显然会提供更加准确的建议。而多头注意力机制可以提取多个特征,并且能够侧重提取朋友某方面的建议,更加准确地提供用户希望得到的信息。所以该文选择多头注意力机制,获取用户在社交信息中重点关注的内容,从而获得朋友在不同方面对用户的重要程度。
图3 多头注意力机制
多头注意力机制将Q、K和V进行多次线性映射,并对不同的映射结果进行放缩点积注意力操作(如图4所示),然后将放缩点积注意力的结果拼接后输入线性映射层,最后得到多头注意力机制的结果。将每一个用户(Q)和他的朋友向量(K)进行比较得到每个单头的输出:
图4 放缩点积注意力结构
(20)
P(i,j)=MultiHeadAttention(Q,K,V)=
Concat(head1,head2,…,headj)
(21)
每个权重P(i,j)融合了嵌入的f(i,j),权重越大代表该朋友对用户的影响越大。
2.3 评分预测
将朋友向量和用户本身相融合,利用记忆网络中的门控机制得到用户的兴趣偏好Ii:
(22)
(23)
训练时使用一组数据的均方误差作为目标函数,来优化模型中的参数:
(24)
3 实 验
3.1 数据集
本次实验中使用了两个有代表性的数据集Ciao和Epinions,这两个数据集中主要包含:用户对物品的评分信息(0-5分)和时间戳、用户和被关注用户索引,具体统计数据如表1所示。
表1 实验数据集描述
3.2 评价标准
该文提出的算法会对用户未评分物品进行预估评分,所以使用均方根误差(RMSE)和平均绝对误差(MAE)作为预测评分准确度指标。计算公式如下:
(25)
(26)
3.3 参数设置
选取Ciao和Epionions数据集的60%作为训练集,20%作为验证集,其余作为测试集对算法的准确性进行验证。大多数图神经网络中一次训练选取的样本、学习率和多头数分别在[32,64,128,512],[0.000 5,0.001,0.005,0.01,0.05,0.1]和[4,8,16,32]中搜索。从图5中可以看出,当嵌入维度为64时RMSE的值最小,效果最好。
图5 Epinions数据集下嵌入样本维度对RMSE的影响
图6显示了不同GRU纵向堆叠层数取值在Epinions数据集上的变化。可以看出,RMSE随着层数呈现先减小后增大的趋势,说明随着层数的增加会出现过拟合的问题,层数过小会削弱对时序信息的学习能力。因此将层数设置为2。
图6 Epinions数据集下GRU层数对RMSE的影响
图7展示了预测误差随迭代周期数的变化,每次迭代都会将用户顶点聚合迭代一次。其中迭代周期为5时达到了最优值,随着迭代次数进一步的增加,会出现过拟合的问题。
图7 Epinions数据集下迭代周期数的变化对RMSE的影响
经过验证集(从数据集中抽取20%)最终得到参数:嵌入维度为64,GRU纵向堆叠层数为2,迭代周期为5,批次大小为64,学习率为0.000 5。
3.4 算法性能对比
为了验证该算法的有效性,选择了PMF、SocislMF、NeuMF、DeepSoR以及GraphRec等经典推荐算法进行对比,并对实验结果进行了分析。
PMF[17]:概率矩阵分解模型,使用高斯分布对用户和物品的潜在特征建模,可以处理大规模、稀疏不平衡数据。
SocialMF[18]:一种基于社交网络的推荐方法,它将信任网络传播机制融合到推荐系统中,用来提高推荐质量。
NeuMF[19]:经典的深度学习推荐算法,融合了多层感知机和矩阵分解,可以同时获得高维和低维的特征。
DeepSoR[20]:使用深度神经网络从社交信息中提取用户表示,并集成到概率矩阵分解中进行预测。
GraphRec[15]:利用图神经网络的社会化推荐,该模型不仅能够包含用户和物品之间的交互,还包含了用户对物品的观点,同时可以提取有效的社交信息。
在Ciao和Epinions数据集中,选取了60%进行训练,20%进行验证,剩下的作为测试集,并与上述几种模型进行了对比,总体预测误差RMSE和MAE的比较结果如表2所示。
表2 MGRU算法与其他模型对比结果
从表2的对比结果可以看出,MGRU算法比其他模型误差更小。其中PMF只使用了用户和物品的评分信息,SocialMF 、 DeepSoR和GraphRec同时利用了评分信息和社交信息,所以误差比PMF更小。而NeuMF虽然也只利用了评分信息,但是它是基于神经网络结构的,可以提取更多的信息,所以性能也要优于PMF。该文采用的MGRU提供了新的模型来融合用户评分的时序信息和用户的社交信息。通过融合GRU提取的时序信息迭代用户节点,再引入多头注意力机制提取不同方面朋友对用户的影响,使得该算法有更好的性能。
4 结束语
在图神经网络架构的基础上, 基于推荐系统中时序性以及用户社交信息的特点, 提出了一种融合注意力机制的GNN推荐算法。该算法可以同时从评分数据和社交信息中学习用户的特征。在处理用户评分时利用图神经网络进行深度特征学习,提取用户的特征表示。在处理社交信息中,利用多头注意力机制可以更加全面地考虑朋友在不同方面给用户带来的影响,深层次地突出了朋友在某一个方面的重要影响。最后,利用门控网络进行融合,提高了最终推荐的准确率。未来将进一步考虑社交网络的时序性带来的影响,并不断提升当前算法的可解释性。