CN108460147A - 基于多子种群协同进化构建信息核的推荐方法 - Google Patents
基于多子种群协同进化构建信息核的推荐方法 Download PDFInfo
- Publication number
- CN108460147A CN108460147A CN201810228833.1A CN201810228833A CN108460147A CN 108460147 A CN108460147 A CN 108460147A CN 201810228833 A CN201810228833 A CN 201810228833A CN 108460147 A CN108460147 A CN 108460147A
- Authority
- CN
- China
- Prior art keywords
- population
- threshold value
- information core
- user
- degree
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于多子种群协同进化构建信息核的推荐方法,其步骤为:(1)构建用户物品评分矩阵;(2)设定参数;(3)设置子种群的个体数;(4)初始化大于度阈值子种群;(5)初始化小于度阈值子种群;(6)初始化无度阈值子种群;(7)生成临时种群;(8)生成过渡种群中大于度阈值子种群;(9)生成过渡种群中小于度阈值子种群;(10)生成过渡种群中无度阈值子种群;(11)计算信息核个体的推荐精度;(12)生成子代种群。(13)更新父代种群;(14)判断迭代次数是否为100次;(15)完成信息核构建;(16)进行协同过滤推荐。本发明具有推荐精度高的优点。
Description
技术领域
本发明属于计算机技术领域,更进一步涉及物品推荐技术领域中的一种基于多子种群协同进化构建信息核的推荐方法。本发明利用多子种群协同进化算法,根据每个用户对物品的评分信息来构建信息核,然后根据信息核向目标用户推荐其喜欢的物品,从而减少在线推荐过程中使用的用户数量和使用的时间,缓解传统协同过滤的可扩展性问题。
背景技术
大数据时代的到来导致了信息过载问题日益严重,如何从海量信息中快速有效获取自己感兴趣的信息已经成为一个亟需解决的问题。面临上述问题,推荐系统应运而生并且受到广泛关注。推荐系统通过分析用户的历史行为数据,分析发现用户的兴趣爱好,并为用户推荐其感兴趣的物品或是信息。现如今,已存在的推荐方法有很多,其中协同过滤是应用最为广泛且最为成功的一种推荐方法。然而协同过滤算法存在着可扩展性问题的固有缺陷,可扩展性问题指的是协同过滤算法的时间消耗会随着数据规模的增大呈指数型增长。这个可扩展性问题大大抑制了协同过滤算法的发展,是一个亟需解决的问题。
电子科技大学在其申请的专利文献“一种基于关键用户的个性化推荐方法和系统”(申请号:201510157504.9,申请公布号:CN 104778237 A)中公开了一种基于关键用户的个性化推荐方法。该方法的实施步骤是:步骤1,基于所采集的用户数据为每个用户查找N个相似度最高的邻居得到各用户邻居列表,且各邻居按照相似度从高到低进行排列;步骤2,设定一个权重规则:用户在其他用户邻居列表中出现次数越多,排列位置越靠前,权重越大;步骤3,查找权重最大的P个用户作为关键用户;步骤4,基于关键用户对产品的操作数据计算目标用户对平台系统的各产品的推荐度,查找推荐度最大的M个产品作为目标用户的推荐结果。该推荐方法存在的不足之处是,规定用户的权重大小作为信息核选择的标准,这种规则性的选择信息核的方式,获得的信息核推荐精度低。
Caihong Mu等人在其发表的论文“Information core optimization usingEvolutionary Algorithm with Elite Population in recommender systems”(Congresson Evolutionary Computation(CEC),2017 IEEE)中提出了一种基于精英种群的进化算法提取信息核的推荐方法。该推荐方法的实施步骤是:步骤1,建立用户和物品的稀疏评分矩阵信息;步骤2,初始化父代种群,计算种群中每个个体的适应度;步骤3,根据M精英策略,对个体适应度进行从大到小排序,按照个体适应度进行顺序交叉,提取信息核;步骤4,根据信息核计算目标用户对平台系统的各产品的评分,并进行推荐。该推荐方法存在的不足之处是,在进化过程中根据个体适应度大小进行顺序交叉,个体基因的多样性受到限制,搜索效率低。
发明内容
本发明的目的在于针对上述现有技术的不足,提出了一种基于多子种群协同进化构建信息核的推荐方法。
本发明的具体思路是,按照不同类型的度阈值约束条件,将种群划分为三个子种群,将度阈值和信息核放入协同进化的种群个体中,让度阈值参与进化迭代的过程,从而得到一个较好的度阈值,同时让子种群之间相互竞争进化,加速算法的收敛过程,通过协同进化算法的进化迭代得到最优的信息核,利用获得的信息核进行协同过滤推荐。
为了实现上述目的,本发明的具体实现步骤如下:
(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)进行协同过滤推荐:
利用构建的信息核为用户物品评分矩阵中每一个用户产生推荐物品列表,完成对所有用户的协同过滤推荐。
本发明与现有技术相比有以下优点:
第一,由于本发明将度阈值和信息核放入协同进化的种群个体中,按照不同类型的度阈值约束条件,将种群划分为三个子种群,通过协同进化算法的进化迭代得到最优的信息核,利用信息核进行协同过滤推荐,克服了现有技术,规定用户的权重大小作为信息核选择的标准,这种规则性的选择信息核的方式,获得的信息核推荐精度低的缺点,使得本发明选择的信息核,具有更高的推荐精度的优点。
第二,由于本发明将度阈值和信息核放入协同进化的种群个体中,按照不同类型的度阈值约束条件,将种群划分为三个子种群,通过协同进化算法的进化迭代得到最优的信息核,利用信息核进行协同过滤推荐,克服了现有技术,在进化过程中根据个体适应度大小进行顺序交叉,个体的多样性受到限制,搜索效率低的缺点,使得本发明在进化过程中保证了个体的多样性,具有提高搜索效率的优点。
附图说明
图1是本发明的流程图;
图2是本发明与现有基于Rank的信息核构建方法、基于Frequency的信息核构建方法、基于普通遗传算法GA(Genetic Algorithm)的信息核构建方法和基于传统CF(Collaborative Filtering)的方法在训练数据子集Train和测试数据子集Test上推荐精度随邻居数增长而变化的仿真结果图;
图3是本发明与现有基于普通GA的信息核构建方法在训练数据子集Train和优化数据子集Optim上推荐精度随迭代次数变化的仿真结果图。
具体实施方式:
以下结合附图对本发明的具体实施措施进行详细描述。
参照图1,本发明的具体步骤如下。
步骤1,构建用户物品评分矩阵。
从用户对物品的评分数据集中提取用户对物品的评分信息,创建用户物品评分矩阵R(n×m),其中,n表示用户数量,m表示物品数量,用0表示评分矩阵中用户未评过分的物品的评分,将评分矩阵中用户评过分的物品的评分用对应评分值表示。
步骤2,设定参数。
将协同进化算法的种群大小设置为100,协同进化算法的交叉概率设置为0.8,协同进化算法的变异概率设置为0.01,协同进化算法的最大迭代次数设置为100。
步骤3,设置子种群的个体数。
将父代种群划分为三个子种群,将大于度阈值的子种群包含的信息核个体初始数设置为34,将小于度阈值的子种群包含的信息核个体初始数设置为34,将无度阈值的子种群包含的信息核个体初始数设置为32,将用户物品评分矩阵中用户数目的20%作为信息核长度。
步骤4,初始化大于度阈值子种群。
第1步,从[20,80]的范围中,随机选取一个整数作为度阈值。
第2步,根据信息核的长度,从用户物品评分矩阵中随机选取用户度大于所选取度阈值的多个用户。
第3步,将所选取的度阈值和所选取的多个用户,组成大于度阈值子种群的一个信息核个体。
第4步,判断是否生成了34个大于度阈值子种群的信息核个体,若是,则执行步骤5,否则,执行本步骤第1步。
步骤5,初始化小于度阈值子种群。
第1步,从[20,80]的范围中,随机选取一个整数作为度阈值。
第2步,根据信息核的长度,从用户物品评分矩阵中随机选取用户度小于所选取度阈值的多个用户。
第3步,将所选取的度阈值和所选取的多个用户,组成小于度阈值子种群的一个信息核个体。
第4步,判断是否生成了34个小于度阈值子种群的信息核个体,若是,则执行步骤6,否则,执行本步骤第1步。
步骤6,初始化无度阈值子种群。
第1步,根据信息核的长度,从用户物品评分矩阵中随机选取多个用户,生成无度阈值子种群的一个信息核个体。
第2步,判断是否生成了32个无度阈值子种群的信息核个体,若是,则完成父代种群初始化后执行步骤7,否则,执行本步骤第1步。
步骤7,生成临时种群。
利用单点交叉的方式,对父代种群中大于度阈值的子种群进行交叉,产生大于度阈值的新信息核个体,从每个新信息核个体中提取小于度阈值的用户,用大于度阈值的用户替换所提取的小于度阈值的用户,将替换后的所有新信息核个体生成临时种群中大于度阈值的子种群。
利用单点交叉的方式,对父代种群中小于度阈值的子种群进行交叉,产生小于度阈值的新信息核个体,从每个新信息核个体中提取大于度阈值的用户,用小于度阈值的用户替换所提取的大于度阈值的用户,将替换后的所有新信息核个体生成临时种群中小于度阈值的子种群。
利用单点交叉的方式,对父代种群中无度阈值的子种群进行交叉,生成临时种群中无度阈值的子种群。
步骤8,生成过渡种群中大于度阈值子种群:
第1步,从临时种群的大于度阈值的子种群中任意选取一个信息核个体。
第2步,从所选取的信息核个体中任意选取一个变异位置。
第3步,判断所选变异位置是否为所选取的信息核个体度阈值的位置,若是,则执行本步骤第4步,否则,执行本步骤第5步。
第4步,从[20,80]的范围中,随机选取一个整数替换所选取的信息核个体的度阈值,将所选取的信息核个体中小于新度阈值的用户替换成大于新度阈值的用户后执行本步骤第6步。
第5步,随机选取一个大于所选取的信息核个体度阈值的用户替换变异位置的用户。
第6步,判断是否选择完大于度阈值子种群中所有的信息核个体,若是,则生成过渡种群中大于度阈值的子种群,执行步骤9,否则,执行本步骤第1步。
步骤9,生成过渡种群中小于度阈值子种群:
第1步,从临时种群的小于度阈值子种群中任意选取一个信息核个体。
第2步,从所选取的信息核个体中任意选取一个变异位置。
第3步,判断所选变异位置是否为所选取的信息核个体度阈值的位置,若是,则执本步骤第4步,否则,执行本步骤第5步。
第4步,从[20,80]的范围中,随机选取一个整数替换所选取的信息核个体的度阈值,将所选取的信息核个体中大于新度阈值的用户替换成小于新度阈值的用户后执行本步骤第6步。
第5步,随机选取一个小于所选取的信息核个体度阈值的用户替换变异位置的用户。
第6步,判断是否选择完小于度阈值子种群中的每个信息核个体,若是,则生成过渡种群中小于度阈值的子种群,执行步骤10,否则,执行本步骤第1步。
步骤10,生成过渡种群中无度阈值子种群。
第1步,从临时种群的无度阈值子种群中任意选取一个信息核个体。
第2步,在所选取的信息核个体中,随机选择一个变异的位置。
第3步,随机选取一个用户替换变异位置的用户。
第4步,判断是否选择完无度阈值子种群中的每个信息核个体,若是,则生成过渡种群中无度阈值的子种群,执行步骤11,否则,执行本步骤第1步。
步骤11,计算信息核个体的推荐精度:
第1步,从父代种群与过渡种群中任意选取一个信息核个体。
第2步,按照下式,计算用户物品评分矩阵中每一个用户与所选取的信息核个体中的每一个用户之间的余弦相似度。
其中,sim(u,v)表示用户物品评分矩阵中任意用户u与信息核中任意用户v的相似度,∑表示求和操作,I(u)表示用户物品评分矩阵中的任意用户u评过分的物品集合,I(v)表示信息核中任意用户v评过分的物品集合,rui表示用户物品评分矩阵中任意用户u对物品i的评分,rvi表示信息核中任意用户v对物品i的评分,表示开平方操作,∈表示属于符号,∩表示求交集操作,I(u)∩I(v)表示两个物品集合交集中的元素。
第3步,判断是否计算完用户物品评分矩阵中所有用户与所选取的信息核个体中所有用户的相似度,若是,则执行本步骤第4步,否则,执行本步骤第2步。
第4步,选择用户物品评分矩阵中任意一个用户作为目标用户。
第5步,将目标用户与所选取的信息核个体中所有用户之间的相似度按照从大到小排序,选取排序中前K个用户为目标用户的邻居,10≤K≤50。
第6步,按照下式,计算用户物品评分矩阵中目标用户评分为0的物品的预测评分。
其中,pai表示目标用户a对未评过分的物品i的预测评分,∑表示求和操作,∈表示属于符号,Hai表示目标用户a的邻居用户集中对物品i评过分的邻居用户子集,其中,s表示目标用户的邻居用户,Ka表示目标用户a的邻居用户集,|表示集合定义符号,表示存在符号,rsi表示邻居用户s对物品i的评分,sim(a,s)表示目标用户a与邻居用户s的相似度。
第7步,判断是否预测完目标用户评分为0的所有物品的评分,若是,则执行本步骤第8步,否则,执行本步骤第6步。
第8步,将用户物品评分矩阵中目标用户评分为0的物品,按照预测评分从大到小排序,从排序中选取前L个物品,组成目标用户的推荐列表,2≤L≤20。
第9步,按照下式,计算目标用户的推荐精度:
其中,P(L)表示目标用户的推荐精度,L表示目标用户的推荐列表中的物品数,R(L)表示推荐列表中目标用户所需的物品数。
第10步,判断是否计算完用户物品评分矩阵中所有用户的推荐精度,若是,则执行本步骤第11步,否则,执行本步骤第4步。
第11步,按照下式计算信息核个体的推荐精度:
其中,PR表示信息核个体的推荐精度,N表示用户物品评分矩阵中的用户数,∑表示求和符号,U表示用户物品评分矩阵中的用户集,Pi(L)表示用户物品评分矩阵中用户i的推荐精度,∈表示属于符号。
第12步,判断是否计算完父代种群与过渡种群中所有信息核个体的推荐精度,若是,则执行步骤(12),否则,执行本步骤第1步。
步骤12,生成子代种群。
将父代种群与过渡种群中的信息核个体按照每个信息核个体的推荐精度,从大到小排序,从排序中选取前100个信息核个体作为子代种群。
步骤13,更新父代种群。
用子代种群中的每一个信息核个体,替换原父代种群中的每一个信息核个体,得到新的父代种群。
步骤14,判断当前迭代次数是否达到最大迭代次数100次,若是,则执行步骤15,否则,执行步骤7。
步骤15,完成信息核构建。
从父代种群中选取推荐精度最高的信息核个体,作为最佳信息核输出,完成信息核构建。
步骤16,进行协同过滤推荐。
利用构建的信息核为用户物品评分矩阵中每一个用户产生推荐物品列表,完成对所有用户的协同过滤推荐。
下面结合仿真实验对本发明的效果做进一步的说明。
1.仿真条件与评价指标:
本发明仿真实验的运行环境是:Windows7 64位操作系统,CPU为Intel(R)Core(TM)i3-CPU 550U@3.20GHz,内存为4GB,编译环境为Matlab2017a。
本发明的仿真实验是采用推荐系统领域常用的数据集MovieLens-100K验证本发明在提取信息核上的推荐效果,将数据集分割为训练数据子集Train、优化数据子集Optim和测试数据子集Test,具体数据统计信息见表1。表1中的英文Dataset(original)表示原始数据集,Dataset(subset)表示原始数据中的子集,包括训数据练子集Train,优化数据子集Optim,测试数据子集Test,#User表示用户数量,#Item表示物品数量,#Ratings表示评分数量,R表示用户对物品的评分,U表示用户集合,I表示物品集合。
表1数据集统计信息表
本发明的仿真实验中协同进化算法的种群大小设定为100,最大迭代代数设定为100,交叉概率设定为0.8,变异概率设定为0.01,推荐列表长度设置为20。
本发明采用推荐系统领域常用的评价指标为推荐精度precision,按如下步骤,计算信息核在测试数据子集上的推荐精度precision:
第1步,按照下式,计算用户物品评分矩阵中任意用户与信息核中任意用户之间的余弦相似度。
其中,sim(u,v)表示用户物品评分矩阵中任意用户u与信息核中任意用户v的相似度,∑表示求和操作,I(u)表示用户物品评分矩阵中的任意用户u评过分的物品集合,I(v)表示信息核中任意用户v评过分的物品集合,rui表示用户物品评分矩阵中任意用户u对物品i的评分,rvi表示信息核中任意用户v对物品i的评分,表示开平方操作,∈表示属于符号,∩表示求交集操作,I(u)∩I(v)表示两个物品集合交集中的元素。
第2步,判断是否计算完用户物品评分矩阵中所有用户与所选取的信息核个体中所有用户的相似度,若是,则执行本步骤第3步,否则,执行本步骤第1步。
第3步,选择用户物品评分矩阵中任意一个用户作为目标用户。
第4步,将目标用户与所选取的信息核个体中所有用户之间的相似度按照从大到小排序,选取排序中前K个用户为目标用户的邻居,10≤K≤50。
第5步,按照下式,计算用户物品评分矩阵中目标用户评分为0的物品的预测评分。
其中,pai表示目标用户a对未评过分的物品i的预测评分,∑表示求和操作,∈表示属于符号,Hai表示目标用户a的邻居用户集中对物品i评过分的邻居用户子集,其中,s表示目标用户的邻居用户,Ka表示目标用户a的邻居用户集,|表示集合定义符号,表示存在符号,rsi表示邻居用户s对物品i的评分,sim(a,s)表示目标用户a与邻居用户s的相似度。
第6步,判断是否预测完目标用户评分为0的所有物品的评分,若是,则执行本步骤第7步,否则,执行本步骤第5步。
第7步,将用户物品评分矩阵中目标用户评分为0的物品,按照预测评分从大到小排序,从排序中选取前L个物品,组成目标用户的推荐列表,2≤L≤20。
第8步,按照下式,计算目标用户在测试数据子集上的推荐精度:
其中,P表示目标用户在测试数据子集上的推荐精度,L表示目标用户的推荐列表中的物品数,R表示推荐列表中目标用户在测试数据子集上所需的物品数。
第9步,判断是否计算完用户物品评分矩阵中所有用户在测试数据子集上的推荐精度,若是,则执行本步骤第10步,否则,执行本步骤第3步。
第10步,按照下式计算信息核在测试数据子集上的推荐精度:
其中,precision表示信息核在测试数据子集上的推荐精度,N表示用户物品评分矩阵中的用户数,∑表示求和符号,U表示用户物品评分矩阵中的用户集,Pi表示用户物品评分矩阵中用户i在测试数据子集上的推荐精度,∈表示属于符号。
2.仿真实验内容与结果分析:
本发明的仿真实验有两个。
仿真实验1是在训练数据子集Train和测试数据子集Test上,以推荐精度precision为评价指标下进行的。仿真实验1是采用本发明的基于多子种群协同进化构建信息核的推荐方法与4个现有技术(基于传统CF的方法、基于Rank的信息核构建方法、基于Frequency的信息核构建方法和基于普通GA的信息核构建方法)的推荐精度进行对比,考虑到本发明方法与基于普通GA的信息核构建方法的随机性,求推荐精度时,重复运行10次求平均值,对比的结果如图2所示。
图2中的纵坐标表示推荐精度,横坐标表示邻居数。图2中以正方形标识的曲线表示基于Frequency的信息核构建方法获得地推荐精度。图2中以菱形标识的曲线表示基于Rank的信息核构建方法获得地推荐精度。图2中以圆形标识的曲线表示基于传统CF的方法获得地推荐精度,图2中以星号标识的曲线表示普通GA的信息核构建方法获得地推荐精度。图2中以加号标识的曲线表示本发明的方法获得地推荐精度。
从图2可以看出,本发明的曲线位于基于Rank的信息核构建方法、基于Frequency的信息核构建方法、基于传统CF的方法和基于普通GA的信息核构建方法的上方,因此说明本发明的推荐精度是最高的。
本发明的仿真实验2是在训练数据子集Train和优化数据子集Optim上,以推荐精度precision为评价指标,邻居数为10下进行的。本发明的仿真实验2是本发明与现有技术的基于普通GA的信息核构造方法的推荐精度进行对比,考虑到本发明方法与基于普通GA的信息核构造方法的随机性,求推荐精度时,重复运行10次求平均值,对比结果如图3所示。
图3中的纵坐标表示推荐精度,横坐标表示迭代次数。图3中的点划线曲线表示基于普通GA的信息核构造方法获得地推荐精度。图3中的实线曲线表示本发明获得地推荐精度。从图3中可以看出,本发明的曲线位于基于普通GA的信息核构建方法获得地曲线的上方,因此说明本发明在迭代过程中的搜索效率更高。
Claims (4)
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)进行协同过滤推荐:
利用构建的信息核为用户物品评分矩阵中每一个用户产生推荐物品列表,完成对所有用户的协同过滤推荐。
2.根据权利要求1所述的基于多子种群协同进化构建信息核的推荐方法,其特征在于,步骤(4b)、步骤(5b)中所述的用户度是指,用户在用户物品评分矩阵中已评分的物品数。
3.根据权利要求1所述的基于多子种群协同进化构建信息核的推荐方法,其特征在于,步骤(11b)中所述的余弦相似度公式如下:
其中,sim(u,v)表示用户物品评分矩阵中任意用户u与信息核中任意用户v的相似度,∑表示求和操作,I(u)表示用户物品评分矩阵中的任意用户u评过分的物品集合,I(v)表示信息核中任意用户v评过分的物品集合,rui表示用户物品评分矩阵中任意用户u对物品i的评分,rvi表示信息核中任意用户v对物品i的评分,表示开平方操作,∈表示属于符号,∩表示求交集操作,I(u)∩I(v)表示两个物品集合交集中的元素。
4.根据权利要求1所述的基于多子种群协同进化构建信息核的推荐方法,其特征在于,步骤(11f)中所述的协同过滤公式如下:
其中,pai表示目标用户a对未评过分的物品i的预测评分,∑表示求和操作,∈表示属于符号,Hai表示目标用户a的邻居用户集中对物品i评过分的邻居用户子集,其中,s表示目标用户的邻居用户,Ka表示目标用户a的邻居用户集,|表示集合定义符号,表示存在符号,rsi表示邻居用户s对物品i的评分,sim(a,s)表示目标用户a与邻居用户s的相似度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810228833.1A CN108460147A (zh) | 2018-03-20 | 2018-03-20 | 基于多子种群协同进化构建信息核的推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810228833.1A CN108460147A (zh) | 2018-03-20 | 2018-03-20 | 基于多子种群协同进化构建信息核的推荐方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108460147A true CN108460147A (zh) | 2018-08-28 |
Family
ID=63237292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810228833.1A Pending CN108460147A (zh) | 2018-03-20 | 2018-03-20 | 基于多子种群协同进化构建信息核的推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108460147A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109949099A (zh) * | 2019-03-23 | 2019-06-28 | 西安电子科技大学 | 基于聚类及多臂赌博机的信息核构建方法 |
CN114117306A (zh) * | 2021-11-30 | 2022-03-01 | 安徽大学绿色产业创新研究院 | 一种基于本地化差分隐私保护的多目标推荐方法 |
-
2018
- 2018-03-20 CN CN201810228833.1A patent/CN108460147A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109949099A (zh) * | 2019-03-23 | 2019-06-28 | 西安电子科技大学 | 基于聚类及多臂赌博机的信息核构建方法 |
CN109949099B (zh) * | 2019-03-23 | 2022-04-08 | 西安电子科技大学 | 基于聚类及多臂赌博机的信息核构建方法 |
CN114117306A (zh) * | 2021-11-30 | 2022-03-01 | 安徽大学绿色产业创新研究院 | 一种基于本地化差分隐私保护的多目标推荐方法 |
CN114117306B (zh) * | 2021-11-30 | 2022-07-15 | 安徽大学绿色产业创新研究院 | 一种基于本地化差分隐私保护的多目标推荐方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678672B (zh) | 一种信息推荐方法 | |
CN105893609B (zh) | 一种基于加权混合的移动app推荐方法 | |
CN105335491B (zh) | 基于用户点击行为来向用户推荐图书的方法和系统 | |
CN104462383B (zh) | 一种基于用户多种行为反馈的电影推荐方法 | |
CN107391659B (zh) | 一种基于信誉度的引文网络学术影响力评价排序方法 | |
CN107330115A (zh) | 一种信息推荐方法及装置 | |
CN107491813A (zh) | 一种基于多目标优化的长尾群组推荐方法 | |
CN105956093B (zh) | 一种基于多视图锚点图哈希技术的个性化推荐方法 | |
CN103530416B (zh) | 项目数据预测评分库的生成、项目数据的推送方法和系统 | |
CN103678436B (zh) | 信息处理系统和信息处理方法 | |
CN106022473A (zh) | 一种融合粒子群和遗传算法的基因调控网络构建方法 | |
CN108776919A (zh) | 基于聚类及进化算法构建信息核的物品推荐方法 | |
CN106168953A (zh) | 面向弱关系社交网络的博文推荐方法 | |
CN107368540A (zh) | 基于用户自相似度的多模型相结合的电影推荐方法 | |
CN107256241A (zh) | 基于网格与差异替换改进多目标遗传算法的电影推荐方法 | |
CN103366009B (zh) | 一种基于自适应聚类的图书推荐方法 | |
CN106127506A (zh) | 一种基于主动学习解决商品冷启动问题的推荐方法 | |
CN105631464B (zh) | 对染色体序列和质粒序列进行分类的方法及装置 | |
CN106202999A (zh) | 基于不同尺度tuple词频的微生物高通量测序数据分析协议 | |
CN105260460B (zh) | 一种面向多样性的推荐方法 | |
CN108460147A (zh) | 基于多子种群协同进化构建信息核的推荐方法 | |
CN104657472A (zh) | 一种基于进化算法的英文文本聚类方法 | |
CN109740722A (zh) | 一种基于Memetic算法的网络表示学习方法 | |
CN104572915B (zh) | 一种基于内容环境增强的用户事件相关度计算方法 | |
CN112861019A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180828 |