基于残差网络的轻量级图卷积推荐方法

2024-03-03 11:21吴贞东
计算机工程与应用 2024年3期
关键词:残差卷积协同

唐 宇,吴贞东

四川师范大学 计算机科学学院,成都 610101

推荐系统是一种用于预测用户对项目的评分或偏好的信息过滤系统。协同过滤(collaborative filtering,CF)[1]是最经典、最常用的推荐方法之一,该方法旨在通过群体的行为来找到某种相似性,通过相似性来为用户做决策和推荐。其核心思想是利用用户和项目间的相似度以及历史行为数据对目标用户进行有效推荐[2]。早期的协同过滤[1]通过直接计算用户-项目交互的相似性来捕获协同过滤效应。随后,Koren 等[3]提出了基于矩阵分解(matrix factorization,MF)的协同过滤方法,Rendle等[4]利用因子分解机(factorization machines,FM)来提高推荐模型的性能。这些方法将推荐作为一个表示学习任务,只关注项目间的相似度,而无法挖掘项目中广泛存在的深层特征。

为了挖掘项目的深层特征,研究人员提出了基于深度学习[5-6]的协同过滤方法。例如,神经协同过滤(neural collaborative filtering,NCF)[5]。利用神经网络结构来扩充矩阵分解的内积,深度因子分解机[6]将因子分解机与多层感知机相结合,以学习有效特征组合。但是,这些方法都忽略了用户-项目交互数据中广泛存在的高阶结构信息。

为了学习到数据中的高阶结构信息,图神经网络(graph neural networks,GNN)[7-9]采用消息传播机制整合相邻信息,通过多层堆叠使节点可以访问高阶邻居节点的信息。从图的角度出发,用户-项目交互关系可以视为二部图,利用图神经网络可以捕捉用户-项目的交互关系,从而学习两者的表征。针对早期的协同过滤没有编码用户和项目的交互信息到嵌入表征中的问题,Wang等[10]提出了图神经协同过滤(neural graph collaborative filtering,NGCF)方法,利用图神经网络显式地挖掘用户-项目间的高阶连接关系,并将其嵌入到表征中。He 等[11]针对非线性激活函数和特征变换矩阵两种操作对于图神经协同过滤模型没有影响,用户和项目的输入均是ID嵌入表征,没有具体语义信息的问题,提出了轻量图卷积网络(light graph convolution net,LightGCN)的方法,去掉图神经网络中的非线性激活函数和特征变换矩阵,仅保留邻域聚合用于协同过滤。线性残差图卷积协同过滤(linear residual-graph convolutional collaborative filtering,LR-GCCF)[12]在简化嵌入表征更新机制的同时,把残差结构融入到用户-项目的交互预测中,将模型转换成一个线性模型。目前的图卷积网络推荐模型存有两个主要的问题:同类节点无法直接传递相邻图卷积层的信息,导致学习到的高阶信息有偏差;部分没有语义的图卷积层会阻碍推荐效果。

本文主要贡献如下:

(1)针对现有基于图卷积网络的推荐模型存在消息传播链路不完善的问题,本文引入残差网络搭建同一节点中相邻图卷积层间的传播链路。

(2)从语义角度上优化在协同过滤推荐任务中图卷积网络的最终节点表示,即不考虑没有消息传播的图卷积层。

(3)提出了一种基于残差网络的轻量级图卷积推荐模型——ResLightGCN。通过实验验证,该模型在多个数据集上的性能优于目前几种基线模型。

本文主要研究目的是从消息传播角度研究图卷积网络的工作原理,通过优化网络结构来提高推荐系统工作效率。

1 相关理论及工作

本文研究内容主要涉及残差网络、协同过滤和图神经网络,下面分别介绍这几个方面的理论知识与相关工作。

1.1 残差网络

在卷积神经网络模型中[13-14],随着模型的加深会造成梯度爆炸和梯度消失的问题,为了解决这些问题,He等[15]在高速网络(highway network)[16]的基础上提出了残差网络,能保留全部的原始信息并且可以减少网络参数。残差网络的优点是不仅能够加速深度神经网络的训练,而且可以大幅提升深度网络的准确率。此外,残差网络在很大程度上避免了随着模型深度的增加而产生的梯度消失或梯度爆炸问题,进而能够训练较深层次的网络[17]。

1.2 协同过滤

协同过滤[18]是指通过群体行为来找到某种相似性(用户间的相似性或者项目间的相似性),并利用这种相似性来为用户做决策和推荐。

Le[19]提出了一种基于内存的协同过滤方法,采用最近邻技术,利用用户的历史喜好信息计算用户间的距离,然后利用目标用户对商品评价的加权值来预测目标用户对特定商品的喜好程度,推荐系统根据喜好程度对用户进行推荐。

基于模型的协同过滤方法通过建模的方式模拟用户对项目的评分行为。使用机器学习与数据挖掘技术,从训练数据中确定模型并将模型用于预测用户对未知商品的评分。常见模型包括聚类模型[20]、贝叶斯模型[21]、矩阵分解[3]等。

基于深度学习的协同过滤推荐模型,首先在向量空间中学习用户和项目的嵌入表征,然后重建两者间的交互,如矩阵分解做内积,神经协同过滤模拟深层次交互等。从任务角度上划分,基于协同过滤的推荐系统分为评分预测和Top-N推荐。

(1)评分预测。该任务的主要应用场景为评价网站,如豆瓣网站。利用用户对项目的历史评分记录,建模得到用户的兴趣,进而预测用户对未评分项目的评分,常用技术是矩阵分解。

(2)Top-N推荐。该任务的主要应用场景为购物网站或没有显式评分信息的网站,如亚马逊网站、淘宝网站。通过用户的隐式反馈信息为其推荐最感兴趣的前N个商品,常用技术是贝叶斯个性化排名(Bayesian personalized ranking,BPR)。

1.3 图神经网络

图神经网络可以通过节点间的消息传播捕捉图上的依赖。其主要思想是:迭代地聚合邻域信息,并汇集聚合后的信息与当前节点的表示。根据是否使用谱卷积算子,图神经网络可以划分为谱方法和非谱方法[22-23]。谱方法在傅里叶域(谱域)上定义图卷积算子,由原始图结构表示节点间的关系。非谱方法需要设计聚合器和更新器。聚合器用于聚合来自邻居的信息,更新器用于融合邻居节点和中心节点的信息。

用户-项目协同过滤的基本思想是使用用户交互的项目信息来增强用户表示,并利用曾经与项目交互的用户信息来丰富项目表示。图神经网络能很好地模拟信息扩散过程,在推荐系统中使用图神经网络技术能更有效利用用户-项目交互的高阶连接关系。

1.3.1 图卷积网络

图卷积网络(graph convolutional network,GCN)[24-25]是处理图数据的高效模型,其本质是将卷积的谱方法融入图神经网络,在推荐系统中,用户-项目交互关系可以看作一个含有两种节点的异质图,即用户和项目作为异质节点,两者间的交互关系作为边,用图卷积网络去捕获用户与项目的喜好关系,预测用户与未知项目的关系。文献[10-11]指出不同图卷积层的嵌入会捕获不同语义,加权不同图卷积层的嵌入能优化图神经网络最终节点表示。

推荐模型中常见的图卷积网络主要包含消息传播和读出两种操作[26]。消息传播(propagate)操作是捕获节点邻居信息的一个过程。读出(readout)操作是将不同图卷积层用于最终节点表示的一个过程。

在推荐任务中,大多数GCN 采取加权平均的方法来实现读出操作,而对于协同过滤推荐任务来说,需要捕获的是交互关系,通常第0层不存在图的聚合邻居交互信息,也是未进行消息传播的图卷积层。展开GCN的聚合传播公式(省略归一化的常数值)如下:

式(3)、(4)为普通的GCN聚合传播公式,其括号()内代表第0层的嵌入信息,u、i分别代表用户和项目、分别代表与用户节点和项目节点的第三层最终嵌入,Nu、Ni分别代表用户的邻居节点和项目的邻居节点。这里节点的语义信息是指节点之间的交互信息(即假设用户A 购买了项目B,则一次图卷积会使A 节点包含B节点的信息,B 节点也会包含A 节点的信息,这样视为捕获一次交互信息)。由上式可看出,高阶项目是通过不同层的低阶用户信息聚合得到,0层的节点不具备任何的交互信息,也即无任何语义信息,其值为随机的ID嵌入。

1.3.2 图神经协同过滤

图神经协同过滤是对标准图卷积网络[27]的改进,其主要消息传播公式如下:

1.3.3 轻量图卷积网络

轻量图卷积网络[11]将非线性激活函数和特征变换矩阵均去掉,只增加一组权重系数加权不同图卷积网络层输出的嵌入作为最终表示,大大简化了模型,降低训练复杂度,并提升模型准确性,其消息传播公式见式(7):

1.3.4 残差图卷积网络

为了解决在深层图卷积网络中的梯度消失问题,残差图卷积网络(residual graph convolution network,ResGCN)[28]在图卷积结构基础上,采用残差结构来提高GCN 的学习表示能力,使得模型卷积层数能达到更深的层次,并且能防止深层图卷积的过平滑。其主要设计如式(8)所示:

式(8)中F()、H()分别代表不同的映射关系,Gl代表第l层的图表示,代表l+1 层的残差结构表示,Gl+1代表l+1 层的图表示,Wl是第l层的权重集。

下面从聚合传播的角度分析非残差网络存在的问题(忽略掉第0层)。

式(9),代表如LightGCN(省略归一化常数值)这类GCN模型消息传播操作的一个3阶展开。其中,一个高阶节点向量是由相邻的次一阶的异质节点聚合相加得到。

式(10)代表如LightGCN(省略归一化常数值)这类GCN模型读出操作的一个3 阶展开。其含义为融合项目1、2、3阶的图卷积层信息。

由式(9)和式(10)可知,非残差结构的无法得到的信息,的信息只能聚合传播给而非。在消息传播过程中,无法直接得到的信息,也不能间接得到。只能在最终节点表示(读出)操作里,加权不同的图卷积层融合得到信息。

1.3.5 线性残差图卷积协同过滤

线性残差图卷积协同过滤受到图神经协同过滤和残差结构的启发,在节点外部构建一个线性残差网络,把残差结构融入到用户-项目的交互预测中,模型转换成一个线性结构,通过用户-项目交互关系进行预测,主要设计如下:

虽然线性残差图卷积协同过滤与本文提出的Res-LihtGCN都是利用了残差结构,但是线性残差图卷积协同过滤是在节点外部引入残差结构,这样的残差结构不会使得节点内部发生改变,节点不会受到残差结构的影响。本文设计的残差结构位于同一节点内部,能够对节点自身造成影响,更注重节点自身的信息聚合。

2 ResLightGCN模型

本章首先介绍用户-项目交互图和所有节点的表示,其次阐述ResLightGCN 模型的卷积操作过程,最后对ResLightGCN进行了对比分析。

2.1 图的构建

在协同过滤推荐任务中,先定义交互矩阵R。

上式中R是M个用户和N个项目交互后的结果。若R[i][j]值为1代表第i个用户与第j个项目有交互喜好表现,若R[i][j]值为0则表示两者没有交互。由于用户与大多数项目未交互,可以利用稀疏矩阵来存储R。

L表示一个对称归一化的拉普拉斯矩阵,其中式(13)的A矩阵是由交互矩阵R构建,D为A的度矩阵。归一化的目的是使每一条邻接边信息传播的值规范化,不会因为某个节点的边更多而更重要,使得每个节点的重要程度均衡。式(14)中的对称归一化拉普拉斯矩阵L按照标准图卷积网络[27]进行设计。

2.2 节点嵌入

每个用户或项目视为图结构的一个点,为每个点构建一个K维向量。

式(15)是一个图结构中所有点的向量表示,其中um和in分别代表第m个用户和第n个项目的K维向量,(m+n)为节点的总个数。

2.3 ResLightGCN

本节介绍ResLightGCN卷积操作的设计思路。图1的输出为用户和项目多次图卷积后做内积的预测值,输入为初始化的ID嵌入也即图卷积的第0层,右侧方框是左侧模型图卷积的过程,即把当前层节点的邻居节点、的嵌入做归一化求和的操作,将该操作的输出作为下一层节点的表示。在ResLightGCN 中,除了直接的层间聚合传播,还包括残差操作,且只保留最后一层作为最终节点表示。其传播公式如式(16)所示:

图1 ResLightGCN卷积操作Fig.1 ResLightGCN convolution operation

由式(16)可知,计算l+1 层的用户向量时,与上一层的相加即可实现节点内残差,弥补层间消息传播的缺陷。其中Ni代表项目i的邻居个数,Nu代表用户u的邻居个数,本模型注重同一节点内部的消息传播,称为基于残差网络的轻量级图卷积方法。该方法的readout操作仅保留最后一层,如式(17):

zu是最终节点表示,zu[l]代表图卷积l层后的嵌入。

式(18)代表ResLightGCN(省略归一化的常数值)propagate操作的一个3阶展开:

由上式可知,其本身已经聚合了不同层的嵌入,且关系为递进传播。展开后的最终节点表示已经与非残差图卷积结构的式(10)一致。

式(19)代表ResLightGCN 不需要后续readout 操作的加权平均操作来耦合弥补,仅仅保留最后一层即可。

2.4 预测评分

ResLightGCN 模型用向量内积得到的预测分数作为推荐的排名,如式(20):

yui为最终的预测分数,ei、eu分别代表项目和用户的最终表示向量。

2.5 损失函数

本文采用贝叶斯个性化排名[29]作为损失函数(式(21)),考虑用户项目交互中的可观察项和不可观察项的相对顺序,贝叶斯个性化排名能赋予可观察项的交互相较于不可观察项有更高的预测分数。

式(21)中,U代表用户集,代表用户和该用户的正样本项目的向量内积,代表用户和该用户的负样本项目的向量内积,σ代表sigmoid函数[30],代表对所有嵌入表征的L2正则项,λ为正则项系数。

3 实验

为评估ResLightGCN在推荐任务上的性能,本文采用Pytorch(https://pytorch.org/)的RecBole[31]开源推荐系统框架实现本模型和相关基线模型,在Ubuntu20.04,Intel®Xeon®CPU E5-2698 v4 @ 2.20 GHz 8核,16 GB内存,Tesla V100-SXM2-32 GB的环境下进行了相关实验。

3.1 数据集

本文实验采用四个公开的数据集,分别是ml-1m(https://grouplens.org/datasets/movielens/),Yelp(https://www.yelp.com/dataset),Amazon_Books(http://jmcauley.ucsd.edu/data/amazon/),gowalla(https://snap.stanford.edu/data/loc-gowalla.html)。这些数据集在领域、规模和密度方面各不相同,见表1。

表1 数据集Table 1 Dataset

对于Yelp 和Amazon_Books 数据集,筛选出交互次数少于15次的用户和项目,以确保数据质量。表1总结了数据集的统计数据。对于每个数据集,随机选择80%的交互作为训练集,10%的交互作为验证集,剩余10%的交互用于测试集。训练集中,对每个正样本统一随机抽取一个负样本。

3.2 评估指标

为了评估Top-N推荐的性能,实验采用了3 个广泛使用的指标Recall@N、NDCG@N和MRR@N,其中N为10、20,采用全排名策略,对用户未交互的所有候选项进行排名。

NDCG(式(22))是衡量排名质量的指标,它为推荐列表中排名靠前的真实喜好项目分配更高的分数。其中U是用户集合,u是当前用户,R(u) 是用户的真实喜好列表,i是当前物品,N是Top-N推荐,δ()是获得在推荐列表中项目位置的标识器。

Recal(l式(23))是所有“被正确推荐的项目”占所有“应该被推荐的正确的项目”的比例,简称为召回率,其中R(u)为用户推荐的项目集合,T(u)为测试集上用户感兴趣的项目的集合,U是所有用户集合。

MRR(式(24))是正确检索结果值在检索结果中的排名来评估检索系统性能的指标,其中 ||U是用户的个数,ranki表示第i个用户的真实喜好结果在推荐列表中的第一次出现的排名。

3.3 对比模型及参数设置

为了综合评价ResLightGCN模型,将与以下四种基线模型进行比较。

BPRMF[29]:使用矩阵分解模型优化BPR损失,以了解用户和项目的潜在表示。

NeuMF[5]:用多层感知器代替了矩阵分解模型中的点积,以学习用户和项目的匹配函数。

NGCF[10]:采用用户项目二部图合并高阶关系,并利用GNN增强协同过滤。

LightGCN[11]:简化了NGCF 的设计,降低训练复杂度,提高推荐准确性。

为了确保比较的公平性,实验采用Adam 优化器,layer 层都设置为3,批量大小设置为4 096,所有参数都由默认的Xavier分布初始化,ID嵌入大小设置为64,最大训练批次设置为500个epoch,每10个epoch在验证集上验证评估,三次评估无明显进步则认为收敛,终止训练,用测试集测试得到最终结果。

3.4 实验结果分析

表2 显示了ResLightGCN 和其他基线方法在四个数据集上的实验结果,从表中可以看出ResLightGCN模型优于其他基线模型。ResLightGCN在四个数据集上的表现优于其他模型,这表明在节点内残差网络对于消息传播的弥补是必要的。在ml-1m、Yelp、Amazon_Books这三个数据集的Top-10-ranks 的提升基本上都大于Top-20-ranks,这表明ResLightGCN 倾向于将相关的项目排名更高,使得推荐更准确,这在现实推荐应用场景中具有重要的意义。

表2 对比实验结果Table 2 Compare results of experiment

由Yelp、Amazon_Books数据集的实验结果可知,本文提出的模型在大规模数据集上的推荐效果有更好的提升,说明构建消息传播在大型数据集上更重要。

3.5 消融实验

在本节中,通过对图卷积层的结构和残差网络两个方面进行消融实验,进一步验证ResLightGCN模型的关键结构的有效性。另外,从数据集大小与效果提升幅度,不同图卷积层数的影响两个方面对ResLightGCN模型进行有效性分析。

3.5.1 图卷积层结构的对比

本文在四个数据集上进行了对ResLightGCN 模型去掉第0 层和保留0 层的对比实验。由图2 可知,Res-LightGCN 去掉0 层(未进行消息传播的图卷积层)后的实验结果有不同程度的提升。这是因为ResLightGCN模型更关注消息传播的过程,而无交互意义的第0层会影响推荐性能,导致推荐效果下降。

图2 ResLightGCN的第0层消融对比实验Fig.2 0-layer ablation contrast experiment of ResLightGCN

为了验证在协同过滤任务中,图神经网络去除掉没有交互意义的第0 层后推荐性能更好,本论文也在LightGCN模型上做了保留第0层和去掉第0层的实验,如图3。实验结果表明,去掉第0 层后模型的推荐效果更好。

图3 LightGCN的第0层消融对比实验Fig.3 0-layer ablation contrast experiment of LightGCN

由图2 和图3 的实验结果可知,本论文提出的ResLightGCN 模型受第0 层网络结构的影响更大,说明去掉第0层网络结构对模型性能的提高非常重要。

3.5.2 残差结构的消融实验

本文在四个数据集上对ResLightGCN 模型进行了去掉残差网络和融入残差网络的消融实验,实验结果如图4 所示。由图4 可知,在去掉残差结构后,Recall@10指标下降20.6%,由于融入残差结构能够建立起同一节点相邻层间的消息传播链路,而缺失该结构会导致模型学习能力下降,最终影响推荐效果。

图4 残差结构的消融对比实验Fig.4 Residual structure ablation experiment

3.6 有效性分析

3.6.1 交互次数的影响

由图5 可以看出,ResLightGCN 模型在交互次数越多的数据集如Yelp、Amazon_Books上,比最佳基线模型LightGCN 提升的百分比幅度越大,这说明在大规模数据集上同一节点相邻层间消息传播非常重要。

图5 不同数据集与效果提升对比Fig.5 Different datasets and performance improvements

3.6.2 不同图卷积层数的影响

本文调整ResLightGCN模型的网络层数进行实验,实验结果如图6所示。

图6 ResLightGCN不同层的比较Fig.6 Comparison of different layers of ResLightGCN

从图6中可以发现当网络层数更大时,ResLightGCN模型的性能反而下降。这是因为本文论文提出的ResLightGCN 模型和ResGCN 不同,ResLightGCN 模型融入残差结构的主要目的是建立起同一节点相邻层间的消息传播,而不是为了学习更高阶的信息。

4 总结与展望

本文针对在推荐任务中,现有基于图卷积网络的推荐模型存在消息传播链路不完善、最终节点表示冗余的问题,提出了一种融合残差结构的轻量级图卷积推荐模型ResLightGCN。首先,通过用户-项目交互图,构建图卷积网络模型的边和节点,然后设计了节点相邻层间消息传播链路,最后利用内积运算预测用户与项目之间的关联分数,并优化模型的最终节点表示。实验结果表明,与现有的主流协同过滤推荐模型相比,本模型取得了更好的推荐效果。

本文虽然取得了一些成果,但是还可以进一步完善。在未来的工作中,一方面可以研究如何构建更深的图卷积层,避免多层图神经网络的过平滑;另一方面研究模型的泛化能力,例如精排模型。进一步地还可以扩展研究图神经网络中如何去噪,以及利用图神经网络如何解决协同过滤推荐任务中的冷启动等难点问题。

猜你喜欢
残差卷积协同
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
蜀道难:车与路的协同进化
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
“四化”协同才有出路
基于傅里叶域卷积表示的目标跟踪算法
三医联动 协同创新
平稳自相关过程的残差累积和控制图