基于非支配排序多目标方法的位置感知推荐系统
技术领域
本发明属于推荐系统领域,涉及一种融合了用户位置信息的推荐方法,具体来说是一种基于非支配排序多目标方法的位置感知推荐系统,可以根据用户的位置信息以及行为信息,向用户推荐物品(例如电影或音乐)或服务等内容。
背景技术
随着互联网的蓬勃发展,信息以几何级增长,人们处在一个信息爆炸的时代中,每日都会接触大量甚至海量的信息。如何在大量信息中发现人们所感兴趣的内容,并将其推荐给用户,无疑成为了一个值得人们研究的问题。例如说,一个电影网站怎样利用用户的观影记录信息,从十几万部电影中筛选出用户喜欢的,然后将其推荐给用户;一个电子商务网站如何根据用户的购买记录信息,在几十万商品中找到用户最满意的,并将其推荐,不至于使用户迷失在大量商品信息空间中。而推荐系统的设计和实现,一定程度上解决了信息时代中遇到的这些推荐问题。
经过近二十年的研究发展,推荐系统的理论与应用已十分成熟。推荐系统是指一种根据用户的兴趣特点以及行为,推荐用户感兴趣物品或服务的系统。这种系统的输入是用户的喜好(例如对物品的评分)以及行为等信息,通过相关算法(例如协同滤波)建立用户喜好的数学模型,最终将预测结果,即用户可能最感兴趣的商品或服务,输出。两个用户如果对同一物品或服务的评分以及行为相同或相似,就称他们是相似用户。物以类聚,人以群分,相似用户的喜好一般也是相同的,传统推荐算法一般利用这一思想对用户的喜好进行建模。
传统推荐系统仅仅考虑了用户的喜好及行为等主观属性,忽略了用户的位置信息这一客观属性。实际上,用户的位置信息在一定程度上反映了他对一些物品或服务的喜好。例如说,东北人更喜欢看二人转,北京地区的用户更喜欢听相声,而南方人更喜欢看滑稽表演等。而且地理位置相近的用户对同一物品的喜好很可能是相同的。位置感知推荐系统正是根据这一思想,将用户位置信息加入到系统中,使用户的信息更完善,从而提高了算法的预测准确率,使得用户对系统推荐的商品更满意。
目前,不同学者提出了多种位置感知推荐系统的实现方法。如Jia-Dong Zhang等在“iGeoRec:A Personalized and EfficientGeographical LocationRecommendationFramework”(《IEEE Transactions on Services Computing》,2014,Volume:PP,Issue:99)提出一种基于概率模型的位置感知推荐系统。该系统根据用户之间的距离对每个用户计算一个概率分布,然后通过该分布预测该用户的喜好。该系统主要不足之处在于仅仅考虑了用户之间的位置关系对用户喜好的影响,没有将用户对物品的评分加入模型。又如Mohamed Sarwat等在“An Efficient and ScalableLocation-AwareRecommender System”(《IEEE Transactionson Knowledgeand DataEngineering》,2014,pages 1384-1399)提出了一种名为LARS的基于用户聚类的位置感知推荐系统。该系统依据用户的位置信息进行聚类,将位置相近同时评分相似的用户看做一类,然后在同一类用户中利用协同滤波算法对用户做推荐。但是由于该系统采用的是将整个地理区域划分成大小相等方块的聚类方法,因此会产生大量分类误差,使得预测准确率下降。因此该系统还有提升的空间。
发明内容
本发明的目的主要是针对上述已有技术的缺陷,提出一种基于非支配排序多目标方法的位置感知推荐系统,以提高推荐系统的准确性,更精确地实现对每个用户的个性化推荐。
本发明的技术方案是:将推荐系统中的用户聚类问题看作是一个两目标问题,其中将平均商品覆盖率和融合位置信息的用户评分相似度为目标函数,利用基于非支配排序的多目标方法同时优化这两个目标函数,以期搜索更好的用户聚类方式,之后采用基于用户的协同过滤方法对每一个类内的所有用户进行个性化推荐,其具体实现步骤如下:
(1)输入用户商品信息,包括N个用户编号U=(u1,u2,…,uN),用户位置L=(l1,l2,…,lN),M个商品编号I=(i1,i2,…,iM),用户对商品的评分R=(r11,r12,…,r1M,…,rij,…rNM),其中rij代表第i个用户对第j个商品的评分。
(2)初始化,构建用户-商品评分矩阵用户-位置对应列表
(3)确定目标函数F:平均商品覆盖率f1和用户相似度函数f2。
(3a)计算类内商品覆盖率
(3b)计算平均商品覆盖率
CN是指聚类的个数。
(3c)计算任意两个用户之间的相似度
ri,rj分别代表用户i和用户j的评分向量,||ri||,||rj||分别代表评分向量的二阶范数。
(3d)计算融合地理位置信息的用户评分相似度函数
CN是指聚类的个数,Cc是指聚类结果中的某一类,|Cc|是指该类中的用户个数,是指地理修正公式,sim(i,j)LS(i,j)是指加入地理信息后用户之间的相似度。
(4)优化目标函数:
(4a)构造初始解种群:采用符号编码方法生成随机的规模为P的初始解种群,设定种群进化终止代数gen;
(4b)选择父代个体:从初始种群中随机选择两个父代个体;
(4c)对这两个父代个体进行交叉操作,得到一个子个体,对子个体进行邻域变异操作,得到一个新子代,将子代加入子种群;
(4d)重复步骤(4b)-步骤(4c),直至产生规模为Q的子代种群;
(4e)将父代种群和子代种群合并,产生一个规模为P+Q的种群;
(4f)将合并后的种群进行快速非支配排序:每一个解都被分配一个和非支配层级(1是最优层级)相应的适应度值;
(4g)初始化下一代父代种群为空集;
(4h)计算第i层级上所有个体的拥挤度;
(4i)将每个个体加入父代种群中;
(4j)重复步骤(4h)-步骤(4i),直到将父代种群填满;
(4k)对父代种群按照拥挤度算子进行排序;
(4l)选出父代种群中的前P个体,生成新的父代种群;
(4m)选择操作:在父代种群中随机选择两个个体;
(4n)对这两个父代个体进行交叉操作,得到一个子个体,对子个体进行邻域变异操作,得到一个新子代个体,将子代加入子种群;
(4o)重复步骤(4m)-步骤(4n),直至产生规模为Q的子代种群;
(4p)判断是否终止:如果种群进化终止迭代代数满足预先设定的代数gen,输出解种群{X1,…,XP}和解种群对应的两个目标函数的值,然后执行(5),否则,重复步骤(4e)-步骤(4o);
(5)选择最佳用户聚类方法:从步骤(4)得到的解种群{X1,…,XP}中选择用户评分相似度最大的解个体作为最优解,并通过解码得到用户的聚类方式;
(6)采用基于用户的协同过滤推荐算法对每一类的所有用户进行个性化推荐。
本发明与现有技术相比有如下优点:
第一,本发明针对基于地理位置信息的个性化推荐系统提出了一种多目标优化框架,在这个框架里,基于地理位置信息的个性化推荐被看作多目标优化问题。
第二,本发明提出了平均覆盖率和融合位置信息的用户评分相似度两个目标函数。在目标函数的约束下,能够兼顾用户兴趣和地理信息。
第三,本发明一次运行可以产生多个解。每一个解对应一种用户聚类方式,决策者可以在不同的情境下选择不同的解以满足特定需求。
第四,由于本发明引入了基于非支配解排序的多目标优化方法,所以与传统的推荐方法相比,在推荐结果的准确性、解决新用户问题等方面有巨大的提升。
附图说明:
图1为本发明的实现流程图;
图2为本发明与现有方法对推荐列表长度实验的比较图;
图3为本发明与现有方法对新用户推荐实验的比较图;
具体实施方式:
参照图1,本发明实现步骤如下:
步骤1,输入用户商品信息,包括N个用户编号U=(u1,u2,…,uN),用户位置L=(l1,l2,…,lN),M个商品编号I=(i1,i2,…,iM),用户对商品的评分R=(r11,r12,…,r1M,…,rij,…rNM),其中rih代表第i个用户对第h个用户的评分;
步骤2,初始化,构建用户-商品评分矩阵
用户-位置对应列表
步骤3,确定目标函数:平均商品覆盖率和用户评分相似度函数。
(3a)计算平均商品覆盖率
CN是指聚类的个数;
(3b)计算融合位置信息的用户评分相似度函数
CN是指聚类的个数,Cc是指聚类结果中的某一类,|Cc|是指该类中的用户个数,是指地理修正公式,sim(i,j)LS(i,j)是指加入地理信息后用户之间的相似度。
步骤4,构造初始解种群:采用符号编码方法生成随机的规模为P的初始解种群,设定种群进化终止代数gen。所谓符号编码,是指个体染色体编码串中的基因值取自一个无数值含义、而只有代码含义的符号集如{A,B,C,…}。
(4a)选择操作:从初始种群中随机选择两个父代个体;
(4a1)将平均商品覆盖率和用户相似度作为适应度函数;
(4a2)计算当前种群中每一个个体的适应度函数值;
(4a3)从当前种群中随机选择两个个体,将其中适应度函数值较大的个体加入父种群中;
(4a4)重复步骤(4a3),直至得到整个父种群;
(4b)交叉变异操作:
(4b1)从父种群中随机选择两个父个体;
(4b2)对两个父个体进行单点交叉操作,得到两个临时个体;
(4b3)对两个临时子个体分别进行单点变异操作,得到两个子个体;
(4b4)重复步骤(4b1)-步骤(4b3),直至得到整个子种群;
(4c)更新种群:
(4c1)将子种群与当前种群合并组成临时种群;
(4c2)将合并后的种群进行快速非支配排序,非支配排序;
(4c3)计算每个层级上所有个体的拥挤度;
(4c4)对父代种群按照拥挤度算子进行排序;
(4c5)截取临时种群中和当前种群规模大小相同的拥挤度数值小的个体,得到下一代种群。
步骤5,选择父代个体。
从解种群中随机选择两个父代个体。
步骤6,交叉变异。
(6a)对选择的两个父代个体进行单点交叉操作,得到一个子个体;
(6b)对个体进行邻域变异操作,得到一个新子代,即在新子代中随机选择一个待变异的节点,然后查找该节点的所有相邻节点;从它的所有相邻节点中随机选择一个节点代替待变异节点得到一个新子代。
步骤7,更新种群。
(7a)将子种群与当前种群合并组成临时种群;
(7b)将合并后的种群进行快速非支配排序,非支配排序;
(7c)计算每个层级上所有个体的拥挤度;
(7d)对父代种群按照拥挤度算子进行排序;
(7e)截取临时种群中和当前种群规模大小相同的拥挤度数值小的个体,得到下一代种群。
步骤8,重复步骤5-步骤7,直到产生规模为P的子种群,即解种群{X1,…,XP}。
步骤9,判断是否终止。
如果种群进化种植迭代次数满足预先设定的代数gen,其范围为100-200,则执行步骤10,否则,重复步骤5-步骤8。
步骤10,选择最佳用户聚类方法
(10a)从步骤8得到的解种群{X1,…,XP}中选择用户相似度最大的解个体作为最优解;
(10b)解码最优解得到用户的聚类方式。解码过程为:设最优解的染色体为(u1,u2,u3,u4,u5,…,uN)=(3,3,1,2,1,…,3),将其中相同数值所对应的用户看做一类。
步骤11,采用基于用户的协同过滤推荐算法对每一类中的所有用户进行个性化推荐。
(11a)选择一个类,生成这个类中用户-商品的评分矩阵
其中cn是指该类中用户个数,m是指商品个数;
(11b)计算用户之间的相似性sim(i,j),获得类内用户相似性矩阵
其中cn是指该类中用户个数;
(11c)对每个用户相似性向量排序,排序好的用户相似性向量为Ss=(s1,s2,…,sk,…,scn);
(11d)利用K个最近邻居,计算每个用户对物品喜好程度的向量;
(11e)根据物品喜好程度向量,选择前L个物品推荐给用户;
(11f)重复步骤(11a)-步骤(11e),直到所有类中的所有用户都产生个性化推荐。
本发明的效果可以通过以下仿真进一步说明
1.仿真条件
本实例在Intel(R)Core(TM)2Duo CPU 2.33GHz Windows 7系统下,Matlab2012a运行平台上,完成本发明与现有LARS方法的仿真实验。
2.仿真实验
1)本仿真选取了两个具有代表性的数据集:由美国明尼苏达大学计算机科学与工程学院的GroupLens项目组搜集的MovieLens-1M电影数据集,该数据集中有6040个用户对3900部电影的1,000,209个评分;以及由David Hauger等人在Twitter网站上爬取的Musicmicro音乐数据集,该数据集中有61140个用户对56600首歌曲的244386收听记录。
2)非支配排序多目标方法的参数设置如下,种群大小为100,种群迭代次数是300,交叉概率为0.8,变异概率为0.2。本仿真使用了LARS方法中提到的评价方法。该评价方法主要步骤如下,首先将数据集分成两部分,其中一部分占数据集的80%,作为训练集,另一部分占数据集的20%,作为测试集;然后将训练集输入推荐系统进行训练,对每个用户进行推荐,输出推荐结果;最后,将推荐结果与测试集中的记录逐一比较,统计其中相同的个数,个数越多说明预测越准确。以下MOLR表示本发明的基于非支配排序多目标方法的位置感知推荐系统,LARS表示现有的基于聚类的位置感知推荐方法,两者的参数设置相同。
3)本仿真共有两个实验内容,其中一个是推荐列表长度k对推荐准确性的影响,推荐列表长度是指推荐给每个用户的物品个数,列表长度k取值是2,4,6,8,10;另一个实验是对新用户的推荐预测,当系统中加入一个新用户时,根据该用户地理信息将其划入某一类中,然后将这一类中最受欢迎的物品推荐给新用户。设定新用户的个数为100,推荐列表长度均为10。
图2(a)表示实验一在电影数据集中MOLR和LARS的推荐准确数比较结果。从图中可以看出,在不同的推荐列表长度下,本发明的方法MOLR的准确预测个数都明显多于LARS,显然本发明较现有方法可以得到准确度很高的推荐结果。
图2(b)表示实验一在音乐数据集中MOLR和LARS的推荐准确数比较结果。由于该数据集非常稀疏,因此总体上准确个数有所下滑。但是,从图中可以看出,在不同的推荐列表长度下,本发明的方法MOLR的准确预测个数依然多于LARS,而且随着列表长度的增加,两者的差距逐渐增大。因而本发明较现有方法可以得到准确度很高的推荐结果。
图3(a)和图3(b)分别表示实验二在电影和音乐数据集中MOLR与LARS推荐准确数的比较结果。从两幅图中可以看出,本发明的MOLR方法对新用户的推荐准确数明显多于LARS,说明MOLR方法再次优于LARS。
总之,本发明将位置信息融合进用户相似度函数中,同时构造多样性函数,然后采用非支配排序多目标方法优化这两个目标函数,完成对相似用户的聚类,使得聚类结果更合理,从而使推荐更准确,结果明显好于现有方法,特别是对新用户的推荐,仍然得到令人满意的结果。