APP下载

基于图卷积神经网络的推荐算法

2022-08-17刘雨昕陈春雨

应用科技 2022年4期
关键词:层数注意力卷积

刘雨昕,陈春雨

哈尔滨工程大学 信息与通信工程学院,黑龙江 哈尔滨 150001

随着信息技术的不断发展,互联网上的信息内容越来越丰富,与此同时,人们获取有效信息的成本也在逐渐增加。由于大量冗余信息干扰着我们,推荐系统应运而生,它被普遍地应用于处理个性化信息[1],缓解了“信息过载”的问题,得到了诸多电子购物和网络社交平台的青睐。一方面,推荐系统可以根据用户的历史交互信息来建模其爱好[2],从而推荐给用户最可能需要的内容,有效地解决了互联网中过量信息导致用户迷失,无法找到目标内容的问题;另一方面,推荐系统也可以有效达成商业公司的特定目的,对用户的定制化推荐服务更能吸引用户、增加用户黏性、保持用户留存以及提高用户转化率[3]。由此可见对推荐算法的研究符合如今人们的需求。

最早的推荐系统可以追溯到Xerox 公司在1992 年设计的应用协同过滤算法的邮件系统[4]。之后,明尼苏达大学的Grouplens 研究组开发了第一个自动化推荐系统,并且推出了影响深远的MovieLens 数据集[5],成为学术界研究推荐算法至今都在使用的数据集。2003 年Amazon 发布论文[6],公开了其在自家推荐系统中一直使用的一种协同过滤方法,它可以处理百万级别的商品规模并且服务近千万的用户。随着工业中推荐系统的火爆,学术界中推荐系统领域的会议也就应时而生,以2007 年首次召开的ACM 推荐系统大会为代表,其他相关的会议也逐渐走进人们的视野。2016 年,YouTube 首次尝试将深度神经网络与推荐系统相结合并取得极好的效果[7],自此,推荐系统开始逐步与深度学习接轨。传统的推荐模型有基于内容的推荐,如标签推荐;基于用户行为的推荐,如协同过滤、隐语义模型;还有混合推荐,即通过多种不同的推荐模型相互协作[8]。近些年来,得益于深度学习方向的快速发展,基于多层感知机(multilayer perceptron,MLP)[9]、循环神经网络(recurrent neural network,RNN)[10]、图神经网络(graph neural network,GNN)[11]等的推荐算法层出叠现。其中GNN 的相关算法因其在图数据方面表现出的强大能力被逐渐引入推荐领域。GNN 能解决推荐问题的主要原因是由于大部分推荐问题中的数据都是图结构的数据,传统的方法难以对不规则的非欧空间中的图数据进行处理,而GNN 相比于传统方法,更擅长捕捉节点之间的连接和图数据的表示学习,基于图神经网络的邻域聚合操作,可以对节点的邻居信息有一个较好的信息统计能力,相比于传统的算法,有着更强大的信息积累能力。GNN 在推荐算法上的应用,最广为人知的就是基于图卷积神经网络(graph convolution network,GCN)的改进算法PinSage[12]在Pinterest 这款社交软件上的成功应用,将其产品浏览量直接提高25%,由此可以看出图神经网络可以在推荐系统中起到重要作用。

1 图卷积神经网络推荐算法

近年来,能够自然集成节点信息和网络结构的GNN 技术引起了人们的极大兴趣,其在图结构数据学习方面的突出表现,已经被广泛应用于诸多领域。推荐系统的核心就是用户与项目的交互,是天然的二部图结构,正适合用图卷积神经网络来处理这类链接预测问题。本文对一种基于GCN 的最先进的推荐模型——LightGCN[13]进行改进,将原本作为超参数的层组合系数改为可学习的模型参数并引入注意力机制,可以得到更好的推荐效果。

1.1 LightGCN 模型结构

GCN 算法的出现是为了处理非欧几里得空间的图结构的问题,它和其他的神经网络一样,具有很多神经网络的操作。LightGCN 通过对GCN 算法进行消融实验,简化GCN 的设计,将GCN 中最常见但通过实验发现会降低实际推荐性能且增加训练难度的2 种设计——特征转换和非线性激活剔除,只保留GCN中邻域聚合这一最基本的部分用于协同过滤,使其更加简洁、更适合推荐。

LightGCN 的模型结构如图1 所示。

图1 LightGCN 模型结构

从模型结构图中可以看出,LightGCN 主要分为嵌入聚合层和预测层2 部分。嵌入聚合层利用图卷积网络在图上传播聚合用户和项目的嵌入,得到图上所有用户节点和项目节点在各个层上的嵌入表示;预测层将这些层上的嵌入表示加权求和,得到各个节点的最终嵌入表示,用于预测。

1.1.1 嵌入聚合层

GCN 的中心思想是提取图的空间结构特征,主要思路是通过聚合图中各个节点的特征来更新节点的表示。想要达成这样的目的,就需要迭代地执行图的卷积,也就是将目标节点周围的邻居的嵌入表示聚合到此节点,生成目标节点的新嵌入表示。这种聚合邻居节点信息的方式可以用公式表示为

1.1.2 预测层

在LightGCN 中,需要训练的模型参数只有所有节点第0 层的嵌入,即所有用户的嵌入表示和所有项目的嵌入表示,在它们被确定下来后,更高阶的节点嵌入表示都可以由它们和LGC 计算得到。在第0 层嵌入的基础上,做k次轻量图卷积操作就可以得到第k层的嵌入表示,将每一层得到的嵌入表示加权求和,即可得到1 个用户或者项目的最终嵌入表示为

利用用户和项目的最终嵌入表示的内积作为模型预测结果:

内积结果可以作为用来生成推荐的排名分数。

1.2 改进方案

在预测层中,将每一层的嵌入表示加权求和的这一层组合操作很重要,原因主要有3 点:一是随着层数的增加,高阶的嵌入表示会出现过平滑现象,图中的每个节点的嵌入向量趋近相同,因此直接选取最后一层的嵌入作为最终表示并不利于后续的预测;二是每一层的嵌入表示代表的语义也不尽相同,例如,第1 层对具有交互的用户和项目进行平滑处理,第2 层对具有重叠交互项目(用户)的用户(项目)进行平滑处理,更高层会有着更高阶的作用,因此将不同层进行层组合的操作得到的最终嵌入表示用于预测会更有效;三是层组合的操作可以代替图卷积中的自连接操作并取得同样的效果。

为了探究层组合对LightGCN 性能的影响,设计了如下的对照实验:一组是用层组合的嵌入来作为最终表示的LightGCN;另一组是不用层组合,直接用最后一层的嵌入作为最终表示的LightGCN-s。将两者分别在Gowalla 数据集中取不同层数上得到的评价指标结果做对比,可以得到如图2 所示的结果。

图2 Gowalla 数据集LightGCN 及其变体不同评价指标对比

本文选取2 种常用的推荐算法评价指标来评估模型优劣:一个是召回率(recall)rrecall,表示正确预测出的正样本占实际正样本的概率;另一个是归一化折损累计增益(normalized discounted cumulative gain,NDCG)vNDCG。这2 个指标是根据用户与物品相关性的高低和推荐排名的先后顺序得到的评价指标,取最终排序结果前20 个推荐项目来计算评价指标,即rrecall@20和vNDCG@20。

观察图2 中结果可以发现,层组合的操作起着重要作用:一是层组合会聚合每层的嵌入,包括第0 层的嵌入也就是初始嵌入,这样与在每层加入自连接操作是等价的;二是当层数较高时,高阶邻居信息也会不断聚合到目标节点,使得整张图上的全部节点聚合得到的最终嵌入会越来越相似,简单地取最后一层的嵌入作为最终表示会出现过平滑现象,效果会显著下降,但是通过对每一层的嵌入加权求和得到的最终表示可以减缓由层数增加导致的过平滑的速度。

每一层捕获不同的语义,因此不同层对最终表示的贡献程度不同,影响力也不相同。根据这一点可以将最终表示的层组合的加权系数作为一个可训练的模型参数,即将式(1)中的用注意力得分 αk来代替,利用注意力网络进行自动优化,得到的最终嵌入表示会更加准确,最终的推荐效果也会更好。最终可以得到1 个用户或项目的嵌入表示为

对注意力得分 αk来说,最简单的方法就是用一个权重参数来表示,但为了防止特征数据稀疏带来的权重参数难以收敛问题,使用了一个注意力网络来生成注意力得分。该注意力网络的结构是一个简单的单全连接层加softmax 输出层的结构,以用户嵌入表示为例,其数学形式为

式中:W为嵌入聚合层到注意力网络全连接层的权重矩阵,b为偏置向量,h为全连接层softmax 输出层的权重向量。

注意力网络将与整个模型一起参与梯度反向传播的学习过程,得到最终的权重参数:

2 实验

2.1 数据集

本文作为LightGCN 的改进算法,为了保证对比的公平性,因此实验数据集与原LightGCN 相同,仍然选用Gowalla、Yelp2018 以及Amazon-Book 这3 种数据集,如表1 所示。

表1 数据集信息统计

2.2 改进的LightGCN 对比实验

2.2.1 实验环境和设置

本文训练的设备参数如下:操作系统为Ubuntu 18.04,显卡为GTX 2 060 Super,显存8 GB,CPU 为i7-9700K,内存16 GB。

2.2.2 超参数设置

所有模型的嵌入尺寸都固定为64,使用Xavier方法初始化嵌入参数,使用Adam 优化器,默认学习率设置为0.001 以及默认批次数量(batchsize)设置为1 024(为了提高速度,Amazon-book 数据集的batchsize 设置为4 096),L2 正则化系数 λ多数情况下的最优值是1 ×10-4。一般情况下,迭代次数(epoch)取1 000 时,模型可以收敛到满意效果。

2.2.3 不同层数效果实验

该部分实验探究改进后的LightGCN 在不同层数下的性能,如表2 所示。从实验数据中可以看出,将层组合系数改进为可通过注意力机制学习的模型参数后,并没有影响到过拟合的趋势,和原LightGCN 相同,仍然在3 层时取得最好性能,再增加层数仍会过拟合导致性能下降,但是下降幅度相比LightGCN 来讲,减轻许多。

表2 不同数据集下本文算法在不同层数上的性能比较

2.2.4 LightGCN 改进前后性能比较

将改进后的算法与原LightGCN 做对比,因两者都在卷积层数为3 时达到最好性能,因此,对比实验统一取层数为3 得到的评价指标进行对比,对比结果如表3 所示。

表3 不同数据集下本文算法与原算法的性能比较

实验结果证明,在同取3 层时,改进算法与原算法都能达到最佳性能的情况下,采用注意力机制的层组合的LightGCN 比原LightGCN 在3 种数据集下的评价指标都有所提升,说明层组合采用注意力机制是有效的,对性能提升有积极影响。

2.2.5 与其他前沿算法的对比实验

目前较为前沿的、与本文算法有竞争力的推荐算法主要有3 个,一个是基于变分自动编码器的一种基于项目的协同过滤模型Mult-VAE[14],另一个是通过加入图拉普拉斯正则化因子来平滑矩阵分解的模型GRMF[15],以及它的变体GRMFnorm。表4 展示了与本文算法与这3 种前沿算法的对比,实验结果表明,改进的LightGCN 在3 个数据集上始终优于其他方法。

表4 本文算法与几种前沿算法的性能比较

3 结论

本文针对目前前沿的推荐算法LightGCN进行改进,通过执行层组合操作与否的对比实验发现了层组合对推荐结果存在影响,因此将层组合系数改为可利用注意力机制学习的模型参数,对改进后的算法进行如下实验并得出结论:1)不同层数的推荐结果显示改进后的算法仍存在过拟合趋势,但有所缓解;2)同为3 层卷积层数时,相较原算法,在Gowalla 数据集下召回率提升5.04%,归一化折损累计增益提升5.12%,证明改进算法对推荐结果存在积极作用。本文算法相较于其他前沿算法在精度上有所提升,可以实现更好的个性化推荐效果。

猜你喜欢

层数注意力卷积
填筑层数对土石坝应力变形的影响研究
浅探铺设土工格栅技术在软土路基加固处理中的运用
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
如何培养一年级学生的注意力
卷积神经网络的分析与设计
MoS2薄膜电子性质随层数变化的理论研究
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
A Beautiful Way Of Looking At Things