APP下载

特征规范化的图卷积神经网络推荐算法

2023-06-26赵东琛车文刚高盛祥

关键词:网络层层数规范化

赵东琛,车文刚,高盛祥

(昆明理工大学 信息工程与自动化学院,昆明 650500)

0 引 言

推荐系统不仅可以帮助用户在海量信息中高效地获取感兴趣的内容,还可以帮助互联网公司吸引、留住用户,增加互联网公司的收益。在庞大且快速增长的需求驱动下,近年来推荐系统快速发展。随着一批有影响力的深度学习推荐模型[1-4]被各大互联网公司成功应用,推荐系统进入了深度学习时代。而图卷积神经网络(graph convolution neural network,GCN)从2017年被Kipf &Welling[5]提出以后,凭借其强大的表征能力以及图数据的广泛存在性,逐渐成为深度学习推荐算法研究的热门方向。

GCN利用消息传递从节点及其邻域中提取高级特征,在推荐算法研究中已取得成功的应用。然而,基于GCN的推荐算法存在的一个关键问题是深度限制,即网络更新层数一般为2-3层[6]。这种浅层的网络结构只能对目标节点的2-3阶的邻居节点进行特征聚合,对距离相隔较远的节点,无法有效获取其特征信息。因此,当数据集密度较高时,可能导致为目标用户推荐的项目列表与用户历史交互的项目列表过于相似,抑制推荐的多样性;而在数据稀疏时,GCN的学习能力和表征能力会受到限制,影响推荐算法的性能。若是深度堆叠网络层,通常会导致推荐性能显著下降。这种下降的现象与多种因素有关,包括反向传播中梯度消失,参数数量增加导致的过拟合,以及过平滑[7]。受深度卷积神经网络(convolutional neural network,CNN)在图像分类上的成功启发,研究人员提出了几种方法来探索如何构建深层的GCN。

第一类方法为架构调整。XU等[8]提出了JK-Net模型,该模型采用跳跃连接的思想,将GCN每一层的输出聚合在一起作为最终输出,方法简单、有效并获得广泛应用。LI等[9]基于残差连接(residual connection,RS)的思想,使用残差和密集连接来训练深层GCN,改善了深层GCN的性能。这一类方法在推荐系统中可以将各层的输出进行聚合来获得用户(项目)节点的最终表示,在一定程度上缓解了层数增加而导致的性能下降的现象,但无法有效解决过拟合、过平滑问题。

第二类方法使用正则化技术。WANG等[10]提出了一种节点规范化的思想NodeNorm,该方法在模型训练时使用节点自身的统计特性来对每个节点做规范化处理,通过减小隐藏层特征之间的相关性来规范化深层GCN。DropNode[11]、DropEdge[12]方法通过在训练过程中随机删除用户-项目交互图中的节点、边来缓解过平滑、过拟合问题,提升深层GCN的性能。这类方法减少了参数的引入,对过拟合、过平滑问题的解决都产生积极的效果,但这类方法仅能作为一种训练组件去配备骨干模型。单独使用这类方法,将最后一层的输出作为用户(项目)节点的最终表示,这会忽略推荐模型中各层输出特征所包含的丰富的关联关系。

针对上述问题,本文提出一种新的解决方案,特征规范化的图卷积神经网络推荐算法(deep graph neural network collaborative filtering based on feature normalization,DGCF)。本文的主要工作如下。

1)针对网络层数增加而造成性能下降的问题,在除最后一层外、前向传播网络的每一层上,引入规范化层,以缓解过平滑现象。

2)将节点最终嵌入表示设置为各层网络输出的聚合。不同层的输出对最终嵌入表示的影响不同,在此基础上加入自注意力机制,为每一层输出分配不同的权重,使节点中重要特征信息可以获得更好的表示。

3)在公共数据集Amazon-book,Gowalla,Yelp-2018上进行实验,证明了模型的有效性。

1 相关工作

近年来,GCN在推荐系统上已取得不俗的成就。相比于传统推荐算法难以解决的冷启动问题、大规模数据集上运行困难的问题,ZHANG等[13]提出了STAR-GCN,该模型通过层叠和重构的图卷积网络结构来学习节点表示,提高冷启动场景中推荐系统的性能;YING等[14]提出了PinSage模型,该模型使用了随机游走和图卷积,捕获到了图结构的特征以及节点的特征以生成节点的嵌入表示,成功将GCN推荐算法扩展到超大规模数据集上。这些模型的提出证明了GCN在推荐系统研究领域,相较于传统的方法而言有极大的优势。

WANG等[15]遵循标准GCN结构,提出了NGCF模型,该模型利用嵌入传播层挖掘高阶连通性关系,以此来捕捉用户-项目交互,将GCN与协同过滤(collaborative filtering,CF)成功结合。HE等[16]又在NGCF的基础上提出了Light-GCN模型,去除GCN中常用的特征转换和非线性激活两种操作,将模型进一步轻量化。Light-GCN模型在用户-项目交互图上线性学习节点的嵌入表示,泛化能力更好,结构也更为灵活。王建芳等[17]将GCN与注意力机制结合,提出了BGARN模型,在节点信息嵌入传播过程中,基于偏差注意力机制为邻居节点分配不同权重系数,使节点在嵌入时更能够关注到重要信息。

基于GCN的推荐系统无论是在提升推荐性能方面,还是在解决一些传统推荐系统难以解决的问题方面,都取得显著的成就。然而,此类模型大多都存在网络层数受限的问题,这对模型进一步的研究有较大的影响。

2 DGCF算法模型

2.1 DGCF算法简述

DGCF算法模型主要由嵌入层、前向传播层、预测层组成。嵌入层负责利用用户与项目交互信息进行建模,得到初始嵌入向量;前向传播层对嵌入层传来的初始嵌入向量进一步细化,对除最后一层外每一层输出向量进行规范化处理,提取更深的嵌入表示;在预测层将每一层网络的输出,利用自注意力机制(self attention mechanism,SA)进行层组合,获得用户(项目)节点的最终的嵌入表示,计算得到预测的评分。算法整体流程如图1所示。

2.2 嵌入层

(1)

(2)

嵌入层的结构如图2所示。

图2 嵌入层Fig.2 Embedded layer

2.3 前向传播层

图3 前向传播网络Fig.3 Forward propagation network

2.3.1 传播规则

文献[16]的研究结果表明,GCN中最常见的2种设计:特征转换和非线性激活,对协同过滤的性能几乎没有贡献。模型中包含这2种操作反而会增加训练的难度,并且降低推荐的性能。本文采用与其相似的传播规则。图卷积操作(传播规则)为简单的加权求和聚合器,操作可以抽象为

(3)

以用户u1和项目i3为例,用户u1在DGCF传播一次的规则为

(4)

同理,项目i3在DGCF传播一次的规则为

(5)

2.3.2 规范化层

LI等[18]的研究第一次证明图卷积是拉普拉斯平滑的一种,在多次重复图卷积操作后,图中节点的特征会收敛到相同的值,这个问题被称为“过平滑”。过平滑会导致不同节点间的表示变得不可区分,从而损害性能。因此,对深层GCN的研究,实际上是在研究如何有效解决过平滑问题。

为提取用户与项目之间更深层的关联关系,需要堆叠多层图卷积来捕获高阶特征。DGCF模型引入规范化层,以防止节点嵌入表示随着网络层数的加深而变得过于相似。

假设用户-项目交互图上,共有t个节点,ex代表节点x的嵌入向量,ex∈d。规范化层的基本思想,是确保初始距离较远的2个节点,在图卷积操作后,节点的向量表示距离也相对较远。

规范化层的操作可以总结为2步:中心化和重新拉伸。中心化的过程为

(6)

(7)

通过(6)—(7)式进行特征规范化处理后,用户-项目交互图上所有的节点向量表示,总的成对距离保持不变;远距离节点间,保留较少的相似特征。这种操作既可以提取节点的特征信息,也可以防止这些特征信息在整个用户-项目交互图上混合,放大了节点特征信息的差异。

规范化层没有引入额外的参数,可以减小过拟合的风险。规范化层的作用是当网络层数加深时,用户-项目交互图上各个节点的特征不会变得过于相似,以此来缓解过平滑。

2.4 预测层

模型对于用户(项目)节点的最终表示使用层组合的方式。这是因为在GCN中,随着层数的增加,节点的嵌入表示会出现过平滑现象,即所有的节点的特征将会收敛到相同的值,这会导致嵌入表示与节点本身的特征完全无关了。因此,简单地使用最后一层是存在问题的。其次,不同层的嵌入捕获不同的关联关系,将它们组合起来,使得节点嵌入表示更加全面。

DGCF的层组合使用自注意力机制[19],为每一层嵌入表示动态分配权重。注意力机制的引入,可以有效防止长距离信息传播弱化节点本身特征,凸显节点重要特征。

(8)

(9)

(10)

(8)—(10)式中:Wq∈Dq×De;Wk∈Dq×De、Wv∈Dv×De、w1、w2为可训练的参数矩阵;tanh表示激活函数。使用缩放点击作为注意力打分函数,自注意力评分矩阵为

(11)

(11)式中:Dq表示查询向量Q的维度;softmax表示归一化函数。输出的节点嵌入表示为

(12)

模型预测定义为用户和项目最终表示的内积。

(13)

2.5 模型训练和优化

为了优化模型,本文采用贝叶斯个性化排名[20](bayesian personalized ranking,BPR)损失函数,表达式为

λ||Θ||2

(14)

(14)式中:O={(u,i+,i-)|(u,i+)∈R+,(u,i-)∈R-},R+表示与用户u交互的正实例;R-表示与用户u交互的负实例;Θ是模型的参数集合,采用L2正则化防止过拟合,λ控制L2的正则强弱。本文使用Adam优化器优化模型参数。

模型训练中引入DropEdge机制,通过在每个训练epoch上随机删除一定数量的边,增加数据的多样性以防止过拟合,同时放缓图卷积中消息传递的速度以缓解过平滑问题。

3 实 验

实验采用Python作为编程语言,硬件配置:CPU Intel(R) Xeon(R) Gold 5218 32 GByte内存,GPU GeForce RTX 2080 Ti 11G显存,使用Pytorch框架构建神经网络,训练模型。

3.1 数据集

为了评估DGCF模型的性能,选用Amazon-book、Gowalla、Yelp2018这3个公开数据集作为实验数据集。3个数据集的密度依次为0.061 9%、0.084%、0.13%,对其进行预处理操作保证数据质量。数据集统计信息如表1所示。

表1 数据集统计表Tab.1 Dataset statistics

3.2 实验设置

3.2.1 基准算法

NeuMF[4]:一种神经网络协同过滤模型,结合矩阵分解和多层感知机为用户和项目嵌入表示捕捉非线性特征交互。

BPRMF[20]:基于贝叶斯个性化排序的矩阵因子分解技术,通过随机梯度下降优化一个成对排序的目标函数。

GC-MC[21]:采用层数为一的图卷积网络作为编码器生成用户和商品的嵌入表示。

NGCF[15]:具有代表性的基于图的协同过滤模型,利用二部图传播用户和项目的嵌入表示来获得评分预测。

KGAT[22]:基于协同知识图谱来显式建模高阶关系,不仅对用户-项目交互进行建模,还加入关系信息。

LightGCN[16]:基于NGCF模型进行改进,在用户和项目交互图上线性学习节点的嵌入表示。

3.2.2 评价指标

针对用户个性化推荐列表Top-N推荐,本文选用以下2个评估指标来评价模型的性能。

Recall@20:Recall(召回率)用来衡量Top-20推荐中,模型推荐正确的项目个数,在测试集中所有与用户有过交互行为的项目个数中,所占的比例。召回率越高,证明模型推荐效果越好。

NDCG@20:NDCG(归一化折损累计增益)不同于召回率,召回率不需要区分推荐列表的项目排名,NDCG衡量了推荐列表中不同位置推荐结果的相关性得分,与用户相关性越高的推荐商品的排序越靠前。

3.2.3 超参数设置

本文设定节点的嵌入维度为64,嵌入参数使用Xavier方法初始化,以确保每一层梯度大小相近。批处理的大小为1 024,默认学习率为0.001。规范化层中s设置为1。对比模型的嵌入维度与本文模型 DGCF的嵌入维度保持一致;批处理的大小和学习率在[256,512,1 024]和[0.001,0.005,0.01]中选择。λ控制L2的正则化强度,取值为{1e-5,…,1e-1}。DropEdge随机删边的概率为{0.0,0.1,…,0.3}。对于层组合中的层数k,在引入规范化层后,从[1,2,3,…,7,8]测试k,通过3.3.1小节的表2中对比的实验数据,当更新层数k=5时,模型可以获得最好的效果。

表2 网络层数对比实验Tab.2 Network layer comparison experiment

3.3 实验与结果分析

3.3.1 网络层数对比实验

网络更新层数的增加有利于较远距离节点间进行信息交互,但也会造成模型性能的下降,这是由GCN本身的传播规则所决定的。因此,需要通过参数设置实验来测试,当层数K取何值,模型可以取得最优的性能。使用Recall@20,NDCG@20作为层数对比实验的评价指标。实验结果如表2所示。

从表2中的数据可知,在1—8范围内测试层数k,评价指标Recall@20,NDCG@20会随着k的增加而上升,当k=5时,评价指标达到峰值,继续增加网络层数后,指标开始下降。因此,可以推断,k=5时,模型提取的相关关系已达到饱和,继续增加网络层数已无法再提取更多有效的信息,反而会因过平滑现象使性能下降。

3.3.2 基准模型对比实验

本文提出的DGCF模型与6个基准模型相比,在2个评价指标上均取得最好的效果。相比于次优模型LightGCN,在Amazon-book数据集上,Recall@20,NDCG@20分别提升3.406%,2.540%;在Gowalla数据集上,Recall@20,NDCG@20分别提升1.257%,1.287%;在Yelp2018数据集上,Recall@20,NDCG@20分别提升0.6163%,0.943%;从而证明DGCF模型的有效性。

此外,Amazon-book、Gowalla、Yelp2018三个数据集的数据密度分别为0.061 9%、0.084%、0.13%,而DGCF在Amazon-book数据集上的提升也高于Gowalla、Yelp2018。因此,可以推测,网络层数的增加对模型处理数据稀疏问题是有帮助的。

DGCF模型性能的最优归因于加深网络层数来建立用户-项目交互图上较远距离节点间的依赖关系,通过信息传播来提取高阶特征,从而产生高质量的个性化推荐,性能比较如表3所示。

表3 DGCF与基准模型性能对比Tab.3 Performance comparison between DGCF and benchmark model

3.3.3 消融实验分析

针对不同模块对模型推荐性能产生的影响,设计2个变体与DGCF进行比较,其中,BASE模型为基础模型LightGCN,网络层数为3。

DGCF-2:前向传播网络中每一层的输出直接作为下一层网络的输入,不引入规范化层;层组合阶段,引入SA机制将各层的输入进行组合。网络更新层数设置为3,对比结果如表4所示。

表4 DGCF与变体模型对比Tab.4 Comparison between DGCF and variant models

从表4可以看出,DGCF-2的2个评价指标Recall、NDCG相较于DGCF模型而言,有中等程度的性能损失,DGCF-1则有明显的性能损失。

由此可以得出结论:①规范化层的作用是为了防止性能会随着网络层数的加深而下降,单独使用对整体推荐性能提升的帮助有限,并且在网络更新层数设置为5的情况下,最终节点表示设置为每一层输出的平均值,没有充分利用每一层输出侧重的特征信息,而更新层数的增加使得最终节点表示包含了更多重复特征,最终导致DGCF-1结果反而不如BASE模型;②使用自注意力机制对不同层的输出进行层组合可以获得更好的节点最终表示,但最佳性能也是在3层模型上实现的。因此,在加深网络层数时,规范化层防止节点嵌入变得过于相似,利用自注意力机制进行层组合可以帮助较远距离节点间的建立依赖关系,二者结合可以有效帮助模型的推荐性能提升。

4 结束语

本文提出一种DGCF模型,旨在改善基于GCN的推荐算法中网络层数受限的问题。该模型在图卷积的过程中引入规范化层,防止网络层数的加深而导致节点特征在用户-项目交互图上变得混乱,保留节点初始特征;并使用自注意力机制进行层组合。实验结果表明,增加网络层数有利于节点之间进行信息交互,可以捕获节点间的高阶关联关系,特别是在数据稀疏的情况下有更好的效果。在未来,将考虑节点特征缺失情况下,深层图卷积神经网络推荐算法如何恢复节点的有效特征表示,为目标节点生成推荐。

猜你喜欢

网络层层数规范化
填筑层数对土石坝应力变形的影响研究
上海发布药品包装物减量指南
MoS2薄膜电子性质随层数变化的理论研究
价格认定的规范化之路
论物联网安全威胁及其应对策略
物联网技术在信息机房制冷系统中的应用
住在哪一层
狂犬病Ⅲ级暴露规范化预防处置实践
高血压病中医规范化管理模式思考
满足全科化和规范化的新要求