本发明涉及网络信息计算领域,尤其涉及一种基于综合相似度迁移的协同过滤算法。
背景技术:
当前,网络信息量呈指数级增长,网络用户一方面可获取丰富信息,另一方面却面临信息过载问题,难以从海量信息中挖掘对自己有用的信息。推荐系统可根据用户兴趣,从海量数据筛选出用户感兴趣的部分。目前,推荐系统已得到广泛应用,如Amazon,eBay,MovieLens,GroupLens等电子商务平台。
协同过滤技术是推荐系统中应用最广泛的技术之一,其基本思想是:利用用户的历史评分数据,来预测用户对未评分物品的兴趣度,选择兴趣度最高的几项物品作为推荐结果。对于传统的协同过滤算法,其最关键步骤是计算用户间或物品间的相似度,但随着数据的增长,用户评分数据会极度稀疏,而推荐质量也会随之下降。
目前,针对数据稀疏问题【1】,有以下几种解决方案:一是通过填充未评分物品来降低数据集的稀疏性【2-4】,该算法适用于物品更新不频繁且物品数远小于用户数的场景,依赖于用户行为同时存在冷启动问题;二是通过矩阵分解来降低数据集的稀疏性【5】,该算法利用用户与项目之间的潜在关系,对评分矩阵进行奇异值分解,该方法训练代价大,其不适应用户兴趣的改变;三是利用迁移学习思想,通过领域间的交叉部分来促进目标领域的学习【6-7】,该算法通过发现目标领域与辅助领域的潜在关系,达到辅助目标领域训练的目的,由此,其依赖于潜在关系的可靠程度,如不可靠会导致负迁移。目前,一些学者提出了利用多领域数据来缓解目标领域数据稀疏问题。如Jamali【8-9】等人提出了一种基于上下文的矩阵分解模HeteroMF,
其主要思想是利用多领域间共同实体,并共享实体的特征因子来同时对多个矩阵进行联合分解,其算法需要训练较多参数其需消耗大量时间计算梯度;LiBin【10】等人提出了一种评分矩阵生成模型RMGM(RatingMatrixGenerativeModel),其主要思想是通过找到共享的隐式集群级别的评级矩阵,然后利用这个矩阵填充目标领域中原始矩阵的空值,该方法使用与强相关领域且并没有理论支持;李超【10】等人提出的一种基于用户相似度迁移模TSUCF(TransferSimilarity
User-basedCollaborativeFiltering),其主要思想是交叉领域数据建立起辅助领域与目标领域的联系,达到辅助目标领域的目的,该方法仅利用用户评分信息,而且在衡量评分相似度时,仅采用共同物品数目来衡量,没有考虑用户的偏好。
虽然以上算法均采用辅助领域知识来提高推荐精度,但仍有一下不足:一是基于矩阵变换的模型,模型训练参数较多,二是要求辅助领域与目标领域满足强相关,模型适用场景少;三是计算用户评分相似度时,忽略了用户对满意度的打分标准的差异性。
数据稀疏性问题是传统协同过滤算法的主要瓶颈之一。迁移学习通常是利用目标领域与辅助领域的潜在关系,对辅助领域进行知识迁移,以此来提高目标领域的推荐质量。现有的基于相似度迁移模型,普遍只利用了用户评分信息,并且在评分相似度计算上忽略了用户评分标准差异。针对以上问题,本发明提出了一个基于综合相似度迁移的推荐算法。
参考文献:
[1]PanW。Asurveyoftransferlearningforcollaborativerecommendationwithauxiliary data[J]。Neurocomputing,2016,177(C):447-453。
[2]LemireD,MaclachlanA。Slopeonepredictorsforonlinerating-basedcollaborativefiltering[C]//Pr oceedingsofthe2005SIAMInternationalConferenceonDataMining。SocietyforIndustrialandAppliedMathematics,2005:471-475。
[3]WangP,YeHW。Apersonalizedrecommendationalgorithmcombiningslopeoneschemeanduserbasedcollaborativefiltering[C]//IndustrialandInformationSystems,2009。IIS'09。InternationalConferenceon。IEEE,2009:152-154。
[4]SunZ,LuoN,KuangW。Onereal-timepersonalizedrecommendationsystemsbasedonSlopeOnealgorithm[C]//FuzzySystemsandKnowledgeDiscovery(FSKD),2011EighthInternationalConferenceon。IEEE,2011,3:1826-1830。
[5]SarwarB,KarypisG,KonstanJ,etal。Applicationofdimensionalityreductioninrecommendersystem-acasestudy[R]。MinnesotaUnivMinneapolisDeptofComputerScience,2000。
[6]LiB,YangQ,XueX。Transferlearningforcollaborativefilteringviaarating-matrixgenerative model[C]//InternationalConferenceonMachineLearning,ICML2009,Montreal,Quebec,Canada,June。DBLP,2009:617-624。
[7]PanW,XiangEW,LiuNN,etal。TransferLearninginCollaborativeFilteringforSparsityReduction[C]//AAA I。2010,10:230-235。
[8]JamaliM,LakshmananL。Heteromf:recommendationinheterogeneousinformationnetworksusingcontextdependentfactormodels[C]//Proceedingsofthe22ndinternationalconferen ceonWorldWideWeb。ACM,2013:643-654。
[9]WuS,LiuQ,WangL,etal。Contextualoperationforrecommendersystems[J]。IEEETransactionsonKnowledgeandDataEngineering,2016,28(8):2000-2012。
[10]LiB,YangQ,XueX。Transferlearningforcollaborativefilteringviaarating-matrixgenerativemodel[C]//Proceedingsofthe26thannualinternationalconferenceonmachine learning。ACM,2009:617-624。
[11]李超,周涛,黄俊铭,等。基于用户相似性传递的跨平台交叉推荐算法[J]。中文信息学报,2016,30(2):90-98。
技术实现要素:
本发明的目的就在于为了解决上述问题而提供一种基于综合相似度迁移的协同过滤算法。
本发明通过以下技术方案来实现上述目的:
本发明包括以下步骤:
(1)基于综合相似度迁移的推荐算法:设有两个平台e1和e2,U1表示只在平台e1中存在历史行为信息的用户,U2表示只在平台e2中存在历史行为信息的用户,Uc表示在平台e1和e2中均有过历史行为信息的用户,定义为交叉用户;在实际情况中,交叉用户的数量远远小于非交叉用户的数量;通过交叉用户,为非交叉用户U1和U2建立起相似度联系,以此帮助目标领域进行推荐;
(2)相似度迁移:非交叉用户U1和用户U2无法直接计算相似性,但是,用户U1和用户U2分别与交叉用户Uc的相似度是可以计算的,所以,可将交叉用户Uc作为纽带来建立用户U1和用户U2的相似度;
相似度迁移步骤:首先找出与平台1和平台2的公共用户集Uc;然后分别计算U1与Uc的相似性,记为向量U2与Uc的相似性,记为最后计算与的内积,即为U1和U2的传递相似度
其中,U11表示平台1中的非交叉用户1,U21、U22表示平台2中的非交叉用户1,Uc1、Uc2等表示交叉用户,S1、S2等表示相似度;如果要计算U11与U21之间的相似度,则可通过Uc1、Uc2、Uc3过渡,间接计算综上,则U1和U2之间的相似度计算可形式化为:
(3)相似度计算:计算非交叉用户U1与U2的相似度之前,需先计算非交叉用户U1、U2分别与交叉用户的相似度,相似度计算如下:
1)用户评分相似度
本文通过评分分布一致性、可信度两方面衡量用户评分相似度;
评分分布一致性是由两用户评价过的相同物品的评分分布决定;评分分布越一致,说明两用户的兴趣越相似;设{ur1,ur2,...,urn},{ur1,ur2,...,urn}分别为用户u与用户v对共同物品的评分集,将两组数据分别进行递增排序,即{ur1,ur2,...,urn},如果1,2,...,n与x1,x2,...,xn的匹配度越大,则表明两者的一致性越高;计算公式如下所示;
可信度是根据两用户评价过的相同物品的数量决定的,若数量很小,即使评分分布一致,也不代表两者一定相似;计算公式如下所示;
其中,Iu表示用户u评价的物品集;
用户评分相似度计算公式如下所示;
sim1(u,v)=dist(u,v)conf(u,v) (1-4)
2)用户属性相似度
用户属性相似度是根据用户属性来衡量;一般认为,拥有相同属性的用户在一定程度上具有相似的兴趣;计算公式如下所示;
其中,n表示属性个数,sim(u,v,i)表示在第i个属性上两用户是否相同,如相同,则为1,反之为0,di表示第i个属性的区分度,如果具有某属性的用户对所有物品都进行了评分则表明该属性没有区分度,其值由不同数据集决定;
3)最终相似度
一般情况下,当用户对某物品评分之后,应该尽量利用用户对物品评分信息,当用户对某物品没有评分,则应尽量利用用户属性信息;当用户所评分的物品数量增多时,算法应平滑过渡到使用评分信息进行推荐,本文使用sigmoid函数进行平滑处理,最终用户相似度定义如下:
sim(u,v)=αsim1(u,v)+(1-α)sim2(u,v) (1-6)
其中,Cuv表示用户u和用户v共同评价的物品集合;由上述公式表示,用户相似度计算会随着用户所评价物品数量的增多,平滑过渡到使用评分信息,这种平滑过渡可以提高在冷启动状态下预测准确率;
(4)算法描述:
A)计算用户相似度算法:第一步根据用户属性信息,计算用户属性相似度;第二步根据用户评分信息,计算用户评分相似度;第三步:根据用户属性相似度与用户评分相似度,计算最终用户相似度;
B)基于迁移学习的推荐算法:第一步计算U1与Uc之间的相似度第二步计算U2与Uc之间的相似度第三步计算迁移相似度第四步利用迁移相似度结合UCF算法进行推荐。
本发明的有益效果在于:
本发明是一种基于综合相似度迁移的协同过滤算法,与现有技术相比,本发明在相似度计算上,即利用了用户评分信息同时也利用了用户属性信息,并且考虑了用户间对满意度的打分标准的差异性,采用了用户评分分布一致性来衡量用户评分相似度的方法,提高了相似度计算的准确性,从而提高了数据迁移的质量。实验结果表明,该模型较其他算法能比较有效地缓解数据稀疏性问题。未来可以考虑联合项目相似度或其他知识,如文本信息,对辅助领域的数据进行迁移,通过这种方式可以提高迁移数据的质量,从而提高推荐精确度。
附图说明
图1是本发明的用户评分矩阵图;
图2是本发明的相似性迁移示意图;
图3是本发明的A组下不同算法RMSE值对比图;
图4是本发明的B组不同算法RMSE值对比图;
图5是本发明的C组不同算法RMSE值对比图;
图6是本发明的D组不同算法RMSE值对比图;
图7是本发明的E组不同算法RMSE值对比图;
图8是本发明的N=5下不同算法RMSE值对比图;
图9是本发明的N=10不同算法RMSE值对比图;
图10是本发明的N=20不同算法RMSE值对比图;
图11是本发明的N=30不同算法RMSE值对比图;
图12是本发明的N=40不同算法RMSE值对比图。
具体实施方式
下面结合附图对本发明作进一步说明:
基于综合相似度迁移的推荐算法:
本发明提出一种基于综合相似度迁移的推荐算法,利用辅助领域信息来缓解目标领域数据稀疏性问题。
下面将以两个电影平台为例对本发明算法进行说明。假设有两个平台e1和e2,U1表示只在平台e1中存在历史行为信息的用户,U2表示只在平台e2中存在历史行为信息的用户,Uc表示在平台e1和e2中均有过历史行为信息的用户,定义为交叉用户。用户行为矩阵如图1所示。
在实际情况中,交叉用户的数量远远小于非交叉用户的数量。
传统推荐算法是利用所占比例较少的交叉用户对所占比例较大的非交叉用户进行推荐,由此会出现冷启动问题和数据稀疏问题,使得推荐质量较低。
本发明算法是通过交叉用户,为非交叉用户U1和U2建立起相似度联系,以此帮助目标领域进行推荐。
相似度迁移:
如图1所示,非交叉用户U1和用户U2无法直接计算相似性,但是,用户U1和用户U2分别与交叉用户Uc的相似度是可以计算的,所以,可将交叉用户Uc作为纽带来建立用户U1和用户U2的相似度。
相似度迁移步骤:首先找出与平台1和平台2的公共用户集Uc;然后分别计算U1与Uc的相似性,记为向量U2与Uc的相似性,记为最后计算与的内积,即为U1和U2的传递相似度
相似度迁移如图2所示;
其中,U11表示平台1中的非交叉用户1,U21、U22表示平台2中的非交叉用户1,Uc1、Uc2等表示交叉用户,S1、S2等表示相似度。如果要计算U11与U21之间的相似度,则可通过Uc1、Uc2、Uc3过渡,间接计算综上,则U1和U2之间的相似度计算可形式化为:
相似度计算:
基于以上分析,计算非交叉用户U1与U2的相似度之前,需先计算非交叉用户U1、U2分别与交叉用户的相似度,相似度计算如下所示:
1)用户评分相似度
本发明通过评分分布一致性、可信度两方面衡量用户评分相似度。
评分分布一致性是由两用户评价过的相同物品的评分分布决定。评分分布越一致,说明两用户的兴趣越相似。设{ur1,ur2,...,urn},{ur1,ur2,...,urn}分别为用户u与用户v对共同物品的评分集,将两组数据分别进行递增排序,即{ur1,ur2,...,urn},如果1,2,...,n与x1,x2,...,xn的匹配度越大,则表明两者的一致性越高。计算公式如下所示。
可信度是根据两用户评价过的相同物品的数量决定的,若数量很小,即使评分分布一致,也不代表两者一定相似。计算公式如下所示。
其中,Iu表示用户u评价的物品集。
用户评分相似度计算公式如下所示。
sim1(u,v)=dist(u,v)conf(u,v) (1-4)
2)用户属性相似度
用户属性相似度是根据用户属性来衡量。一般认为,拥有相同属性的用户在一定程度上具有相似的兴趣。计算公式如下所示。
其中,n表示属性个数,sim(u,v,i)表示在第i个属性上两用户是否相同,如相同,则为1,反之为0,di表示第i个属性的区分度,如果具有某属性的用户对所有物品都进行了评分则表明该属性没有区分度,其值由不同数据集决定。
3)最终相似度
一般情况下,当用户对某物品评分之后,应该尽量利用用户对物品评分信息,当用户对某物品没有评分,则应尽量利用用户属性信息。当用户所评分的物品数量增多时,算法应平滑过渡到使用评分信息进行推荐,本发明使用sigmoid函数进行平滑处理,最终用户相似度定义如下:
其中,Cuv表示用户u和用户v共同评价的物品集合。由上述公式表示,用户相似度计算会随着用户所评价物品数量的增多,平滑过渡到使用评分信息,这种平滑过渡可以提高在冷启动状态下预测准确率。
算法描述:
1)计算用户相似度算法:第一步根据用户属性信息,计算用户属性相似度;第二步根据用户评分信息,计算用户评分相似度;第三步:根据用户属性相似度与用户评分相似度,计算最终用户相似度。
2)基于迁移学习的推荐算法:第一步计算U1与Uc之间的相似度第二步计算U2与Uc之间的相似度第三步计算迁移相似度第四步利用迁移相似度结合UCF算法进行推荐。
实验:
实验数据:
实验采用MovieLen电影网站的数据集。数据集描述如下所示。
表1 Movielens数据描述
实验数据集划分如下所示。
表5数据集划分
评价指标:
为了衡量算法的预测准确度,本实验采用均方根误差RMSE(Root Mean Squared Error,RMSE)来验证本发明算法所得预测结果与用户真实评分的差距。RMSE计算方法如下:
其中,rui表示用户u对物品i的真实评分,preui表示用户u对物品i的预测评分,T为测试集,|T|表示测试集大小。RMSE越小,说明预测值与实际值越近,预测结果的准确率越高。
对比算法:
1)UCF算法:只能利用交叉用户进行推荐。
2)基于用户相似性传递的推荐算法(TSUCF):利用所占比例较少的交叉用户的评分信息作为纽带,将两个不同电商的用户建立联系,达到推荐的效果。
3)本发明算法:本发明算法在TSUCF算法上做出改进,一是充分利用用户属性信息,二是考虑了用户的评分标准的差异性,采用共同物品的评分分布一致性来衡量用户评分相似性。
实验结果:
考虑到最近邻居数N的大小会对结果有影响,实验分别在最近邻居数为5、10、20、30、40前提下进行算法对比。
从上图2-图7可以明显看出,本发明算法在不同最近邻居数下均能取得较好的推荐效果。
考虑到交叉用户数目对实验结果的影响,实验分别在交叉用户数目为95、189、283、377、471下进行算法对比。
从上图8-图12可以明显看出,本发明算法在不同交叉用户数下均能取得最好的推荐效果。
本发明算法利用用户属性相似度及用户评分相似度对辅助领域的数据进行迁移以解决目标领域的数据稀疏性问题,未来可以考虑联合项目相似度或其他知识,如文本信息,对辅助领域的数据进行迁移,通过这种方式可以提高迁移数据的质量,从而提高推荐精确度。
以上显示和描述了本发明的基本原理和主要特征及本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。