基于遗传算法和新型相似度计算策略的协同过滤推荐算法的制作方法

文档序号:12673781阅读:298来源:国知局
基于遗传算法和新型相似度计算策略的协同过滤推荐算法的制作方法与工艺
本发明涉及个性化推荐系统技术,尤其涉及一种基于遗传算法和新型相似度计算策略的协同过滤推荐算法。
背景技术
:随着互联网和无线通信技术的迅猛发展,给人们日常生活带来了海量信息,如何在信息爆炸的年代获取有用信息成为科技工作者们急需解决的一个问题。个性化推荐是解决信息爆炸和信息过载的一种重要手段,它是根据用户的兴趣特点和购买行为,向用户推荐用户可能会感兴趣的信息和商品。推荐算法是个性化推荐中的重要组成部分,是利用数学和计算机算法等知识,推测出用户可能喜欢的东西。基于内容的过滤推荐、协同过滤推荐和混合推荐是三类较常见的推荐算法。基于内容的推荐算法根据物品的自身属性及其描述,如物品的颜色、材质等属性,找出与这些物品相似的物品,然后推荐给目标用户。但由于物品的属性往往不容易获取,基于内容的推荐算法用途受限。协同过滤算法则是利用用户过去的行为,如浏览记录、对物品的评分和购买记录等,为用户进行推荐,该类算法因其简单易实现且推荐质量好,成为当前最为流行的一种推荐算法。最后一类基于混合的推荐算法则是将基于内容的推荐算法和基于协同过滤技术的推荐算法相结合,从而提高推荐结果的质量。相似度的计算是基于相似度的协同过滤算法的关键技术,推荐算法可以根据相似度计算方案得出的用户或物品的相似度,找到目标对象(用户或物品)的邻居,即最相似的对象,进行推荐。现有的相似度计算方案大都忽略了用户的个性化评分习惯这一因素,有的用户比较苛刻,评分总体较低,然而有的用户比较宽容,对于相同满意度的商品,给出的评分较高。例如,在一个5级评分体系中,将4-5分的划为喜欢,低于4分的划分为不喜欢。但是,这种划分方式过于笼统,忽略了不同的人具有不同的评分习惯。不同的人对喜欢的界定不一样,有的人3分就能够表达他对某个物品的喜欢,而有的人则是5分才表示对某个物品的喜欢。有的人比较苛刻,对事物的品味较高,一部制作精美的电影,对于他来说也只是给出了3分的及格分数。而另一些人,比较慷慨大方,他们看到一部普通的电影,可能也会给出4分的高分。没有考虑用户个性化评分习惯这一因素的相似度计算方案所得到的推荐性能不够理想。另一方面,相似度计算方案中会涉及到多个权重因子的赋值,传统方法采用经验值或通过手工调试设置权重因子的值,这些方法费时费力且效果不佳。技术实现要素:针对以上两个问题,本申请研究一种基于遗传算法和新型相似度计算方案的协同过滤算法,算法将每个用户的个体评分均值与方差充分利用到物品的相似度计算方案中,并用于基于物品推荐的协同过滤算法中。此外,算法利用遗传算法自动调整相似度计算公式中的权重值,并通过遗传算法控制推荐算法建模过程中的平均绝对偏差值。一种基于遗传算法和新型相似度计算策略的协同过滤推荐算法,适用于评分范围较小或者评分情况小的情况,包括以下步骤:S1,收集用户对物品的原始评分;S2,计算每个用户的平均评分习惯,将用户对物品的评分转换成喜欢与不喜欢,获得用户对物品的一个偏好矩阵;S3,计算物品与物品之间的相似度:引入向量来统计对任意两个物品喜欢的组合情况各自出现的次数,及给定权向量表示在用户评分中各种组合情况的重要程度,通过向量及权向量的函数计算两个物品x,y的相似度;S4,根据预测的分数对物品排序,将前N个物品线上推荐给目标用户。其中,两个物品x,y的相似度通过下列公式计算得出,其中且wi∈[0,1]。一种基于遗传算法和新型相似度计算策略的协同过滤推荐算法,适用于用户评分范围较大或者取值情况比较多的情况,包括以下步骤:S1,收集用户对物品的原始评分;S2,利用用户对物品的历史评分均值和方差来判断用户的评分习惯,进而计算出用户对物品的偏好集合;S3,计算物品与物品之间的相似度:引入向量来统计对任意两个物品喜欢的组合情况各自出现的次数,及给定权向量表示在用户评分中各种组合情况的重要程度,通过向量及权向量的函数计算两个物品x,y的相似度;S4,根据预测的分数对物品排序,将前N个物品线上推荐给目标用户。其中,用户对物品的偏好集合通过下列公式计算得出,其中是指用户u对物品i的偏好程度;avgu用户u的平均评分;varu是用户u的评分方差;参数λ为可以根据需要进行设置;p是偏好集合里的最差偏好度,P偏好集合中的最高偏好度。p和P都是可以量化的整数;Z是整数集合;如果则让如果则其中,两个物品x,y的相似度通过下列公式计算得出,基于遗传算法和新型相似度计算策略的协同过滤推荐算法,所述的权向量的选择包括将权向量编码成遗传算法中的个体,随机初始产生一定数量的权向量然后评估每个在训练数据集上的平均绝对偏差,接着通过遗传算子产生新的子代个体,逐代优化从而发现适合数据集的权向量所述的遗传算法依靠适应度函数的大小来区分每个个体的优劣。确定适应度函数包括以下步骤:S1,利用式3获得训练物品集中每对物品之间的相似度;S2,通过相似度值获得物品i最相似的k个物品,N(i);S3,对于训练集中的每个用户u,通过式5预测用户u在物品i上的评分;分别为物品i和j的平均评分,为用户u对物品j的实际评分,k为i,j两个物品同时被评价的用户个数;S4,利用式6计算遗传算法中的个体在训练集上的适应值函数:遗传算子包括选择、交叉和变异。通过实验对比和结果分析表明,本专利提出的基于遗传算法和新型相似度计算策略的协同过滤推荐算法在推荐准确度、召回率等指标上都有明显的提高。附图说明图1遗传算法中的染色体编码方式;图2基于遗传算法和新型相似度计算策略的协同过滤推荐算法总体框架图;图3各种算法在MovieLens(1M)数据集上的随着近邻物品个数(K-Neighbors)变化的MAE值对比;图4各种算法在Yahoo!Music数据集上的随着近邻物品个数(K-Neighbors)变化的MAE值对比;图5各种算法在Yahoo!Movie数据集上的随着近邻物品个数(K-Neighbors)变化的MAE值对比;图6各种算法在MovieLens(1M)数据集上的随着推荐物品数量变化的准确度对比;图7各种算法在Yahoo!Music数据集上的随着推荐物品数量变化的准确度对比;图8各种算法在Yahoo!Movie数据集上的随着推荐物品数量变化的准确度对比;图9各种算法在MovieLens(1M)数据集上的随着推荐物品数量变化的召回率对比;图10各种算法在Yahoo!Music数据集上的随着推荐物品数量变化的召回率对比;图11各种算法在Yahoo!Music数据集上的随着推荐物品数量变化的召回率对比。具体实施方式为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。假设,某个小型购物系统中,只有五个用户(u1,u2,…,u5)和九个项目(i1,i2,…,i9),用户对物品的评分范围是1-5,评分矩阵如表1所示。我们通过下面的步骤来计算物品与物品之间的相似度。表1用户的原始评分矩阵假设,某个小型购物系统中,只有五个用户(u1,u2,…,u5)和九个项目(i1,i2,…,i9),用户对物品的评分范围是1-5,评分矩阵如表1所示。我们通过下面的步骤来计算物品与物品之间的相似度。表1用户的原始评分矩阵i1i2i3i4i5i6i7i8i9u12--2----5u235-4---15u35--3-41--u43--311---u52--1--211[0053]首先,计算每个用户的平均评分习惯,如表2所示。将用户对物品的评分转换成喜欢(like)与不喜欢(unlike),获得用户对物品的一个偏好矩阵,如表3所示。例如,在表1中,用户u3的平均分数是3.25。在表2中,用户u3对i6的评分是4分,这比u3的平均分要高。因此,可以判定u3对i6的偏好是喜欢(表示为1)。反之,表2中,u3对i7的评分只有1分,该分数低于用户u3的平均值,从而u3是不喜欢i7的(表示为0)。表2用户的平均评分用户u1u2u3u4u5平均分33.653.2521.4表3用户的偏好矩阵表(0:不喜欢,1:喜欢)i1i2i3i4i5i6i7i8i9u10--0----1u201-1---01u31--0-10--u41--100---u51-0--100任意两个物品,假定某个用户都对它们进行了评价,那么该用户对这两个物品的偏好情况有四种:都喜欢,都不喜欢,喜欢第一个不喜欢第二个或者不喜欢第一个但喜欢第二个。以表4中的i1和i4为例,用户u1都不喜欢这两个物品(combination0),用户u2不喜欢i1但是喜欢i4(combination1),用户u3喜欢i1但是不喜欢i4(combination2)和用户u4都喜欢这两个物品(combination3),具体如表4所示。表4用户对两个物品的偏好组合情况(以i1和i4为例)i1i4Combination000Combination101Combination210Combination311为了获得两个物品的相似度计算公式,需要引入一个新的向量来统计对任意两个物品上述四种情况各自出现的次数。以表5中的i1和i4为例,总共有5名用户同时对它们进行了评价,其中不喜欢它俩的只有用户u1因此向量为1。只有u2不喜欢i1但是喜欢i4,所以的第二分量也为1。u3和u5对这两个项目都持有喜欢i1但是不喜欢i4,所以为2。最后只有用户u4都喜欢这两个物品所以也为1,如表5所示。表5每种偏好组合的用户数量针对上述四种情况,如果给定一个权向量且wi∈[0,1],这个权向量表示在用户评分中,各种组合情况的重要程度,那么就可以通过这个权向量将上述的四种情况进行相加。我们以这个加权和为这两个物品x,y的相似度值,如式1所示。上文中,我们只是简单地将用户对物品的偏好划分成喜欢和不喜欢两种情况,这在评分范围较小或者评分情况小的情况下是比较合理的。但是,如果用户评分范围较大或者取值情况比较多,直接将用户对物品的偏好划分成喜欢和不喜欢这两种情况显然不够。此时,需要更多的情况来细化用户对物品的喜好程度。例如在jester笑话数据集中,用户可以对一个笑话的评分范围是-10到10,如果单纯地将用户对笑话的评分做二值化处理将不能够准确地描述用户的喜好。这时,可以通过同时引入用户自身的方差和平均值来进行划分,假设集合D为用户对物品的偏好集合,则同一个用户对两个物品的偏好情况为|D|2。具体公式为:其中是指用户u对物品i的偏好程度;avgu用户u的平均评分;varu是用户u的评分方差;参数λ为可以根据需要进行设置;p是偏好集合里的最差偏好度,P偏好集合中的最高偏好度。p和P都是可以量化的整数。Z是整数集合。如果则让如果则最后,物品x和y的相似度方案的扩展计算公式为:为了获得一个与数据集合适的相似度计算方案,通过将权向量编码成遗传算法中的个体,然后优化训练集的平均误差率。一旦获得合适的权向量,选择该权向量对应的相似度计算方案为推荐算法的相似度计算方案。遗传算法染色体编码:采用的编码方式为二进制编码。由于权向量的取值范围在0-1的实数,为了提高解的精度,所提的方法中每个权向量的分量wi用30位的二进制位表示。则一个可行的权向量的染色体编码,如图1所示。一旦生成上述的染色体,则对应的权向量的分量,如式4所示:初始种群化为了尽可能的发现可行域内的解,在可行域内随机生成解个体组成初始种群。适应值函数不同的权重向量对应不同的相似度方案,不同的相似度方案导致算法产生不同的预测准确性。选用训练集的平均绝对误差作为适应值函数,具体做法如下:1)利用式3获得训练物品集中每对物品之间的相似度;2)通过相似度值获得物品i最相似的k个物品,N(i);3)对于训练集中的每个用户u,通过式5预测用户u在物品i上的评分;分别为物品i和j的平均评分,为用户u对物品j的实际评分,k为i,j两个物品同时被评价的用户个数。4)利用式6计算遗传算法中的个体在训练集上的适应值函数:遗传操作和结束条件最主要的遗传算子有三个:选择、交叉和变异。通过这三个操作算子能够获得最终的合适的权向量。选择:选择轮盘赌方法。选择个体的概率由个体的适应值决定。交叉:选用单点交叉。随机选择一个交叉位点交换两个父代个体对应的基因。变异:选用随机变异的方式对染色体二进制位转换。此外,为了加快种群的找到合适相似度方案的速度,提出的基于遗传算法的协同过滤推荐采用了精英保留策略保留种群中的2个最优秀的个体,使其直接进入下一代种群进行繁殖。采用的结束条件是种群中存在一个个体的适应函数值小于一个常量θ,不同的数据集,θ值不一样。如果一直没有发现个体值小于对应的常量,那么种群在繁殖100代后结束,得到的最优个体为最后对应的权向量。线下训练和线上推荐在线下训练了了一个模型后,我们利用这个模型为每个目标用户对他们的未知物品做预测,然后根据预测的分数对这些物品排序,将前N个物品线上推荐给该目标用户(Top-N推荐)。本发明的实验效果:一、实验环境运行环境:4核,IntelCorei5处理器,8G内存,Windows7操作系统二、数据集的选择选择了三个来自现实生活的数据集。(1)MovieLens(1M):MovieLens数据集由明尼苏达大学从MovieLens网站中收集的关于电影评分的数据,该数据集有很多个版本,成为推荐系统的标准测试集之一。采用的是MovieLens1M版本,具有6040个用户,物品3952个,共有评分4149704项,评分范围是1到5之间的整数,数据集的稀疏性为0.0419。(2)Yahoo!Music:该数据集是由Yahoo公司提供的真实数据集,是Yahoo公司为推荐系统的测试而提供的用户通过收听Yahoo音乐网站对音乐的评分。该数据集具有15400个用户,物品1000个,共有评分1000209项,评分范围是1到5之间的整数,数据集的稀疏性为0.0273。(3)Yahoo!Movie:该数据集是由Yahoo公司提供的真实数据集,是Yahoo公司为推荐系统的测试而提供的用户通过观看Yahoo电影网站对电影的评分。具有7642个用户,物品11915个,共有评分111369项,评分范围是1到5之间的整数,数据集的稀疏性为0.0024。二、方法选择本专利提出的算法简称为AdjustedSimilartiy_GA,选择了如下五种推荐算法中最先进和最常用的相似度计算方法作为对比算法:(1)皮尔逊相关(PearsonCorrelation,COR):也叫相关相似度,两物品i,j的相似度计算方法如式(7)所示:(2)余弦相似度(Cosine,COS):余弦相似度计算物品i,j的相似度方法如下:(3)调整余弦相似度(AdjustedCosine,ACOS):调整的余弦相似度计算物品i,j的相似度方法如下:(4)均方差距离(MeanSquareDifference,MSD):均方差距离计算物品i,j的相似度方法如下:(5)基于遗传算法的推荐算法(DIFFSCORE_GA):此算法也是引入遗传算法来优化训练过程中的平均绝对偏差,获得多个合适的权向量wi的值,两物品i和j的相似度计算方法如下:在以上式子(7)-(11)中,是第k个用户对第i个物品的评分,是物品i的平均分,是用户u的平均分,常数C是两个用户共同评价过物品的集合,rmax和rmin分别代表整个数据集中的最高评分和最低评分,M和m是用户评分的最高值和最低值,b是共同评价这两个物品的用户个数,ai是同一个用户对这两个物品评分的绝对产值为i的用户个数。三、性能评价指标实验中采用了以下几种性能评价指标,其中U是用户集,I是物品集,是用户u对物品i的预测评分,是用户u对物品i的实际评分,Recommendationu是给用户u的推荐物品列表,Interestingu是用户u喜欢的物品列表:(1)平均绝对偏差(MeanAverageError,MAE)(2)准确度(Precision)(3)召回率(Recall)四、实验结果对比分别在MovieLens(1M),Yahoo!Music和Yahoo!Movie三个数据集上,将AdjustedSimilarity_GA与COR,COS,ACOS,MSD,DIFFSCORE_GA对比,主要从MAE,Precision和Recall三个指标作比较。算法独立运行10次,结果取平均值。图3,图4和图5给出了各种对比算法在MovieLens(1M)、Yahoo!Music和Yahoo!Movie三个数据集上随着近邻数目的变化,平均绝对偏差(MAE)的变化曲线对比。由图可看出,MAE随着邻居个数的增加而越来越低。特别是当邻居个数较小时,本专利所提的相似度算法能够获得比传统相似度算法和DIFFSCORE_GA中的算法获得更小的错误率。随着邻居个数的增加,各个算法的MAE逐渐接近。本专利所提的相似度方案能够在物品近邻个数较小的情况下,使得推荐算法获得较好的预测准确度。图6,图7和图8给出了各种相似度算法在MovieLens(1M)、Yahoo!Music和Yahoo!Movie三个数据集上随着推荐数目的变化,准确率(Precision)的对比情况。从图中可以看到,准确率随着推荐物品的数目增加而逐渐降低,本专利所提出的相似度计算方案能够使得推荐算法的准确率在各种推荐物品的数目情况下,比对比算法的准确率都高。图9,图10和图11为各种相似度算法在MovieLens(1M)、Yahoo!Music和Yahoo!Movie三个数据集上随着推荐数目的变化,召回率(Recall)的对比情况。从图中得知,随着推荐物品数目的增加,各种算法的召回率都呈上升趋势。本专利所提出的相似度计算方案在与对比算法的比较中,随着推荐物品数量的增加召回率提升的趋势是最明显的。从以上的实验结果及分析可以得出,本申请提出的基于遗传算法和新型相似度计算策略的协同过滤推荐算法在平均绝对偏差、推荐的准确率和召回率方面都具有很大优势。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1