1.基于自适应正交交叉的多目标优化算法的个性化电影推荐方法,其特征在于:该方法在进化之前,采用正交交叉的方式设置初始化种群,使初始化种群分布均匀,避免随机初始化造成个体分布不均匀,使自适应多目标正交交叉算子进行正交交叉操作,使种群在进化过程中能够快速的收敛到pareto解集,并且使种群的分布更加均匀,使得到的推荐列表多样性更加丰富;
该方法包括以下步骤:
S1个体编码、相关参数设定
个体的编码采用实数编码,基因位为电影的ID号,N个电影组成一个个体,个体编码形式为:
S2子空间划分
在实际问题中,存在一些具有多个极值点且全局最优点位置未知的高维多模态函数;
在对这些函数进行全局优化时,必须让初始种群中的个体尽可能均匀分布在搜索域中;利用正交实验方法初始化的种群具有均匀分散、齐整可比的特点,使用正交实验方法来初始化种群,产生的初始个体能够均匀分散地分布在整个解空间中,保证了初始群体的多样性和较丰富的模式,能在全局范围内快速收敛,使用正交实验方法初始化种群时当可行解空间[l,u]大时,为提高搜索效率和精度,将可行解空间进行子空间划分,分割成S个子空间[[l1,u1]],[[l2,u2]],……,[[lS,uS]],具体操作流程如下:S2.1.找到满足下式的第m维:其中m代表第m维,k代表第m维的第k个子空间,l表示可行解空间的下限,u表示可行解空间的上限;
S2.2.假设可行解空间为[l,u],则在第m维处将可行解空间分割成S个子空间[l(1),u(1)],[l(2),u(2)],...,[l(S),u(S)]其中
m代表第m维,i代表第i个子空间,一共S个子空间,N代表第m维向量的个数;
S3:创建正交表
J
S3.1.计算满足(Q‑1)/(Q‑1)≥F的最小值J;
S3.2.若(Q^J‑1)/(Q‑1)=F,则令F′=F,否则令F′=(QJ‑1)/(Q‑1);
S3.3.创建基本列:
S3.4.创建非基本列:
S3.5.对于i和j满足1≤i≤M,1≤j≤F,执行ai,j=ai,j+1;
F F
S3.6.删除正交表LM(Q)的最后F′‑F,得到LM(Q);
J J
其中Q为水平数,F为因素数,且M=Q ,J为计算满足(Q‑1)/(Q‑1)≥F的最小值J,ai,j表示第i个组合的第j个因素的水平值,正交表的列分为基本列和非基本列;若第j列满足则称第j列aj为基本列;
S4自适应多目标正交交叉算子SMOCS4.1.设p1=(p1,1,p1,2,...,p1,N),p2=(p2,1,p2,2,...,p2,N)为参与交叉操作的两个父代个体,由p1和p2所确定的可行解空间为[lparent,uparent],接着把空间[lparent,uparent]中的第i维离散化为Q个水平,即Bi,1,Bi,2,...,Bi,Q,i属于{1,2,...,N},记Bi=(Bi,1,Bi,2,...,Bi,Q),其中:
N是种群的维度,Q是水平数,Bi,1代表第i维的第一个元素S4.2.令向量k=[k1,k2,…,kt],并且满足:ki∈J且1≤k1<k2<…≤kt≤N,j=1,2,…,t,集合J的定义为:J={i||p1i‑p2i|>δ0,i=1,2,...,N},t为p1,p2中相似度低的分量的个数,其中δ0是给定的接近于0的正实数,向量k保存了相似度低的分量在p1,p2中的位置,即进行因素的位置,设x为p1,p2中的任一个体,把个体x=(x1,x2,…,xN)分成t份,此处t是相似度低的分量的个数,一个t中有可能包含几个分量,如果一个t包含一个分量,t就是N份如公式(5)所示;其中每一份表示个体x的一个因素,f代表因素;
令k0=0,则第i个因素fi的Q个水平表示为:F J
S4.3.根据S3构造正交表LM(Q)=[bi,j]M×F,其中F=t,M=Q ,Q为水平数,利用正交表LMF
(Q)来对公式5和公式6中的每一个因素对应的Q个水平进行正交实验设计,将产生M个子代个体如公式7:
S4.4.将M个子代应用到k目标函数y1,y2,...,yk的多目标优化问题中,计算每个因素对应的每个水平数的k个目标函数的均值矩阵[Δq,j,k]Q×N×K;记N个因素在Q个不同水平下的K个目标的目标均值;
S4.5.由目标均值矩阵计算出每个因素j,j=1,2,...,N的非劣集合其中对于第j个因素的任何两个水平xu,j,xv,j,j=1,2,...,N,定义 当且仅当Δu,j<Δv,j,即第j个因素的第u个水平数的函数均值小于第j个因素的第v个水平数的函数均值,则对于因素j的非劣集合表示为 其中Lj={u}S4.6.创建N个非劣集合的卡式积N代表维度数,Li表示第i维的非劣集合,1≤i≤NS4.7对S4.6求得的子代个体进行快速非支配排序,从中挑选出靠近Pareto前沿的优秀个体加入到下一代中;
S5自适应多目标正交交叉初始化种群:由步骤S2将可行解空间[l,u]分割成S个子空间,利用自适应多目标正交交叉算子对每一个子空间进行交叉操作,产生新的种群p,对种群p进行快速非支配排序,从排序后的种群p中选择靠近pareto最近的n个个体组成初始种群p0;
S6生成临时种群p′generation:设generation为进化代数,以pc的概率从pgeneration中选择个体组p′generation由于交叉操作需要偶数出现,选择偶数个个体组成p′generation;
S7.交叉操作
对群体p′generation进行随机配对,对选择的每两个个体进行自适应多目标正交交叉算子操作,产生新的后代个体,新的后代个体组成种群Cgeneration,对Cgeneration进行非支配排序,选择靠近pareto最近的一层的个体组成C′generation;
S8.变异操作
从p′generation中随机选取不同于待变异向量的两个向量;按选择的顺序求这两个向量的差值,群体经变异后生成的新种群记作G′generation;
其中Gm为进化代数,F为收缩因子,F0为初始值,l为个体编号,a,b,c,为维度;
S9.选择操作
采用贪婪算法来选择进入下一代种群的个体,经过变异和交叉操作后生成的实验个体ui(C′generation+G′generation)和 进行竞争,只有当个体ui的适应度值较xi更优时才被选作子代,否则直接将xi作为子代,选择操作的方程为:其中t表示第t代;
S10.终止条件判断:
若达到规定的代数或得到预定的结果,则结束并且输出结果,否则转S6;
两个目标函数,分别指的是准确性计算函数和多样性计算函数;多样性计算函数为计算每个用户的推荐列表中,每个电影之间的相似度,统计整个列表的相似性得到的结果就是每个用户的推荐列表的多样性;准确性计算函数为计算推荐列表和用户评过分的列表之间的相似性,得到的累加结果就是用户推荐列表的准确性。