一种基于推荐系统的项目推荐方法、装置及设备与流程

文档序号:16539599发布日期:2019-01-08 20:14阅读:206来源:国知局
一种基于推荐系统的项目推荐方法、装置及设备与流程

本发明涉及推荐系统领域,特别是涉及一种基于推荐系统的项目推荐方法、装置及其设备。



背景技术:

随着互联网的发展,网络上产生的数据越来越多,出现了“信息过载”的问题。对于用户而言,很多用户需要一种有效的信息过滤方法,从海量网络数据中筛选出符合自己兴趣的内容。推荐系统作为重要手段,已被广泛应用于各商业网站及互联网相关领域。它帮助用户在大量的网络数据中发现自己感兴趣的项目或服务信息。

目前的推荐系统基本均是以提高推荐精确度为目标,推荐结果基本均是趋向于推荐热门项目,这里的热门项目指的是用户整体评分高的项目,例如全部用户的平均评分较高的前n个项目等,但是这样的推荐结果并不代表用户满意度就高,因为,推荐结果集中于热门项目的话,由于热门项目的数量较少,且部分热门项目之间存在较大的相似性(这是由于某些热门类型的相关项目均会属于热门项目),这样会导致推荐结果多样性不够高。即目前的推荐结果存在一种长尾效应:大部分高评分集中于少量的热门项目,而剩余的大部分冷门项目则很少会被推荐,进而使得这部分冷门项目难以被用户得知,从而导致其评分越来越少,更难被推荐。

因此,如何提供一种多样性高的基于推荐系统的项目推荐方法、装置及设备是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种基于推荐系统的项目推荐方法、装置及设备,综合考虑项目整体评分以及用户偏爱度来进行推荐,从而提高项目推荐的多样性。

为解决上述技术问题,本发明提供了一种基于推荐系统的项目推荐方法,包括:

获取各个用户对每个项目的评分数据;

分别依据各个用户对每个项目的评分数据以及各个项目的平均评分数据,计算得到各个用户对每个项目的偏爱度;

将各个偏爱度值与对应的评分数据进行整合,得到各个用户对每个项目的关联权重;

依据所述关联权重构建各个用户与各个项目之间的用户-项目二部图;

依据随机游走算法对所述用户-项目二部图进行随机游走,得到第一推荐项目列表。

优选的,所述用户-项目二部图的构建过程具体包括:

将每个用户以及每个项目均作为图像标点,得到一排用户标点以及一排项目标点;

分别将每个用户标点与该用户评分过的各个项目的项目标点建立连接,每条连接线的权重设置为所述连接线所连的用户对所述连接线所连项目的关联权重,得到所述用户-项目二部图。权重设置为

优选的,所述获取各个用户对每个项目的评分数据之后,计算各个用户对每个项目的偏爱度之前,还包括:

依据各个用户对每个项目的评分数据构建用户-项目评分矩阵,并对所述用户-项目评分矩阵进行归一化处理,得到归一评分矩阵;

相应的,计算得到各个用户对每个项目的偏爱度之后,还包括:

依据各个用户对每个项目的偏爱度建立偏爱度矩阵,并对所述偏爱度矩阵进行归一化处理,得到归一偏爱度矩阵;

之后,将所述归一评分矩阵内的评分数据以及所述归一偏爱度矩阵内对应的偏爱度值进行整合,得到所述关联权重。

优选的,还包括:

获取各个用户对每个项目所打的标签;

依据各个项目的标签构建项目-标签二部图;

对所述项目-标签二部图依据热传导算法进行计算,得到第二推荐项目列表;

将所述第一推荐项目列表与所述第二推荐项目列表进行整合,得到总推荐列表。

优选的,所述偏爱度值的计算过程包括:

分别将各个用户对每个项目的评分数据以及各个项目的平均评分数据带入偏爱度计算关系式,得到各个用户对每个项目的偏爱度;

所述偏爱度计算关系式包括:

其中,为用户ui对项目ij的偏爱度,r(ui,ij)为用户ui对项目ij的评分数据,为全部用户对项目ij的评分数据的平均值,为全部用户对项目ij的评分数据的方差,为用户ui对项目ij所打的标签个数,为用户ui为全部项目打过的标签个数。

优选的,所述项目-标签二部图的构建过程为:

将各个项目以及各个标签均作为图像标点,得到一排项目标点以及一排标签标点;

分别将每个项目标点与该项目包含的各个标签对应的标签标点建立连接,连接线的权重均设置为1,得到所述项目-标签二部图。

优选的,所述将所述第一推荐项目列表与所述第二推荐项目列表进行整合,得到总推荐列表的过程具体为:

将所述第一推荐项目列表与所述第二推荐项目列表内的项目求并集,得到初始推荐列表;

将每个项目在所述第一推荐项目列表与所述第二推荐项目列表内的权重带入权重关系式,并将计算后的权重数值作为该项目在所述初始推荐列表内的权重,所述权重关系式为:

l=λl1+(1-λ)l2;

其中,l为项目计算后的权重数值,λ为固定比重参量,l1为该项目在所述第一推荐项目列表内的权重,l2为该项目在所述第二推荐项目列表内的权重。

为解决上述技术问题,本发明还提供了一种基于推荐系统的项目推荐装置,包括:

评分获取模块,用于获取各个用户对每个项目的评分数据;

偏爱度计算模块,用于分别依据各个用户对每个项目的评分数据以及各个项目的平均评分数据,计算得到各个用户对每个项目的偏爱度;

关联权重计算模块,用于将各个偏爱度值与对应的评分数据进行整合,得到各个用户对每个项目的关联权重;

第一二部图构建模块,用于依据所述关联权重构建各个用户与各个项目之间的用户-项目二部图;

第一推荐列表生成模块,用于依据随机游走算法对所述用户-项目二部图进行随机游走,得到第一推荐项目列表。

优选的,还包括:

标签获取模块,用于获取各个项目的标签;

第二二部图构建模块,用于依据各个项目的标签构建项目-标签二部图;

第二推荐列表生成模块,用于对所述项目-标签二部图依据热传导算法进行计算,得到第二推荐项目列表;

整合模块,用于将所述第一推荐项目列表与所述第二推荐项目列表进行整合,得到总推荐列表。

为解决上述技术问题,本发明还提供了一种一种基于推荐系统的项目推荐设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如以上任一项所述的项目推荐方法的步骤。

本发明提供了一种基于推荐系统的项目推荐方法,获取各个用户对每个项目的评分数据后,依据用户对一个项目的评分数据及全部用户对该项目的平均评分来计算用户对该项目的偏爱度,进而综合偏爱度和对应的评分数据来作为用户-项目二部图内用户与项目的连接线上的权重,使得后续对用户-项目二部图进行随机游走后得到的第一推荐项目列表内的推荐内容,也综合考虑到了用户的偏爱度以及用户评分的影响。可以理解的是,个别用户评分高的项目,表面该用户偏爱该项目,即用户对该项目的偏爱度就高,但是不表明该项目属于热门项目,本发明通过将偏爱度与评分均作为影响推荐的因素,则最终得到的第一推荐项目列表内既包括热门项目(即多数用户评分高的项目),又包含部分用户比较偏爱但是整体评分不高的项目,从而使最终得到的推荐项目类型增多,提高了推荐项目的多样性。本发明还提供了一种基于上述项目推荐方法的装置和设备,也具有上述优点,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种基于推荐系统的项目推荐方法的过程的流程图;

图2为本发明提供的一种用户-项目二部图的示意图;

图3为本发明提供的一种用户-项目-标签三部图的示意图;

图4为本发明提供的另一种基于推荐系统的项目推荐方法的过程的流程图;

图5为本发明提供的另一种基于推荐系统的项目推荐装置的结构示意图。

具体实施方式

本发明的核心是提供一种基于推荐系统的项目推荐方法、装置及设备,综合考虑项目整体评分以及用户偏爱度来进行推荐,从而提高项目推荐的多样性。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种基于推荐系统的项目推荐方法,参见图1所示,图1为本发明提供的一种基于推荐系统的项目推荐方法的过程的流程图;该方法包括:

步骤s1:获取各个用户对每个项目的评分数据;

即获取能够统计得到的、全部用户对各个用户的历史评分数据。

步骤s2:分别依据各个用户对每个项目的评分数据以及各个项目的平均评分数据,计算得到各个用户对每个项目的偏爱度;

即首先计算每个项目的平均评分数据,这里的平均评分数据指的是全部用户对该项目的评分的平均值,该平均值能够反映用户对该项目的整体评分情况,以及该项目的热门水平。而一个用户对该项目的评分,反应的是该用户对该项目的兴趣程度,因此,根据用户对一个项目的评分以及该项目的平均评分,则能够得知该用户对该项目的偏爱程度。举例来说,假如大部分用户对某一项目的评分均很高,该项目的平均评分数据为0.9,但是此时某一用户对该项目的评分较低,仅为0.3,则此时两厢比较,表明该用户在大部分人的评分均很高的前提下,仍旧评分很低,故反映出该用户对该项目的偏爱度很低;反之,若大部分用户对某一项目的整体评分较低,该项目的平均评分数据为0.3,但某一用户对该项目的评分很高,为0.9,即该用户在大部分人评分均很低的前提下,仍旧对该项目评分很高,则表明该用户对该项目的偏爱度很高。

因此,根据各个用户对各个项目的评分数据以及各个项目的平均评分数据,即能够得到每个用户对各个项目的偏爱度,而用户偏爱度高的项目的关联权重,也会得到提高,从而使得最终得到的推荐列表内,这些整体评分较低,但是有些用户偏爱度很高的项目的推荐可能也得到了提高,从而增大了推荐结果的多样性。

步骤s3:将各个偏爱度值与对应的评分数据进行整合,得到各个用户对每个项目的关联权重;

这里偏爱度对应的评分数据指的是:同一个用户对同一项目的偏爱度与评分数据。

这里的整合指的是通过某种算法,使得到的关联权重能够将评分数据以及偏爱度综合起来考虑。由于本发明的目的是:偏爱度与评分数据越高,则关联权重越大,即推荐可能越大,因此,这里将偏爱度与评分数据进行整合的算法应该使得,关联权重与偏爱度以及关联权重与评分数据均成正比。例如,将偏爱度与评分数据求和,或者将偏爱度与评分数据相乘求积等。当然,这里具体采用哪种整合算法本发明不做限定。

步骤s4:依据关联权重构建各个用户与各个项目之间的用户-项目二部图;

用户-项目二部图指的是将用户和项目均作为图像标点,然后在用户和项目的图像标点之间进行连线,该连线用于表明该连线上的用户对连线上的项目的观点,该连线上设置有关联权重,该关联权重用于表明该连线上用户对项目的评价程度。

步骤s5:依据随机游走算法对用户-项目二部图进行随机游走,得到第一推荐项目列表。

二部图随机游走推荐算法也称为二部图投影和排序bgpr(bipartitegraphprojectionandranking)算法,就是在用户-项目二部图上的各个连线上游走,依据各个连线上的关联权重来筛选最终推荐的项目以及所推荐的项目的排序。关联权重越大的连线上的项目的推荐可能性越大,且对于被推荐的部分项目,其关联权重越大,则其在第一推荐项目列表内的排序越可能靠前。

其中,第一推荐项目列表内,各个推荐项目按照推荐优先等级从前到后进行排序,在部分实施例中,第一推荐项目列表内除了项目内容及其排序外,还可能包括每个项目的推荐比重,这个推荐比重是通过重启式随机游走算法计算得到的,第一推荐项目列表内包含推荐比重最高的前n个项目,这n个项目以其推荐比重从大到小的顺序进行排序。当然,是否在第一推荐项目列表内显示推荐比重,本发明不做限定。

可以理解的是,目前的推荐系统基本均是以提高推荐精确度为目标,推荐结果基本均是趋向于推荐热门项目,但是这样的推荐结果并不代表用户满意度就高,因为,推荐结果集中于热门项目的话,由于热门项目的数量较少,且部分热门项目之间存在较大的相似性,这样会导致推荐结果多样性不够高。即目前的推荐结果存在一种长尾效应:大部分高评分集中于少量的热门项目,而剩余的大部分冷门项目则很少会被推荐,进而使得这部分冷门项目难以被用户得知,从而导致其评分越来越少,更难被推荐。但是,由于不同用户的兴趣存在差异,因此,这些冷门项目很可能也是满足用户兴趣的,因此最好能够考虑到用户的兴趣因素,增强这些冷门数据的推荐可能性,从而提高推荐的多样性,以及用户满意度。

在本发明中,获取全部用户分别对每个项目的历史评分数据后,综合各个用户对各个项目的评分以及每个项目的平均评分数据,来计算得到每个用户对各个项目的偏爱度,根据偏爱度值,能够反映用户对该项目的兴趣程度,偏爱度值越高,用户对该项目的兴趣越高,但是用户对一个项目的偏爱度的高低与该项目是否热门(即该项目的整体评分是否高)并无对应关系,将用户对一个项目的偏爱度值与用户对该项目的评分数据进行整合,来作为该用户与该项目在用户-项目二部图中连线上的关联权重,使得后续在对用户-项目二部图进行随机游走时,推荐某一项目的可能性不仅受到该项目评分数据的影响,还受到各个用户对该项目的偏爱度的影响,因此在用户偏爱度高的情况下,即使该用户并非热门,其推荐可能也得到了提高,从而丰富了推荐列表内项目的类型,推荐多样性高,进而提高了用户满意度。

其中,在一种具体实施例中,步骤s4中,用户-项目二部图的构建过程具体包括:

将每个用户以及每个项目均作为图像标点,得到一排用户标点以及一排项目标点;用户标点与项目标点具体以横向排列还是纵向排列均可,本发明不对此进行限定。

分别将每个用户标点与该用户评分过的各个项目的项目标点建立连接,每条连接线的权重设置为连接线所连的用户对连接线所连项目的关联权重,得到用户-项目二部图。

需要注意的是,由于偏爱度值是根据用户评分数据得到的,通常来讲用户评分高的表明用户对该项目的偏爱值高,因此,用户没有评分的项目是算不出偏爱度值的,也就只能计算评分过的项目的偏爱度值。因此,用户对该项目的也无法计算出关联权重;而在构建用户-项目二部图的过程中,没有关联权重的用户标点和项目标点之间不建立连线,即每个用户标点仅与自身评分过的项目的项目标点进行连线。

另外,构建用户-项目二部图时还可采用另一种方式,即在计算偏爱度以及关联权重之前,仅依据评分数据构建一个初始的用户-项目二部图的操作,在该初始的用户-项目二部图中,若某用户对某项目进行过评分,则将该用户标点与该项目标点之间建立连线,且连线上的初始权重为该用户对该项目的评分数据,若某用户未对某项目进行过评分,则该用户标点与该项目标点之间不建立连线;之后计算得到关联权重后,再依据关联权重去替换对应连线上的初始权重,实现对用户-项目二部图的二次构建,从而得到最终的用户-项目二部图。

以上两种构建方式均在本发明的保护范围之内,具体采用以上哪种方式构建用户-项目二部图,本发明不作限定。

参见图2所示,图2为本发明提供的一种用户-项目二部图的示意图。

由于不同用户在对不同项目进行评分时,根据自己的习惯不同以及项目评分要求不同,往往存在有不同的打分标准,例如有些用户在打分时可能是以10分为满分进行打分,而有些用户则会以100分为满分进行打分,这样使得,最终得到的评分数据之间无法统一,因为20分显然要高于9分,但是在不同的评分标准下,两种分值实际对应的分数等级显然是不同的,20分属于低分,9分属于高分。因此,这样的话,若直接依据用户的评分数据进行偏爱度计算以及关联权重的计算,显然是不准确的,为了避免上述情况,则需要对用户的评分数据进行归一化处理,使之转变为统一的评分基准下的数据,从而提高推荐的准确性。

具体的,在一种优选实施例中,获取各个用户对每个项目的评分数据之后,计算各个用户对每个项目的偏爱度之前,还包括:

依据各个用户对每个项目的评分数据构建用户-项目评分矩阵,并对用户-项目评分矩阵进行归一化处理,得到归一评分矩阵;

相应的,计算得到各个用户对每个项目的偏爱度之后,还包括:

依据各个用户对每个项目的偏爱度建立偏爱度矩阵,并对偏爱度矩阵进行归一化处理,得到归一偏爱度矩阵;

之后,将归一评分矩阵内的评分数据以及归一偏爱度矩阵内对应的偏爱度值进行整合,得到关联权重。

可以理解的是,想要对用户的评分数据进行归一化处理,最方便的做法就是将用户的评分数据构建为矩阵的形式,然后对矩阵做归一化处理,这样得到的归一化矩阵内的数据,即为统一评分标准后的评分数据。并且,由于偏爱度值计算时也用到了评分数据,因此,最终计算得到的偏爱度值也存在上述标准不统一的问题,想要保证后续计算关联权重的准确性,则需要也对得到的偏爱度值进行归一化处理,同理也可采用将偏爱度之构建为矩阵,之后对矩阵进行归一化处理的方式来实现,从而保证关联权重的准确性不受不同评分标准的影响。

举例来说,假设有m个用户,n个项目,则用户集合为u={u1,u2,……,um},项目集合为i={i1,i2,……,in},用户ui对项目集合i的评分值集合为依据用户的评分数据构建的用户-项目评分矩阵a1如下:

归一化处理后的归一化评分矩阵a2如下:

之后,为用户ui对项目ij的偏爱度,偏爱度矩阵c1如下:

归一化处理后的偏爱度矩阵c2如下:

通过上述归一化处理,使得最终得到的归一化评分矩阵a2以及归一化偏爱度矩阵内的数据具有相同的评分标准,这种情况下,依据这些具有相同评分标准的数据才能够反映出用户对每个项目的实际兴趣水平。从而避免由于用户评分标准不同导致的关联权重出现误差,进而提高了项目推荐的准确性。

需要注意的是,由于项目的平均评分数据是根据全部用户对该项目的评分求平均后得到的,因此,在各个用户评分标准不同时,计算得到的项目的平均评分数据也不够准确。因此,在优选实施例中,可在得到归一化评分矩阵后,依据归一化评分矩阵内的数据计算项目的平均评分数据以及偏爱度值,由于此时偏爱度值直接依据归一化之后的评分数据计算得到,因此,此时偏爱度值不存在标准不一致的问题,直接计算得到的偏爱度值即为归一化后的偏爱度。当然,具体采用以上哪种方式本发明不作具体限定。

其中,偏爱度值的计算过程包括:

分别将各个用户对每个项目的评分数据以及各个项目的平均评分数据带入偏爱度计算关系式,得到各个用户对每个项目的偏爱度;

偏爱度计算关系式包括:

其中,为用户ui对项目ij的偏爱度,r(ui,ij)为用户ui对项目ij的评分数据,为全部用户对项目ij的评分数据的平均值,为全部用户对项目ij的评分数据的方差。

可以理解的是,将评分数据与平均评分数据的差值与方差作比,这一计算方式能够较为准确的计算得到评分数据的权重,即反映出该评分数据在整体评分中所处的等级,进而反映出用户对该项目的兴趣偏爱程度。当然,在其他实施例中,偏爱度计算时,也可以令将评分数据与平均评分数据的差值与平均评分数据作比,或者直接计算评分数据与平均评分数据的比值。或者还可采用其他关系式计算,本发明不限定偏爱度关系式的具体内容。

参见图4所示,图4为本发明提供的另一种基于推荐系统的项目推荐方法的过程的流程图。

在优选实施例中,该方法还包括:

步骤s6:获取各个用户对每个项目所打的标签;

假设全部项目一共有p个标签,则标签集合为t={t1,t2,...,tp},为项目ij所带的标签的集合。

步骤s7:依据各个项目的标签构建项目-标签二部图;

步骤s8:对项目-标签二部图依据热传导算法进行计算,得到第二推荐项目列表;

在进行热传导计算之前,需根据用户的评分数据,为用户评价过的项目分配一个单位的资源。

步骤s9:将第一推荐项目列表与第二推荐项目列表进行整合,得到总推荐列表。

需要注意的是,本实施例中得到第二推荐项目列表的过程步骤s6~s8与得到第一推荐项目列表的过程步骤s1~s5之间的先后顺序本发明不作限定。两个过程可以并列进行,例如通过两个进程来实现,一个进程执行步骤s1~s5的操作,另一个进程执行步骤s6~s8的操作,两个进程并列同时进行。或者,也可以先进行其中一个过程再进行另外一个过程;例如,首先执行步骤s1~s5的操作,得到第一推荐项目列表后,再执行步骤s6~s8的操作,得到第二推荐项目;或者首先执行步骤s6~s8的操作,得到第二推荐项目列表后,再执行步骤s1~s5的操作,得到第一推荐项目列表。或者,两个过程中的步骤也可穿插进行;例如,步骤s6和步骤s1可同时完成,即获取用户的历史行为数据,该历史行为数据内同时包含用户为项目的评分数据以及所打的标签,之后执行步骤s2-s4,得到用户-项目二部图,之后执行步骤s7得到项目-标签二部图,然后依次执行步骤s5、步骤s8和步骤s9;当然,各个步骤也可采用其他穿插顺序来进行。本发明不限定得到两个推荐列表的过程中各个步骤的执行顺序,只需要在得到两个推荐项目列表后,将两者进行整合得到总推荐列表即可。

可以理解的是,由于目前采用二部图网络进行推荐时,主要考虑的是用户对项目的历史行为关系,所利用的数据信息很少,而目前的项目通常是具有标签信息的,标签作为项目的重要特征,其数量也能一定程度上反映用户的兴趣程度。因此,若将项目的标签也作为用户兴趣的体现,综合项目标签的设置情况对项目进行推荐,则能够进一步增加推荐列表内的项目的多样性。

在一种优选实施例中,由于标签的数量也会反映用户的兴趣程度,因此可将标签数量综合进偏爱度的计算过程,这种情况下,偏爱度计算关系式包括:

其中,为用户ui对项目ij的偏爱度,r(ui,ij)为用户ui对项目ij的评分数据,为全部用户对项目ij的评分数据的平均值,为全部用户对项目ij的评分数据的方差,为用户ui对项目ij所打的标签个数,为用户ui为全部项目打过的标签个数。

可以理解的是,因为用户通常会对自己较为偏爱的项目打较多的标签,而对自己不感兴趣的项目通常不打标签,因此通过用户对某个项目所打标签的数量以及用户对全部项目所打标签总数之间的比例,也能够一定程度上反映出用户对该项目的偏爱程度。将标签数量综合进偏爱度的计算关系式中,能够使得计算得到的偏爱值更加符合用户的实际情况,进而使得最终得到的推荐列表更为准确。

并且,本实施例中,利用用户对该项目所打的标签数与同一用户对全部项目所打的标签数进行作比,而不是利用用户对该项目所打的标签数与该项目包含的全部标签数作比,是因为不同的用户具有不同的打标签的习惯,有些人喜欢打很多的标签,而有些人则仅会对自己特别感兴趣的项目打标签,因此,该项目所包含的全部标签数受到多个用户的习惯的影响,无法作为某一用户对该项目的兴趣程度的比较基准,这种比较没有意义,只有用户对该项目所打的标签数与同一用户对全部项目所打的标签数之间的比较,才能够反映出该用户对该项目的兴趣程度。

具体的,项目-标签二部图的构建过程为:

将各个项目以及各个标签均作为图像标点,得到一排项目标点以及一排标签标点;

分别将每个项目标点与该项目包含的各个标签对应的标签标点建立连接,连接线的权重均设置为1,得到项目-标签二部图。

即若一个项目不包含某个标签的话,则该项目标点与该标签标点之间不建立连接线。

在优选实施例中,为了简化操作,项目-标签二部图的构建可直接在用户-项目二部图的基础上进行;即在用户-项目二部图的基础上,增设一排标签标点,然后在用户-项目二部图中的项目标点与新增的标签标点之间建立连接。此时得到的图为用户-项目-标签三部图。

想要实现上述目的,项目-标签二部图的构建需要在用户-项目二部图构建完毕后进行;此时包含两种情况,一种是项目-标签二部图在用户-项目二部图最终构建完毕后(步骤s5之后)再进行构建;另一种是在构建用户-项目二部图时首先构建了初始的用户-项目二部图的情况下,则项目-标签二部图的构建在初始的用户-项目二部图的基础上进行。具体采用以上哪种顺序构建项目-标签二部图本发明不作具体限定。另外,由于本发明不限定项目-标签二部图与用户-项目二部图的构建顺序,因此,也可首先构建项目-标签二部图,之后在项目-标签二部图的基础上增设用户标点,来构建用户-项目二部图,从而得到用户-项目-标签三部图。参见图3所示,图3为本发明提供的一种用户-项目-标签三部图的示意图。

具体采用以上哪种方式来得到用户-项目以及项目-标签之间的连线关系,本发明不作具体限定。

作为优选的,步骤s9的过程具体为:

将第一推荐项目列表与第二推荐项目列表内的项目求并集,得到初始推荐列表;

将每个项目在第一推荐项目列表与第二推荐项目列表内的权重带入权重关系式,并将计算后的权重数值作为该项目在初始推荐列表内的权重,权重关系式为:

l=λl1+(1-λ)l2;

其中,l为项目计算后的权重数值,λ为固定比重参量,l1为该项目在第一推荐项目列表内的权重,l2为该项目在第二推荐项目列表内的权重。

可以理解的是,由于第一推荐项目列表是根据用户偏爱度以及评分数据得到的,相比依据标签得到的第二推荐项目列表,其包含的项目通常更为热门,也更符合用户兴趣,因此,第一推荐项目列表内的项目在求和时所占的比重,应该要高于第二推荐项目列表内的项目所占的比重,故通过设置λ,即可实现两个推荐项目列表内的项目在求和时所占的比重大小。通常λ设置为大于0.5小于1的数值,当然,本发明不限定λ的具体数值。

在其他实施例中,也可以直接将两个推荐项目列表求和,即两个推荐项目列表中的项目求并集,每个项目的权重直接求和。当然,初始推荐列表内每个项目的权重值还可采用其他计算方式,本发明不作具体限定。

本发明提供了一种基于推荐系统的项目推荐方法,获取各个用户对每个项目的评分数据后,依据用户对一个项目的评分数据及全部用户对该项目的平均评分来计算用户对该项目的偏爱度,进而综合偏爱度和对应的评分数据来作为用户-项目二部图内用户与项目的连接线上的权重,使得后续对用户-项目二部图进行随机游走后得到的第一推荐项目列表内的推荐内容,也综合考虑到了用户的偏爱度以及用户评分的影响。可以理解的是,个别用户评分高的项目,表面该用户偏爱该项目,即用户对该项目的偏爱度就高,但是不表明该项目属于热门项目,本发明通过将偏爱度与评分均作为影响推荐的因素,则最终得到的第一推荐项目列表内既包括热门项目(即多数用户评分高的项目),又包含部分用户比较偏爱但是整体评分不高的项目,从而使最终得到的推荐项目类型增多,提高了推荐项目的多样性。

本发明还提供了一种基于推荐系统的项目推荐装置,参见图5所示,图5为本发明提供的另一种基于推荐系统的项目推荐装置的结构示意图。该装置包括:

评分获取模块1,用于获取各个用户对每个项目的评分数据;

偏爱度计算模块2,用于分别依据各个用户对每个项目的评分数据以及各个项目的平均评分数据,计算得到各个用户对每个项目的偏爱度;

关联权重计算模块3,用于将各个偏爱度值与对应的评分数据进行整合,得到各个用户对每个项目的关联权重;

第一二部图构建模块4,用于依据关联权重构建各个用户与各个项目之间的用户-项目二部图;

第一推荐列表生成模块5,用于依据随机游走算法对用户-项目二部图进行随机游走,得到第一推荐项目列表。

作为优选的,该装置还包括:

标签获取模块6,用于获取各个项目的标签;

第二二部图构建模块7,用于依据各个项目的标签构建项目-标签二部图;

第二推荐列表生成模块8,用于对项目-标签二部图依据热传导算法进行计算,得到第二推荐项目列表;

整合模块9,用于将第一推荐项目列表与第二推荐项目列表进行整合,得到总推荐列表。

本发明还提供了一种一种基于推荐系统的项目推荐设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如以上任一项所述的项目推荐方法的步骤。

以上的几种具体实施方式仅是本发明的优选实施方式,以上几种具体实施例可以任意组合,组合后得到的实施例也在本发明的保护范围之内。应当指出,对于本技术领域的普通技术人员来说,相关专业技术人员在不脱离本发明精神和构思前提下推演出的其他改进和变化,均应包含在本发明的保护范围之内。

还需要说明的是术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1