版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于图神经网络的协同过滤系统设计一、绪论 摘要本文提出通过不断聚合图中节点的高阶协同关系来学习用户和物品以及邻居之间的信息来代替卷积核操作,并应用图神经网络对图中节点特征进行学习更新,通过对该算法进行试验和验证表明,所提出的神经图协同网络算法在相同的数据集下超越了传统的矩阵分解法和空域上的卷积神经网络。关键词:协同过滤、卷积神经网络、图神经网络、推荐系统、隐式反馈一、绪论(一)研究背景和动机在互联网单程之前的传统媒体时代,人们主要通过报纸,广播等方式来获取新闻和消息,这种信息获取方式具有内容统一,时效性底并且很难满足个人的兴趣需求。在千禧年之后,随着互联的普及和移动设备高速发展的现在,人们可以通过网络轻松获得所需要的信息,例如新闻,短视频,音乐等。在全民参与下互联网为多种服务提供了基础设施,例如电商、掌上新闻、流媒体、微博等。在用户不断深度参与数据提供的同时,如何构建以用户为中心,构建具有良好的用户体验以及符合用户的兴趣需求的系统是每一个应用的核心,如何将如此巨大基数的用户中上传的内容推荐给其他用户成为了一个亟需解决的问题。对于一般性的知识查询大家潜意识里就会使用搜索引擎来搜索相关信息,而对于非知识性的信息类似于商品以及视频等则没有非常有效的传统解决方案。举个日常生活中的例子:如果我们去逛超市时需要购买自己想要的物品,但是却没有非常具体的目标,这时候我们一般会去逛一两圈来寻找自己喜欢的物品。但是在互联网中大量的信息充斥着平台以至于普通人很难去逐个挑选自己喜欢的物品。推荐系统成为克服这种信息爆炸的有效策略,我们现在日常生活中使用的短视频应用,广告投放等都采用了高性能的推荐系统来实现对用户的吸引以及改善用户的使用体验。核心是根据购买,点击,停留时间等历史交互行为来估算用户未来使用某种商品的可能性。通过对预测结果进行排序,将排序结果前K的项目推荐给用户,不仅可以帮助服务提供商提供更好的服务以及推送广告,而且能够提高用户的使用体验。深度学习在近五年间在图像[3],自然语言处理[4]等领域应用取得了巨大的成功,工业界和学术界也在紧密的结合来将最新成果应用于商业使用中。最近,深度学习已经极大的革新了推荐体系结构,从90年代的关键词搜索引擎发展到个性化推荐,通过有效的捕捉非线性和线性的用户关系和用户访问关系通过协同过滤来实现用户分类以及推荐内容。得益于自然语言处理以及图神经网络的发展,能够将更复杂的关系以及逻辑图进行编码并且可以从丰富的可访问数据源中(文本,图片,数字等)自行捕获特征来实现精确分类。本项目通过使用组合对比不同网络的办法来提取基本的特征的同时,希望能够从用户和项目内容的信息中学习进一步的联合表示,即从项目的特性和用户的实际需求和体验来进一步细化推荐效果,例如根据用户的环境推荐服务或者通过总结用户的交流文本级社交媒体等来获取用户足迹来侧面确定用户的喜好。(二)国内外研究现状基于协同过滤的推荐算法充分利用移动互联网下的大量用户数据的优势,在用户的行为和数据之间收集答案从而获得统计意义上的结论,从而能够实现高个性化的推荐。算法的出发点有两个:1.兴趣相近的用户更有可能对相同的东西产生兴趣。2.用户可能更偏好与其点击(购买)的对象相类似的项目。也就是说通过考虑进用户的历史习惯,对象之间可能并没有相似的特征(炸鸡与啤酒),但是由于人的主观想法以及喜好可以认为其是相似的或者相关联的,那么就可以进行推荐了。协同过滤推荐[1,5-7],根据数据来源的不同分为三类1.基于用户的协同过滤推荐基于用户的协同过滤推荐算法先使用统计算法来寻找和目标用户有相同(相似度高)的邻居,然后根据目标用户的邻居的喜好来为目标用户来进行推荐,通过利于用户的访问行为和内容的相似度来互相推荐用户可能喜欢的内容。2.基于项目的协同过滤推荐基于项目的协同过滤推荐主要根据用户对物品或者信息的评价,发现用户和物品之间的相似度,然后根据用户的历史偏好信息等将类似的物品推荐给用户。3.基于模型的协同过滤推荐基于模型的协同过滤推荐就是通过构建用户样本来训练特定的推荐模型,然后通过实时的用户喜好的信息来进行预测推荐。(三)本文研究内容深度学习因为其强大的表示学习能力,能够从欧氏空间的数据例如图片、文本、视频等通过多层非线性函数的组合来有效提取隐含数据表示,从而能够代替传统工作中特征提取以及一部分传统机器学习的部分,并且已经取得了非常突出的成果。随着互联网用户的不断增多以及社交媒体的发展,越来越多有商业价值的数据是图形式的,例如电商中的用户产品关系,论文的引用数据,用户在不同地点的喜好等。对于这些图结构数据传统的深度学习模型例如CNN,RNN等并没有办法去解决,因此催生了图神经网络在多个领域进行探索。推荐系统不同于计算机视觉和自然语言处理,推荐系统中的数据主要是属于非欧氏空间的数据,即图。结合卷积操作这种非常高效的局部特征提取手段以及图上的傅里叶变换,能够在理论上能够在频域上经过数学推导来实现图的卷积。本文通过复现不同的图卷积协同过滤算法在不同数据集上的表现与传统算法进行对比来表现图卷积算法在协同过滤推荐上的优势。(四)章节安排1.绪论。简单介绍本文研究背景,包括传统推荐算法和神经网络在推荐系统上的应用。指出研究的目的和意义,最后给出论文结构安排。2.协同过滤相关研究理论。简单介绍协同过滤原理,传统矩阵算法以及神经网络算法的实现以及不足。3.图神经网络相关理论,介绍图神经网络的分类,推导过程以及相关成果,指出现有成果的不足之处。4.神经图协同网络算法。引入高阶节点协同信息的图神经网络,从图中挖掘更多隐含信息。5.实验对比。在两个数据集上对于基准算法和新提出的算法进行对比,通过网格搜索找到最优参数组合。6.总结。阐述本文的主要研究工作和研究成果,指明进一步的研究方向以及当前算法的不足,展望未来算法的发展方向。二、相关研究基础(一)基于隐式反馈的推荐问题用户在互联网上的行为数据最简单的存在形式就是日志,用户每次交互表示一次用户行为以及相应的服务,在常用的应用程序中一般会有一个后台程序周期性的归并推送日志以及点击日志,其中包含用户提交的查询,结果以及操作等。在推荐系统的角度中用户的行为一般分为两种,显性反馈行为以及隐形反馈行为。显性反馈行为包括用户明确表示对某个物品的喜好行为例如评分以及点赞,根据不同的应用场景对应变化。有一类数据例如浏览记录,购买记录,签到记录等只有观察到的正例,即0或1,和显式评分不同,对于数值为0的部分有两种情况存在:首先是用户对这个物品不感兴趣,其次是处于缺失值。当然1的情况是用户和物品之间存在交互关系。因为0值的二义性存在的情况,对于推断用户偏好带来噪声,导致机器学习模型不能获取更多的信息。隐式反馈推荐的目标是预测用户u针对各个物品i的评分来作为排序推荐的依据,即通过分析用户观看、浏览页面的日志等来生成用户对物品的评分。(二)传统协同过滤算法的稀疏性问题以及解决办法数据的稀疏性问题时协同过滤算法从诞生以来就存在的,原因是大部分的用户没有评分的习惯,这也导致数据极端稀疏的情况是普遍存在的,这也直接导致了直接计算用户和物品的最近邻居的问题时准确率较低,并且对于上线时间不长的项目在没有用户反馈的状况下难以投入使用,这也是协同过滤推荐算法的冷启动问题[1]。解决该问题的唯一思路就是设法让数据不稀疏或者达到数据稠密的效果。除去直接通过隐反馈模型间接计算获得用户评分矩阵之外,解决方案就是通过计算用户自身的特征属性来重新计算用户之间的相似度来丰富数据集[8]。目前增加数据稠密度的常用方式有:数据清洗,简单添值,聚类,降维,结合内容过滤等。(三)基于矩阵分解的推荐方法(Matrix-Factorization)一般来说,用隐式反馈模型来进行协同过滤的目标是获取用户和物品之间隐藏的特征,并且这个特征能够通过日志记录来进行解释。用户和物品之间的交互可以用一个有向图进行表示,而有向图可以使用邻接矩阵进行表示,这个矩阵又叫做评分矩阵。由于协同过滤算法中推荐的原理是让寻找与当前用户相类似的N个用户的特征,然后综合这N个用户在物品上的选择来实现推荐。但是因为目前各大平台的物品数量在迅速增长,以抖音为例,其中每天上传的视频数超过百万,对于如此稀疏的矩阵无论在运算的过程中还是在寻找类似用户的过程中并不准确,为了解决这个问题,Netflix提出了矩阵分解的方法。矩阵分解算法目的是将评分矩阵为每一个用户和物品生成一个隐向量,讲用户和物品定位到隐向量的表示空间中,在向量空间中距离相近的用户和物品表示特点接近。因此,在推荐过程中应该将用户距离最近的前N个物品推荐给用户。但是,传统的SVD方法是针对于稠密矩阵进行分解,需要将评分矩阵进行填充,不仅增大了存储空间而且增大了算法复杂度,并且对于隐式反馈会有数据混淆的情况出现。Netflix数据集竞赛中Koren提出Funk-SVD[9]这一解决方案。在评价指标为均方根误差(RMSE)的情况下通过在训练集中最小化RMSE来学习用户特征矩阵P和物品矩阵Q.为了方便描述,用U表示用户集合,Item用来表示物品集合,R用来表示用户评分矩阵,通过这种方法将用户和物品映射到K维的隐空间中来挖掘用户的潜在特征P(|U|xK维)和物品潜在特征矩阵Q(|D|K维)来估计评分。用下式表示过程:R≈P×因此,用户u对物品i的评分QUOTErui=QUOTEpuTqi其中pi代表用户u的K维特征,qi表示物品i的K维特征。通过随机下降法来取得RMSE的最小值。首先求解损失函数的负梯度:∂J∂J其次根据梯度更新变量:pq通过迭代来让均方根误差收敛到最小值,最终可以得到矩阵PQ,然后对评分矩阵中的空白评分根据对应特征矩阵的成绩来计算预测评分。在实际应用中为了防止求解结果出现过拟合的情况一般加入一个L2正则化项,因此修正目标函数为:可以看到,矩阵分解计算中很大一部分都依赖评分矩阵中的已知项,但事实上对于某些用户来说他的评分普遍偏高,有些用户评分普遍偏低,或者评分偏向中庸等。他们对于某个物品的评分相同的情况下实际上对这个物品的喜好程度是不一样的。在隐式反馈数据中类似。同样,对于物品来说,收到大家欢迎的物品评分普遍高,差的物品评分不可能搞,因此上述的偏置计算表示如下:bu表示的评分系统中平均分,bu代表着用户u的偏置,bi代表物品的偏置。因此在评分矩阵中的元素可以表示为:r损失函数可以表示为:e其余和朴素算法相同。由于带偏置的正则化矩阵考虑到了额外的因素,所以在一些特定的场景中鲁棒性更强[9-12]。(四)卷积神经网络(NeuMF[13])传统的基于用户的协同过滤方法,通过用户的评分矩阵使用相似性函数来计算用户特征的相似值并以此来为物品加权评分推荐。这种评分非常依赖评分矩阵的数据密集程度,在某些情况下用户之间有可能很少有共同喜好的物品,而上述方法在这种情况下的效果就不是很理想。首先,这种方法会倾向于用户已经消费的物品,因此受到历史记录的影响导致推荐结果同质化程度较高,推荐效果不好,其次,每个物品的用户评分总数依赖于当前的流行程度,在这种情况下算法会倾向于推荐比较热门的物品而使得冷门的小众物品得不到曝光。研究认为矩阵分解方法虽然能够在一定程度上解决上述问题,但是其假设维度之间是独立的并且是线性关系,但是事实上用户向量和物品向量之间的关系并不能通过线性函数来描述,这也使得矩阵分解方法有先天性的缺陷。多层神经网络凭借其对于隐藏信息提取的强大性能在图像处理以及语言处理领域表现突出,同样可以应用这个场景。通过使用神经网络对用户的信息进行特征提取来生成用户物品向量,然后使用该向量进行内积来进行优化训练以及预测。此外还可以凭借其强大的拟合能力来学习用户向量以及物品向量之间的交互函数。以NeuMF[10]为例,网络结构如下:左半部分网络作为矩阵分解算法提供低维交互关系,GMF层输入用户id和对应的物品id然后转化为用户特征矢量和物品特征矢量,然后将特定用户特征矢量和物品特征矢量对位相乘输出。右面的网络核心部分是多层感知机MLP,由多个全联接层串联起来并且在每两层之间使用relu[21]激活函数来实现非线性的特征组合。最终将两个网络模块的输出向量合并送入激活函数为sigmoid的全联接层来生成0-1之间的推荐值。(五)小结目前的方法都有不同的缺陷,矩阵分解法计算复杂度较高并且假设物品之间线性联系这一假设不足,而NeuMF虽然能够处理高维关系来拟合用户和物品的关联关系在想法上是可行的,但是事实上这张图并不是真正的图像,而是需要目标函数的梯度反向传播来进行学习的,因此整个反向传播的学习过程会比较复杂,并且对于隐式反馈数据这种稀疏图学习过程会比较复杂,不仅训练很难取得良好的效果,虽然使用BPR方法加入正则化项进行预训练能够提升效果,但是正则化参数导致模型的表现很难提升,而且因为数据来源并非欧氏空间,模型的理论可解释性较差。所以需要开发一种能够在图结构上进行运算并且理论性强的算法来解决这个问题。三、图神经网络理论基础(一)为什么会采用图神经网络一般来说,普通神经网络的对象是具备欧氏空间的数据,最显著的特征就是具有规则的空间结构,例如图片是规则的矩形,文字是规则的序列等,都可以用一维或者高维的矩阵来描述,这也使得卷积操作提取局部特征处理起来比较高效。卷积神经网络之所以在图片和自然语言处理如此出色是因为其具有平移不变性这一特点。无论特征怎么扭曲变化最总都可以通过特征的非线性组合来识别出来目标,识别能力随着网络层次的加深逐渐增强。而卷积神经网络的核心组建就是离散卷积,通过计算中心像素点以及相邻像素点的加权和来构成featuremap来实现空间的特征提取,通过学习加权系数也就是卷积核的卷积系数来优化提取过程。但是对于不具备规则的空间结构的数据例如推荐系统中构建出来的用户物品交互图,其中的每一个节点连接不尽相同,有的节点可能度为一,有的节点可能度为N,是不规则的角度。对于这种结构难以选择固定的卷积核来适应整个图的不规则性,例如邻居节点数量和顺序的不规则性等。在NeuMF中研究者使用全联接网络来处理用户节点以及其交互的物品(邻居)之间的关系,但是如果采用卷积核操作的话将会出现难以确定邻居的排列顺序以及卷积核大小的问题。事实上,这类直接在图上使用卷积网络的方向属于空域上的GCN方法[14],虽然能够提取图的一部分特征进行计算,但是可解释性不强。总结一下,图结构数据在空间结构中具有以下特点:1.节点特征:每个节点都有自己的特征,是节点的自身属性。例如用户性别,年龄;物品的价格,分类等。2.结构特征:图结构数据的每个节点之间都具有结构话的特征,即节点和节点之间存在一定的联系。总起来说,图结构的数据集需要考虑节点信息,也需要考虑节点之间的关联信息,图卷积神经网络需要能够同时处理这两个特征来有效的学习数据集中的隐含信息。图卷积是在传统的图像处理以及自然语言处理操作之外提供的处理研究关系化数据的模型,核心思想是利用边的信息对节点信息进行聚合从而学习新的节点表示。(二)图卷积神经网络图卷积神经网络[15]的细节和普通的卷积神经网络不同,核心计算层公式如下:H这个公式中A代表着交互矩阵和单位矩阵的加和,代表着在原先交互的图中加入自环。D代表着A的度矩阵,H代表着每一层的特征,初始层也是输入层即为X,代表着节点自身的特征。外侧的QUOTE代表着非线性激活函数例如ReLU[21]。算法的过程可以用下图来进行表示:通过向网络输入图,经过若干层GCN计算每个节点的特征从X变成Z。公式的来源思路非常简单:每一层的GCN的输入都是交互矩阵和特征矩阵,通过直接内积再乘参数矩阵,通过添加激活函数来提取非线性关系,实现一个简单的神经网络操作。f在上述基础上位了进行归一化处理来保持特征原本的分布,对A进行标准化处理,让A的每一行加起来为1。通过乘度矩阵来获得对称而且归一化的矩阵。但是,朴素的GCN要求在一个确定的图中学习顶点的嵌入表示,没有办法泛化到在训练中没有出现的顶点。究其根源是因为其只是简单的特征相加的特征聚合方法。因此需要提出新的聚合方法来在加入新的节点(用户和物品)的过程中。(三)GraphSAGE因为GCN需要把所有节点都参与训练才能得到节点的潜入表示,对于新加入的节点(用户或者物品)没有办法快速获得,新的节点代表着让新的图和已经优化好的嵌入节点取对齐,意味着许许多多与新节点相关的节点进行调整,会带来极大的性能开销,在现代软件中大量的用户物品增长意味着算法很难进行落地。因此最为理想的解决方案就是不固定每个节点的表示,而是直接学习一种节点的表示方法,这样在对节点进行单独运算的时候可以轻松获得新的表示。这也是GraphSAGE[16]的主要思想。GraphSAGE的基本思想是去学习一个节点的信息是怎么通过其邻居节点的特征聚合过来的,学习这个聚合函数。因为图本身的结构是已知的,所以可以方便地得到节点的新的表示。即使旧的节点建立了一些新的连接,仅仅是在图结构上会有一些变化,而因为学习来的聚合函数本身没有影响,所以并不需要像GCN一样重新学习固定表示而是重新根据聚合函数计算新的节点表示即可。伪代码中表示要聚合K次,代表需要K个聚合函数。按照CNN的概念即为N层网络,每一次都是将上一层得到的特征再次聚合一次。由于图中顶点的邻居都是天然无序的,所以希望能够设计出一个聚合函数具有对称性,即不随着输入的顺序改变输出结果,同时具有较强的表示能力。最自然的想法自然也就是平均值聚合函数,池化函数等。在这个算法中,需要学习制定的聚合函数的参数,因此需要设计一个损失函数来进行优化。对于协同过滤这一场景来说设计的损失函数应该让邻近的节点具有相似的表示(用户特征相似值接近),按照论文损失函数应该是这样的。因此,在落地实现中,首先通过embedding操作获得顶点和邻接点的k-1层向量表示,将他们拼接为一个(batchsize,1+neighbournum,embeddingsize)的向量,将其输入聚合函数进行运算即可获得(batchsize,embeddingsize)的向量。最终通过添加一次非线性变换[21]例如Relu就得到了所有顶点的K层表示向量。GraphSAGE通过学习用户与物品之间的交互来获得物品之间的联系,但是其并没有收集到用户之间的相似偏好的问题,这也使得这个算法在进行推荐的时候并没有完全利用整个图上的信息。(四)针对隐式反馈数据的推荐问题-SpectralCF在第三章节中解释过隐式反馈数据集是通过日志记录生成的数据集,仅通过用户是否对商品浏览,购买等行为信息,并没有显式评分。因此G只包含一个交互图。在朴素图中,假设图为G,那么G的拉普拉斯矩阵,图的傅里叶变换定义为,根据卷积的定义,两个信号(物品和用户)的卷积的傅里叶变换等于他们傅里叶变换的乘积:z=前面章节所介绍的公式是在此公式上进行简化,通过使用切比雪夫多项式将限定在一阶得到上述GCN公式:z=θ在隐式反馈数据的情况下,该式可以表述为:z=θ因此,在SpectralCF[17]中的图卷积操作可以总结为下面的公式:Z算法的伪代码如下:通过计算可以获得所有可能的在物品和用户之间的连接,但是因为其算法中包含矩阵分解的操作导致了搞得算法复杂度,在处理大型图关系的时候会非常耗费时间并且难以在有限时间内提供推荐服务。(五)小结列举朴素GCN,减少重复计算用户嵌入表示的GraphSAGE以及在隐反馈数据中性能出众的SpectralCF,阐述了在频域上的图神经网络逐步发展的过程以及优化。四、神经图协同网络算法及其基础结构(一)为什么要提出新的网络结构回顾一下之前两个章节,为了得到可学习的协同过滤模型,需要解决用户和物品的嵌入表示以及对于两者之间关系的建模。前面列举了多个解决方案但是都没有充分的利用图中所隐含的信息。即协同信息。这就导致了当图的嵌入表示因为信息过少导致不足以进行协同过滤时,只能通过程序员手工构建低效的图表示[20]。通过引入节点的高阶连接性(如下图所示)可以自然的输入图的高阶连接性。目前假设数据集为隐式反馈数据集,即物品用户关系可以抽象成为一个二分图,当u1代表人物时可以将从u1的邻居作为子节点化作右图内圈,因为和u1之间的距离为1,所以将其阶数定为1;同理因为i2与u2有关联,所以u2作为i2的子节点划入图中,其余节点同理。整个算法可以看做在图上的BFS。而树的层数则代表着关系的阶数。在这个思路指引下最大的问题变成了如何将这颗树输入网络进行运算。目前来讲高阶连接性作为一个元素可变的特征,不太可能使用普通卷积相加的办法来实现效果。因此借鉴GraphSAGE中通过对邻居采样来更新自身节点的思想,构建了一个通过递归聚合来进行更新用户节点的高阶连接的协作信号。(二)网络结构细节算法提出者[18]认为,神经图协同网络主要由三部分组成:1.将用户和物品进行embedding操作的嵌入层,目的是提供对称的数据来为后续处理提供条件,类比于上一章提到的GraphSAGE;2.多层嵌入信息传播层,假设层数为K,那么该网络结构能够处理K跳的邻居信息并动态更新到中心用户节点以及途中的节点从而来获得高阶协同信息;3.预测层聚合不同阶数(1-K)的精细化嵌入信息,输出用户物品亲和力评分。结构图如下:下面来说明具体的网络细节。1.嵌入层(embeddinglayer)按照主流的推荐系统模型的观点,嵌入层将每个用户和物品的嵌入表示放在同一个向量中,和NeuMF非常类似。但是NeuMF是直接将embedding变量直接喂进网络来进行训练,并不会对嵌入数据进行修改。但在神经图协同网络中,嵌入层数据将会在反向传播的过程中进行调整更新来学习邻居节点的协同信息。2.嵌入信息传播层嵌入信息传播层负责提取不同层的邻居对于用户或者物品之间的隐藏联系。从最基础的视角来开,用户直接交互过的物品是用户的喜好的直接表现,换句话来讲,交互过某个物品的用户可以视为该物品具有这些用户共有的一部分特征,因此可以用来衡量两个物品之间的相似性。因此通过在用户和项目之间交错执行嵌入表示的传播,并将其分为两个部分。(1)消息构建对于用户和物品之间的连接UI,定义其消息为:m其中前两项代表u和i的特征嵌入表示向量,p代表消息传播的衰减系数。F是消息构建函数,定义为:其中W1和W2是用来提取嵌入特征向量中有用的特征的可训练的矩阵,可以理解为物品对用户的特征影响是由物品的部分特征和用户和物品的特征亲和度相结合组成的。代表衰减因子,分母两项是用户u和物品i的第一跳邻居的数量,来源是继承GNN中拉普拉斯标准化系数。(2)消息聚合消息聚合顾名思义就是集合目标节点的邻居节点的特征用来更新目标节点的嵌入特征。为了添加非线性特征从而提高模型的拟合能力,在获取的消息加和之后需要加入非线性激活函数[21]。例如:e(3)堆叠传播层获得高阶表示:3.预测层经过前一部分网络的传播后拥有了K个用户u的特征嵌入表示,同时也有K个i的特征嵌入表示,通过将其合并为两个长度为K的向量进行内积,即可获得用户对目标物品的偏好。y4.系数优化原论文中采用pairwiseBPR[22]的损失函数,目的是将原关系矩阵中显性关系和预测出的隐性关系进行更加明显的区分。5.DropOut设置在深度学习中为了防止网络拟合能力过强而导致的过拟合,设置两种方式,一是在嵌入信息传播层中的图结构里随机去掉某个节点,通过阻止其运行消息传递函数实现。另外一种边dropout则在不同嵌入消息传播层中组织某个节点及其叶子节点的消息聚合来实现。五、实验对比(一)数据集描述实验数据集为现实世界中的常用推荐数据集Gowalla[23]和amazon-book,数据如下:表5-1数据集统计数据数据集用户数物品数User-Item稠密度Gowalla298584098110273700.00084AmazonBook526439159929841080.00062在测试的过程中,将用户没有交互历史的项目看作负面项目,算法的最后将会输出用户对于所有未直接交互的物品(训练集为直接交互)的评分。因为测试集是从真实数据中随机选出的,所以可以作为参考来计算所有用户的召回率和折损累计增益。因为预测结果将会赋予每个物品预测值,因此需要排序选择部分结果进行检测。实验中将会筛选前10和前20的物品来进行计算。(二)实验的衡量指标1.召回率作为评估预测准确度中用到的钙奶呢,在实验中用到的两个数据集中预测TOPK物品推荐准确度。召回率又称为查全率,是推荐出的项目在该项目系统中于所查询关键字相同物品的比率,换句话说就是推荐筛选出的用户的预测topK感兴趣的物品和用户所有感兴趣项目的比值。Re2.折损累计增益累计增益(CG)是的搜索结果相关性分数的总和,代表着推荐出的K个项目和事实相比的得分加和,但是计算的时候只考虑其中的项目而不考虑项目之间的顺序。因此,在此基础上,提出了折损累计增益(DCG),在每个项目相关的粉上附加一个折损值,目的是为了排名更靠前的结果更能影响结果所以添加入折损项1/log(i+1)因此,DCG评分计算公式为:rⅇ3.归一化折损累计增益顾名思义,归一化折损累计增益是针对不同推荐对象的返回兴趣对象不同二提出的。因为累计增益的计算方式是使用加和计算,因此兴趣广泛的对象和兴趣专一的对象的得分是不一致的,没有办法对两个不同的搜索结果来进行比较,因此需要进行归一化处理。nDC分母IDCG指的是当前用户的所有兴趣项的最大DCG值。(三)对照组算法为了对比出前文中的网络的有效性,将本文中提出的神经图神经网络与其他算法进行对比。对比对象为BPRMF和LightGCN[19]。BPRMF就是经过贝叶斯个性化排序的矩阵分解算法。LightGCN的作者认为,对于协同过滤而言非线性激活函数和特征嵌入化表示前的特征变换矩阵没有很大的用途,理由是输入的数据仅仅为ID的嵌入表示,没有节点自带的特征信息,所以没有计算提取对应非线性特征的必要。(四)超参数设置1.对于输入数据的嵌入层大小统一设置为64,优化器函数选择Adam,对于节点Dropout和学习率通过在验证集上进行网格搜索确定为0.1和0.001.2.整个模型的参数初始化不使用完全随机初始化二十使用Xavier初始化器[24]3嵌入信息传播层L通过验证集搜索最终确定三层拟合程度合适,在四层时前期拟合程度类似但是在训练次数多的情况下会出现过拟合导致的泛化能力下降,因此在训练集上训练时使用L=3。表5-2嵌入信息传播层层数L对比GowallaAmazonBookRecall10Ndcg10Recall10Ndcg10L=20.1540260.1301120.0330150.024134L=30.1568720.1327470.0337150.025409L=40.1570170.1327460.0344010.026230因为在L为1的时候相当于仅仅交互自己的一阶邻居而不会传播图的协同信息(五)实验环境实验使用Python进行实现,用Python进行训练,相对于Tensorflow,Pytorch可以自定义图,不需要完整定义网络去运行,方便调试。在Pytorch中变量使用张量Tensor来表示,运行机制类似于Numpy并且定义了多种数学操作和自动求导操作,更符合实验自定义网络的需求。本次实验的硬件配置如下:表5-3实验环境硬件配置配置名称配置参数CPUIntel(R)Xeon(R)CPUE5-2678v3内存64GGPUNVIDIAGeForceRTX2080*2操作系统Ubuntu20Python版本3.8.3Pytorch版本1.5.0(六)训练结果对比Gowalla数据集下的模型性能表现AmazonBook数据集下的性能表现(七)模型收敛速度对比(八)总结通过实验结果可以得知,采用图神经网络算法的NGCF和LightGCN具有更好的特征提取能力,在召回率和折损累计增益方面具有更佳的表现。在采用图神经网络的两个算法中进行对比去除在Gowalla数据集中NGCF在TOP10召回的表现优于LightGCN,其余数据均低于LightGCN,说明在隐反馈数据集中,因为输入数据中的节点没有相关的特征导致预先设定的提取节点自身信息的特征提取矩阵和非线性激活函数在处理仅由节点编号表示的节点时没有起到作用而仅仅减弱了有效信息的传递,因此在用单位矩阵处理的LightGCN中的效果更好。此外在Gowalla中出现了召回率下降的现象,原因主要因为数据集。因为Gowalla中的信息量远小于Amazon-book因此收敛到相同的程度时Gowalla更容易出现过拟合的情况。随着嵌入信息传播层的不断学习,各个节点的特征不断融合变得更为类似,降低了图卷积模型的表示学习能力。对于传统矩阵分解的MF算法来说,其计算过程类似于0阶的NGCF,因此看来,通过在协同过滤的过程中通过加入节点之间的协同信息能够丰富在计算过程中的特征从而提高推荐的准确度。六、总结和展望在推荐算法的应用中,协同过滤的算法时应用最为广泛的算法之一,但是传统的协同过滤算法有着其自身的缺陷,例如数据稀疏性问题和特征提取不全面等。为了解决传统协同过滤推荐算法中存在的种种问题,许多研究都推出了针对性改进的协同过滤推荐算法。图神经网络作为近两年来的新兴热点,在图结构数据的学习中取得了出色的成绩。因为两者的处理对象都是图关系矩阵,因此将两者结合进行设计和实现来提高协同过滤算法的能力。本文所做的工作如下:对现有的推荐系统和协同过滤算法进行了分析,研究图神经网络和图卷积神经网络的原理及其优化。设计了一种基于图神经网络的协同过滤推荐算法,说明了算法设计思路,包括前人的工作总结以及改进,数据的预处理以及特征提取,用户和物品的表示学习和协同过滤推荐,将协同信息加入到了学习数据当中并明显提高了算法的效果。对本文中的算法进行了充分的实验来进行验证分析,通过网格搜索来寻找最佳参数,对算法训练结果进行分析并且与常用算法进行对比,最终开源在Github中。本文将协同信息添加到协同过滤算法之中提高了算法的性能,但是测试过程中因为时间原因只实现了在纯关系图数据集中的算法性能,对于带有信息的节点数据集没有进行实验。此外,此网络只针对于单一数据来源的系统,对于在有着不同系统之间信息互通的平台例如阿里,腾讯,如此单一的网络无法处理相应的用户偏好数据而是需要多个网络结合实现,这也是目前研究的热点之一。未来,本研究还会结合业界的研究热点来改进本文算法以及相应的实现落地,例如混合图的协同过滤,提取多模态的数据来对用户特征进行分析,提高系统的并行性以及伸缩性来应对大数据应用等。参考文献[1](美)弗朗西科·西奇,推荐系统:基数、评估及高效算法,北京:机械工业出版社[2]RendleS,FreudenthalerC,GantnerZ,etal.BPR:Bayesianpersonalizedrankingfromimplicitfeedback.in:Proceedingsofthetwenty-fifthconferenceonuncertaintyinartificialintelligence.AUAIPress,Montreal,QC,Canada,2009:452~461[3]LeCunY,KavukcuogluK,FarabetC.Convolutionalnetworksandapplicationsinvision.In:Proc.ofthe2010IEEEInt’lSymp.onCircuitsandSystems.IEEE,2010.253–256.[4]DosSantosC,GattiM.Deepconvolutionalneuralnetworksforsentimentanalysisofshorttext.In:Proc.ofthe25thInt’lConf.onComputationalLinguistics:TechnicalPapers.2014.69–78.[5]刘建国,周涛,汪秉宏.个性化推荐系统的研究进展[J].自然科学进展,2009,19(01):1-15.[6]PazzaniMJ,BillsusD.Content-basedrecommendationsystems[J].TheAdaptiveWeb,2007,4321:325-341.[7]SarwarB,KarypisG,KongstanJ,etal.Item-basedcollaborativefilteringrecommendationalgorithms[C].Proceedingsofthe10thInternationalConferenceonWorldWideWeb,2001:285-295.[8]GáborTakácsetal(2008).MatrixfactorizationandneighborbasedalgorithmsfortheNetflixprizeproblem.In:Proceedingsofthe2008ACMConferenceonRecommenderSystems,Lausanne,Switzerland,October23-25,267-274.[9]PatrickOtt(2008).IncrementalMatrixFactorizationforCollaborativeFiltering.Science,TechnologyandDesign01/2008,AnhaltUniversityofAppliedSciences.[10]DanielD.LeeandH.SebastianSeung(2001).AlgorithmsforNon-negativeMatrixFactorization.AdvancesinNeuralInformationProcessingSystems13:Proceedingsofthe2000Conference.MITPress.pp.556–562.[11]DanielD.LeeandH.SebastianSeung(1999).Learningthepartsofobjectsbynon-negativematrixfactorization.Nature,Vol.401,No.6755.(21October1999),pp.788-791.[12]KorenY.Factorizationmeetstheneighborhood:amultifaceted
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省福州第二医院心理综合楼暖通空调工程设计
- 2022年水暖工高级证考试历年真题+模拟题附全答案
- 2026年关于林业安全生产测试题及答案
- 2024年电工电子专业自考本科统考核心题库及答案
- 2026年安永网申测试题及答案
- 2021年云南本土大数据企业招聘笔试题及标准答案
- 带编入伍协议书版本
- 上市公司资产出售协议书
- 狼性文化与团队精神
- 骨折康复训练流程培训
- 2026年教案合集2026年春人教版八年级下册英语Unit 1~Unit 8全册教案新版
- 学堂在线 雨课堂 学堂云 网球技术动作入门 章节测试答案
- 2026广东惠州市自然资源局招聘编外人员4人笔试参考题库及答案解析
- 养生食膳行业分析报告
- 2026中国中原对外工程有限公司校园招聘笔试历年难易错考点试卷带答案解析
- DB42∕T 2523-2026 党政机关办公用房面积核定工作规范
- 2026南京六合科技创业投资发展有限公司招聘9人笔试备考试题及答案解析
- 2026济南市第七人民医院公开招聘派遣制工作人员(2名)考试参考试题及答案解析
- 2026年安徽师范大学专职辅导员招聘30人考试参考试题及答案解析
- 成都合资公司管理手册模板
- 二类医疗器械零售经营备案质量管理制度
评论
0/150
提交评论