李盼,解庆,李琳,刘永坚
(1.武汉理工大学 计算机与人工智能学院,武汉 430070;2.武汉理工大学 重庆研究院,重庆 401135)
在信息爆炸时代,推荐系统被广泛应用于各个领域,帮助用户从海量信息中发现可能感兴趣的内容。传统推荐以静态的方式对用户行为进行建模,只能捕获用户的静态偏好。然而在现实世界中,用户的偏好随时间动态变化,用户与项目的交互存在一定的序列关联。因此,序列推荐将用户和项目的交互视为一个动态序列,并将序列相关性考虑在内,以捕获用户最近的偏好,能够获得更准确的推荐[1]。
早期的序列推荐,采用频繁模式挖掘或者马尔可夫链法。近年来,深度学习在图像处理、自然语言处理、语音识别等领域取得了突破性进展,已经成为人工智能的一个热潮,为推荐系统的研究带来了新的机遇[2]。循环神经网络(Recurrent Neural Network,RNN)具有序列建模的天然优势,因此在序列推荐中经常使用RNN的两种变体,即长短期记忆(Long Short Term Memory,LSTM)网络和门控循环单元(Gate Recurrent Unit,GRU)。文献[3]将GRU 应用于基于会话的推荐,该模型将用户点击序列依次输入GRU 模型中,预测下一个点击的项目。文献[4]利用数据增强和一种解决输入数据分布变化的方法,进一步改进了基于RNN 的模型。
在序列推荐中,用户的短期偏好和长期偏好都非常重要,而现有方法通常忽略了一个事实,即用户的长期偏好会随着时间的推移而不断发展变化,将用户长期偏好建模为静态表征,可能无法充分反映动态特征,因此通常将RNN 结合注意力机制来更准确地描述长期序列偏好。文献[5]提出一种改进的神经编码器-解码器体系结构,通过将注意力机制整合到RNN中,同时捕获用户在当前会话中的序列行为和主要目的。
基于RNN 的序列推荐模型有两方面的缺点。一方面,由于过分假设序列中的任何相邻交互都相关,因此很容易产生假依赖关系,因为现实世界中的序列通常存在不相关或嘈杂的交互。另一方面,RNN 模型只能捕获点级依赖关系,而忽略集体依赖关系,比如一些项目共同影响下一个动作。文献[6]提出基于卷积神经网络(Convolutional Neural Network,CNN)的序列推荐模型Caser,按时间和潜在维度将最近的动作建模为“图像”,并使用卷积滤波器学习序列模式,采用水平和垂直卷积来捕获点级、集体序列模式和跳过某些嘈杂项目的序列模式。文献[7]对Caser 进行改进,提出的模型网络体系结构由一堆空洞卷积层组成,可以有效地在不依赖池化操作的情况下增加感受场,并使用残差网络通过残差块包装卷积层。但由于滤波器尺寸的限制,基于CNN 的序列推荐不能有效捕获长期依赖关系,这限制了基于卷积神经网络的序列推荐的研究进展。
推荐算法的一大挑战是从用户/项目的交互中学习有效的用户/项目嵌入表示,由于用户/项目交互信息本质上具有图结构,而近年来,图神经网络(Graph Neural Network,GNN)在表示学习中的优势引起了人们的广泛兴趣,因此在推荐系统中利用图神经网络的方法正在蓬勃发展。GNN 可以捕获项目的复杂转换,而以前的常规序列方法很难揭示这些转换。文献[8]提出SR-GNN 模型,为每个会话序列构造有向会话图,在2 个连续点击的项目之间存在有向边,并在序列图上通过GNN 方法捕获序列知识。文献[9]提出GC-SAN 模型,采用与SR-GNN 相同的图构造和信息传播策略,并且使用自注意力机制生成会话表示,该会话表示可以捕获序列中项目之间的更多交互。文献[10]考虑用户的重复交互行为,除利用会话序列图的有向结构信息外,同时利用其无向结构信息,并引入注意力机制,以达到更准确的推荐目的。
基于GNN 的序列推荐虽然在一定程度上提高了推荐的准确性,但该模型仅关注项目的序列相关性,项目序列偏好由交互顺序学习得到,并没有关注项目本身内容,也没有挖掘项目之间更深层的语义关系。其次,大部分模型在捕获序列偏好时,仅关注项目信息,忽略了用户的影响力。将用户信息整合到序列模型中,有利于进行个性化推荐。
基于上述分析,本文提出一种知识增强的图神经网络序列推荐模型KGGNN。将知识图谱引入到序列推荐模型,通过将知识图谱和用户交互数据整合成协同知识图谱,从中学习得到项目辅助信息和用户辅助信息。使用图神经网络学习得到交互结构的序列相关性,利用项目辅助信息进行内容相关性的补充,并通过用户辅助信息表示用户影响力,实现个性化推荐。
深度神经网络可以对不同事物(如用户、项目、交互)之间的综合关系进行捕获和序列建模,因此在过去几年中,深度神经网络几乎成为序列推荐领域的主流研究方法。
随着深度学习的发展,研究人员从循环神经网络、卷积神经网络、自动编码器等得到启发,设计了能处理图数据的神经网络结构,即GNN 网络。GNN利用节点之间的消息传递机制来捕获图结构的依赖关系,其核心是如何迭代地聚合来自邻居节点的特征信息,以及将当前节点表示与其邻域信息进行集成。
近年来,研究人员提出了许多基于图神经网络的推荐系统。将图神经网络方法应用于推荐系统主要有以下原因:推荐系统的大部分数据本质上具有图结构;GNN 网络在捕获节点之间的连接和图形数据表示学习方面非常强大。从图结构的角度看,如果用户点击或购买某些项目,可看作用户和项目之间存在一种关系,将用户和项目均视作节点,交互关系视为边,则用户和项目的交互可以表示为用户-项目二部图。对于序列推荐,同样将项目视为节点,项目按照时间顺序连接,每个项目与其后续一个项目产生一条有向边,便可将一系列项目转换为序列图,序列图可为项目间的关联性提供更大的灵活性。
在各种GNN 框架中,图注意力网络(Graph Attention Network,GAT)、图卷积网络(Graph Convolutional Network,GCN)、门控图神经网络(Gated Graph Neural Network,GGNN)等被广泛采用[11]。其中,GAT 将注意力机制应用于图结构,在聚合特征信息时,使用注意力机制确定节点邻域信息的权重;GCN 将卷积运算从图像领域推广到图数据,可以分为两大类,基于谱的方法和基于空间的方法,这两种方法常用于静态推荐。文献[12]开发了一种图卷积网络算法PinSage,该算法结合了高效的随机游动和图卷积,以生成结合图结构和节点特征信息的节点嵌入,可扩展到具有大规模的推荐任务。文献[13]对图卷积网络进行了简化,仅包含GCN 中最重要的组件,即邻域聚合,用于协同过滤,使其更适合推荐。GGNN 将循环神经网络推广到图结构,使用邻接矩阵存储图节点之间的连接信息,利用GRU 机制确定来自邻居的哪些信息需要传播以及哪些节点信息需要维护,主要用于序列推荐领域。除SR-GNN 模型与GC-SAN 模型采用GGNN外,文献[14]也利用GGNN 提出目标注意力图神经网络(Target Attentive Graph Neural Network,TAGNN)模型,TAGNN 针对不同目标项目的目标感知注意力可以激活不同的用户兴趣。
在序列推荐中使用图神经网络,需要解决以下主要问题:
1)图的构造,需要将序列数据转换为序列图;2)信息传播,需要设计一种有效的传播机制来捕获转换模式;
3)序列偏好学习,需要对序列表示进行集成。
大部分基于图神经网络的序列模型都集中于从序列本身推断用户偏好,建模时仅关注项目彼此间的交互顺序,忽略项目内容含义以及项目间更深层的语义相关性,即仅关注结构相关性,而忽略内容相关性。其次,以往大部分模型仅利用项目序列建模,将项目序列学习得到的序列偏好隐式作为用户表征,缺乏对用户信息的有效利用。
知识图谱(Knowledge Graph,KG)是一个有向图,它的每一个节点代表一个实体,节点与节点之间的边表示实体之间的关系。KG 可以视为三元组(h,r,t)的集合,其含义是头实体h和尾实体t间存在关系r,其中h∈E,r∈R,t∈E,E和R分别是实体和关系的集合。
知识图谱富含丰富的信息,可为推荐系统提供潜在的辅助信息,因此,将知识图谱引入到推荐系统获得越来越多的关注。通过知识图谱表示学习,不仅可以快速计算两个实体间的语义相似性[15],发现项目之间的深层联系,而且有助于理解用户的兴趣,提供可解释性。
将KG 集成到推荐中大致可以分为两类:基于嵌入的方法和基于路径的方法[16]。基于嵌入的方法采用知识图谱嵌入(Knowledge Graph Embedding,KGE)技术,如TransE 和TransR等,在保持原始图结构或语义信息的同时,为每个实体和关系学习得到一个低维向量。基于路径的方法,引入了称为元路径的连接模式,元路径被定义为实体类型的序列,利用用户和项目的连接相似性来增强推荐。
知识图谱本身是一种自然的图结构,因此图神经网络的一些技术也能应用到知识图谱上,比如GCN、GAT等。文献[17]提出用于推荐系统的知识图谱卷积网络KGCN,利用用户特定的关系感知图神经网络以汇总邻域中的实体信息,它均匀采样每个实体固定大小的邻居,并作为其接收域,邻居根据连接关系和特定用户的分数进行加权。文献[18]将用户节点视为知识图谱中的一种实体,并将用户与项目之间的交互视为一种关系,与知识图谱集成为一个图,采用GAT 机制充分利用实体之间的关系,通过递归传播其邻居的嵌入来学习每个节点的嵌入,用户偏好的表示也通过交互项目进行迭代更新。
知识图谱也能够应用于序列推荐领域。文献[19]提出一种基于知识图谱的新的项目嵌入方法,获得项目的新表示,并设计2 个LSTM 网络分别学习用户的长短期偏好。文献[20]将交互记录转换为知识转移交互序列,基于特定的关系注意力网络进一步递归地聚合知识图中的信息,并引入知识感知的GRU,自动探索项目之间的序列和语义相关性。文献[21]在知识图谱注意力网络的基础上,通过KGAT 学习得到包含丰富辅助语义信息的项目嵌入,并将其按序列顺序输入RNN网络中,以捕获动态的用户序列偏好。
在介绍本文模型之前,首先详细介绍涉及的一些基本概念和符号。
令U={u1,u2,…,u|U|} 表示一组用户 ,I={i1,i2,…,i|I|}表示一组项目,其中|U|和|I|分别表示用户数和项目数。将交互数据构建为用户-项目二部图G1={(u,pu,i,i)|u∈U,i∈I},p表示交互关系,如果用户u和项目i进行了交互,则pu,i=1,否则pu,i=0。
将KG 的三元组集合记为G2={(h,r,t)|h,t∈E,r∈R},其中E是实体ε的集合,R是关系r的集合,每个三元组表示头实体h与尾实体t 之间存在关系r。
基于项目实体对齐集,将用户-项目二部图G1和知识图谱G2合成一个统一的协同知识图谱(Collaborative Knowledge Graph,CKG):G={(h,r,t)|h,t∈E′,r∈R′},其中E′=E∪U,R′=R∪{p}。
对于一个用户u,按时间戳排列交互项目,将交互序列Su=[i1,i2,…,i|Su|]作为输入,预测用户交互的下一个项目i|Su|+1。
本文模型KGGNN 的框架如图1 所示,将用户的交互数据与知识图谱集成为一个统一的协同知识图谱,通过图注意力网络学习得到用户和项目的向量表示,以利用知识图谱不同实体之间的深层语义相关性和高阶依赖性。对于每个用户,基于其交互序列,构建序列有向图,在两个连续点击的项目之间存在有向边,然后通过门控图神经网络获得序列中节点的向量表示,并利用从协同知识图谱中获得的用户辅助信息进行补充。通过注意力机制组合节点向量,将其作为全局序列偏好,然后融合本序列的当前兴趣表示以及用户向量表示,形成统一序列偏好表示。最后,利用项目辅助信息,令模型预测每个项目成为下一个点击项目的概率。
图1 本文模型的总体框架Fig.1 Overall framework of model in this paper
通过在协同知识图谱上挖掘节点之间的关联属性来捕获节点之间的相关性。具体包括以下步骤:
1)在嵌入层上将节点参数化为向量表示;
2)信息传播,即在图结构上进行高阶传播;
3)辅助信息生成,即生成用户信息和项目信息表示。
2.3.1 嵌入层
选用TransR 方法学习实体和关系的嵌入。不同于TransE、TransH 将实体和关系映射到同一个语义空间,TransR 在不同的实体空间和关系空间内构建实体和关系嵌入[22]。
存在三元组(h,r,t),将头实体h和尾实体t分别映射到关系空间,得到hr与tr,在两个投影间构建转移关系,要求满足条件hr+r≈tr。eh,et∈Rd,er∈Rm,分别表示h,t,r的嵌入向量。因此,对于给定的一个三元组(h,r,t),表达式如式(1)所示:
其中:Wr∈Rm×d是d维实体空间到m维关系空间的映射矩阵。如果(h,r,t)是真实三元组的可能性越大,f(h,r,t)分数就越低,反之越高。
使用损失函数估量模型的预测值与真实值的不一致程度,其定义如式(2)所示:
其中:τ={(h,r,t,t′)|(h,r,t)∈G,(h,r,t′)∉G};σ(·) 是Sigmoid函数。
2.3.2 信息传播
信息传播机制决定了如何聚合邻居节点信息来更新当前节点,递归进行此步骤,可以捕获图结构的高阶连通性。采用图注意力网络捕获用户与项目关系和项目与项目关系。图注意力网络在基于空间域的图神经网络中引入注意力机制,每个节点仅需关心与之相连的邻居节点,无需关心整张图,邻居节点的信息权重由注意力机制决定。
对于一个实体h,其相连的三元组集合可定义为Nh={(h,r,t)|(h,r,t)∈G},Nh可表示为式(3)所示:
其中:π(h,r,t)表示邻居节点t在边(h,r,t)上传播的衰减因子,表示从实体t到实体h由关系r传播的信息量。通过关系注意力机制实现π(h,r,t),如式(4)和式(5)所示:
其中;tanh 是激活函数。式(5)是对实体h与其每个相邻实体之间相关得分的归一化,用来表征邻居的重要性。
对实体表示eh和其邻域表示eNh进行合并,作为下一层实体h的新表示:
其中:LeakyRelu 是激活函 数;W1,W2∈Rd(1)×d是可训练的权重矩阵;⊙表示元素对应相乘。
以上是进行一次传播时实体的一阶表示。进行多次传播探索高阶连接信息,收集从高跳邻居传播的信息。第l次传播后,实体h的l阶表示定义如下:
2.3.3 辅助信息生成
在经过l次传播操作后,获得节点的多阶表示,对于用户节点有,对于项目节点有。
对于每个节点,采用聚合机制将多阶表示连接为一个向量,如式(9)所示:
其中:||是级联运算;∈Rd′,d′=d(0)+d(1)+...+d(l)。使用一个全连接层,其表达式如式(10)所示:
其中:Ws∈Rd′×ds;bs∈Rds,ds是序列建模时的维度。
通过多次嵌入传播,将用户-项目关系以及项目-项目关系注入到表示学习过程中,获得一个新的实体嵌入集,从而获得用户和项目的新表示,即用户辅助信息向量和项目辅助信息向量。
门控图神经网络是基于门控循环神经网络的空间域信息传播模型,天然适合挖掘单元之间的复杂过渡。采用类似GRU 的更新,合并来自其他相邻节点以及前一个时间步的自身节点信息,以更新当前时间步节点的向量表示。
对于每条交互序列,将其转换为有向图,在两个连续点击的项目之间存在有向边。假设存在如图2(a)所示的序列i1→i2→i3→i2→i4,则可以表示为图2(b)的序列图。该图的连接信息可存储为由出度邻接矩阵Aout和入度邻接矩阵Ain组成的邻接矩阵A,如图2(c)所示。由于序列中可能出现多个重复点击的项目,因此需要给每条边的权值进行权重分配。
图2 有向图及邻接矩阵Fig.2 Directed graph and adjacency matrix
vk表示通过门控图神经网络学习到的关于项目ik的隐含向量。在门控图神经网络[23-24]的节点更新基础上进行改进,利用从协同知识图谱获得其对应的用户辅助信息向量,从而加入个性化信息。对于序列图中的节点ik,节点向量的更新表达式如式(11)~式(17)所示:
对于节点序列[i1,i2,…,in],用最后访问的项目表示当前兴趣,即sl=vn。
用户的长期偏好由注意力网络计算图中每个节点向量的权重得到,如式(18)和式(19)所示:
其中:参数q∈Rds;W3,W4∈Rds×ds。
通过当前兴趣和长期兴趣向量的级联,并加入用户信息向量,得到最终序列偏好表示,如式(20)所示:
其中:W5∈Rds×3ds,将向量映射为ds维向量。
计算每个候选项目ik的推荐评分,评分函数定义为式(21)所示:
其中:是通过协同知识图谱传播得到项目ik的辅助信息向量。
使用Softmax 函数获得输出向量,如式(22)所示:
对于任何用户行为,损失函数定义为预测值与真实值的交叉熵,如式(23)所示:
其中:yk是序列中下一个点击项目真实值的one-hot向量。
模型总体的损失函数定义如式(24)所示:
其中:等式右边最后一项是L2 正则化,作用是防止过拟合;θ是所有可训练参数的集合。
为验证模型有效性,在Amazon-Book、Last-FM和Yelp2018 数据集上进行了大量对比实验。Amazon-Book 是推荐算法中常用的一个图书数据集。Last-FM 是在线音乐系统收集的音乐收听数据集,选取从2015 年1 月—2015 年6 月的子集进行实验。Yelp2018 是 Yelp 挑战赛的2018 年版本,将诸如餐馆、酒吧等企业视为交互的项目。为确保数据集的质量,每个数据集只保留至少具有10 个交互行为的用户和项目。
除用户-项目交互数据外,还需为每个数据集构建关于项目的知识图谱。本文使用的KG 由文献[18]在GitHub 上发布。对于Amazon-Book 和Last-FM,如果映射可用,则通过标题匹配将项目映射到Freebase 实体中。与仅考虑项目单跳邻居实体的知识图谱数据集不同,本文数据集还考虑了涉及项目两跳邻居实体的三元组。对于Yelp2018 数据集,从本地业务信息网络中提取商品相关内容(例如类别、位置和属性)作为知识图谱数据。为了保证KG 质量,对KG 进行预处理,过滤不常见的实体(即数据集中出现次数少于10 次的实体),并保留至少出现在50 个三元组中的关系。
数据集和知识图谱的统计数据如表1 所示。对于每个数据集,将处理后的数据集的80%视为训练集,将剩余的视为测试集。从训练集中随机选择10%的交互数据作为验证集来调整超参数。
表1 数据集信息 Table 1 Information of datasets
3.2.1 评估指标
评估指标采用HIT@K和NDCG@K。HIT@K表示真实值位于前K个项目中的概率,对于每个用户序列,只预测下一个点击的项目时,HIT@K就相当于Recall@K。NDCG@K是归一化折损累计增益,是一个与位置相关的指标,度量了推荐项目的排名高低,值越大表示项目位于推荐列表的顶部,表明相应推荐系统的性能更好。
将K值分别设为1、5、10,查看模型效果。在K=1的情况下,HIT@1 与NDCG@1 值相等。
3.2.2 基线模型
选择以下模型与本文模型KGGNN 进行对比。
1)GRU4Rec[2]:使用基于RNN 的模型在会话推荐中建模用户交互序列,并利用会话并行小批量训练和基于排名的损失函数进行改进。
2)NARM[5]:将注意力机制整合到RNN中,能够同时捕获用户在当前会话中的顺序行为和主要目的。
3)SASRec[25]:基于自注意力机制,在每个时间步中,模型从用户的历史交互记录中找出相关项目,并自适应地将权重分配给先前项目,使用它们预测下一个项目。
4)SR-GNN[8]:利用门控图神经网络捕获会话推荐中项目的复杂过渡关系。
5)KGSR[21]:通过知识图谱学习得到包含丰富辅助语义信息的项目嵌入,并使用RNN 捕获动态的用户序列偏好。
对于长度为n的交互序列,从最后一个项目开始,依次将其作为预测结果,先前项目作为输入序列,最后得到n-1 个训练样本[8]。由于在评估过程中对所有项目进行排序太耗时,因此遵循通用策略[25-26],对于每个输入序列,随机选取100 个不在交互序列的项目,与预测结果的真实值构成101 个项目集合,并计算得分,查看真实值在这101 个项目的排名情况。
3.2.3 参数设置
网络模型由2 个部分组成。第1 部分是从协同知识图谱中学习用户和项目的潜在向量表示,将图注意力网络的深度设置为3,其隐藏维度大小分别设置 为64、32、16,应用dropout技术,丢包率设置为0.1。第2 部分是序列偏好的学习,采用门控图神经网络,隐藏维度大小设置为100。采用Xavier 初始值初始化模型参数,采用Adam 优化器对参数进行优化。初始学习率为0.001,每3 个epoch 后衰减为原来的0.1倍,L2 正则化系数设置为1×10-5。
将模型与基线模型进行对比,当序列最大长度为20时,HIT@K和NDCG@K的结果如表2 所示,表中加粗数字表示该组数据最大值。
表2 不同模型的实验结果对比 Table 2 Comparison of experimental results of different models
由表2 可以看出:
1)GRU4Rec 模型采用RNN 进行序列建模,而NARM 模型在RNN 的基础上融合了注意力机制,指标值有一定提升。SASRec 模型的指标值说明通过自注意力机制自适应地给项目分配权重也能提升模型性能。SR-GNN 的指标优于GRU4Rec 等模型,说明利用图神经网络可以更容易捕获项目之间的复杂转换。
2)KGSR、KGGNN 是在序列建模的过程中融合了知识信息,相对于GRU4Rec、NARM、SASRec、SR-GNN 模型仅使用诸如循环神经网络、注意力机制或图神经网络,融合知识信息的模型表现较优,说明了引入知识图谱的有效性。通过知识图谱,可以更好地挖掘项目之间的深层相关性,捕获更细粒度的用户偏好。
3)与KGSR 模型相比,KGGNN 模型的表现较优。当评估指标K值为10时,KGGNN 模型的HIT@10 指标在3 个数据集上分别提升12.9%、4.5%、6.9%,NDCG@10 指标在3 个数据集上分别提升29.4%、5.7%、16.7%。KGSR 模型通过知识图谱获得项目辅助信息,改进基于循环神经网络的序列模型,KGGNN 模型不仅使用项目辅助信息进行增强,同时在图神经网络序列建模的过程中融合用户辅助信息,使效果也得到了有效提高,这侧面反映了融合用户向量的必要性。除用户向量的因素外,KGSR 在使用RNN 进行序列建模时,采用直接将项目辅助信息充当RNN 网络模型的输入向量的方式,在一定程度上将内容相关性与序列相关性进行了糅杂,可能导致提升效果不明显。
4)在本文3 个数据集上,当K=1、5、10时,KGGNN模型的评估指标均获得了较好的表现结果,这说明了本文模型的有效性。当K值较小时,模型提升性能最大,侧面说明在给出推荐结果时,推荐列表越短,本文模型命中正确目标项目的概率越优于其余基线模型。通过将交互序列建模成有向的图结构,能有效捕获项目的复杂转换,得到序列相关性,这是结构上的相关性。引入知识图谱,挖掘项目之间的深层联系,这是内容上的相关性。结合这两方面并融合用户辅助信息,能有效提高序列推荐的准确度。
5)通过对比不同模型在Amazon-Book、Last-FM、Yelp2018 这3 个数据集上的结果可以发现,与KGSR 模型相比,KGGNN 模型的指标HIT@K与NDCG@K在Amazon-Book 数据集上提升的幅度大于其他2 个数据集,而在Last-FM 数据集上提升的幅度最小,这是数据集本身的原因。Amazon-Book 是图书数据集,Yelp2018 是商户点评类数据集,Last-FM 是音乐数据集,在表1 的数据集统计数据中,Amazon-Book 数据集的交互数量以及平均序列均远小于其余2 个数据集,其序列性较差。对于Last-FM等序列性较强的数据集,通过序列模型已经能有效得到项目之间的序列相关性,此时引入知识图谱得到辅助信息,提升模型效果有限。而对于Amazon-Book 等本身序列性较差的数据集,引入知识图谱后,可以通过知识图谱实体之间的关系探索项目之间的潜在表达性,扩展推荐结果的灵活性,增强序列推荐的评估指标。所以,本文模型对序列性不强的领域,提升效果更加明显。
3.4.1 项目向量融合方法
为更大程度地融合从协同知识图谱中学习得到的带有辅助信息的项目向量,提出以下3 种项目向量融合方法:
1)KGGNN-i1。将辅助项目向量直接作为图神经网络的初始向量vk,即在式(11)和式(12)中用向量替代vk。
2)KGGNN-i2。在每次节点更新时,即在式(11)和式(12)中,融合邻接节点对应的辅助项目向量。
3)KGGNN-i3。计算得分时使用知识图谱中得到的辅助信息,即式(21)。
不同项目向量融合方法在数据集上的表现如图3 所示。从图3 可以看出第3 种方法KGGNN-i3的效果最好。前两种方法在序列建模的过程中融入内容相关性,在某种程度上可能会干扰结构相关性的学习,所以两种方法几乎表现一致。第3 种方法在计算得分的时候利用内容相关性,此时结构上的序列偏好已经学习完成,因此呈现了比前两种方法提升明显的效果。所以本文模型采用第3 种方法,即计算评分时,用辅助项目向量作为节点表示,与序列偏好表示做内积。
图3 不同项目向量融合方法在不同数据集上的表现Fig.3 Performance of different item vector fusion methods under different datasets
3.4.2 用户信息对序列建模的影响
为验证用户信息对序列建模的作用以及用户信息融合方法的有效性,将模型与以下4 种变体模型比较:
1)KGGNN-u0,不使用用户信息。
2)KGGNN-u1,在每次节点更新时(即式(11)和式(12))融合用户项目向量。
3)KGGNN-u2,形成序列偏好时,除考虑当前兴趣和长期兴趣向量外,还融合用户信息,即式(20)。
4)KGGNN-u3,综合第2 种和第3 种模型。
用户信息实质上是从协同知识图谱传播得到的用户向量,通过图结构u-i-u的连接,涵盖了某种程度的基于用户的协同过滤,因此用户向量携带的是有效信息。其次,不同的用户具有不同的行为模式,拥有不同的行为序列以及不同的项目转换信息,考虑用户因素,体现了序列推荐的个性化。
不同模型在数据集上的结果对比如图4 所示。从图4 中可以看出,KGGNN-u0 模型的效果最差,说明用户信息的缺少会影响模型性能。KGGNN-u1 模型是在节点更新时使用用户信息进行指导,KGGNN-u2 模型是在形成用户偏好时融合用户信息,这两种方式均不同程度地提高了模型性能。
图4 不同模型在不同数据集上的结果对比Fig.4 Comparison of results of different models under different datasets
综合两种模型的KGGNN-u3 在Amazon-Book、Yelp2018 数据集上的效果与KGGNN-u2 模型几乎无区别,在序列性较强的Last-FM 数据集上,其效果略微有所提升。为充分利用用户信息,本文模型采用KGGNN-u3,从而在序列性较强或较弱的数据集上均达到较佳性能。
3.4.3 门控图神经网络层数对模型性能的影响
GGNN的层数也会对模型性能产生影响。将GGNN层数分别设置为1、2、3,在Amazon-Book数据集上进行实验,结果如图5 所示,其中HIT@1=NDCG@1。可以看到,随着GGNN层数的增加,模型性能几乎没有提升,说明1 层GGNN 已能够有效捕获序列相关性。
图5 门控图神经网络层数对模型性能的影响Fig.5 Influence of gated graph neural network layers on model performance
3.4.4 不同序列长度对推荐结果的影响
序列长度也会影响推荐结果,序列长度越短,能体现的信息较少,导致推荐准确性下降。序列长度越长,能提取的有效信息越多,但时间间隔久的某些项目,可能已经对序列没有影响性。例如用户从此不再喜爱这项物品,或者这件物品不是消耗性物品,在很长一段时间内不再需要。分别在序列性较弱的Amazon-Book 数据集和序列性较强的Last-FM 数据集上进行实验。由表1 可知,Amazon-Book 和Last-FM 数据集的平均序列长度分别为9.23 与54.70。因此,在Amazon-Book 数据集上,限制输入序列长度为4、6、8、10、12 分别进行实验,结果如图6 所示,其中HIT@1=NDCG@1。对于Last-FM 数据集,限制输入序列长度为10、20、30、40、50 分别进行实验,结果如图7 所示。
图6 Amazon-Book 数据集上序列长度对推荐结果的影响Fig.6 Impact of sequence length on recommendation result under Amazon-Book dataset
图7 Last-FM 数据集上序列长度对推荐结果的影响Fig.7 Impact of sequence length on recommendation result under Last-FM dataset
由图6 和图7 可以发现,在Amazon-Book 数据集上,当限制输入序列长度为6时,效果相对较好。在Last-FM 数据集上,当限制输入序列长度为40时,效果相对较好。两个数据集上的实验结果都呈现了一样的规律:随着输入序列长度的增加,效果逐渐上升。这说明适当增加输入序列长度可以有效提升效果,但当序列长度到达一定后,增加序列长度也不会带来加成,这是因为太久远的历史记录对于用户当前进行的选择将不会产生影响,反而可能给模型带来干扰。针对不同序列性强弱的数据集,选择合适的输入序列长度,能够有效提高模型性能。
本文提出一种知识增强的图神经网络序列推荐模型KGGNN。协同知识图谱中通过知识传播学习得到携带深层语义信息的项目向量和有关用户向量,并将其融入到门控图神经网络中进行序列偏好学习,以弥补项目信息的不足,捕捉项目信息之间更复杂的转换关系。实验结果表明,本文模型KGGNN 具有一定的合理性和有效性。下一步将考虑交互项目之间的时间间隔,研究时间因素对当前推荐性能的影响,以更准确地对用户最近偏好进行建模。