[发明专利]基于多子种群协同进化构建信息核的推荐方法在审
申请号: | 201810228833.1 | 申请日: | 2018-03-20 |
公开(公告)号: | CN108460147A | 公开(公告)日: | 2018-08-28 |
发明(设计)人: | 慕彩红;刘逸;陈维柱;刘敬;张丹;白静;缑水平;侯彪;焦李成 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06N3/00 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 田文英;王品华 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 子种群 构建 过渡种群 初始化 种群 进化 协同 计算信息 临时种群 评分矩阵 完成信息 协同过滤 用户物品 子代种群 迭代 父代 更新 | ||
1.一种基于多子种群协同进化构建信息核的推荐方法,其特征在于,将度阈值和信息核放入协同进化的种群个体中,按照不同类型的度阈值约束条件,将种群划分为三个子种群,通过协同进化算法的进化迭代得到最优的信息核,利用信息核进行协同过滤推荐,该方法的具体步骤包括如下:
(1)构建用户物品评分矩阵:
(1a)从用户对物品的评分数据集中提取用户对物品的评分信息,创建用户物品评分矩阵R(n×m),其中,n表示用户数量,m表示物品数量;
(1b)用0表示评分矩阵中用户未评过分的物品的评分,将评分矩阵中用户评过分的物品的评分用对应评分值表示;
(2)设定参数:
将协同进化算法的种群大小设置为100,协同进化算法的交叉概率设置为0.8,协同进化算法的变异概率设置为0.01,协同进化算法的最大迭代次数设置为100;
(3)设置子种群的个体数:
将父代种群划分为三个子种群,将大于度阈值的子种群包含的信息核个体初始数设置为34,将小于度阈值的子种群包含的信息核个体初始数设置为34,将无度阈值的子种群包含的信息核个体初始数设置为32,将用户物品评分矩阵中用户数目的20%作为信息核长度;
(4)初始化大于度阈值子种群:
(4a)从[20,80]的范围中,随机选取一个整数作为度阈值;
(4b)根据信息核的长度,从用户物品评分矩阵中随机选取用户度大于所选取度阈值的多个用户;
(4c)将所选取的度阈值和所选取的多个用户,组成大于度阈值子种群的一个信息核个体;
(4d)判断是否生成了34个大于度阈值子种群的信息核个体,若是,则执行步骤(5),否则,执行步骤(4a);
(5)初始化小于度阈值子种群:
(5a)从[20,80]的范围中,随机选取一个整数作为度阈值;
(5b)根据信息核的长度,从用户物品评分矩阵中随机选取用户度小于所选取度阈值的多个用户;
(5c)将所选取的度阈值和所选取的多个用户,组成小于度阈值子种群的一个信息核个体;
(5d)判断是否生成了34个小于度阈值的子种群的信息核个体,若是,则执行步骤(6),否则,执行步骤(5a);
(6)初始化无度阈值子种群:
(6a)根据信息核的长度,从用户物品评分矩阵中随机选取多个用户,生成无度阈值子种群的一个信息核个体;
(6b)判断是否生成了32个无度阈值子种群的信息核个体,若是,则完成父代种群初始化,执行步骤(7),否则,执行步骤(6a);
(7)生成临时种群:
(7a)利用单点交叉的方式,对父代种群中大于度阈值的子种群进行交叉,产生大于度阈值的新信息核个体;
(7b)从每个新信息核个体中提取小于度阈值的用户,用大于度阈值的用户替换所提取的小于度阈值的用户,将替换后的所有新信息核个体生成临时种群中大于度阈值的子种群;
(7c)利用单点交叉的方式,对父代种群中小于度阈值的子种群进行交叉,产生小于度阈值的新信息核个体;
(7d)从每个新信息核个体中提取大于度阈值的用户,用小于度阈值的用户替换所提取的大于度阈值的用户,将替换后的所有新信息核个体生成临时种群中小于度阈值的子种群;
(7e)利用单点交叉的方式,对父代种群中无度阈值的子种群进行交叉,生成临时种群中无度阈值的子种群;
(8)生成过渡种群中大于度阈值子种群:
(8a)从临时种群的大于度阈值的子种群中任意选取一个信息核个体;
(8b)从所选取的信息核个体中任意选取一个变异位置;
(8c)判断所选变异位置是否为所选取的信息核个体度阈值的位置,若是,则执行步骤(8d),否则,执行步骤(8e);
(8d)从[20,80]的范围中,随机选取一个整数替换所选取的信息核个体的度阈值,将所选取的信息核个体中小于新度阈值的用户替换为大于新度阈值的用户后执行步骤(8f);
(8e)随机选取一个大于所选取的信息核个体度阈值的用户替换变异位置的用户;
(8f)判断是否选择完大于度阈值子种群中所有的信息核个体,若是,则生成过渡种群中大于度阈值的子种群,执行步骤(9),否则,执行步骤(8a);
(9)生成过渡种群中小于度阈值子种群:
(9a)从临时种群的小于度阈值子种群中任意选取一个信息核个体;
(9b)从所选取的信息核个体中任意选取一个变异位置;
(9c)判断所选变异位置是否为所选取的信息核个体度阈值的位置,若是,则执行步骤(9d),否则,执行步骤(9e);
(9d)从[20,80]的范围中,随机选取一个整数替换所选取的信息核个体的度阈值,将所选取的信息核个体中大于新度阈值的用户替换成小于新度阈值的用户后执行步骤(9f);
(9e)随机选取一个小于所选取的信息核个体度阈值的用户替换变异位置的用户;
(9f)判断是否选择完小于度阈值子种群中的每个信息核个体,若是,则生成过渡种群中小于度阈值的子种群,执行步骤(10),否则,执行步骤(9a);
(10)生成过渡种群中无度阈值子种群:
(10a)从临时种群的无度阈值子种群中任意选取一个信息核个体;
(10b)在所选取的信息核个体中,随机选择一个变异的位置;
(10c)随机选取一个用户替换变异位置的用户;
(10d)判断是否选择完无度阈值子种群中的每个信息核个体,若是,则生成过渡种群中无度阈值的子种群,执行步骤(11),否则,执行步骤(10a);
(11)计算信息核个体的推荐精度:
(11a)从父代种群与过渡种群中任意选取一个信息核个体;
(11b)利用余弦相似度公式,计算用户物品评分矩阵中每一个用户与所选取的信息核个体中的每一个用户之间的余弦相似度;
(11c)判断是否计算完用户物品评分矩阵中所有用户与所选取的信息核个体中所有用户的相似度,若是,则执行步骤(11d),否则,执行步骤(11b);
(11d)选择用户物品评分矩阵中任意一个用户作为目标用户;
(11e)将目标用户与所选取的信息核个体中所有用户之间的相似度值按照从大到小排序,选取排序中前K个用户为目标用户的邻居,10≤K≤50;
(11f)采用协同过滤公式,对用户物品评分矩阵中目标用户评分为0的物品进行预测评分;
(11g)判断是否预测完目标用户评分为0的所有物品的评分,若是,则执行步骤(11h),否则,执行步骤(11f);
(11h)将用户物品评分矩阵中目标用户评分为0的物品,按照预测评分从大到小排序,从排序中选取前L个物品,组成目标用户的推荐列表,2≤L≤20;
(11i)按照下式,计算目标用户的推荐精度:
其中,P(L)表示目标用户的推荐精度,L表示目标用户的推荐列表中物品数,R(L)表示推荐列表中目标用户所需的物品数;
(11j)判断是否计算完用户物品评分矩阵中所有用户的推荐精度,若是,则执行步骤(11k),否则,执行步骤(11d);
(11k)按照下式计算信息核个体的推荐精度:
其中,PR表示信息核个体的推荐精度,N表示用户物品评分矩阵中的用户数,∑表示求和符号,U表示用户物品评分矩阵中的用户集,Pi(L)表示用户物品评分矩阵中用户i的推荐精度,∈表示属于符号;
(11l)判断是否计算完父代种群与过渡种群中所有信息核个体的推荐精度,若是,则执行步骤(12),否则,执行步骤(11a);
(12)生成子代种群:
将父代种群与过渡种群中的信息核个体按照每个信息核个体的推荐精度,从大到小排序,从排序中选取前100个信息核个体作为子代种群;
(13)更新父代种群:
用子代种群中的每一个信息核个体,替换原父代种群中的每一个信息核个体,得到新的父代种群;
(14)判断当前迭代次数是否达到最大迭代次数100次,若是,则执行步骤(15),否则,执行步骤(7);
(15)完成信息核构建:
从父代种群中选取推荐精度最高的信息核个体,作为最佳信息核输出,完成信息核构建;
(16)进行协同过滤推荐:
利用构建的信息核为用户物品评分矩阵中每一个用户产生推荐物品列表,完成对所有用户的协同过滤推荐。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810228833.1/1.html,转载请声明来源钻瓜专利网。