一种用于提高个性化推荐系统多样性的方法与流程

文档序号:11950362阅读:385来源:国知局
一种用于提高个性化推荐系统多样性的方法与流程
本发明属互联网、移动互联网和计算机网络领域,更具体地,涉及一种用于提高个性化推荐系统多样性的方法。
背景技术
:由于网络零售商领域存在着长尾效应,即商家销售额的百分之八十来自于其百分之二十的商品,而如果能够提零售商长尾物品的销售,那么网络零售商的营业额将成倍增长,且能满足用户独特偏好。因此近年来,结合计算机网络技术和大数据处理技术的个性化推荐系统在电子商务领域中逐步引起了人们的高度重视,并获得了广泛的应用。个性化推荐系统是为了实现基于用户的个人兴趣的信息过滤,个性化推荐系统是一个信息过滤系统,对用户的相关信息和数据进行分析和挖掘,从而发现用户兴趣所在,找到用户隐含的需求,然后为其推荐。通过长尾理论可知,如果商家所提供的服务或商品能够完美满足用户的个性化需求,用户对商家满意度和信任度都极高,那么必然会给商家带来巨大的利润,而个性化推荐系统是商家用于满足用户的个性化需求的重要手段,同时个性化推荐系统也是解决互联网零售商的长尾现象的重要手段。目前所广泛采用的用于个性化推荐系统的方法有基于用户的协同过滤方法、以及基于物品的协同过滤方法。针对基于用户的协同过滤方法而言,那些与某些相同物品有交互的用户被认为处于同一个邻域中。根据一些统计数据,如果在过去用户具有相似的偏好,那么在未来他们将继续拥有相似的偏好。如果有一个用户购买或者评价了一个新物品,那么这个物品将被推荐给该用户的邻居用户,该方法主要针对如何为大规模的用户进行推荐和计算用户之间的相似度。然而,该方法的缺陷在于,该方法并未考虑推荐系统的多样性问题,从而导致互联网零售商的长尾物品滞销。基于物品的协同过滤方法和上述基于用户的协同过滤方法基本相同,其区别在于,其需要计算物品的相似度,而非计算用户的相似度。然而该算法也未能考虑推荐系统的多样性问题,同样会导致互联网零售商的长尾物品滞销。技术实现要素:针对现有技术的以上缺陷或改进需求,本发明提供了一种用于提高个性化推荐系统多样性的方法,其目的在于,解决现有方法中存在的未考虑个性化推荐系统中的多样性,从而导致互联网零售商的长尾物品滞销的技术问题。为实现上述目的,按照本发明的一个方面,提供了一种提高个性化推荐系统多样性的方法,包括以下步骤:(1)从网站获取用户评分数据集,并且将该用户评分数据集以文本的方式进行存储,该用评分数据集中包括有用户ID、该用户ID对应的物品ID、以及该用户对该物品的评分值;(2)使用用于个性化推荐系统的推荐算法对步骤(1)获取的用户评分数据集进行预测和推荐处理,从而为用户评分数据集中的多个用户分别生成对应的推荐列表,该推荐列表中包括有用户ID、该用户ID对应的物品ID、以及该用户对该物品的预测评分值;(3)对用户评分数据集,求取其物品的流行程度,该流行程度是由对该物品进行评价的用户的人数、用户对该物品的评分值决定,将用户对物品的预测评分值与控制阈值进行比较,将大于或等于控制阈值的预测评分值对应的物品的流行程度进行排序,以得到最终的排序结果;(4)取排序结果中前端的多个结果作为推荐列表反馈给用户。优选地,步骤(2)具体包括以下子步骤:(2-1)根据获取的用户评分数据集,计算所有用户之间的相似度:sim(a,b)=Σp∈PR(a,p)R(b,p)Σp∈PR(a,p)2Σp∈PR(b,p)2]]>其中sim(a,b)表示用户a和b之间的相似度,P表示所有物品的集合,p表示集合P中的物品,R(a,p)和R(b,p)分别表示用户a和用户b对于物品p的评分值;(2-2)对于每个用户而言,选取与该用户相似度最高的前K个用户作为该用户的邻居用户,其中K是50到300之间的整数;(2-3)对于每个用户而言,对其K个邻居用户评分过的物品的评分值进行分析,以预测出该用户最有可能打高分的多个物品,并将该用户可能打高分的这些物品推荐给用户。优选地,步骤(2-3)具体使用以下公式:R*(u,i)=R(u)‾+kΣv∈N(u)(R(v,i)-R(v)‾)×sim(u,v)]]>其中k=1Σv∈N(u)sim(u,v);]]>将其代入上述公式后得到:R*(u,i)=R(u)‾+Σv∈N(u)(R(v,i)-R(v)‾)×sim(u,v)Σv∈N(u)|sim(u,v)|]]>其中R*(u,i)表示用户u对于物品i的预测评分值,是用户u对于其所有物品的平均评分值,k为归一化因子,N(u)表示用户u的所有邻居用户的集合。优选地,步骤(3)具体包括以下子步骤:(3-1)对用户评分数据集,根据对该用户评分数据集中物品进行评价的用户的人数、用户对该物品的评分值求取其物品的流行程度;(3-2)将用户对物品的预测评分值与控制阈值进行比较,将大于或等于控制阈值的预测评分值对应的物品的流行程度进行排序,以得到最终的排序结果。优选地,步骤(3-1)中获取物品的流行程度的过程可表示为其中rankPopularity(i)表示使用物品流行程度排序的方法,表示对于所有用户的集合U中的每个用户u而言,存在用户u对物品i的评分值R(u,i)的个数。优选地,步骤(3-1)中获取物品的流行程度的过程可表示为rankReversePrediction(i)=R*(u,i)其中rankReversePrediction(i)表示使用预测评分值倒序的方法,该预测评分值可表示物品的流行程度。优选地,步骤(3-1)中获取物品的流行程度的过程可表示为rankAverageRating(i)=R(i)‾]]>其中有R(i)‾=1|U(i)|Σu∈U(i)R(u,i)]]>rankAverageRating(i)表示使用物品平均评分值排序的方法;优选地,步骤(3-1)中获取物品的流行程度的过程可表示为rankAbsoluteLikeability(i)=|UH(i)|其中UH(i)={u∈U(i)|R(u,i)≥TH}rankAbsoluteLikeability(i)表示使用物品的绝对受欢迎程度,{u∈U(i)|R(u,i)≥TH}表示物品i被用户u打的评分值大于阈值TH的数量。优选地,步骤(3-1)中获取物品的流行程度的过程可表示为rankRelativeLikeability(i)=|UH(i)/U(i)|其中rankRelativeLikeability(i)表示物品相对受欢迎程度。优选地,步骤(3-1)中获取物品的流行程度的过程可表示为rankRatingVariance(i)=1|U(i)|Σu∈U(i)(R(u,i)-R(i)‾)2]]>其中rankRatingVariance(i)表示用户对物品的评分值偏离该物品平均评分值的程度。优选地,步骤(3-2)具体是采用以下公式:rankx(i,TR)=rankx(i),R*(u,i)∈[TR,Tmax]rankStandard(i),R*(u,i)∈[TH,TR)]]>其中,rankx(i,TR)表示使用控制阈值TR对物品i进行排序的函数,rankx(i)表示上物品的流行程度,Tmax表示评分值的上限(例如在5分制的打分系统中,该值就等于5),控制阈值TR∈[TH,Tmax],rankStandard(i)为现有标准的排序方法,且有:rankStandard(i)=R*(u,i)-1。按照本发明的另一方面,提供了一种提高个性化推荐系统多样性的系统,包括:第一模块,用于从网站获取用户评分数据集,并且将该用户评分数据集以文本的方式进行存储,该用评分数据集中包括有用户ID、该用户ID对应的物品ID、以及该用户对该物品的评分值;第二模块,用于使用用于个性化推荐系统的推荐算法对第一模块获取的用户评分数据集进行预测和推荐处理,从而为用户评分数据集中的多个用户分别生成对应的推荐列表,该推荐列表中包括有用户ID、该用户ID对应的物品ID、以及该用户对该物品的预测评分值;第三模块,用于对用户评分数据集,求取其物品的流行程度,该流行程度是由对该物品进行评价的用户的人数、用户对该物品的评分值决定,将用户对物品的预测评分值与控制阈值进行比较,将大于或等于控制阈值的预测评分值对应的物品的流行程度进行排序,以得到最终的排序结果;第四模块,用于取排序结果中前端的多个结果作为推荐列表反馈给用户。总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:1、与以往的个性化推荐系统中的方法比较,本发明是针对提高个性化推荐系统中的多样性而设计,在提高多样性指标上有显著提高,从而降低了互联网零售商的长尾效应所带来的物品滞销问题。2、本发明使用灵活,可以方便地被添加到现有的个性化推荐系统中,而不会改变该个性化推荐系统的核心架构,不会给原有的系统带来巨大的改变和负担。3、通过采用本发明方法中的步骤(3),保证了个性化推荐系统的准确性和多样性。4、通过本发明的步骤(3),可在较少牺牲推荐准确度的同时,大幅度提高推荐结果总体多样性。附图说明图1是本发明所适用的个性化推荐系统的处理结构图。图2是本发明基于用户的推荐系统的推荐流程示意图。图3是本发明选择邻居用户的示意图。图4是本发明基于阈值的排序算法的一般思想示意图。图5是本发明的实验设计图。图6是排序算法对准确度和多样性的影响的结果图,其中:(a)是使用基于流行度的方法,(b)是使用平均评分方法,(c)是使用绝对受欢迎程度方法,(d)是使用相对受欢迎程度方法,(e)是使用评分方差法,(f)是使用评分倒序法。图7是准确度损失和多样性之间关系结果图。图8是推荐物品中长尾物品所占比例图。图9是本发明用于提高个性化推荐系统多样性的方法的流程图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。本发明的整体思路在于,首先获取用户评分数据集,然后在评分数据集上使用常用推荐算法进行推荐,接下来对推荐结果进行阈值控制与排序,再将最终结果呈现给用户。通过对推荐结果进行重新排序,能够改变最终推荐结果的列表内容,从而能够提高系统多样性,同时在排序时使用阈值控制的方法,使得推荐物品尽可能为用户所喜欢物品,保证推荐系统的预测准确度。典型的个性化推荐系统处理结构如图1所示。在整个系统中,假设U(用户,即user)为参与到个性化推荐系统中的所有用户的集合,I(物品,即item)为系统中所有物品(如书籍、电影、音乐等)的集合,然后每个用户u∈U和物品i∈I的关系可以看做是R(u,i),R(u,i)和U、I之间的关系如下式所示:R:U×I→RatingR从实际意义上来看是一个评分,表明了一个用户u对物品i的偏爱程度。推荐系统包含两个步骤:预测和推荐。在推荐系统的第一步即预测任务是使用已知的评分数据来预测用户对没有评分物品的可能的分数。如图9所示,本发明提高个性化推荐系统多样性的方法包括以下步骤:(1)从网站获取用户评分数据集,并且将该用户评分数据集以文本的方式进行存储,该用评分数据集中包括有用户ID、该用户ID对应的物品ID、以及该用户对该物品的评分值;具体而言,在本发明中是采用网络爬虫的方法获取用户评分数据集;(2)使用用于个性化推荐系统的推荐算法对步骤(1)获取的用户评分数据集进行预测和推荐处理,从而为用户评分数据集中的多个用户分别生成对应的推荐列表,该推荐列表中包括有用户ID、该用户ID对应的物品ID、以及该用户对该物品的预测评分值;(3)对用户评分数据集,求取其物品的流行程度,该流行程度是由对该物品进行评价的用户的人数、用户对该物品的评分值决定,将用户对物品的预测评分值与控制阈值进行比较,将大于或等于控制阈值的预测评分值对应的物品的流行程度进行排序,以得到最终的排序结果;(4)取排序结果中前端的多个结果作为推荐列表反馈给用户;在本发明中,取位于排序结果前端的5个结果作为推荐列表反馈给用户。如图2所示,本发明方法的步骤(2)具体包括以下子步骤:(2-1)根据获取的用户评分数据集,计算所有用户之间的相似度;具体而言,本步骤是采用以下公式:sim(a,b)=Σp∈PR(a,p)R(b,p)Σp∈PR(a,p)2Σp∈PR(b,p)2]]>其中sim(a,b)表示用户a和b之间的相似度,P表示所有物品的集合,p表示集合P中的物品,R(a,p)和R(b,p)分别表示用户a和用户b对于物品p的评分值;(2-2)对于每个用户而言,选取与该用户相似度最高的前K个用户作为该用户的邻居用户;在本实施方式中,K的取值范围是50到300之间的整数;如图3所示。(2-3)对于每个用户而言,对其K个邻居用户评分过的物品的评分值进行分析,以预测出该用户最有可能打高分的多个物品,并将该用户可能打高分的这些物品推荐给用户;具体而言,本步骤中是具体使用以下公式:R*(u,i)=R(u)‾+kΣv∈N(u)(R(v,i)-R(v)‾)×sim(u,v)]]>其中,将其代入上述公式后得到:R*(u,i)=R(u)‾+Σv∈N(u)(R(v,i)-R(v)‾)×sim(u,v)Σv∈N(u)|sim(u,v)|]]>其中R*(u,i)表示用户u对于物品i的预测评分值,是用户u对于其所有物品的平均评分值,k为归一化因子,N(u)表示用户u的所有邻居用户的集合;本发明方法的步骤(3)具体包括以下子步骤:(3-1)对用户评分数据集,根据对该用户评分数据集中物品进行评价的用户的人数、用户对该物品的评分值求取其物品的流行程度;具体而言,本发明获取物品的流行程度的过程可以采用以下六种方法进行计算:第一种、其中rankPopularity(i)表示使用物品流行程度排序的方法,表示对于所有用户的集合U中的每个用户u而言,存在用户u对物品i的评分值R(u,i)的个数。第二种、rankReversePrediction(i)=R*(u,i)其中rankReversePrediction(i)表示使用预测评分值倒序的方法,该预测评分值可表示物品的流行程度。第三种、其中有R(i)‾=1|U(i)|Σu∈U(i)R(u,i)]]>rankAverageRating(i)表示使用物品平均评分值排序的方法,第四种、rankAbsoluteLikeability(i)=|UH(i)|其中UH(i)={u∈U(i)|R(u,i)≥TH}rankAbsoluteLikeability(i)表示使用物品的绝对受欢迎程度,{u∈U(i)|R(u,i)≥TH}表示物品i被用户u打的评分值大于阈值TH的数量,在本实施方式中,阈值TH的取值可以自由设定,该值越小,表示用户对于物品的评分标准越严格,反之则表示越宽松,在本发明中其取值为3.5(在标准5分制满分的前提下);第五种、rankRelativeLikeability(i)=|UH(i)/U(i)|其中rankRelativeLikeability(i)表示物品相对受欢迎程度。第六种、其中rankRatingVariance(i)表示用户对物品的评分值偏离该物品平均评分值的程度。(3-2)将用户对物品的预测评分值与控制阈值进行比较,将大于或等于控制阈值的预测评分值对应的物品的流行程度进行排序,以得到最终的排序结果。本步骤具体是采用以下公式:rankx(i,TR)=rankx(i),R*(u,i)∈[TR,Tmax]rankStandard(i),R*(u,i)∈[TH,TR)]]>其中,rankx(i,TR)表示使用控制阈值TR对物品i进行排序的函数,rankx(i)表示上述步骤(3-1)中所获取的物品的流行程度,Tmax表示评分值的上限(例如在5分制的打分系统中,该值就等于5),控制阈值TR∈[TH,Tmax],rankStandard(i)为现有标准的排序方法,且有:rankStandard(i)=R*(u,i)-1在这里,当引入了控制阈值TR后,使得那些预测评分高于TR的按照原有的rankx(i)的结果进行排序,而那些预测评分低于TR的,则使用rankStandard(i)来进行排序。同时,还会控制所有预测评分高于TR的物品都排在所有预测评分低于TR的物品的前面。那么,当增大TR的值时,将筛选出更高准确度和更低多样性的物品(因为这样会越来越接近标准排序;若减小TR的值,那么会使得函数rankX(i,TR)更接近于rankx(i),这种情况下会提高系统的准确度并降低其多样性。因此,可以通过选择不同的控制阈值TR,来实现准确度和多样性之间的关系平衡。基于阈值的排序算法的一般思想如图4所示。如图4(a)所示,使用标准的排序方法,按照预测评分直接对候选物品进行排序,预测评分值越高,物品排序越靠前。然后选择预测评分最高的前5个物品推荐给用户,并且为保证所推荐物品都符合用户偏好,选择物品的评分都在TH之上,推荐系统整体的推荐质量如旁边直方图所示。如图4(b)所示,使用了排序函数rankx(i),此处使用的是基于流行度的排序方法,然后得到了一组新的推荐列表,将流行度较低,但预测评分在TH之上的物品推荐给用户。在这组列表中,用户会看到一些小众物品,这部分的物品在整个推荐系统中处于长尾部分,虽然它们的流行度不高,但是用户对这些物品的评价可能是喜欢(预测评分值高于TH),说明这些物品和用户的相关程度还不错,使用了这种排序的方法之后,能够提高系统的多样性,同时也降低了系统的准确度,系统的整体推荐质量仍如旁边直方图所示。如图4(c)所示,通过调整控制阈值TR,可以选择将不同的物品推荐给用户,达到尽量减少降低准确度的同时,提高系统的多样性的目的。为了能够进行公平合理的性能评估,本发明给出个性化推荐系统评价过程中几个定量评价指标的定义。(1)准确度在的评分数据中,评分区间值为1~5,较高的数值代表用户更加偏爱这个物品。根据一般的推荐系统的定义,将评分高于3.5(高评分物品的阈值,记为TH)的作为“高排名”物品,将评分低于3.5的记为“非高排名”的物品。此外,在实际的推荐系统中,因为用户通常只关注于几个最相关的推荐物品,因此推荐系统通常会给出排名最高的N个物品,将推荐给用户u的N个物品记为:LN(u)={i1,...,iN}其中,R*(u,ik)≥TH,k∈{1,2,...,N}因此在的文章中,评估推荐系统的准确度基于真正的高排名物品所占比例,高排名物品所占比例记为correct(LN(u)),在这中间找出N个最相关的“高排名”物品推荐给用户,即为precision-in-top-N(即前N位推荐物品的准确度),公式如下:precision-in-top-N=Σu∈U|correct(LN(u))|Σu∈U|LN(u)|]]>其中,correct(LN(u))={i∈LN(u)|R(u,i)≥TH}但是依靠准确度并不能很好的找到用户所需的推荐物品。推荐系统不仅仅需要准确,还需要有实用价值。接下来,引入个性化推荐系统的另一个评价指标,即推荐系统的多样性。(2)多样性多样性用于评估推荐系统对长尾物品的发掘能力。多样性可以用不同的方法来进行评估,在本文中,使用推荐系统能够推荐的所有不同物品的数量来进行评估,公式如下:diversity-in-top-N=|∪u∈ULN(u)|]]>其中diversity-in-top-N表示前N位推荐物品的多样性。当系统的多样性较高时可以保证将更多的物品展示给用户,对于热门推荐来说,由于热门物品所占的比例很大,所以导致多样性很低。对于一个好的个性化推荐系统,应该需要比较高的多样性,这样才能让更多的物品获得被推荐的机会。同时多样性也是产品提供商非常关心的指标,多样性越高的系统可以将每个物品都推荐给至少一个用户。实验实例为了验证所基于阈值控制个性化推荐系统排序方法确实能够在损失极小准确度的情况下提升推荐系统的多样性,通过以下实验步骤来验证方案的可行性:(1)获取MovieLens和Netflix原始数据集。(2)因原始数据集中包含部分与本算法无关的信息数据,并且userId和movieId的值过大,不利于计算机进行运算,因此需要对原始数据集进行去中心化处理,即去掉数据集中的类型、时间戳等多余信息,并将评分数据重新进行映射,使得userId和movieId的值从1开始计数。(3)将源数据集分为训练集(包含60%源数据)和测试集(包含40%源数据),并保证测试集中至少包含一个用户的5条电影评分数据。(4)在训练集上分别使用基于用户的推荐算法、基于物品推荐算法和基于奇异值分解推荐算法,得到MovieLens和Netflix的总计六组评分预测数据列表。(5)在以上推荐列表上使用基于排序的方法,得到推荐列表的重排列表,即呈现给用户的推荐列表。(6)评估提出解决方案的性能,precision-in-top-N和diversity-in-top-N。实验设计如图5所示。实验分别在MovieLens数据集和Netflix数据集上对比使用6种不同排序方法对推荐结果的影响及推荐系统的预测准确度和多样性的变化。实验中推荐系统的评测指标是precision-in-top-N和diversity-in-top-N。在实验过程中,使用的是离线验证的方法进行实验,同时使用到了交叉验证的方法来做实验。在离线验证的一般实验方法中,首先要将数据集划分为训练集(TrainingSet)和测试集(TestSet)两个部分,训练集中包含60%的原始评分数据,测试集中包含40%的原始评分数据。然后基于训练集中的评分数据,使用推荐算法对推荐结果进行预测,并将预测结果与测试集中的实际结果进行比较,计算出预测准确度和多样性等评测指标。在实验过程中,随机生成5组训练集和5组测试集,最后将5次实验结果的平均值作为实验的整体结果,最大程度上覆盖了每条评分数据,保证实验数据的准确性。图6通过步骤(3-1)中六种方法得到的预测准确度和多样性的性能比较,验证了本发明提出的个性化推荐系统中多样性解决方案设计和基于控制阈值的个性化推荐系统排序方法的可行性。图中数据均为在Netflix数据集上使用不同的推荐算法再进行控制阈值排序后得到的多样性和准确度之间的关系。本发明的控制阈值排序方法可以在不同程度上提高多样性,同时预测的最佳结果取决于所选择的数据集和所选用的推荐方法。同时,个性化推荐系统的设计人员可以根据不同的应用场景及搜集到的数据来灵活地选择各种排序方式从而达到最佳推荐效果。图7提供了本发明步骤(3-1)中所采用的六种方法中损失准确度和多样性之间的关系。图中比较了所有的基于控制阈值的排序算法之间的准确度损失和多样性增益之间的关系。从图中可以看出,所提出的算法可以通过牺牲系统的预测准确度来提高多样性,使用不同的推荐算法和排序方法在不同的数据集上表现情况并不相同。在本次实验中,分别选择基于流行度的排序方法和基于物品相对受欢迎程度排序方法可以获得较好的多样性增益。图8是使用本发明方法后对于个性化推荐系统长尾效应的性能评估。图中计算了长尾物品在所有用户推荐物品中的百分比。因为评估个性化推荐系统的多样性是通过计算所有不同的推荐物品的个数,因此可以通过推荐一些新物品给少部分用户来提高多样性,因而无法确定本文所提出的方法是否真的能够改变物品的长尾分布。在这里,评估了排序算法对长尾分布的影响。根据长尾分布的“二八法则”,定义20%的物品为畅销物品,剩下的80%为长尾物品。从图中可以看出,提出的重新排序算法能够明显提高长尾物品的推荐百分比。因此,在这里就证明了所提出的排序算法不仅仅提高的是多样性的指标,而且能够有效改善长尾物品的占比。这样便能够从整体上改善长尾物品的分布。本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1