CN107203590B - 基于改进nsga-ii的个性化电影推荐方法 - Google Patents

基于改进nsga-ii的个性化电影推荐方法 Download PDF

Info

Publication number
CN107203590B
CN107203590B CN201710271129.XA CN201710271129A CN107203590B CN 107203590 B CN107203590 B CN 107203590B CN 201710271129 A CN201710271129 A CN 201710271129A CN 107203590 B CN107203590 B CN 107203590B
Authority
CN
China
Prior art keywords
movie
list
population
recommended
lists
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710271129.XA
Other languages
English (en)
Other versions
CN107203590A (zh
Inventor
杨新武
郭西念
赵崇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201710271129.XA priority Critical patent/CN107203590B/zh
Publication of CN107203590A publication Critical patent/CN107203590A/zh
Application granted granted Critical
Publication of CN107203590B publication Critical patent/CN107203590B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/73Querying
    • G06F16/735Filtering based on additional data, e.g. user or group profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于改进NSGA‑II的个性化电影推荐方法,针对传统推荐算法只追求准确性而忽略多样性的不足,采用多目标优化算法对这两个目标进行优化,从而在保持准确性的情况下提高多样性。针对NSGA‑II多目标优化算法存在的不足,提出了改进算法FFNSGA‑II,该算法设计综合相对熵过滤初始化种群,避免了种群分布不均匀;运用自适应非劣解填充维护种群进化过程,保持了种群的收敛性和分布性。结合用户行为与电影属性的信息挖掘,将该算法应用于个性化电影推荐这一实际问题,通过和现有的推荐算法进行测试对比说明了算法的通用性和有效性,得到了更为优良的推荐结果,提高了推荐的准确性、多样性。

Description

基于改进NSGA-II的个性化电影推荐方法
技术领域
本发明属于进化算法和个性化推荐技术领域。运用改进的多目标遗传算法FFNSGA-II(具体涉及综合相对熵过滤初始化种群,自适应非劣解填充)做个性化电影推荐,以期多目标遗传算法对个性化电影推荐的性能提升。
背景技术
随着大数据时代的到来,数据呈爆炸式增长,使得互联网用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而降低了,这就是所谓的信息超载问题。
推荐系统是解决信息超载问题非常有应用前景的方法。推荐系统根据用户信息和项目属性数据,分析出用户的兴趣爱好,在项目集中选择合适的可能被用户关心的项目子集,预测被购买的可能,然后根据用户兴趣点进行个性化推荐。
常用的推荐算法有协同过滤推荐算法、基于内容的推荐算法、基于网络结构的推荐算法。协同过滤推荐算法可以分为两类:基于记忆的和基于模型的算法。基于记忆的算法根据系统中所有被打过分的产品信息进行预测。基于模型的算法收集打分数据进行学习并推断用户行为模型,进而对某个产品进行预测打分。基于模型的协同过滤算法和基于记忆的算法的不同在于,基于模型的方法不是基于一些启发规则进行预测计算,而是基于对已有数据应用统计和机器学习得到的模型进行预测。基于内容的推荐是协同过滤技术的延续与发展,它不需要依据用户对项目的评价意见,而是依据用户已经选择的产品内容信息计算用户之间的相似性,进而进行相应的推荐。基于网格结构的推荐算法不考虑用户和产品的内容特征,而是把他们看成抽象的节点,所有算法利用的信息都藏在用户和产品的选择关系之中。
传统的推荐方法只关注提高推荐的准确度,而多目标个性化推荐不但关注准确性而且关注多样性,符合现代推荐系统的要求。而准确性和多样性是相互冲突的两个变量。推荐系统可以精确的把物品推荐给用户,但是这样会失去多样性,如果考虑多样性,必然会失去准确性。而一个具有挑战性的工作就是开发出一个既有准确度又有多样性的推荐系统。为了平衡多样性和准确性一些推荐系统相继被开发出来,张等人把准确性和多样性看作二次规划问题,设计出多种策略来解决这个优化问题。在推荐列表中应该设置控制参数来衡量多样性的重要性。周等人提出了一种结合热传播算法解决多样性问题和概率传播算法解决准确性的混合推荐算法,该混合方法是使用加权线性组合的方法。结果是权重参数应该适当调整来保持推荐的多样性和准确性。Adomavicius等人,开发了一系列排序算法在保持准确性的情况下产生多样性。公茂果等人用经典多目标遗传算法NSGA-II来优化这两个目标,该模型有两个优化目标,第一个是计算准确性,第二个是计算多样性,个性化推荐可以看作一个多目标优化问题。多目标优化算法用来最大化这两个目标,最终一个多样性的推荐列表被提供给用户。但是NSGA-II算法存在一些缺陷,导致优化的准确性和多样性的缺失。本文提出基于改进NSGA-II的个性化电影推荐算法优化准确性和多样性。通过相对熵过滤和最优填充改进的多目标遗传算法(FFNSGA-II)可以优化NSGA-II算法初始化种群中存在的问题和进化过程中分布性保持的问题。该改进算法在进化之前,采用相对熵过滤的方式设置初始化种群,更为细致的区分个体之间的特征相近程度,避免由于随机初始化造成的个体分布不均匀和组合出较差的个体;算法在进化过程中,将每一代的进化结果中的优良个体保留在非劣集合中,并对每一代进化结果采用自适应相对熵过滤原则,根据种群的当前状态自适应过滤掉一些分布较差的点,然后将非劣集合中靠近前沿面并且与进化结果中个体特征相异的最优个体,对进化结果进行填充,保持了种群分布性的同时,在一定程度上也维护了收敛性,使得算法的综合性能得以提升。将该改进算法应用于电影个性化推荐的具体问题上,通过与其他推荐算法的比较验证了算法的效果。
发明内容
本发明的目的是提出一种改进NSGA-II的个性化电影推荐方法。用于解决传统推荐算法无法兼顾准确性和多样性的问题。对推荐列表的准确性和多样性两个目标进行优化,实现个性化电影的推荐。
本发明的基于改进NSGA-II的个性化电影推荐方法,其特征在于该算法在进化之前,采用相对熵过滤的方式设置初始化种群,更为细致的区分个体之间特征的相近程度,避免随机初始化造成个体分布不均匀,并且不利于组合出较为优秀的个体;算法在进化过程中,将每一代的进化结果中的优良个体保留在非劣集合中,并对每一代进化结果采用自适应综合相对熵过滤原则,根据种群的当前状态自适应过滤掉一些分布较差的点,然后将非劣集合中靠近前沿面并且与进化结果中个体特征相异的最优个体对进化结果进行填充,保持了种群分布性的同时,在一定程度上也维护了收敛性,使得算法的综合性能得以提升,对电影推荐的能力得到加强。
基于改进NSGA-II的个性化电影推荐方法,包括以下步骤:
S1个体编码方案、相关参数取值:
个体编码采用实数编码,每个电影的ID表示一个基因位,N个推荐电影组成一条染色体,个体编码形式为:<d1,d2,di…dN>,其中N表示推荐的电影个数,di表示第i个需要推荐的电影编号。种群初始化为popsize,交叉概率pc为0.9,变异概率pm为0.1,每条染色体中电影编号不重复。
S2相对熵过滤方式初始化推荐电影种群:
Step1.随机产生s个,数目为n的推荐电影种群,记作临时推荐电影种群P,即推荐电影种群P的电影列表数目为m×s,s为正整数;
Step2.对推荐电影种群P中的各个电影列表计算在待优化问题中各个目标函数fit,表示为第i个电影列表在第t个目标函数上的数值;
Step3.对推荐电影种群P中的每个电影列表按照各个目标函数值fit之间的优劣关系进行非支配排序分层的计算,并标记每个电影列表所在的层级Ci,表示为第i个电影列表所在的层级;
Step4.以推荐电影种群P为全集空间,对推荐电影种群P中的每个电影列表计算拥挤距离di,表示为第i个电影列表拥挤距离的数值;
Step5.对于推荐电影种群中的每个电影列表的解向量xi和目标向量yi组成的一个完整向量作为综合相对熵计算的基本单位,计算每两个电影列表之间的相对熵rij
Step6.对于每一个电影列表i,找出与其他电影列表相对熵最小的电影列表,并记录该电影列表的编号k和相对熵的数值rik,这两个电影列表组成一个待过滤组合;
Step7.按照相对熵过滤阈值R,过滤掉相对熵小于R的所有组合的两个电影列表中非支配排序和拥挤距离表现差的电影列表,此时剩余的电影列表组合成的候选集合为p1
Step8.在候选集合中p1,以每个电影列表的非支配排序层级ci与拥挤距离di作为两个目标,评价电影列表之间的非支配关系来选择最优的前n个电影列表生成初始推荐电影种群p0,其中,n为推荐电影种群规模数目。
S3选择操作
以锦标赛的方式进行电影列表的选择,即从这popsize个电影列表中随机选择k个电影列表,k<popsize,从这k个电影列表中选取一个最优的电影列表;
选择标准为以非支配排序所在层数si和拥挤距离数值di作为两个目标,按照非支配优胜关系,对各个电影列表进行比较,比较优胜的电影列表为最优电影列表;
S4交叉操作
交叉操作采用SBX交叉算子,假设当前代进化过程中的第t代待交叉的两个电影列表为XAt、XBt,α为交叉涉及的参数取值范围为0~1,则XAt+1、XBt+1为下一代产生的两个电影列表;形式如下:
Figure BDA0001277420350000051
Figure BDA0001277420350000052
S5变异操作
对进化过程中的第gen代推荐电影种群Pgen中的任一电影列表pi=(pi1,pi2…pin),i∈{1,2,…popsize},以概率Pm参与变异操作:产生一个小数r∈[0,1],和一个随机整数j∈[1,N];令Pi,j=lj+r×(uj-lj),对推荐电影群体Pgen进行变异产生新推荐电影种群PgenNew其中,可行解空间为[l,u];
S6维护推荐电影种群进化
运用综合相对熵过滤与自适应最优非劣集合填充维护推荐电影种群进化,基本流程如下:
Step1.对每一代的进化结果集合中非支配排序最优的电影列表放入到非支配集合中,作为整个进化过程中的最优电影列表集合pbest
Step2.某一代进化结束后的推荐电影种群pnew中有n个电影列表,每个电影列表在各个维度上的坐标数值为xim,表示该电影列表在第m维度上的取值,计算在待优化问题中各个目标的数值fit,表示为该电影列表在第t个目标函数上的数值,其中,i为每个电影列表的顺次编号;
Step3.对推荐电影种群pnew中的每个电影列表按照各个目标数值fit之间的优劣关系进行非支配排序分层的计算,标记每个电影列表所在的层级ci,并计算每个电影列表的拥挤距离di
Step4.根据电影列表所在的各个维度上的坐标值xim以及各个目标的数值fit,计算两两电影列表之间的综合相对熵,对于每个电影列表,找到与其他电影列表的最小相对熵,并记录该电影列表编号i和得到该最小相对熵的另一个电影列表的编号j以及相对熵数值sij,这样就形成多组电影列表的点对。
Step5.代入计算的所有最小相对熵数值的平均值average(d)和电影推荐种群规模pop以及当前进化代数gen,计算得到当前代的过滤阈值δgen。
Step6.将最小相对熵数值sij小于阈值δgen的电影列表点对,在非支配排序和拥挤距离中表现差的进行过滤,此时过滤mgen个电影列表。
Step7.对于非支配集合pbest中的电影列表,根据每个电影列表所在的各个维度上的坐标值xi以及各个目标的数值fit计算与当前推荐电影种群pnew中各个电影列表的最小综合相对熵,并以上述Step6.中的δgen作为阈值过滤非支配集合pbest中综合相对熵比较小的电影列表;
Step8.在过滤之后的非支配集合pbest中,选择非支配排序与拥挤距离表现比较好的与过滤个数相同的mgen个最优电影列表放入到当前推荐电影种群pnew中,以维持与推荐电影种群规模相同的数目,继续执行下一代的进化过程。
S7终止条件判断
如果得到的结果为设定的预想结果则结束,否则转S3;
S8进入下一个遗传循环
将推荐电影种群PgenNew作为下一代进化的初始推荐电影种群,继续进行S3步骤。
依据上面的流程实施,把改进NSGA-II方法应用到个性化电影推荐中,得到个性化的电影推荐列表。
与现有技术相比,本发明具有如下有益效果:
基于改进NSGA-II的个性化电影推荐方法,算法在进化之前,采用相对熵过滤的方式设置初始电影推荐种群,更为细致的区分电影列表之间特征的相近程度,避免随机初始化造成电影列表分布不均匀;算法在进化过程中,将每一代的进化结果中的优良电影列表保留在非劣集合中,并对每一代进化结果采用自适应综合相对熵过滤原则,根据推荐电影种群的当前状态自适应过滤掉一些分布较差的电影列表,然后用非劣集合中的最优电影列表对推荐电影种群进行填充,保持了推荐电影种群的分布性,同时也维护了推荐电影种群的收敛性。将本算法应用于个性化电影推荐的具体问题上,得到的电影推荐列表,不仅准确度高,而且多样性得到加强,通过与协同过滤推荐方法、基于内容的推荐方法、多目标遗传算法推荐方法在相同的条件下进行对比实验,验证了算法的实用性。
附图说明
图1为基于改进NSGA-II的流程图。
图2为基于改进NSGA-II的个性化电影推荐方法整体流程图。
图3为基于用户的协同过滤推荐算法主要流程图。
图4为基于内容的推荐算法主要流程图。
具体实施方式
下面结合附图和具体实例对本发明做进一步说明。
本发明采用Movielens作为电影推荐的数据集,该数据集包括943个用户的信息,1682部电影的信息,100,000条用户对电影的评分,把FFNSGA-II和NSGA-II以及传统的推荐方法基于用户的协同过滤算法(UserCF)、基于内容的推荐算法(CB)进行实验对比。
在NSGA-II和FFNSGA-II两种多目标优化算法中,以电影ID号作为基因位,每条染色体代表N部电影,实验中N取值为(5,10,15,20),运行代数gen=100,种群规模设置为popsize=50,交叉概率pc=0.9,变异概率pm=0.1,以准确性和多样性为两个优化目标函数,公式如下:
Figure BDA0001277420350000081
d(i,j)=1-sim(i,j) (1-2)
其中fD(R)为多样性目标函数,R为推荐列表集合,sim(i,j)为相似性计算函数,L为推荐列表长度。
Figure BDA0001277420350000082
gm(i,pu)=sim(i,j)i∈R,j∈pu (1-4)
其中fm(pu,R)为准确性目标函数,L为推荐列表长度,R推荐集合,PU为用户评分项目集合,gm(i,pu)为用户评分集合和推荐列表相似性计算函数。
推荐算法性能评估函数为:
Figure BDA0001277420350000083
Precision为准确率评价函数,R(i)为用户推荐的列表集合,L(i)为用户喜欢的列表集合。
Figure BDA0001277420350000084
Figure BDA0001277420350000085
Div(u)为多样性评价函数,r(i)为推荐列表集合,sim(i,j)为物品i和物品j的相似性,N(i)表示喜欢物品i的集合。
本发明提出的基于改进NSGA-II算法的主要流程如图1所示,整个流程运用综合相对熵过滤初始化电影推荐种群和自适应最优非劣解集合填充维护种群多样性和分布性的方法。主要分为综合相对熵过滤初始化电影推荐种群、选择操作、交叉操作、变异操作、自适应最优非劣解集合填充五个部分,选择、交叉、变异三个操作流程与NSGA-II算法的操作流程一致。
结合图2对本发明的实施过程作详细的说明。本发明的实例是在以本发明技术方案为前提下进行实施的,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述实例。
实例选用电影个性化推荐问题对本文中提出的多目标改进算法OTNSGA-II和基于用户的协同过滤算法(UserCF)、基于内容的推荐算法(CB)以及NSGA-II进行测试和比较。
其中,基于用户的协同过滤算法(UserCF)根据用户所看电影的评分数值,计算两两用户之间的相似度,并选出与待推荐用户的相似度从大到小排序前K个用户,以这些相似度数值为权重,利用这些用户已看过并评分的电影对待推荐的用户未看过的电影进行预测评分。主要流程如图3所示。
基于内容的推荐算法(CB)根据电影类型的所属关系计算各个电影之间的相似度大小,并对待推荐的用户已经看过的电影评分比较高的电影,按照与之相似度大小对未看过的电影进行预测评分。主要流程如图4所示。
基于NSGA-II和FFNSGA-II的推荐算法而言,使用准确性和多样性作为两个优化目标函数,使推荐列表在保持准确性的同时多样性有所提高。目的在于求解N个不同电影的编号组合,即每个个体的基因位为一部电影的编号,用di表示i部待推荐电影的编号,个体编码形式为:<d1,d2,di。。。dN>,采用实数编码方式,编码范围为电影编号所在的范围并且为整数形式,保持编码中电影编号有序且不重复,以作为待推荐的N部不同电影的一种组合方式。
下面详细给出该发明技术方案中所涉及的各个细节问题的说明:
S1进行个体编码、初始化数据,并设定参数
所述个体表示N个电影的编号,其中N表示需要推荐的电影个数;用di表示第i个需要推荐的电影编号,为了应用于解决个性化推荐领域的TOP-N问题,采用N个电影编号组合,个体编码形式为:<d1,d2,di。。。dN>,采用实数编码方式,编码范围为电影编号所在的范围并且为整数形式;所述初始化数据将种群大小初始化为popsize,每次后代都产生popsize大小的种群;所述设定参数包括:设定交叉概率Pc为0.9,变异概率Pm为0.1,个体长度为N位,保持编码中电影编号有序且不重复,以作为待推荐的N部不同电影的一种组合方式。
S2相对熵过滤方式初始化电影推荐种群:
Step1.随机产生s个,数目为n的推荐电影种群,记作临时推荐电影种群P,即推荐电影种群P的电影列表数目为m×s,这里s为一位正整数;
Step2.对推荐电影种群P中的各个电影列表计算在待优化问题中各个目标函数fit,表示为第i个电影列表在第t个目标函数上的数值;
Step3.对推荐电影种群P中的每个电影列表按照各个目标函数值fit之间的优劣关系进行非支配排序分层的计算,并标记每个电影列表所在的层级Ci,表示为第i个电影列表所在的层级;
Step4.以推荐电影种群P为全集空间,对推荐电影种群P中的每个电影列表计算拥挤距离di,表示为第i个电影列表拥挤距离的数值;
Step5.对于推荐电影种群中的每个电影列表的解向量xi和目标向量yi组成的一个完整向量作为综合相对熵计算的基本单位,计算每两个电影列表之间的相对熵rij
Step6.对于每一个电影列表i,找出与其他电影列表相对熵最小的电影列表,并记录该电影列表的编号k和相对熵的数值rik,这两个电影列表组成一个待过滤组合;
Step7.按照相对熵过滤阈值R,过滤掉相对熵小于R的所有组合的两个电影列表中非支配排序和拥挤距离表现差的电影列表,此时剩余的电影列表组合成的候选集合为p1
Step8.在候选集合中p1,以每个电影列表的非支配排序层级ci与拥挤距离di作为两个目标,评价电影列表之间的非支配关系来选择最优的前n个电影列表生成初始推荐电影种群p0,其中,n为推荐电影种群规模数目。
S3选择操作
以锦标赛的方式进行电影列表的选择,即从这popsize个电影列表中随机选择k个电影列表,k<popsize,从这k个电影列表中选取一个最优的电影列表;
选择标准为以非支配排序所在层数si和拥挤距离数值di作为两个目标,按照非支配优胜关系,对各个电影列表进行比较,比较优胜的电影列表为最优电影列表;
S4交叉操作
交叉操作采用SBX交叉算子,假设当前代进化过程中的第t代待交叉的两个电影列表为XAt、XBt,α为交叉涉及的参数取值范围为0~1,则XAt+1、XBt+1为下一代产生的两个电影列表;形式如下:
Figure BDA0001277420350000111
Figure BDA0001277420350000112
S5变异操作
对进化过程中的第gen代推荐电影种群Pgen中的任一电影列表pi=(pi1,pi2…pin),i∈{1,2,…popsize},以概率Pm参与变异操作:产生一个小数r∈[0,1],和一个随机整数j∈[1,N];令Pi,j=lj+r×(uj-lj),对推荐电影群体Pgen进行变异产生新推荐电影种群PgenNew其中,可行解空间为[l,u];
S6维护推荐电影种群进化
运用综合相对熵过滤与自适应最优非劣集合填充维护推荐电影种群进化,基本流程如下:
Step1.对每一代的进化结果集合中非支配排序最优的电影列表放入到非支配集合中,作为整个进化过程中的最优电影列表集合pbest
Step2.某一代进化结束后的推荐电影种群pnew中有n个电影列表,每个电影列表在各个维度上的坐标数值为xim,表示该电影列表在第m维度上的取值,计算在待优化问题中各个目标的数值fit,表示为该电影列表在第t个目标函数上的数值,其中,i为每个电影列表的顺次编号;
Step3.对推荐电影种群pnew中的每个电影列表按照各个目标数值fit之间的优劣关系进行非支配排序分层的计算,标记每个电影列表所在的层级ci,并计算每个电影列表的拥挤距离di
Step4.根据电影列表所在的各个维度上的坐标值xim以及各个目标的数值fit,计算两两电影列表之间的综合相对熵,对于每个电影列表,找到与其他电影列表的最小相对熵,并记录该电影列表编号i和得到该最小相对熵的另一个电影列表的编号j以及相对熵数值sij,这样就形成多组电影列表的点对。
Step5.代入计算的所有最小相对熵数值的平均值average(d)和电影推荐种群规模pop以及当前进化代数gen,计算得到当前代的过滤阈值δgen。
Step6.将最小相对熵数值sij小于阈值δgen的电影列表点对,在非支配排序和拥挤距离中表现差的进行过滤,此时过滤mgen个电影列表。
Step7.对于非支配集合pbest中的电影列表,根据每个电影列表所在的各个维度上的坐标值xi以及各个目标的数值fit计算与当前推荐电影种群pnew中各个电影列表的最小综合相对熵,并以上述Step6.中的δgen作为阈值过滤非支配集合pbest中综合相对熵比较小的电影列表;
Step8.在过滤之后的非支配集合pbest中,选择非支配排序与拥挤距离表现比较好的与过滤个数相同的mgen个最优电影列表放入到当前推荐电影种群pnew中,以维持与推荐电影种群规模相同的数目,继续执行下一代的进化过程。
S7终止条件判断
如果得到的结果为设定的预想结果则结束,否则转S3;
S8进入下一个遗传循环
将推荐电影种群PgenNew作为下一代进化的初始推荐电影种群,继续进行S3以上为基于改进NSGA-II的个性化电影推荐方法的主要流程步骤。
下面详述说明本发明的实验结果:
为了证明本发明所述方法在个性化电影推荐问题中的有效性,分别采用FFNSGA-II(本发明中的方法)和UserCF、CB以及NSGA-II对个性化电影推荐中的TOP-N问题进行优化,其中,N为一个组合中电影推荐的个数(这里分别取值为5、10、15、20),实验结果如表1所示。
表1FFNSGA-II与UserCF、CB以及NSGA-II的准确率对比
Index N CB UserCF ItemCF NSGA-II FFNSGA-II
3 0.0347 0.1896 0.1587 0.1935 0.1998
6 0.0286 0.1863 0.1549 0.1918 0.1982
9 0.0309 0.1839 0.1623 0.1855 0.1892
F 12 0.0296 0.1873 0.1569 0.1898 0.1951
15 0.0326 0.1911 0.1602 0.1957 0.1989
18 0.0255 0.1799 0.1588 0.1834 0.187
21 0.0353 0.1887 0.1605 0.1924 0.1973
24 0.0276 0.1804 0.1592 0.1852 0.1877
27 0.0337 0.1926 0.1611 0.1948 0.1993
表2FFNSGA-II与UserCF、CB以及NSGA-II的多样性对比
Index N CB UserCF ItemCF NSGA-II FFNSGA-II
3 0.6526 0.6059 0.5764 0.6718 0.6908
6 0.6602 0.6115 0.5788 0.6789 0.6997
9 0.6634 0.6135 0.5795 0.6751 0.691
12 0.6704 0.6058 0.5701 0.675 0.6902
Diversity 15 0.6645 0.6177 0.5842 0.6721 0.6956
18 0.6678 0.6189 0.5757 0.6815 0.7068
21 0.6642 0.6195 0.5869 0.6731 0.6977
24 0.6755 0.6105 0.5874 0.6844 0.6979
27 0.6769 0.6218 0.5789 0.6824 0.7048
由表1表2可知,采用FFNSGA-II(本发明中的方法)在N=5、10、15、20的条件下都可以有效的提高电影推荐的准确性、多样性,而NSGA-II在这两方面则表现较差,UserCF和CB这两种传统的推荐方法相比FFNSGA-II则更差。这充分说明针对NSGA-II改进的方法FFNSGA-II得到的电影推荐结果比NSGAII方法在提高准确性、多样性方面有所提高,也明显优于UserCF、CB两种传统的推荐方法。因此,与现有技术相比,本发明可以为用户推荐更为精准和多样化的电影列表。

Claims (1)

1.基于改进NSGA-II的个性化电影推荐方法,包括以下步骤:
S1.个体编码方案、相关参数取值:
个体编码采用实数编码,每个电影的ID表示一个基因位,N个推荐电影组成一条染色体,个体编码形式为:<d1,d2,di…dN>,其中N表示推荐的电影个数,di表示第i个需要推荐的电影编号;种群初始化为popsize,交叉概率pc为0.9,变异概率pm为0.1,每条染色体中电影编号不重复;
S2.相对熵过滤方式初始化推荐电影种群:
Step1.随机产生s个,数目为n的推荐电影种群,记作推荐电影种群P,即推荐电影种群P的电影列表数目为m×s,s为正整数;
Step2.对推荐电影种群P中的各个电影列表计算在待优化问题中各个目标函数fit,表示为第i个电影列表在第t个目标函数上的数值;
Step3.对推荐电影种群P中的每个电影列表按照各个目标函数值fit之间的优劣关系进行非支配排序分层的计算,并标记每个电影列表所在的层级Ci,表示为第i个电影列表所在的层级;
Step4.以推荐电影种群P为全集空间,对推荐电影种群P中的每个电影列表计算拥挤距离di,表示为第i个电影列表拥挤距离的数值;
Step5.对于推荐电影种群中的每个电影列表的解向量xi和目标向量yi组成的一个完整向量作为综合相对熵计算的基本单位,计算每两个电影列表之间的相对熵rij
Step6.对于每一个电影列表i,找出与其他电影列表相对熵最小的电影列表,并记录该电影列表的编号k和相对熵的数值rik,这两个电影列表组成一个待过滤组合;
Step7.按照相对熵过滤阈值R,过滤掉相对熵小于R的所有组合的两个电影列表中非支配排序和拥挤距离表现差的电影列表,此时剩余的电影列表组合成的候选集合为p1
Step8.在候选集合中p1,以每个电影列表的非支配排序层级ci与拥挤距离di作为两个目标,评价电影列表之间的非支配关系来选择最优的前n个电影列表生成初始推荐电影种群p0,其中,n为推荐电影种群规模数目;
S3.选择操作
以锦标赛的方式进行电影列表的选择,即从这popsize个电影列表中随机选择k个电影列表,k<popsize,从这k个电影列表中选取一个最优的电影列表;
选择标准为以非支配排序所在层数si和拥挤距离数值di作为两个目标,按照非支配优胜关系,对各个电影列表进行比较,比较优胜的电影列表为最优电影列表;
S4.交叉操作
交叉操作采用SBX交叉算子,假设当前代进化过程中的第t代待交叉的两个电影列表为XAt、XBt,α为交叉涉及的参数取值范围为0~1,则
Figure FDA0002780775270000021
为下一代产生的两个电影列表;形式如下:
Figure FDA0002780775270000022
Figure FDA0002780775270000023
S5.变异操作
对进化过程中的第gen代推荐电影种群Pgen中的任一电影列表pi=(pi1,pi2…pin),i∈{1,2,…popsize},以概率Pm参与变异操作:产生一个小数r∈[0,1],和一个随机整数j∈[1,N];令Pi,j=lj+r×(uj-lj),对推荐电影群体Pgen进行变异产生新推荐电影种群PgenNew其中,可行解空间为[l,u];
S6.维护推荐电影种群进化
运用综合相对熵过滤与自适应最优非劣集合填充维护推荐电影种群进化,基本流程如下:
Step1.对每一代的进化结果集合中非支配排序最优的电影列表放入到非支配集合中,作为整个进化过程中的最优电影列表集合pbest
Step2.某一代进化结束后的推荐电影种群pnew中有n个电影列表,每个电影列表在各个维度上的坐标数值为xim,表示该电影列表在第m维度上的取值,计算在待优化问题中各个目标的数值fit,表示为该电影列表在第t个目标函数上的数值,其中,i为每个电影列表的顺次编号;
Step3.对推荐电影种群pnew中的每个电影列表按照各个目标数值fit之间的优劣关系进行非支配排序分层的计算,标记每个电影列表所在的层级ci,并计算每个电影列表的拥挤距离di
Step4.根据电影列表所在的各个维度上的坐标值xim以及各个目标的数值fit,计算两两电影列表之间的综合相对熵,对于每个电影列表,找到与其他电影列表的最小相对熵,并记录该电影列表编号i和得到该最小相对熵的另一个电影列表的编号j以及相对熵数值sij,这样就形成多组电影列表的点对;
Step5.代入计算的所有最小相对熵数值的平均值average(d)和电影推荐种群规模pop以及当前进化代数gen,计算得到当前代的过滤阈值δgen;
Step6.将最小相对熵数值sij小于阈值δgen的电影列表点对,在非支配排序和拥挤距离中表现差的进行过滤,此时过滤mgen个电影列表;
Step7.对于非支配集合pbest中的电影列表,根据每个电影列表所在的各个维度上的坐标值xi以及各个目标的数值fit计算与当前推荐电影种群pnew中各个电影列表的最小综合相对熵,并以上述Step6.中的δgen作为阈值过滤非支配集合pbest中综合相对熵比较小的电影列表;
Step8.在过滤之后的非支配集合pbest中,选择非支配排序与拥挤距离表现比较好的与过滤个数相同的mgen个最优电影列表放入到当前推荐电影种群pnew中,以维持与推荐电影种群规模相同的数目,继续执行下一代的进化过程;
S7.终止条件判断
如果得到的结果为设定的预想结果则结束,否则转S3;
S8.进入下一个遗传循环
将推荐电影种群PgenNew作为下一代进化的初始推荐电影种群,继续进行S3步骤;
依据上面的流程实施,把改进NSGA-II方法应用到个性化电影推荐中,得到个性化的电影推荐列表。
CN201710271129.XA 2017-04-24 2017-04-24 基于改进nsga-ii的个性化电影推荐方法 Active CN107203590B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710271129.XA CN107203590B (zh) 2017-04-24 2017-04-24 基于改进nsga-ii的个性化电影推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710271129.XA CN107203590B (zh) 2017-04-24 2017-04-24 基于改进nsga-ii的个性化电影推荐方法

Publications (2)

Publication Number Publication Date
CN107203590A CN107203590A (zh) 2017-09-26
CN107203590B true CN107203590B (zh) 2021-02-02

Family

ID=59906320

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710271129.XA Active CN107203590B (zh) 2017-04-24 2017-04-24 基于改进nsga-ii的个性化电影推荐方法

Country Status (1)

Country Link
CN (1) CN107203590B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108107737B (zh) * 2017-12-28 2021-05-18 广西大学 基于熵最小的蔗汁澄清过程的协同优化方法
CN108153918B (zh) * 2018-02-05 2021-07-30 北京工业大学 基于自适应正交交叉的多目标优化算法的个性化电影推荐方法
CN108804586B (zh) * 2018-05-27 2021-08-06 北京工业大学 融合网格存优策略的多目标优化的个性化电影推荐方法
CN109886807B (zh) * 2019-03-06 2021-07-16 安徽大学 一种p2p平台上基于风险收益管理的个性化推荐方法
CN111191076B (zh) * 2019-12-30 2021-03-30 北京工业大学 基于前景理论与多目标进化的电影推荐方法
CN111753215B (zh) * 2020-06-28 2021-11-02 海南大学 一种多目标推荐优化方法及可读介质
CN114117306B (zh) * 2021-11-30 2022-07-15 安徽大学绿色产业创新研究院 一种基于本地化差分隐私保护的多目标推荐方法
CN114595269B (zh) * 2022-02-17 2024-05-28 北京航空航天大学 考虑服务类型间关联关系的能效评估服务组合系统及方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880583B2 (en) * 2007-06-08 2014-11-04 Nixle, Llc System and method for permitting geographically-pertinent information to be ranked by users according to users' geographic proximity to information and to each other for affecting the ranking of such information
US20100070417A1 (en) * 2008-09-12 2010-03-18 At&T Mobility Ii Llc Network registration for content transactions
CN104035816B (zh) * 2014-05-22 2017-03-22 南京信息工程大学 一种基于改进nsga‑ii的云计算任务调度方法
CN106447117B (zh) * 2016-10-10 2018-05-01 重庆科技学院 基于宠物日常数据分析的宠物喂养方法及系统
CN107256241B (zh) * 2017-05-26 2021-06-25 北京工业大学 基于网格与差异替换改进多目标遗传算法的电影推荐方法

Also Published As

Publication number Publication date
CN107203590A (zh) 2017-09-26

Similar Documents

Publication Publication Date Title
CN107203590B (zh) 基于改进nsga-ii的个性化电影推荐方法
CN104462383B (zh) 一种基于用户多种行为反馈的电影推荐方法
Kuo et al. Integration of particle swarm optimization and genetic algorithm for dynamic clustering
CN106844637B (zh) 基于正交与聚类修剪改进多目标遗传算法的电影推荐方法
Zhang et al. Comparison of selection methods for evolutionary optimization
CN104966125B (zh) 一种社交网络的物品评分及推荐方法
CN108153918B (zh) 基于自适应正交交叉的多目标优化算法的个性化电影推荐方法
CN107256241B (zh) 基于网格与差异替换改进多目标遗传算法的电影推荐方法
CN106127506B (zh) 一种基于主动学习解决商品冷启动问题的推荐方法
CN103399858A (zh) 基于信任的社会化协同过滤推荐方法
Navgaran et al. Evolutionary based matrix factorization method for collaborative filtering systems
Duma et al. Sparseness reduction in collaborative filtering using a nearest neighbour artificial immune system with genetic algorithms
Vellaichamy et al. Hybrid Collaborative Movie Recommender System Using Clustering and Bat Optimization.
CN111191076B (zh) 基于前景理论与多目标进化的电影推荐方法
CN107545471A (zh) 一种基于高斯混合的大数据智能推荐方法
CN107329887B (zh) 一种基于推荐系统的数据处理方法以及装置
CN107169029B (zh) 一种推荐方法及装置
Siegmund et al. Reference point-based evolutionary multi-objective optimization for industrial systems simulation
CN110209946A (zh) 基于社交和社群的产品推荐方法、系统和存储介质
CN110059257B (zh) 基于评分修正的项目推荐方法
CN114997476A (zh) 一种融合商品关联关系的商品预测方法
CN108491477B (zh) 基于多维云和用户动态兴趣的神经网络推荐方法
CN107909498B (zh) 基于最大化接受者操作特征曲线下方面积的推荐方法
CN108804586B (zh) 融合网格存优策略的多目标优化的个性化电影推荐方法
CN109919688B (zh) 一种考虑市场因素的电子烟产品线规划方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant