一种基于社区信息的项目推荐方法及系统与流程

文档序号:18869890发布日期:2019-10-14 19:17阅读:158来源:国知局
一种基于社区信息的项目推荐方法及系统与流程
本发明属于个性化推荐领域,更具体地,涉及一种基于社区信息的项目推荐方法及系统。
背景技术
:大数据时代,网络用户和应用的增长导致互联网中的数据量指数爆炸型增长,用户很难在大数据中快速、有效、高效地检索到需要的信息资源,这种现象称之为信息过载问题。推荐系统是一种解决信息过载问题的有效手段。推荐系统是建立在海量数据挖掘基础上的一种智能平台,推荐系统能够根据用户自身的兴趣特点、购买行为等,分析出用户的兴趣爱好和需求,继而从海量信息中找到用户感兴趣的项目并推荐给用户。项目推荐方法是个性化推荐系统的核心,对推荐系统的性能起着决定性的作用,目前,常用的项目推荐方法主要分为三类:基于内容的推荐方法、基于协同过滤算法的推荐方法以及混合推荐方法,其中,基于协同过滤算法(collaborativefilteringalgorithm)的推荐方法应用最为广泛。基于协同过滤算法的推荐方法强调用户间的协作推荐,认为具有相似兴趣偏好的用户的需求也是相似的。通俗地讲,基于协同过滤算法的推荐方法为用户找到他真正感兴趣内容的好方法是首先找到与此用户有相似兴趣的其他用户,然后将他们感兴趣的内容推荐给此用户,其基本思想非常好理解,在日常生活中,人们往往会根据亲朋好友的推荐来做一些选择(购物、阅读、音乐等)。概率矩阵分解(probabilisticmatrixfactorization,pmf)算法是协同过滤算法中的基于模型的分支算法,通过概率学知识,从已知的高维信息中推导出低维的特征信息,以特征矩阵和特征向量表示。概率矩阵分解算法能降低原数据的维度,挖掘数据的隐式特征,即使是面对稀疏数据、高维数据,算法仍然有优异的推荐性能。因此,目前的推荐系统所使用的项目推荐方法,大多是基于概率矩阵分解算法的。在推荐系统中,部分用户只给出了很少的评分信息,这类用户称作冷启动用户,因冷启动用户无法利用历史数据导致的推荐准确率低的问题,学术界称之为冷启动问题。传统的基于概率矩阵分解算法的项目推荐方法只考虑历史评分信息,因此推荐准确度不高,并且对于冷启动问题不能予以很好的解决。技术实现要素:针对现有技术的缺陷和改进需求,本发明提供了一种基于社区信息的项目推荐方法及系统,其目的在于,提高项目推荐的准确度,并解决冷启动问题。为实现上述目的,按照本发明的一个方面,提供了一种基于社区信息的项目推荐方法,包括:(1)根据用户的历史评分信息建立评分矩阵r,并将记录有用户社交信息的社交网络划分为多个社区后,根据用户与社区的从属关系建立社区矩阵c;(2)通过概率矩阵分解,将评分矩阵r分解为用户特征矩阵u和项目特征矩阵v,并将社区矩阵c分解为用户社区特征矩阵a和社区特征矩阵b;(3)根据社区对用户偏好的影响,确定进行概率矩阵分解的目标函数并根据目标函数对分解结果进行迭代优化,以使得目标函数取极小值;(4)根据目标函数取极小值时的用户特征矩阵u和项目特征矩阵v,预测各用户对各项目的评分,以根据预测评分完成项目推荐;其中,项目特征矩阵v用于表示各项目的属性特征,用户特征矩阵u用于表示各用户对各项目属性特征的偏好程度,社区特征矩阵b用于表示各社区的属性特征,用户社区特征矩阵a用于表示各用户对各社区属性特征的偏好程度。本发明将用户社交信息以社区的形式进行运用,使得在根据历史评分信息对用户进行项目推荐时,考虑了社区对用户偏好的影响,由于社区反映的是用户集群的情况,社区内的用户偏好选择更相近,因此,本发明一方面能够综合更丰富的信息,提高对向用户推荐项目的准确度,另一方面,对于冷启动用户,在缺少历史评分数据的情况下,仍然能够用户的社交信息以较高的准确度向该用户完成项目推荐,从而有效解决冷启动问题。进一步地,社区矩阵c为m行k列的矩阵,其中第i行第x列的元素cix表示第i个用户与第x个社区的社区归属值;若第i个用户属于第x个社区,则cix=1;否则,cix=0;其中,m为用户总数,k为划分得到的社区总数,i为用户编号,x为社区编号,1≤i≤m,1≤x≤k,且i和x均为整数。本发明所构建的社区矩阵,描述了用户与社区的从属关系,表现了用户的集群特性,通过利用社区矩阵完成项目推荐,本发明能够充分利用相似用户的集群推荐优势,从而提高推荐准确度。进一步地,步骤(1)中,将记录有用户社交信息的社交网络划分为多个社区,包括:设置多个不同的阈值;分别以每一个阈值为slpa算法的输入,对社交网络进行社区划分,从而得到各阈值所对应的社区划分结果;社区划分结果为一次社区划分得到的多个社区;分别计算每一个社区划分结果的模块度,将其中模块度最大的社区划分结果作为最终的社区划分结果。模块度反映了社区的整体聚集程度,在slpa社区划分算法中,阈值不同,社区划分结果不同,相应地社区模块度也不相同。本发明通过对社交网络进行多次划分并选取其中模块度最好的划分结果,保证了社区聚集程度更好,使得社区内用户对项目的兴趣偏好更相似,从而推荐准确度更高。进一步地,目标函数为:其中,表示目标函数取值,m为用户总数,n为项目总数,k为划分得到的社区总数,i为用户编号,j为项目编号,x为社区编号,1≤i≤m,1≤j≤n,1≤x≤k,且i、j和x均为整数;rij表示评分矩阵r中第i个用户对第j个项目的评分值,cix表示社区矩阵c中第i个用户与第x个社区的社区归属值;ui、vj、ai和bx均为隐式特征向量,ui表示用户特征矩阵u中第i个用户对各项目属性特征的偏好程度,vj表示项目特征矩阵v中第j个项目的属性特征,ai表示用户社区特征矩阵a中第i个用户对各社区属性特征的偏好程度,bx表示社区特征矩阵b中第x个社区的属性特征;iij表示第i个用户是否对第j个项目进行了评分,iix′表示第i个用户是否属于第x个社区,ρ和λz均为正则化参数;||·||表示f-范数。上述目标函数中,通过这一项限制了用户特征矩阵u和用户社区特征矩阵a间的关系,使得在迭代优化的过程中充分利用了社区对用户偏好的影响,有利于提高推荐准确度。进一步地,正则化参数且正则化参数其中,σ2为评分值或社区归属值的高斯分布方差,为利用隐式特征向量ai估计隐式特征向量ui的条件概率密度的高斯分布方差,为各隐式特征向量的高斯分布方差。进一步地,步骤(3)中,根据目标函数对分解结果进行迭代优化,所使用的方法为随机梯度下降法。按照本发明的另一个方面,提供了一种基于社区信息的项目推荐系统,包括:矩阵构建模块、矩阵分解模块、迭代优化模块以及项目推荐模块;矩阵构建模块,用于根据用户的历史评分信息建立评分矩阵r,并将记录有用户社交信息的社交网络划分为多个社区后,根据用户与社区的从属关系建立社区矩阵c;矩阵分解模块,用于通过概率矩阵分解,将评分矩阵r分解为用户特征矩阵u和项目特征矩阵v,并将社区矩阵c分解为用户社区特征矩阵a和社区特征矩阵b;迭代优化模块,根据社区对用户偏好的影响,确定进行概率矩阵分解的目标函数并根据目标函数对分解结果进行迭代优化,以使得目标函数取极小值;项目推荐模块,用于根据目标函数取极小值时的用户特征矩阵u和项目特征矩阵v,预测各用户对各项目的评分,以根据预测评分完成项目推荐;其中,项目特征矩阵v用于表示各项目的属性特征,用户特征矩阵u用于表示各用户对各项目属性特征的偏好程度,社区特征矩阵b用于表示各社区的属性特征,用户社区特征矩阵a用于表示各用户对各社区属性特征的偏好程度。总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:(1)本发明所提供的基于社区信息的项目推荐方法及系统,将用户社交信息以社区的形式进行运用,使得在根据历史评分信息对用户进行项目推荐时,考虑了社区对用户偏好的影响,由于社区反映的是用户集群的情况,社区内的用户偏好选择更相近,因此,本发明一方面能够综合更丰富的信息,提高对向用户推荐项目的准确度,另一方面,对于冷启动用户,在缺少历史评分数据的情况下,仍然能够用户的社交信息以较高的准确度向该用户完成项目推荐,从而有效解了决冷启动问题。(2)本发明所提供的基于社区信息的项目推荐方法及系统,所构建的社区矩阵,描述了用户与社区的从属关系,表现了用户的集群特性,通过利用社区矩阵完成项目推荐,本发明能够充分利用相似用户的集群推荐优势,从而提高推荐准确度。(3)本发明所提供的基于社区信息的项目推荐方法及系统,通过对社交网络进行多次划分并选取其中模块度最好的划分结果,保证了社区聚集程度更好,使得社区内用户对项目的兴趣偏好更相似,从而提高了推荐准确度。(4)本发明所提供的基于社区信息的项目推荐方法及系统,在其优选方案中,所确定的目标函数中,通过这一项限制了用户特征矩阵u和用户社区特征矩阵a间的关系,使得在迭代优化的过程中充分利用了社区对用户偏好的影响,有利于提高推荐准确度。附图说明图1为本发明实施例提供的基于社区信息的项目推荐方法流程图;图2为本发明实施例提供的qslpa社区划分方法步骤示意图;图3为本发明实施例提供的基于社区信息的项目推荐方法的图模型示意图;图4为本发明实施例提供的五折交叉实验实例图;图5为本发明实施例提供的不同阈值所对应的模块示意图;图6为本发明实施例提供的所有用户在不同项目推荐方法上的mae结果;图7为本发明实施例提供的所有用户在不同项目推荐方法上的rmse结果;图8为本发明实施例提供的last.fm数据集的测试集评分数量分组图;图9为本发明实施例提供的冷启动用户在不同项目推荐方法上的mae结果;图10为本发明实施例提供的冷启动用户在不同项目推荐方法上的rmse结果。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。在详细解释本发明的技术方案之前,先对本发明所涉及到的相关技术进行简单介绍:真实世界中的系统,例如社交关系网、引文网等,都可以用复杂网络进行剖析,研究现实系统时,常将系统个体抽象为网络节点(顶点),个体间相互关系抽象为网络连边;社交网络是一种复杂网络,用于记录用户的社交信息;复杂网络能天然地分成少许节点组,节点组内的节点比起不同节点组内的节点更有倾向结合,这样致使了节点组内节点紧密连接,节点组间稀疏连接,网络的这类特性称之为社区结构,每个节点组构成一个社区;slpa算法(speaker-listenerlabelpropagationalgorithm)是一种社区划分算法,该算法模拟人类交流的习惯,将网络节点分为两类,即讲话者(信息提供者)和听话者(信息接收者),并给网络中的每个节点分派一个标签,随着标签在网络中的传播,所有节点标签按一定规则迭代更新;每个节点设置内存来存储过去的标签信息,并把储存的标签统计情况作为下次迭代标签的参照;当标签迭代达到一定次数后,统计每一个节点内存中出现的各历史标签频率,以频率为基准来选该节点的标签,最终,同一标签的节点归属与同一社区;模块度(q值)是衡量社区划分好坏的重要标准,反映了社区的整体聚集程度,模块度越大,表示社区的整体具体程度越好;slpa算法的阈值不同时,社区划分结果不同,相应地,模块度也不相同;概率矩阵分解算法,通过输入先验数据的矩阵形式,运用统计概率学知识,经推导得到后验特征向量的概率密度函数,通过特征向量预测推荐结果;特征向量是矩阵分解算法的输出结果,其潜在信息比原数据更丰富,分解所得的特征矩阵即由特征向量构成所。传统的基于概率矩阵分解算法的项目推荐方法只考虑历史评分信息,推荐准确度不高,并且对于冷启动问题不能予以很好的解决。针对现有技术所存在的这一技术问题,本发明所提供了一种基于社区信息的项目推荐方法,如图1所示,包括:(1)根据用户的历史评分信息建立评分矩阵r,并将记录有用户社交信息的社交网络划分为多个社区后,根据用户与社区的从属关系建立社区矩阵c;在本发明实施例中,社区矩阵c为m行k列的矩阵,具体形式为:其中第i行第x列的元素cix表示第i个用户与第x个社区的社区归属值,具体用于表示第i个用户与第x个社区的从属关系;若第i个用户属于第x个社区,则cix=1;否则,cix=0;其中,m为用户总数,k为划分得到的社区总数,i为用户编号,x为社区编号,1≤i≤m,1≤x≤k,且i和x均为整数;上述社区矩阵c,描述了用户与社区的从属关系,表现了用户的集群特性,通过利用社区矩阵完成项目推荐,本发明能够充分利用相似用户的集群推荐优势,从而提高推荐准确度;在一个可选的实施方式中,步骤(1)中,将记录有用户社交信息的社交网络划分为多个社区,包括:设置多个不同的阈值;分别以每一个阈值为slpa算法的输入,对社交网络进行社区划分,从而得到各阈值所对应的社区划分结果;社区划分结果为一次社区划分得到的多个社区;分别计算每一个社区划分结果的模块度,将其中模块度最大的社区划分结果作为最终的社区划分结果;通过对社交网络进行多次划分并选取其中模块度最好的划分结果,保证了社区聚集程度更好,使得社区内用户对项目的兴趣偏好更相似,由此能够提高推荐准确度;在本发明中,将上述社区划分方法称为qslpa社区划分方法,qslpa社区划分方法的具体步骤如图2所示;(2)通过概率矩阵分解,将评分矩阵r分解为用户特征矩阵u和项目特征矩阵v,并将社区矩阵c分解为用户社区特征矩阵a和社区特征矩阵b;项目即被推荐的对象;项目特征矩阵v用于表示各项目的属性特征,用户特征矩阵u用于表示各用户对各项目属性特征的偏好程度,社区特征矩阵b用于表示各社区的属性特征,用户社区特征矩阵a用于表示各用户对各社区属性特征的偏好程度;用户特征矩阵u中的向量ui、项目特征矩阵v中的向量vj、用户社区特征矩阵a中的向量ai和社区特征矩阵b中的向量bx均为隐式特征向量;vj表示项目特征矩阵v中第j个项目的属性特征,ui表示用户特征矩阵u中第i个用户对各项目属性特征的偏好程度,ui反映了第i个用户所偏好的项目类型;bx表示社区特征矩阵b中第x个社区的属性特征,ai表示用户社区特征矩阵a中第i个用户对各社区属性特征的偏好程度,ai反映了第i个用户所偏好的社区类型;(3)根据社区对用户偏好的影响,确定进行概率矩阵分解的目标函数并根据目标函数对分解结果进行迭代优化,以使得目标函数取极小值;由于用户偏好社区的选择会影响到用户偏好项目的选择,因此,隐式特征向量ui可以由隐式特征向量ai估计得到,在本发明中,根据隐式特征向量ui和隐式特征向量ai的具体关系,定义该条件密度概率为:其中,为利用隐式特征向量ai估计隐式特征向量ui的条件概率密度的高斯分布方差,表征了隐式特征向量ai对隐式特征向量ui的影响程度大小;表示正态分布,i表示相关参数;为了在保证推荐准确度的情况下简化计算,在本发明中,假定已观测到的评分值和已观测到的社区归属值有同等的噪声,并且用户特征矩阵u、项目特征矩阵v、用户社区特征矩阵a、社区特征矩阵b及其各自隐式特征向量均有同等的噪声,记σ2为评分值或社区归属值的高斯分布方差,为各隐式特征向量的高斯分布方差;在本实施例中,目标函数为:其中,表示目标函数取值,m为用户总数,n为项目总数,k为划分得到的社区总数,i为用户编号,j为项目编号,x为社区编号,1≤i≤m,1≤j≤n,1≤x≤k,且i、j和x均为整数;rij表示评分矩阵r中第i个用户对第j个项目的评分值,cix表示社区矩阵c中第i个用户与第x个社区的从属关系;iij表示第i个用户是否对第j个项目进行了评分,若第i个用户对第j个项目进行了评分,则iij=1,否则,iij=0;iix′表示第i个用户是否属于第x个社区,若第i个用户属于第x个社区则iix′=1,否则,iix′=0;ρ和λz均为正则化参数;||·||表示f-范数,上标t表示向量的转置;在本发明实施例中,正则化参数且正则化参数正则化参数ρ同时也是社区调节参数,描述了社区对用户偏好项目的影响程度;上述目标函数中,通过这一项限制了用户特征矩阵u和用户社区特征矩阵a间的关系,使得在迭代优化的过程中充分利用了社区对用户偏好的影响,有利于提高推荐准确度;基于上述目标函数本发明所提供的基于社区信息的项目推荐方法的图模型如图3所示;在一个可选的实施方式中,步骤(3)中,根据目标函数对分解结果进行迭代优化,所使用的方法为随机梯度下降法;在本发明实施例中,采用随机梯度下降法求解目标函数的最小值,具体通过对相关参数(ui、vj、ai和bx)求导找到目标函数的极小值;目标函数的相关参数求导结果如下:利用随机梯度下降法对相关参数偏导做迭代学习,直至目标函数最小(即目标函数收敛,具体可通过选取合适的随机梯度下降法的学习率来实现),记录此时最优的隐式特征向量ui和隐式特征向量vj,即可得到目标函数取极小值时的用户特征矩阵u和项目特征矩阵v;(4)根据目标函数取极小值时的用户特征矩阵u和项目特征矩阵v,预测各用户对各项目的评分,以根据预测评分完成项目推荐;此时,隐式特征向量ui和隐式特征向量vj的乘积即为第i个用户对第j个项目的预测评分为隐式特征向量ui的转置向量。上述基于社区信息的项目推荐方法将用户社交信息以社区的形式进行运用,使得在根据历史评分信息对用户进行项目推荐时,考虑了社区对用户偏好的影响,由于社区反映的是用户集群的情况,社区内的用户偏好选择更相近,因此,本发明一方面能够综合更丰富的信息,提高对向用户推荐项目的准确度,另一方面,对于冷启动用户,在缺少历史评分数据的情况下,仍然能够用户的社交信息以较高的准确度向该用户完成项目推荐,从而有效解决冷启动问题。本发明还提供了一种基于社区信息的项目推荐系统,用于执行上述基于社区信息的项目推荐方法的各步骤,该系统包括:矩阵构建模块、矩阵分解模块、迭代优化模块以及项目推荐模块;矩阵构建模块,用于根据用户的历史评分信息建立评分矩阵r,并将记录有用户社交信息的社交网络划分为多个社区后,根据用户与社区的从属关系建立社区矩阵c;矩阵分解模块,用于通过概率矩阵分解,将评分矩阵r分解为用户特征矩阵u和项目特征矩阵v,并将社区矩阵c分解为用户社区特征矩阵a和社区特征矩阵b;迭代优化模块,根据社区对用户偏好的影响,确定进行概率矩阵分解的目标函数并根据目标函数对分解结果进行迭代优化,以使得目标函数取极小值;项目推荐模块,用于根据目标函数取极小值时的用户特征矩阵u和项目特征矩阵v,预测各用户对各项目的评分,以根据预测评分完成项目推荐;其中,项目特征矩阵v用于表示各项目的属性特征,用户特征矩阵u用于表示各用户对各项目属性特征的偏好程度,社区特征矩阵b用于表示各社区的属性特征,用户社区特征矩阵a用于表示各用户对各社区属性特征的偏好程度;在本发明实施例中,各模块的具体实施方式可参考上述方法实施例中的描述,在此将不作复述。应用实例:为便于描述,以下将本发明所提供的基于社区信息的项目推荐方法简称为cpmf;为了验证cpmf的可靠性、有效性,选择last.fm公开数据集(https://grouplens.org/datasets/hetrec-2011/),以五折交叉验证的方法进行实验,以平均绝对误差mae(meanabsoluteerror)和均方根误差rmse(rootmeansquareerror)作为实验评估指标,与其他推荐方法作误差结果比较以验证cpmf的性能表现;平均绝对误差mae和均方根误差rmse的计算公式如下:其中,n为测试集评分数量,rij表示第i个用户对第j个项目的实际评分,为相应的预测评分。last.fm数据集是关于音乐分享的数据集,通过对last.fm音乐网站服务信息的收集于2011年发布。last.fm数据集包含用户信息,艺术家信息,用户聆听艺术家信息,标签信息,社交网络信息等,以.dat形式存储在多个文件中。数据集中没有直接明显的用户评分信息,为了实验的需要,在本应用实例中,将艺术家作为项目,将用户聆听艺术家计数信息转化为评分信息,进而将用户聆听计数按一定的标准,预处理为用户对项目的评分。若用户对艺术家有聆听计数,则表明该用户对该项目有评分,评分值按一定标准将聆听次数映射到评分区间{1,2,3,4,5},聆听计数越多,相应的评分值越大,用户对项目的偏好程度越大。这样逻辑处理后,数据集中的用户聆听艺术家信息转化为了用户对项目的评分信息,评分值在{1,2,3,4,5}中。last.fm数据集共有1,892个用户,17,632个项目(艺术家),92,834条用户评分信息(用户聆听艺术家信息),25,434条用户社交信息。由于实验结果指标mae和rmse的计算涉及到评分数量,为了减小随机误差,对每一种推荐方法均采用五折交叉验证的方法,将完整数据集平分成5份,每次实验随机选取其中1份作为测试集数据,其余4份作为训练集数据,使用本次的训练集数据和测试集数据进行实验,如图4所示。这样的实验进行5次,确保5份数据都作过测试集,最终的实验误差为5次实验误差的平均值。在本应用实例中,所选取的作为对比的推荐方法分别以一种代表性的概率矩阵分解推荐算法为基础,具体为基于pmf算法的推荐方法、基于sorec算法的推荐方法、基于trustmf算法的推荐方法以及基于trustpmf算法的推荐方法,各概率矩阵分解推荐算法简要介绍如下:pmf算法是基础的概率矩阵分解算法,只考虑用户项目评分信息,将用户项目评分矩阵r分解为用户特征矩阵u和项目特征矩阵v,以两特征矩阵的乘积来建模预测评分矩阵;sorec算法考虑到用户的社交关系会影响到用户的评分行为,融合用户社交信息到概率矩阵分解算法中,将表示用户社交关系的用户邻接矩阵c分解为用户特征矩阵u和因子特征矩阵z,同样的,用户项目评分矩阵r分解为用户特征矩阵u和项目特征矩阵v,联合推导,得到sorec算法,但算法中的因子特征矩阵z并无实际物理含义;trustmf算法,该算法将用户社交关系划分成信任他人和被人信任两种,从矩阵分解角度来说,用户邻接矩阵t分解为信任特征矩阵b和被信任特征矩阵w,用户项目评分矩阵r分解为用户特征矩阵u和项目特征矩阵v,以信任矩阵b和项目特征矩阵v的乘积建模得到预测评分矩阵;trustpmf算法通过整合用户评分数据和用户间社交关系来改善推荐性能,采用概率矩阵分解方法从用户社交关系提取出低维隐式特征,进而反映用户间的关系影响。数学上,将表征用户评分数据的评分矩阵r分解为用户特征矩阵u和项目特征矩阵v,将表征用户间社交关系的用户邻接矩阵t分解为信任特征矩阵b和被信任特征矩阵w,以用户特征矩阵u和项目特征矩阵v的乘积作为真实评分的预测,以信任特征矩阵b和被信任特征矩阵w作为用户间信任值的预测;这四种算法中,只有pmf算法不考虑用户社交信息,其它的sorec算法、trustmf算法、trustpmf算法均有融合用户社交信息,且都以用户邻接矩阵的形式表现用户社交信息;同样地,为了便于描述,以下简单地将概率矩阵分解推荐算法缩写指代相应的推荐方法,例如,pmf指代基于pmf算法的推荐方法,sorec指代基于sorec算法的推荐方法,以此类推;连同本发明所提供的cpmf,五种推荐方法的参数设置具体如表1所示。其中参数下标表示对应的矩阵,各参数分别表示对应矩阵的高斯分布方差;需要说明的是,各矩阵符号表示的实际矩阵,应根据具体的方法描述确定。表1各推荐方法的参数设置推荐方法参数设置pmfλu=λv=0.1sorecλu=λv=λz=0.1,λc=0.1trustmfλv=λb=λw=0.1,λt=0.1trustpmfλu=λv=λb=λw=0.1,β1=β2=0.1cpmfλu=λv=λa=λb=0.1,ρ=0.5除去表1中的参数设定,在本应用实例中,cpmf在进行社区划分时,以last.fm数据集的用户社交信息作为slpa算法的输入,设置阈值r取值在0.1~1,以0.1为步长变化,记录每个阈值r下的模块度函数q值,总结得到阈值r和模块度q的实验结果,如图5所示,其中模块度最大为q=0.4070,将该最大模块度对应的社区划分结果作为最终的社区划分结果;根据上述社区划分结果,1892个用户和25434条用户社交信息构成的社交网络被划分为61个社区,构成社区集合社区由1-61连续编号,不同编号代表不同的社区,各个社区无统一标准,但整体的社区模块化程度最好。根据社区矩阵的定义,1892个用户,61个社区,构成的社区矩阵为1892×61维,行表示用户编号,列表示社区编号,矩阵数值为社区归属值;若某用户属于某社区,则相应的社区归属值为1;反之,社区归属值为0。采取五折交叉验证的方法,设置随机梯度下降法学习率α=0.01,各方法在矩阵分解维度d=5以及d=10的情况下进行,相应的mae和rmse对比结果分别如图6和图7所示观察图6和图7所示的实验结果,进行比较分析,可以得到结论:(1)比起不融合用户社交信息的pmf,其余四种推荐方法,无论分解维度d取何值,在数据集上的mae误差和rmse误差都较之pmf要小,因为这四种推荐方法均融合进了用户社交信息;pmf的mae和rmse误差是所有推荐方法中最大的,即推荐准确性最低;因此,融合用户社交信息的推荐方法在推荐性能上有明显的优势。(2)本发明提出的cpmf,不仅使用了传统的用户项目评分矩阵分解,而且融合了基于用户社交信息的社区及社区矩阵的概率矩阵分解,兼顾社区对用户偏好的影响,能从原始数据集中合理抓取更多的用户特征、社区特征、项目特征等,导致的实验误差比同类型的其余推荐算法要小,推荐准确性更高,推荐性能有一定的优势;(3)在矩阵分解维度d=5时,mae误差最大值为0.9519,最小值为0.9404,而rmse误差最大值为1.2433,最小值为1.1959,cpmf的rmse误差下降得更明显;同样的,矩阵分解维度d=10时的cpmf的rmse误差下降得更明显。综合考虑,我们可以发现,cpmf在均方根误差rmse上的推荐优势比平均绝对误差mae更大;均方根误差反映的是波动情况,cpmf的均方根误差下降得更明显,这表明了cpmf的预测评分与实际评分的波动范围更小,整体上预测评分的范围更加准确;这是因为cpmf将用户社交信息以社区的形式进行运用,并考虑了社区对用户偏好的影响,社区反映的是用户集群的情况,社区内的用户偏好选择更相近,相应地,社区用户的推荐更精准;这证明了本发明通过融合社区到推荐方法中,有效了提高推荐性能,融合社区的推荐方法在均方根误差上的优势更显著。为进一步验证cpmf在冷启动问题方面的表现,对测试集用户按照用户的评分数量进行分组,具体包括五组:“1~5”、“6~10”、“11~25”、“16~20”以及“>20”,用户分组在last.fm数据集下的结果如图8所示;将评分数量为”1~5”的用户作为冷启动用户,利用冷启动用户的信息构成冷启动实验测试集;同样的,分别将基于pmf算法、sorec算法、trustmf算法和trustpmf算法的推荐方法作为本发明所提供的cpmf的对比方法,在冷启动测试集上进行mae和rmse误差比较,各推荐方法在冷启动用户上实验的实验参数设置与上述表1中的参数设置一致。冷启动实验中,对每一种推荐方法同样采用五折交叉验证的实验方法,选取矩阵分解维度d分别为5、10,随机梯度下降法学习率α=0.01,以平均绝对误差mae和均方根误差rmse作为实验评估指标,得到冷启动用户在各推荐方法上的mae和rmse结果,分别如图9和图10所示。根据图9和图10所示的实验结果可知,不融合社交信息的pmf误差是最大的,相对而言,其余四种融合用户社交信息的推荐方法的推荐误差较小,而且本发明所提供的cpmf的mae和rmse误差是所有推荐方法中最小的。同样的,在分解维度取值一定时,cpmf的rmse误差下降得比mae误差更显著,这是由于cpmf在进行社区划分时,选择了模块度最大的社区划分结果;综合分析,本发明提出的基于社区的项目推荐方法及系统在冷启动问题上依旧有很好的性能表现。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1