CN110162704B - 基于多因子遗传算法的多规模关键用户提取方法 - Google Patents
基于多因子遗传算法的多规模关键用户提取方法 Download PDFInfo
- Publication number
- CN110162704B CN110162704B CN201910421711.9A CN201910421711A CN110162704B CN 110162704 B CN110162704 B CN 110162704B CN 201910421711 A CN201910421711 A CN 201910421711A CN 110162704 B CN110162704 B CN 110162704B
- Authority
- CN
- China
- Prior art keywords
- candidate sequence
- key user
- parent
- key
- parent candidate
- 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
Links
Images
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/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于多因子遗传算法的多规模关键用户提取方法,解决了推荐***中不同规模关键用户同时提取的技术问题,主要步骤包括:生成候选序列集合,计算候选序列集合的多个关键用户提取任务的平均绝对误差;计算父代候选序列的能力因子和标量适应度值;对父代候选序列集合进行匹配性遗传操作;对子代候选序列集合进行选择性平均绝对误差更新;输出多个不同规模关键用户集合。本发明将多因子遗传算法中优化的种群用本发明中的关键用户候选序列集合表示,计算每个父代候选序列的能力因子和标量适应度值,对父代候选序列集合进行匹配性遗传操作,选择性更新子代候选序列集合。推荐准确率高,提取效率高。可用于网络关键信息的提取。
Description
技术领域
本发明属于计算机和网络技术领域,更进一步涉及关注信息提取,具体是一种基于多因子遗传算法的多规模关键用户提取方法。本发明可用于同时提取推荐***的不同规模的关键用户,利用提取的不同规模的***关键用户及其携带的信息完成推荐过程,为***目标用户提供准确高效的推荐。
背景技术
推荐***是帮助用户快速发现所需物品和有用信息的工具和数据挖掘技术。在多种决策应用中,推荐***都能够提供有用的建议。推荐***中存在着一组携带着客观、可靠且有利于推荐过程的关键用户,提取出***中的关键用户,利用***关键用户携带的信息完成推荐过程,能够为***目标用户推荐其喜欢的物品。***目标用户就是推荐***中接受推荐的对象。目前,已有的推荐***关键用户提取方法主要包括以准确率为目标的贪心算法和进化算法。
Caihong Mu等人在其发表的论文“Information core optimization usingEvolutionary Algorithm with Elite Population in recommender systems”(Proceedings of the 2017IEEE Congress on Evolutionary Computation,文章编号:441-462,2017)中提出了一种基于精英保留策略的进化算法提取推荐***关键用户的方法。该方法的实施步骤是:步骤1,构建***用户物品评分矩阵;步骤2,父代个体种群初始化,对所有个体计算适应度;步骤3,根据M精英策略,按适应度对所有个体排序,对所有个体执行顺序交叉操作,得到***关键用户;步骤4,利用提取的***关键用户完成推荐过程,给出推荐结果。该方法存在的不足之处是,利用该方法提取的***关键用户时,在同一进化过程中只能得到一种规模的关键用户,提取关键用户的效率低。
河海大学在其申请的专利文献“基于关键用户和时间上下文的二部图推荐方法”(申请号:201711190064.2,申请公布号:CN 108038746 A)中公开了一种基于关键用户和时间上下文的个性化推荐方法。该方法的实施步骤是:步骤1,采集所有用户对物品的行为反馈数据;步骤2,根据评分数量权重和用户对商品的评分样本标准差衡量用户的交易经验度和评分准确度,确定每个用户的权威度,根据用户的权威度大小来提取关键用户;步骤3,构建每个用户的兴趣偏好邻居集;步骤4,在经裁剪的二部图中进行资源扩散,并在第二步扩散过程中引入时间上下文;步骤5,为目标用户推荐将步骤4中获得资源最多且用户没有购买过的前N个物品,其中N为目标用户推荐的物品个数。该推荐方法存在的不足之处是,规定用户的权威度大小作为关键用户提取的标准,此标准根据工程实际经验制定,实际应用中获得的推荐结果准确率不高。
现有的推荐***关键用户提取方法往往存在准确率不高且提取效率低的缺点。
发明内容
本发明的目的在于针对上述现有技术的不足,提出了一种准确率高且提取效率高的基于多因子遗传算法的提取多规模关键用户的方法。
本发明是一种基于多因子遗传算法的多规模关键用户提取方法,其特征在于,包括有如下步骤:
(1)获取数据并划分为训练集、验证集和测试集:从网上截取包含不同规模关键用户的所有用户对物品的评分数据作为基础数据,并按照60%,20%,20%的比例将基础数据划分为训练集、验证集和测试集;
(2)生成候选序列集合;输入k个任务,每个任务均是推荐***关键用户的提取任务,其中每个关键用户提取任务对应的关键用户提取规模分别为p1,p2,…,pk,k为推荐***多规模关键用户提取任务的数量,也是关键用户提取规模的数量;基于多因子遗传算法编码方法,将k个关键用户提取规模降序排列,选择第一个关键用户提取规模作为候选序列的长度q,分别随机生成N个q维的父代候选序列和N个q维的子代候选序列,每一维随机取值为0到1之间的随机数,其中N为父代候选序列的数量,也是子代候选序列的数量;将N个父代候选序列和N个子代候选序列的集合作为2N个中间候选序列,生成的父代、子代和中间候选序列集合经过映射即可得到包含多规模关键用户的关键用户序列集合;
(3)计算每个父代候选序列的k个关键用户提取任务的平均绝对误差:针对每个父代候选序列,根据映射公式,将该父代候选序列的前pj位作为第j个关键用户提取任务得到的关键用户序列,其中pj为第j个多规模关键用户提取任务的关键用户提取规模,得到每个父代候选序列在k个关键用户提取任务上的关键用户序列;针对每个父代候选序列在k个关键用户提取任务上的关键用户序列,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到基础数据验证集中用户的预测评分,根据平均绝对误差计算公式,计算每个父代候选序列在每个关键用户提取任务上得到的平均绝对误差;
(4)计算每个父代候选序列的能力因子和标量适应度值:针对每个关键用户提取任务,对所有父代候选序列在每个关键用户提取任务上得到的平均绝对误差分别升序排序,得到每个父代候选序列在k个关键用户提取任务上的排序序号,利用得到的排序序号,计算每个父代候选序列的能力因子和标量适应度值;
(5)输入终止阈值:终止阈值根据实际工程通过经验设定;
(6)对父代候选序列集合进行匹配性遗传操作,更新子代候选序列集合:基于多因子遗传算法,从父代候选序列集合中逐次随机选择两个父代候选序列,根据随机交配概率和两个父代候选序列的能力因子进行匹配性遗传,对能力因子相同的两个父代候选序列执行均匀交叉操作,得到两个子代候选序列,对能力因子不同的两个父代候选序列分别执行基本位变异操作,得到两个子代候选序列;
(7)选择性更新每个子代候选序列的k个关键用户提取任务的平均绝对误差:对由两个父代候选序列均匀交叉得到的子代候选序列,随机选择任意一个父代候选序列的能力因子对应的关键用户提取任务,计算平均绝对误差,对由唯一父代候选序列标准位变异得到的子代候选序列,计算其唯一父代候选序列的能力因子对应的关键用户提取任务的平均绝对误差,将每个子代候选序列未被计算的关键用户提取任务的平均绝对误差更新为100000;
(8)合并父代候选序列集合和子代候选序列集合,得到中间候选序列集合;
(9)计算并更新每个中间候选序列的能力因子和标量适应度值:针对每个关键用户提取任务,对所有中间候选序列在每个关键用户提取任务上的平均绝对误差分别升序排序,得到所有中间候选序列在k个关键用户提取任务上的排序序号,利用得到的排序序号,计算并更新每个中间候选序列的能力因子和标量适应度值;
(10)更新父代候选序列集合:将2N个中间候选序列的标量适应度值降序排列,选择前N个中间候选序列作为更新后的父代候选序列集合;
(11)计算最小平均绝对误差和,判定是否小于终止阈值:对所有父代候选序列按照标量适应度值降序排列,计算第一个父代候选序列的k个关键用户提取任务的平均绝对误差和,作为多规模关键用户提取任务的最小平均绝对误差和;判断最小平均绝对误差和是否小于终止阈值,若是,执行步骤(12),否则,执行步骤(6),进入父代候选序列更新循环;
(12)输出多规模关键用户提取结果:针对第j个关键用户提取任务,将N个父代候选序列在该关键用户提取任务上按照平均绝对误差升序排序,利用映射公式,将第一个父代候选序列的前pj维转换为第j个关键用户提取任务的关键用户提取结果,用相同的方法,依次得到并输出k个关键用户提取任务的关键用户提取结果,完成多规模关键用户提取过程;
(13)测试提取的k个不同规模关键用户集合性能:针对得到的k个关键用户提取任务的关键用户提取结果,基于关键用户的协同过滤推荐算法,分别完成推荐过程,得到k个关键用户提取任务在测试集用户的预测评分,根据平均绝对误差计算公式,计算k个关键用户提取任务得到的平均绝对误差。
本发明将多因子遗传算法中优化的种群用本发明中的关键用户候选序列集合表示,计算每个父代候选序列的能力因子和标量适应度值,对每个父代候选序列进行匹配性遗传操作,选择性更新子代候选序列集合,得到不同规模的关键用户集合。可用于同时提取推荐***的不同规模的关键用户,利用提取的不同规模的***关键用户及其携带的信息完成推荐过程,为***目标用户提供准确高效的推荐。
本发明与现有技术相比有以下优点:
多规模关键用户提取效率高:由于本发明基于多因子遗传算法,将多因子遗传算法中优化的种群用本发明中的候选关键用户序列集合表示,计算每个父代候选序列的能力因子和标量适应度值,克服了现有技术将推荐准确率作为优化目标,单次优化过程中只能提取单一规模关键用户,提取效率不高的问题,使得本发明在同一优化过程中能够得到不同规模的关键用户集合,提高了关键用户的提取效率,将不同规模的关键用户投入到推荐过程中时,不仅能提供准确的推荐,还加快了推荐***的在线推荐速度。
多规模关键用户提取结果准确率高:由于本发明对父代候选序列集合进行匹配性遗传操作,选择性更新子代候选序列集合,得到不同规模的关键用户集合,克服了现有技术将关键用户选择的标准规定为用户的权威度大小,此标准根据实际工程经验制定,得到的推荐结果准确率不高的问题,使得本发明选择的不同规模的关键用户投入到推荐过程中有更高的准确率。
计算复杂度低:选择性更新子代候选序列集合,减少了不必要的计算,总体上降低了计算复杂度。
附图说明
图1是本发明的流程框图;
图2是本发明与对比方法在基础数据MovieLens-100k上的仿真结果图。
具体实施方式:
以下结合附图对本发明做详细描述。
实施例1
随着现代科技和互联网的发展,人们的生产生活中接触到越来越多的信息。信息时代给人们带来了便利,也带来了信息过载和信息***问题。推荐***是解决信息过载问题的一种有效手段,是一种帮助用户快速发现所需物品和有用信息的工具和数据挖掘技术,是现代工业的重要分支。推荐***可以帮助用户在大量数据或信息中快速准确地找到所需,也可以帮助商家为一些长尾物品提供更多的展示机会,提高商品的转化效率。在多种决策应用中,推荐***都能提供有用的建议。推荐***帮助用户在目的不明确的情况下,从纷繁的大数据中做出合理解释,本质上是一种信息过滤方法。推荐***已广泛应用于包括电商,影音,书籍以及餐饮时尚等各种不同的领域。在推荐***中用户可以对物品进行评分,用户对物品的评分数据反映了用户对物品的感兴趣程度,也就是用户的喜好。
每个推荐***都包含一组携带着***中大部分可靠客观且对推荐结果有利的信息的用户,这些用户被称为推荐***的关键用户,利用这些关键用户以及他们携带的信息投入到推荐过程中,可以得到令人满意的推荐结果,同时大大减少推荐时间,提高推荐***的实时推荐效率。但是现有关键用户提取方法存在准确率不高且提取效率低的问题,本发明针对现有方法准确率和提取效率方面存在的不足,展开研究,提出了一种基于多因子遗传算法的多规模关键用户提取方法,参见图1,包括有如下步骤:
(1)获取数据并划分为训练集、验证集和测试集:从网上截取包含不同规模关键用户的所有用户对物品的评分数据作为基础数据,并按照60%,20%,20%的比例将基础数据划分为训练集、验证集和测试集。
为了便于理解,从推荐***和推荐方法的角度讲,也可以描述为输入用户物品评分数据:获取m个用户对n个物品的评分数据,按照60%,20%,20%的比例将评分数据划分为训练集、验证集和测试集。用户对物品的评分数据可以来自信息工程、数据工程中的实际网络信息。
(2)生成候选序列集合;输入k个任务,每个任务均是推荐***关键用户的提取任务,其中每个关键用户提取任务对应的关键用户提取规模分别为p1,p2,…,pk,k为推荐***多规模关键用户提取任务的数量,也是关键用户提取规模的数量。基于多因子遗传算法编码方法,将k个关键用户提取规模降序排列,选择第一个关键用户提取规模作为候选序列的长度q,分别随机生成N个q维的父代候选序列和N个q维的子代候选序列,每一维随机取值为0到1之间的随机数,其中N为父代候选序列的数量,也是子代候选序列的数量。将N个父代候选序列和N个子代候选序列的集合作为2N个中间候选序列,将生成的父代、子代和中间候选序列集合经过映射,即可得到包含多规模关键用户的关键用户序列集合。
(3)计算每个父代候选序列的k个关键用户提取任务的平均绝对误差:针对每个父代候选序列,根据映射公式,将该父代候选序列的前pj位作为第j个关键用户提取任务得到的关键用户序列,其中pj为第j个多规模关键用户提取任务的关键用户提取规模,得到每个父代候选序列在k个关键用户提取任务上的关键用户序列。针对每个父代候选序列在k个关键用户提取任务上的关键用户序列,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到基础数据验证集中用户的预测评分。根据平均绝对误差计算公式,计算每个父代候选序列在每个关键用户提取任务上得到的平均绝对误差。
(4)计算每个父代候选序列的能力因子和标量适应度值:针对每个关键用户提取任务,对所有父代候选序列在每个关键用户提取任务上得到的平均绝对误差分别升序排序,得到每个父代候选序列在k个关键用户提取任务上的排序序号,利用得到的排序序号,计算每个父代候选序列的能力因子和标量适应度值。
(5)输入终止阈值:终止阈值根据实际工程通过经验设定。
(6)对父代候选序列集合进行匹配性遗传操作,更新子代候选序列集合:基于多因子遗传算法,从父代候选序列集合中逐次随机选择两个父代候选序列,根据随机交配概率和两个父代候选序列的能力因子进行匹配性遗传,对能力因子相同的两个父代候选序列执行均匀交叉操作,得到两个子代候选序列,对能力因子不同的两个父代候选序列分别执行基本位变异操作,分别得到两个子代候选序列。
(7)选择性更新每个子代候选序列的k个关键用户提取任务的平均绝对误差:对由两个父代候选序列均匀交叉得到的子代候选序列,随机选择任意一个父代候选序列的能力因子对应的关键用户提取任务,计算平均绝对误差,对由唯一父代候选序列标准位变异得到的子代候选序列,计算其唯一父代候选序列的能力因子对应的关键用户提取任务的平均绝对误差,将每个子代候选序列未被计算的关键用户提取任务的平均绝对误差更新为100000。
(8)合并父代候选序列集合和子代候选序列集合,得到中间候选序列集合。
(9)计算并更新每个中间候选序列的能力因子和标量适应度值:针对每个关键用户提取任务,对所有中间候选序列在每个关键用户提取任务上的平均绝对误差分别升序排序,得到所有中间候选序列在k个关键用户提取任务上的排序序号,利用得到的排序序号,计算并更新每个中间候选序列的能力因子和标量适应度值。
(10)更新父代候选序列集合:将2N个中间候选序列的标量适应度值降序排列,选择前N个中间候选序列作为更新后的父代候选序列集合。
(11)计算最小平均绝对误差和,判定是否小于终止阈值:对所有父代候选序列按照标量适应度值降序排列,计算第一个父代候选序列的k个关键用户提取任务的平均绝对误差和,作为多规模关键用户提取任务的最小平均绝对误差和,判断最小平均绝对误差和是否小于终止阈值,若是,即小于终止阈值,执行步骤(12),输出关键用户集合提取结果并测试性能,否则,大于等于终止阈值时,执行步骤(6),进入父代候选序列集合更新循环。本发明是循环更新父代候选序列集合的能力因子和标量适应度值,对父代候选序列集合进行匹配性遗传操作,选择性更新子代候选序列集合直至最小平均绝对误差和小于终止阈值。
(12)输出多规模关键用户提取结果:针对第j个关键用户提取任务,将N个父代候选序列在该关键用户提取任务上按照平均绝对误差升序排序,利用映射公式,将第一个父代候选序列的前pj维转换为第j个关键用户提取任务的关键用户提取结果,用相同的方法,依次得到并输出k个关键用户提取任务的关键用户提取结果,完成多任务关键用户提取过程。
(13)测试提取的k个不同规模关键用户集合性能:针对得到的k个关键用户提取任务的关键用户提取结果,基于关键用户的协同过滤推荐算法,分别完成推荐过程,得到k个关键用户提取任务在测试集用户的预测评分,根据平均绝对误差计算公式,计算k个关键用户提取任务得到的平均绝对误差。
本发明的具体思路是,将多因子遗传算法中优化的种群用本发明中的关键用户候选序列集合表示,计算每个父代候选序列的能力因子和标量适应度值,对父代候选序列集合进行匹配性遗传操作,选择性更新子代候选序列集合,确定推荐***不同规模关键用户集合。利用提取的不同规模关键用户及其携带的评分信息可以为推荐***目标用户推荐物品。
本发明给出了一个实现提取推荐***多规模关键用户的整体的技术方案,能够从繁杂众多的推荐***数据中,在一次提取过程中同时提取不同规模的关键用户,滤除冗余数据,提取出人们关注的信息,有利于应对信息时代的数据***问题。
实施例2
基于多因子遗传算法的多规模关键用户提取方法同实施例1,步骤(4)中所述的能力因子和标量适应度值的计算,包括有如下步骤:
(4a)任务选取:从k个关键用户提取任务中任意选取一个未选取的任务。
(4b)父代候选序列集合在选取的任务上排序:将N个父代候选序列在选取的任务上得到的平均绝对误差升序排列,得到N个父代候选序列在选取的任务上的一组排序序号。
(4c)判断是否选完所有任务:判断选取的任务数量是否达到k个,若是,执行步骤(4d),进入父代候选序列选取循环,否则,执行步骤(4a),进入k个关键用户提取任务选取循环。
(4d)父代候选序列选取:从N个父代候选序列中任意选取一个未选取的的父代候选序列。
(4e)父代候选序列能力因子和标量适应度值计算:对选取的父代候选序列在k个任务中得到的排序序号升序排列,选择第一个排序序号对应的任务作为该父代候选序列的能力因子,以第一个排序序号的倒数作为该父代候选序列的标量适应度值。
(4f)判断是否选完所有父代候选序列:判断已选取的父代候选序列的数量是否达到N个,若是,执行步骤(5),输入终止阈值,否则,执行步骤(4d),完成父代候选序列集合能力因子和标量适应度值的计算。
本发明步骤(9)中所述的能力因子和标量适应度值的计算及更新,计算对象是2N个中间候选序列,计算步骤同上,包括有如下步骤:
(9a)任务选取:从k个关键用户提取任务中任意选取一个未选取的任务。
(9b)中间候选序列集合在选取的任务上排序:将2N个中间候选序列在选取的任务上得到的平均绝对误差升序排列,得到2N个中间候选序列在选取的任务上的一组排序序号。
(9c)判断是否选完所有任务:判断选取的任务数量是否达到k个,若是,执行步骤(9d),进入中间候选序列选取循环,否则,执行步骤(9a),进入k个关键用户提取任务选取循环。
(9d)中间候选序列选取:从2N个中间候选序列中任意选取一个未选取的的中间候选序列。
(9e)中间候选序列能力因子和标量适应度值计算:对选取的中间候选序列在k个任务中得到的排序序号升序排列,选择第一个排序序号对应的任务作为该中间候选序列的能力因子,以第一个排序序号的倒数作为该中间候选序列的标量适应度值。
(9f)判断是否选完所有中间候选序列:判断已选取的中间候选序列的数量是否达到2N个,若是,执行步骤(10),更新父代候选序列集合,否则,执行步骤(9d),完成中间候选序列集合能力因子和标量适应度值的计算及更新。
本发明基于多因子遗传算法,将多因子遗传算法中优化的种群用本发明中的关键用户候选序列集合表示,计算每个父代候选序列的能力因子和标量适应度值,克服了现有技术将推荐准确率作为优化目标,单次优化过程中只能提取单一规模关键用户,提取效率不高的问题。本发明的技术方案在同一优化过程中能够得到不同规模的关键用户集合,有效提高了关键用户的提取效率。
实施例3
基于多因子遗传算法的多规模关键用户提取方法同实施例1-2,步骤(6)中所述的父代候选序列集合进行匹配性遗传操作并更新子代候选序列集合,包括有如下步骤:
(6a)交配概率输入:输入随机交配概率rmp。
(6b)父代候选序列选取:从父代候选序列集合中任意选取两个父代候选序列,称为第一父代候选序列pa和第二父代候选序列pb。
(6c)随机数生成:随机生成一个0到1之间的随机数rand。
(6d)判断:判断第一父代候选序列pa和第二父代候选序列pb的能力因子是否相同或rand是否小于rmp,若是,执行步骤(6e),执行均匀交叉操作,否则,执行步骤(6f),执行基本位变异操作。
(6e)均匀交叉操作:第一父代候选序列pa和第二父代候选序列pb通过均匀交叉操作,得到更新后的第一子代候选序列ca和第二子代候选序列cb,执行步骤(6g)。
(6f)基本位变异操作:第一父代候选序列pa通过基本位变异操作得到更新后的第一子代候选序列ca,第二父代候选序列pb通过基本位变异操作得到更新后的第二子代候选序列cb。
(6g)判断:判断从父代候选序列集合中任意选择两个父代候选序列的次数是否达到次,若是,执行步骤(7),选择性更新每个子代候选序列的k个关键用户提取任务的平均绝对误差,否则,执行步骤(6b),进入父代候选序列选取循环。
由于本发明对每个父代候选序列进行匹配性遗传操作,根据能力因子,匹配性选择父代候选序列进行遗传操作,使得能力因子相同的父代候选序列有更高的几率执行均匀交叉操作,进行遗传基因交流,克服了现有技术将关键用户选择的标准规定为用户的权威度大小,此标准根据实际工程经验制定,得到的推荐结果准确率不高的问题,使得本发明选择的不同规模的关键用户投入到推荐过程中有更高的准确率。
实施例4
基于多因子遗传算法的多规模关键用户提取方法同实施例1-3,本发明步骤(7)中选择性更新每个子代候选序列的k个关键用户提取任务的平均绝对误差,包括有如下步骤:
(7a)从子代候选序列集合中任意选取一个未选取的子代候选序列集合。
(7b)根据映射公式,将选取的子代候选序列映射为关键用户序列。
(7c)判断选取的子代候选序列是否通过两个父代候选序列均匀交叉得到,若是,执行步骤(7d),否则,执行步骤(7j)。
(7d)随机生成一个0到1之间的随机数rand1。
(7e)判断rand1是否小于0.5,若是,执行步骤(7f),否则,执行步骤(7h)。
(7f)将选取的子代候选序列上第一父代候选序列pa的能力因子对应的关键用户提取任务的提取规模作为分界值a,选择映射得到的关键用户序列的前a位作为该子代候选序列映射得到的关键用户集合,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到验证集用户的预测评分。
(7g)根据平均误差计算公式,利用得到的验证集用户的预测评分,更新选取的子代候选序列上第一父代候选序列pa的能力因子对应的关键用户提取任务的平均绝对误差;执行步骤(7l)。
(7h)将选取的子代候选序列上第二父代候选序列pb的能力因子对应的关键用户提取任务的提取规模作为分界值b,选择映射得到的关键用户序列的前b位作为该子代候选序列映射得到的关键用户集合,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到验证集用户的预测评分。
(7i)根据平均误差计算公式,利用得到的验证集用户的预测评分,更新选取的子代候选序列上第二父代候选序列pb的能力因子对应的关键用户提取任务的平均绝对误差;执行步骤(7l)。
(7j)将选取的子代候选序列上唯一父代候选序列的能力因子对应的关键用户提取任务的提取规模作为分界值c,选择映射得到的关键用户序列的前c位作为该子代候选序列映射得到的关键用户集合,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到验证集用户的预测评分。
(7k)根据平均误差计算公式,利用得到的验证集用户的预测评分,更新选取的子代候选序列上唯一父代候选序列的能力因子对应的关键用户提取任务的平均绝对误差。
(7l)更新选取的子代候选序列上所有未更新的任务的平均绝对误差为100000。
(7m)判断选取的子代候选序列的数量是否达到N个,若是,执行步骤(8),合并父代候选序列集合和子代候选序列集合,否则,执行步骤(7a),进入子代候选序列选取循环;
本发明选择性更新每个子代候选序列的k个关键用户提取任务的平均绝对误差,根据子代候选序列对应的父代候选序列的能力因子,选择性继承父代候选序列更擅长的任务进型平均绝对误差计算,即选择父代候选序列有最小平均绝对误差的任务进行子代候选序列平均绝对误差计算及更新,使得本发明减少了不必要的计算,整个提取过程更加简洁高效,提取多规模关键用户时有更高的提取效率。
实施例5
基于多因子遗传算法的多规模关键用户提取方法同实施例1-4,步骤(6e)中所述的均匀交叉操作,包括有如下步骤:
(6e1)生成交叉指示向量:随机生成一个q维的交叉指示向量,其中,交叉指示向量的每一维随机取值为0或1,q为候选序列长度。q为输入的推荐***多规模关键用户提取任务的多个关键用户提取规模的最大值。
(6e2)交叉指示向量分量选取:从交叉指示向量中任意选取一维未选取的交叉指示向量分量。
(6e3)判断交叉指示分量是否为1:判断选取的交叉指示向量分量是否为1,若是,则将第一子代候选序列ca的对应维更新为第一父代候选序列pa对应维的数值,将第二子代候选序列cb的对应维更新为第二父代候选序列pb对应维的数值,否则,则将第一子代候选序列ca的对应维更新为第二父代候选序列pb对应维的数值,将第二子代候选序列cb的对应维更新为第一父代候选序列pa对应维的数值。
(6e4)判断是否完成均匀交叉操作:判断是否取完所有交叉指示向量分量,若是,完成选取的两个父代候选序列的均匀交叉操作,执行步骤(6g),进入父代候选序列选取循环,否则,执行(6e2),继续进入交叉指示向量选取循环。
本发明从父代候选序列集合中逐次随机选取两个父代候选序列进行均匀交叉操作,使得父代候选序列的基因能够充分交流,生成的子代候选序列能够均匀地继承两个父代候选序列的基因,使得本发明能更准确快速地收敛到多规模关键用户提取结果,准确高效地得到不同规模的推荐***关键用户。
实施例6
基于多因子遗传算法的多规模关键用户提取方法同实施例1-5,步骤(6f)中所述的基本位变异操作,包括有如下步骤:
(6f1)确定变异位:随机生成一个[1,q-1]之间的随机整数z,将z作为变异位位置。
(6f2)更新变异位:随机生成一个(0,1)之间的随机数w,将选取的父代候选序列的第z位更新为w。
本发明对父代候选序列执行标准位变异操作,扩大了搜索空间,克服了现有的基于进化算法的关键用户提取方法在提取过程容易陷入局部最优解的不足,提高了搜索效率,使得本发明能快速得到准确的多规模关键用户集合。
下面给出一个详细的例子,对本发明进一步说明。
实施例7
基于多因子遗传算法的多规模关键用户提取方法同实施例1-6,参照图1,对本发明的具体实现步骤做进一步的描述。
步骤1,获取数据并划分为训练集、验证集和测试集。
从网上截取包含不同规模关键用户的所有用户对物品的评分数据作为基础数据,并按照60%,20%,20%的比例将基础数据划分为训练集、验证集和测试集。
从推荐***和推荐算法的角度讲,输入用户物品评分数据:输入m个用户对n个物品的评分数据,按照60%,20%,20%的比例将评分数据划分为训练集、验证集和测试集。
步骤2,生成候选序列集合。
步骤2.1,输入k个推荐***关键用户提取任务,其中关键用户提取规模分别为p1,p2,…,pk。
步骤2.2,将k个关键用户提取规模降序排列,选择第一个关键用户提取规模作为候选序列和结果序列的长度q。
步骤2.3,随机生成N个q维的父代候选序列,每一维随机取值为0到1之间的随机数,其中N为父代候选序列的数量。
步骤2.4,随机生成N个q维的子代候选序列,每一维随机取值为0到1之间的随机数,其中N为子代候选序列的数量。
步骤2.5,将N个父代候选序列和N个子代候选序列的集合作为2N个中间候选序列。
步骤3,计算每个父代候选序列的k个关键用户提取任务的平均绝对误差。
步骤3.1,从父代候选序列集合中任意选取一个未选取的父代候选序列。
步骤3.2,生成一个空的关键用户序列。
步骤3.3,根据映射公式,将选取的父代候选序列映射为关键用户序列。
所述的映射公式如下:
si=1+(n-1)×yi
其中si表示选取的父代候选序列中第i维映射后的关键用户序号,n表示推荐***全体用户数量,yi表示选取的父代候选序列中第i维元素的数值。
步骤3.4,从k个关键用户提取任务中任意选取一个未选取的任务。
步骤3.5,将已选取的关键用户提取任务对应的关键用户提取规模作为选择阈值a,将关键用户序列的前a位作为已选择的关键用户提取任务得到的关键用户序号集合。
步骤3.6,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到验证集用户的预测评分。
所述的基于关键用户的协同过滤推荐算法具体步骤如下:
步骤3.6.1,利用下式,计算推荐***中所有用户与关键用户的余弦相似度。
其中Suv表示第u个用户和第v个关键用户的余弦相似度,n表示推荐***中所有物品的数量,i表示物品的序号,∑表示求和操作,rui表示第u个用户对第i个物品的评分,rvi表示第v个关键用户对第i个物品的评分,表示开根号操作。
步骤3.6.2,选择与每个用户相似度最高的L个关键用户作为邻居用户集合。
步骤3.6.3,利用下式,计算每个用户对每个物品的预测评分。
步骤3.7,根据平均绝对误差计算公式,计算选取的父代候选序列在选取的关键用户提取任务上得到的平均绝对误差。
所述的平均误差计算公式如下:
其中,MAE表示验证集中预测评分与真实评分的平均绝对误差,Tu表示推荐***全体用户的集合,Iu表示验证集中第u个用户评分过的物品集合,ru,i和分别表示验证集中第u个用户对第i个物品的真实评分和预测评分。
步骤3.8,判断已选取的父代候选序列中已选取的任务数量是否达到k个,若是,执行步骤3.9,否则,执行步骤3.4。
步骤3.9,判断已选取的父代候选序列的数量是否达到N个,若是,执行步骤4,否则执行步骤3.1。
步骤4,计算每个父代候选序列的能力因子和标量适应度值。
步骤4.1,从k个关键用户提取任务中任意选取一个未选取的任务。
步骤4.2,将N个父代候选序列在选取的任务上得到的平均绝对误差升序排列,得到N个父代候选序列在选取的任务上的一组排序序号。
步骤4.3,判断选取的任务数量是否达到k个,若是,执行步骤4.4,否则,执行步骤4.1。
步骤4.4,从N个父代候选序列中任意选取一个未选取的的父代候选序列。
步骤4.5,对选取的父代候选序列在k个任务中得到的排序序号升序排列,选择第一个排序序号对应的任务作为该父代候选序列的能力因子,以第一个排序序号的倒数作为该父代候选序列的标量适应度值。
步骤4.6,判断已选取的父代候选序列的数量是否达到N个,若是,执行步骤5,否则,执行步骤4.4。
步骤5,输入终止阈值:终止阈值根据实际工程通过经验设定。
步骤6,对父代候选序列集合进行匹配性遗传操作,更新子代候选序列集合。
步骤6.1,输入随机交配概率rmp。
步骤6.2,从父代候选序列集合中任意选取两个父代候选序列,称为第一父代候选序列pa和第二父代候选序列pb。
步骤6.3,随机生成一个0到1之间的随机数rand。
步骤6.4,判断第一父代候选序列pa和第二父代候选序列pb的能力因子是否相同或rand是否小于rmp,若是,执行步骤6.5,否则,执行步骤6.6。
步骤6.5,第一父代候选序列pa和第二父代候选序列pb通过基本均匀交叉操作,得到更新后的第一子代候选序列ca和第二子代候选序列cb。
所述的均匀交叉操作具体步骤如下:
步骤6.5.1,随机生成一个q维的交叉指示向量,其中,交叉指示向量的每一维随机取值为0或1,q为候选序列长度。
步骤6.5.2,从交叉指示向量中任意选取一维未选取的交叉指示向量分量。
步骤6.5.3,判断选取的交叉指示向量分量是否为1,若是,则将第一子代候选序列ca的对应维更新为第一父代候选序列pa对应维的数值,将第二子代候选序列cb的对应维更新为第二父代候选序列pb对应维的数值,否则,则将第一子代候选序列ca的对应维更新为第二父代候选序列pb对应维的数值,将第二子代候选序列cb的对应维更新为第一父代候选序列pa对应维的数值。
步骤6.5.4,判断是否取完所有交叉指示向量分量,若是,完成选取的两个父代候选序列的均匀交叉操作,否则,执行步骤6.5.2。
步骤6.6,第一父代候选序列pa通过基本位变异操作得到更新后的第一子代候选序列ca,第二父代候选序列pb通过基本位变异操作得到更新后的第二子代候选序列cb。
所述的基本位操作具体步骤如下:
步骤6.6.1,随机生成一个[1,q-1]之间的随机整数z,将z作为变异位位置。
步骤6.6.2,随机生成一个(0,1)之间的随机数w,将选取的父代候选序列的第z位更新为w。
步骤7,更新每个子代候选序列的k个关键用户提取任务的平均绝对误差。
步骤7.1,从子代候选序列集合中任意选取一个未选取的子代候选序列集合。
步骤7.2,根据映射公式,将选取的子代候选序列映射为关键用户序列。
所述的映射公式如下:
si=1+(n-1)×yi
其中si表示选取的子代候选序列中第i维元素映射后的关键用户序号,n表示推荐***全体用户数量,yi表示选取的子代候选序列中第i维元素的数值。
步骤7.3,判断选取的子代候选序列是否通过两个父代候选序列均匀交叉得到,若是,执行步骤7.4,否则,执行步骤7.10。
步骤7.4,随机生成一个0到1之间的随机数rand1。
步骤7.5,判断rand1是否小于0.5,若是,执行步骤7.6,否则,执行步骤7.8。
步骤7.6,将选取的子代候选序列上第一父代候选序列pa的能力因子对应的关键用户提取任务的提取规模作为分界值a,选择映射得到的关键用户序列的前a位作为关键用户集合,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到验证集用户的预测评分。
本发明的基于关键用户的协同过滤推荐算法具体步骤如下:
步骤7.6.1,利用下式,计算推荐***中所有用户与关键用户的余弦相似度。
其中Suv表示第u个用户和第v个关键用户的余弦相似度,n表示推荐***中所有物品的数量,i表示物品的序号,∑表示求和操作,rui表示第u个用户对第i个物品的评分,rvi表示第v个关键用户对第i个物品的评分,表示开根号操作。
步骤7.6.2,选择与每个用户相似度最高的L个关键用户作为邻居用户集合。
步骤7.6.3,利用下式,计算每个用户对每个物品的预测评分。
步骤7.7,根据平均误差计算公式,更新选取的子代候选序列上第一父代候选序列pa的能力因子对应的关键用户提取任务的平均绝对误差;执行步骤7.12。
所述的平均误差计算公式如下:
其中,MAE表示验证集中预测评分与真实评分的平均绝对误差,Tu表示推荐***全体用户的集合,Iu表示验证集中第u个用户评分过的物品集合,ru,i和分别表示验证集中第u个用户对第i个物品的真实评分和预测评分。
步骤7.8,将选取的子代候选序列上第二父代候选序列pb的能力因子对应的关键用户提取任务的提取规模作为分界值b,选择映射得到的关键用户序列的前b位作为关键用户集合,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到验证集用户的预测评分。
步骤7.9,根据平均误差计算公式,更新选取的子代候选序列上第二父代候选序列pb的能力因子对应的关键用户提取任务的平均绝对误差;执行步骤7.12。
步骤7.10将选取的子代候选序列上唯一父代候选序列的能力因子对应的关键用户提取任务的提取规模作为分界值c,选择映射得到的关键用户序列的前c位作为关键用户集合,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到验证集用户的预测评分。
步骤7.11,根据平均误差计算公式,更新选取的子代候选序列上唯一父代候选序列的能力因子对应的关键用户提取任务的平均绝对误差。
步骤7.12,更新选取的子代候选序列上所有未更新的任务的平均绝对误差为100000。
步骤7.13,判断选取的子代候选序列的数量是否达到N个,若是,执行步骤8,否则,执行步骤7.1。
步骤8,合并父代候选序列集合和子代候选序列集合,得到中间候选序列集合。
步骤9,更新每个中间候选序列的标量适应度值和能力因子。
步骤9.1,从k个关键用户提取任务中任意选取一个未选取的任务。
步骤9.2,将选取的任务上2N个中间候选序列的平均绝对误差升序排列,得到选取的任务上2N个中间候选序列的排序序号。
步骤9.3,判断选取的任务数量是否达到k个,若是,执行步骤9.4,否则,执行步骤9.1。
步骤9.4,从2N个中间候选序列中任意选取一个未选取的的中间候选序列。
步骤9.5,对选取的中间候选序列的k个关键用户提取任务的排序序号升序排列,选择第一个排序序号对应的任务作为该中间候选序列的能力因子,以第一个排序序号的倒数作为该中间候选序列的标量适应度值。
步骤9.6,判断已选取的父代候选序列的数量是否达到N个,若是,执行步骤10,否则,执行步骤9.4。
步骤10,更新父代候选序列集合。
将2N个中间候选序列的标量适应度值降序排列,选择前N个中间候选序列作为更新后的父代候选序列集合。
步骤11,计算第一个父代候选序列的k个关键用户提取任务的平均绝对误差和。
步骤12,判断平均绝对误差和是否小于终止阈值,若是,执行步骤13,否则,执行步骤6。
步骤13,输出多规模关键用户提取结果。
针对第j个关键用户提取任务,将N个父代候选序列在该关键用户提取任务上按照平均绝对误差升序排序,利用映射公式,将第一个父代候选序列的前pj维转换为第j个关键用户提取任务的关键用户提取结果,用相同的方法,依次得到并输出k个关键用户提取任务的关键用户提取结果,完成多规模关键用户提取过程,。
步骤14,测试提取的k个不同规模关键用户集合性能。
针对得到的k个关键用户提取任务的关键用户提取结果,基于关键用户的协同过滤推荐算法,分别完成推荐过程,得到k个关键用户提取任务在测试集用户的预测评分,根据平均绝对误差计算公式,计算k个关键用户提取任务得到的平均绝对误差。
本发明将多因子遗传算法中优化的种群用本发明中的关键用户候选序列集合表示,计算每个父代候选序列的能力因子和标量适应度值,对父代候选序列集合进行匹配性遗传操作,选择性更新子代候选序列集合,得到不同规模的关键用户集合。
下面结合仿真实验对本发明的效果做进一步的说明。
实施例8
基于多因子遗传算法的多规模关键用户提取方法同实施例1-7,本发明的效果可通过仿真进一步说明:
仿真条件
本发明仿真实验的运行环境是:处理器为Intel Core(TM)i5-3470 [email protected],内存为4.00GB,硬盘为1T,操作***为Windows 10,编程环境为Visual Studio Enterprize2015。
本发明的仿真实验是在推荐***领域常用的数据集MovieLens-100k上进行的,验证了本发明在提取推荐***多规模关键用户并利用提取的不同规模关键用户进行推荐的推荐效果,本发明获取的基础数据为MovieLens-100k数据集,MovieLens-100k是一个电影评分数据集,包括943个用户对1682部电影的10000条评分数据,每条评分的取值是[1,5]之间的整数。实验中将基础数据按60%,20%,20%的比例随机划分为训练集、验证集和测试集,基础数据详细信息见表1。表1中用户数量是指本发明获取的基础数据中包含的全体用户的数量,物品数量是指本发明获取的基础数据中被所有用户评分过的物品的数量,在实际推荐***中,物品可能是音乐、书籍、电影等,本实施例中指的是1682部电影。本发明需要提取的不同规模关键用户集合就是基础数据中全体用户集合的不同大小的子集。
表1数据集信息表
本发明的仿真实验中父代候选序列和子代候选序列的集合大小N设定为100,中间候选序列集合的大小2N为200,随机交配概率设为0.2,基于关键用户的协同过滤推荐算法中的邻居数量设为90,提取的多规模关键用户任务的规模数量k设定为2,提取的多规模关键用户任务的关键用户规模分别为95,159。
本发明利用基础数据中全体用户对物品的训练集评分数据,将多因子遗传算法中优化的种群用本发明中的关键用户候选序列集合表示,计算每个父代候选序列的能力因子和标量适应度值,对父代候选序列集合进行匹配性遗传操作,选择性更新子代候选序列集合,循环更新父代候选序列集合,利用映射公式,得到不同规模的关键用户集合,并利用基础数据的验证集数据,在基于关键用户的协同过滤推荐算法上,得到验证集用户对物品的评分,利用平均绝对误差计算公式,得到不同规模的关键用户集合对应的平均绝对误差。当最小平均绝对误差达到终止阈值时,利用映射公式,将最终的父代候选序列集合转换成包含不同规模关键用户的集合,完成多规模关键用户提取过程。
利用得到的不同规模的关键用户集合,在基于关键用户的协同过滤推荐算法中得到基础数据测试集上用户对物品的预测评分,利用平均绝对误差计算公式,计算利用提取的多规模关键用户得到的预测评分与基础数据测试集用户的真实评分的平均绝对误差,测试提取的多规模关键用户的性能。
仿真实验内容
本发明的仿真实验是在获取的基础数据MovieLens-100k数据集的基础上,将多因子遗传算法中优化的种群用本发明中的关键用户候选序列集合表示,计算每个父代候选序列的能力因子和标量适应度值,对每个父代候选序列进行匹配性遗传操作,选择性更新子代候选序列集合,得到不同规模的关键用户集合。计算基础数据测试集中所有目标用户推荐效果的准确率。
本发明的仿真实验的步骤如下:
第1步,获取包含943个用户对1682个物品的100000条评分的MovieLens-100k数据集作为基础数据,将基础数据按照60%,20%,20%的比例划分为训练集,验证集和测试集。
第2步,输入2个推荐***关键用户提取任务,其中关键用户提取规模分别为95和159,选择95和159的最大值159作为父代候选序列和子代候选序列的长度,随机生成100个159维的父代候选序列和100个159维的子代候选序列,父代候选序列和子代候选序列的每一维都随机取值为0到1之间的随机数。
第3步,利用映射公式,将100个父代候选序列映射成关键用户序列:
si=1+(943-1)×yi
其中si表示选取的父代候选序列中第i维元素映射后的关键用户序号,yi表示选取的父代候选序列中第i维元素的数值。
选择关键用户序列的前95位作为第1个关键用户提取任务的关键用户集合,选择关键用户序列的前159位作为第二个关键用户提取任务的关键用户集合,将提取的关键用户集合分别投入到基于关键用户的协同过滤推荐算法中,利用平均绝对误差计算公式,计算100个父代候选序列在2个关键用户提取任务上得到的平均误差值:
其中,MAE表示基础数据验证集中预测评分与真实评分的平均绝对误差,Tu表示基础数据验证集中全体用户的集合,Iu表示基础数据验证集中第u个用户评分过的物品集合,ru,i和分别表示基础数据验证集中第u个用户对第i个物品的真实评分和预测评分。
第4步,以每个关键用户提取任务为基础,将100个父代候选序列在2个关键用户提取任务上得到的平均绝对误差分别升序排列,得到100个父代候选序列在2个关键用户提取任务上的排序序号,将每个父代候选序列在2个关键用户提取任务中得到的最小的排序序号作为该父代候选序列的能力因子,将每个父代候选序列在2个关键用户提取任务中得到的最小的排序序号的倒数作为该父代候选序列的标量适应度值。
第5步,输入终止阈值:终止阈值根据实际工程通过经验设定。
第6步,对父代候选序列集合进行均匀交叉及基本位变异操作,更新子代候选序列。
第7步,根据子代候选序列的父代候选序列个数及能力因子,选择性更新子代候选序列中的一个关键用户提取任务的平均适应度值,另一个关键用户提取任务的平均适应度值更新为100000。
第8步,合并100个父代候选序列和100个子代候选序列,得到200个中间候选序列。
第9步,对200个中间候选序列在2个关键用户提取任务上分别按照平均绝对误差升序排列,得到200个中间候选序列在2个关键用户提取任务上的排序序号,对每个中间候选序列更新200个中间候选序列的能力因子和标量适应度值。
第10步,将200个中间候选序列的标量适应度值降序排列,选择前100个中间候选序列作为更新后的父代候选序列集合。
第11步,计算第一个父代候选序列的2个关键用户提取任务的平均绝对误差和。
第12步,判断平均绝对误差和是否小于终止阈值,若是,执行第13步,否则,执行第6步。
第13步,利用映射公式,将2个关键用户提取任务中拥有最高标量适应度值的父代候选序列转换成关键用户集合,将得到的两种规模的关键用户投入到基于关键用户的协同过滤推荐算法中,得到测试集上的推荐结果,并计算2个关键用户提取任务的平均绝对误差,并与单独提取单一规模的关键用户得到的结果进行对比。
第14步,输出2个关键用户提取任务得到的关键用户集合,完成多任务关键用户提取过程。
仿真实验结果分析
本发明的仿真实验是利用本发明在基础数据MovieLens-100k数据集上同时提取2种不同规模的***关键用户,对比方法是将提取2种不同规模的关键用户集合作为单任务单独提取的方法;仿真实验提取的不同规模的关键用户集合应用到推荐过程中时,得到的本发明的平均绝对误差如表2所示,对比方法提取的不同规模的关键用户集合应用到推荐过程中时,得到的对比方法的平均绝对误差如表3所示,表格中MAE指的是平均绝对误差。
表2本发明在MovieLens-100k数据集上的仿真结果
数据集 | 信息核提取规模 | 验证集上的MAE | 测试集上的MAE | |
任务1 | MovieLens-100k | 159 | 0.7647 | 0.7861 |
任务2 | MovieLens-100k | 95 | 0.7753 | 0.7920 |
从表2可以看出,本发明得到的2种不同规模的关键用户应用到推荐过程中时,都能得到较低的平均绝对误差,体现了本发明提取的不同规模的关键用户在应用到推荐算法中的准确性。
表3对比方法在MovieLens-100k数据集上的仿真结果
数据集 | 信息核提取规模 | 验证集上的MAE | 测试集上的MAE | |
任务1 | MovieLens-100k | 159 | 0.7634 | 0.8039 |
任务2 | MovieLens-100k | 95 | 0.7939 | 0.8055 |
对比表2和表3的基础数据测试集平均绝对误差,可以看到本发明提取的2种不同规模的关键用户投入到推荐过程中都能得到比对比方法更低的平均绝对误差,说明本发明比对比方法得到了更高的准确率。
仿真实验中利用本发明同时提取的2种不同规模的关键用户集合与对比方法提取的2种不同规模的关键用户集合应用到推荐过程中时,得到的平均绝对误差对比如图2所示。其中,图2中的(a)表示关键用户提取规模为159时,利用本发明得到的关键用户与利用对比方法得到的关键用户投入到基于关键用户的协同过滤过程中时,得到的基础数据测试集用户评分的平均绝对误差的对比,图2中的(b)表示关键用户提取规模为95时,利用本发明得到的关键用户与利用对比方法得到的关键用户投入到基于关键用户的协同过滤过程中时,得到的基础数据测试集用户评分的平均绝对误差的对比,横坐标表示实验类型,纵坐标表示平均绝对误差,浅色条形图表示利用本发明的作为多任务优化的多规模关键用户提取方法,深色条形图表示作为单任务优化单独提取单一规模关键用户的方法。
从图2可以看出,本发明得到的2种不同规模的关键用户结果集合投入到推荐过程中时,都能比单任务单独优化提取得到的关键用户投入到推荐过程中有更低的平均绝对误差,体现了本发明多任务提取关键用户的准确性,而且在本实施例中本发明能够在一次运行过程中同时得到2种不同规模的关键用户,与单任务单独优化相比,有更快的关键用户提取速率。当关键用户提取规模k取更多值时,本发明也能在一次运行过程中,同时得到k种不同规模的关键用户。
简而言之,本发明公开的一种基于多因子遗传算法的多规模关键用户提取方法,解决了推荐***中不同规模关键用户同时提取的技术问题,主要步骤包括:生成候选序列集合,计算候选序列集合的多个关键用户提取任务的平均绝对误差;计算父代候选序列的能力因子和标量适应度值;对父代候选序列集合进行匹配性遗传操作;对子代候选序列集合进行选择性平均绝对误差更新;合并父代候选序列和子代候选序列集合,得到中间候选序列结合;更新中间候选序列集合的能力因子和标量适应度值;更新父代候选序列集合;输出多个不同规模关键用户集合。本发明将多因子遗传算法中优化的种群用本发明中的关键用户候选序列集合表示,计算每个父代候选序列的能力因子和标量适应度值,对父代候选序列集合进行匹配性遗传操作,选择性更新子代候选序列集合。推荐准确率高,提取效率高。可用于网络关键信息的提取。
Claims (6)
1.一种基于多因子遗传算法的多规模关键用户提取方法,其特征在于,包括有如下步骤:
(1)获取数据并划分为训练集、验证集和测试集:从网上截取包含不同规模关键用户的所有用户对物品的评分数据作为基础数据,并按照60%,20%,20%的比例将基础数据划分为训练集、验证集和测试集;
(2)生成候选序列集合;输入k个任务,每个任务均是推荐***关键用户的提取任务,其中每个关键用户提取任务对应的关键用户提取规模分别为p1,p2,...,pk,k为推荐***多规模关键用户提取任务的数量,也是关键用户提取规模的数量;基于多因子遗传算法编码方法,将k个关键用户提取规模降序排列,选择第一个关键用户提取规模作为候选序列的长度q,分别随机生成N个q维的父代候选序列和N个q维的子代候选序列,每一维随机取值为0到1之间的随机数,其中N为父代候选序列的数量,也是子代候选序列的数量;将N个父代候选序列和N个子代候选序列的集合作为2N个中间候选序列,生成的父代、子代和中间候选序列集合经过映射即可得到包含多规模关键用户的关键用户序列集合;
(3)计算每个父代候选序列的k个关键用户提取任务的平均绝对误差:针对每个父代候选序列,根据映射公式,将该父代候选序列的前pj位作为第j个关键用户提取任务得到的关键用户序列,其中pj为第j个多规模关键用户提取任务的关键用户提取规模,得到每个父代候选序列在k个关键用户提取任务上的关键用户序列;针对每个父代候选序列在k个关键用户提取任务上的关键用户序列,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到基础数据验证集中用户的预测评分,根据平均绝对误差计算公式,计算每个父代候选序列在每个关键用户提取任务上得到的平均绝对误差;
(4)计算每个父代候选序列的能力因子和标量适应度值:针对每个关键用户提取任务,对所有父代候选序列在每个关键用户提取任务上得到的平均绝对误差分别升序排序,得到每个父代候选序列在k个关键用户提取任务上的排序序号,利用得到的排序序号,计算每个父代候选序列的能力因子和标量适应度值;
(5)输入终止阈值:终止阈值根据实际工程通过经验设定;
(6)对父代候选序列集合进行匹配性遗传操作,更新子代候选序列集合:基于多因子遗传算法,从父代候选序列集合中逐次随机选择两个父代候选序列,根据随机交配概率和两个父代候选序列的能力因子进行匹配性遗传,对能力因子相同的两个父代候选序列执行均匀交叉操作,得到两个子代候选序列,对能力因子不同的两个父代候选序列分别执行基本位变异操作,得到两个子代候选序列;
(7)选择性更新每个子代候选序列的k个关键用户提取任务的平均绝对误差:对由两个父代候选序列均匀交叉得到的子代候选序列,随机选择任意一个父代候选序列的能力因子对应的关键用户提取任务,计算平均绝对误差,对由唯一父代候选序列标准位变异得到的子代候选序列,计算其唯一父代候选序列的能力因子对应的关键用户提取任务的平均绝对误差,将每个子代候选序列未被计算的关键用户提取任务的平均绝对误差更新为100000;
(8)合并父代候选序列集合和子代候选序列集合,得到中间候选序列集合;
(9)计算并更新每个中间候选序列的能力因子和标量适应度值:针对每个关键用户提取任务,对所有中间候选序列在每个关键用户提取任务上的平均绝对误差分别升序排序,得到所有中间候选序列在k个关键用户提取任务上的排序序号,利用得到的排序序号,计算并更新每个中间候选序列的能力因子和标量适应度值;
(10)更新父代候选序列集合:将2N个中间候选序列的标量适应度值降序排列,选择前N个中间候选序列作为更新后的父代候选序列集合;
(11)计算最小平均绝对误差和,判定是否小于终止阈值:对所有父代候选序列按照标量适应度值降序排列,计算第一个父代候选序列的k个关键用户提取任务的平均绝对误差和,作为多规模关键用户提取任务的最小平均绝对误差和,判断最小平均绝对误差和是否小于终止阈值,若是,执行步骤(12),否则,执行步骤(6);
(12)输出多规模关键用户提取结果:针对第j个关键用户提取任务,将N个父代候选序列在该关键用户提取任务上按照平均绝对误差升序排序,利用映射公式,将第一个父代候选序列的前pj维转换为第j个关键用户提取任务的关键用户提取结果,用相同的方法,依次得到并输出k个关键用户提取任务的关键用户提取结果,完成多规模关键用户提取过程;
(13)测试提取的k个不同规模关键用户集合性能:针对得到的k个关键用户提取任务的关键用户提取结果,基于关键用户的协同过滤推荐算法,分别完成推荐过程,得到k个关键用户提取结果在测试集用户的预测评分,根据平均绝对误差计算公式,计算k个关键用户提取任务得到的平均绝对误差。
2.根据权利要求1所述的基于多因子遗传算法的多规模关键用户提取方法,其特征在于,步骤(4)、步骤(9)中所述的能力因子和标量适应度值的计算,包括有如下步骤:
(4a)从k个关键用户提取任务中任意选取一个未选取的任务;
(4b)将N个父代候选序列在选取的任务上得到的平均绝对误差升序排列,得到N个父代候选序列在选取的任务上的一组排序序号;
(4c)判断选取的任务数量是否达到k个,若是,执行步骤(4d),否则,执行步骤(4a);
(4d)从N个父代候选序列中任意选取一个未选取的父代候选序列;
(4e)对选取的父代候选序列在k个任务中得到的排序序号升序排列,选择第一个排序序号对应的任务作为该父代候选序列的能力因子,以第一个排序序号的倒数作为该父代候选序列的标量适应度值;
(4f)判断已选取的父代候选序列的数量是否达到N个,若是,执行步骤(5),否则,执行步骤(4d);
步骤(9)的计算对象是2N个中间候选序列,计算步骤同上,只是判断已选取的中间候选序列的数量是否达到2N时,若是,需要跳转到步骤(10),否则,从2N个中间候选序列中任意选取一个未选取的中间候选序列,并用计算得到的结果更新中间候选序列的能力因子和标量适应度值。
3.根据权利要求1所述的基于多因子遗传算法的多规模关键用户提取方法,其特征在于,步骤(6)中所述的父代候选序列集合进行匹配性遗传操作并更新子代候选序列集合,包括有如下步骤:
(6a)输入随机交配概率rmp;
(6b)父代候选序列选取:从父代候选序列集合中任意选取两个父代候选序列,称为第一父代候选序列pa和第二父代候选序列pb;
(6c)随机生成一个0到1之间的随机数rand;
(6d)判断第一父代候选序列pa和第二父代候选序列pb的能力因子是否相同或rand是否小于rmp,若是,执行步骤(6e),否则,执行步骤(6f);
(6e)第一父代候选序列pa和第二父代候选序列pb通过基本均匀交叉操作,得到更新后的第一子代候选序列ca和第二子代候选序列cb,执行步骤(6g);
(6f)第一父代候选序列pa通过基本位变异操作得到更新后的第一子代候选序列ca,第二父代候选序列pb通过基本位变异操作得到更新后的第二子代候选序列cb;
4.根据权利要求1所述的基于多因子遗传算法的多规模关键用户提取方法,其特征在于,步骤(7)中所述的选择性更新每个子代候选序列的k个关键用户提取任务的平均绝对误差,包括有如下步骤:
(7a)从子代候选序列集合中任意选取一个未选取的子代候选序列集合:
(7b)根据映射公式,将选取的子代候选序列映射为关键用户序列;
(7c)判断选取的子代候选序列是否通过两个父代候选序列均匀交叉得到,若是,执行步骤(7d),否则,执行步骤(7j);
(7d)随机生成一个0到1之间的随机数rand1;
(7e)判断rand1是否小于0.5,若是,执行步骤(7f),否则,执行步骤(7h);
(7f)将选取的子代候选序列上第一父代候选序列pa的能力因子对应的关键用户提取任务的提取规模作为分界值a,选择映射得到的关键用户序列的前a位作为该子代候选序列映射得到的关键用户集合,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到验证集用户的预测评分;
(7g)根据平均误差计算公式,利用得到的验证集用户的预测评分,更新选取的子代候选序列上第一父代候选序列pa的能力因子对应的关键用户提取任务的平均绝对误差;执行步骤(7l);
(7h)将选取的子代候选序列上第二父代候选序列pb的能力因子对应的关键用户提取任务的提取规模作为分界值b,选择映射得到的关键用户序列的前b位作为该子代候选序列映射得到的关键用户集合,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到验证集用户的预测评分;
(7i)根据平均误差计算公式,利用得到的验证集用户的预测评分,更新选取的子代候选序列上第二父代候选序列pb的能力因子对应的关键用户提取任务的平均绝对误差;执行步骤(7l);
(7j)将选取的子代候选序列上唯一父代候选序列的能力因子对应的关键用户提取任务的提取规模作为分界值c,选择映射得到的关键用户序列的前c位作为该子代候选序列映射得到的关键用户集合,利用基于关键用户的协同过滤推荐算法完成推荐过程,得到验证集用户的预测评分;
(7k)根据平均误差计算公式,利用得到的验证集用户的预测评分,更新选取的子代候选序列上唯一父代候选序列的能力因子对应的关键用户提取任务的平均绝对误差;
(7l)更新选取的子代候选序列上所有未更新的任务的平均绝对误差为100000;
(7m)判断选取的子代候选序列的数量是否达到N个,若是,执行步骤(8),否则,执行步骤(7a)。
5.根据权利要求3所述的基于多因子遗传算法的多规模关键用户提取方法,其特征在于,步骤(6e)中所述的均匀交叉操作,包括有如下步骤:
(6e1)随机生成一个q维的交叉指示向量,其中,交叉指示向量的每一维随机取值为0或1,q为候选序列长度;
(6e2)从交叉指示向量中任意选取一维未选取的交叉指示向量分量;
(6e3)判断选取的交叉指示向量分量是否为1,若是,则将第一子代候选序列ca的对应维更新为第一父代候选序列pa对应维的数值,将第二子代候选序列cb的对应维更新为第二父代候选序列pb对应维的数值,否则,则将第一子代候选序列ca的对应维更新为第二父代候选序列pb对应维的数值,将第二子代候选序列cb的对应维更新为第一父代候选序列pa对应维的数值;
(6e4)判断是否取完所有交叉指示向量分量,若是,完成选取的两个父代候选序列的均匀交叉操作,否则,执行步骤(6e2)。
6.根据权利要求3所述的基于多因子遗传算法的多规模关键用户提取方法,其特征在于,步骤(6f)中所述的基本位变异操作,包括有如下步骤:
(6f1)随机生成一个[1,q-1]之间的随机整数z,将z作为变异位位置;
(6f2)随机生成一个(0,1)之间的随机数w,将选取的父代候选序列的第z位更新为w。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910421711.9A CN110162704B (zh) | 2019-05-21 | 2019-05-21 | 基于多因子遗传算法的多规模关键用户提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910421711.9A CN110162704B (zh) | 2019-05-21 | 2019-05-21 | 基于多因子遗传算法的多规模关键用户提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162704A CN110162704A (zh) | 2019-08-23 |
CN110162704B true CN110162704B (zh) | 2022-06-10 |
Family
ID=67631551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910421711.9A Active CN110162704B (zh) | 2019-05-21 | 2019-05-21 | 基于多因子遗传算法的多规模关键用户提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162704B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948697A (zh) * | 2021-04-01 | 2021-06-11 | 哈尔滨理工大学 | 一种基于二部图的科学文章推荐算法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107609033A (zh) * | 2017-08-10 | 2018-01-19 | 西安电子科技大学 | 基于自适应协同进化算法的信息核提取方法 |
CN108491437A (zh) * | 2018-02-11 | 2018-09-04 | 山东汇贸电子口岸有限公司 | 一种基于Hadoop的海量Web数据挖掘遗传方法 |
CN108920624A (zh) * | 2018-06-29 | 2018-11-30 | 西安电子科技大学 | 基于进化多目标算法提取***关键用户的推荐方法 |
CN108960486A (zh) * | 2018-06-12 | 2018-12-07 | 郑州航空工业管理学院 | 基于灰支持向量回归机预测适应值的交互式集合进化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10403273B2 (en) * | 2016-09-09 | 2019-09-03 | Oath Inc. | Method and system for facilitating a guided dialog between a user and a conversational agent |
-
2019
- 2019-05-21 CN CN201910421711.9A patent/CN110162704B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107609033A (zh) * | 2017-08-10 | 2018-01-19 | 西安电子科技大学 | 基于自适应协同进化算法的信息核提取方法 |
CN108491437A (zh) * | 2018-02-11 | 2018-09-04 | 山东汇贸电子口岸有限公司 | 一种基于Hadoop的海量Web数据挖掘遗传方法 |
CN108960486A (zh) * | 2018-06-12 | 2018-12-07 | 郑州航空工业管理学院 | 基于灰支持向量回归机预测适应值的交互式集合进化方法 |
CN108920624A (zh) * | 2018-06-29 | 2018-11-30 | 西安电子科技大学 | 基于进化多目标算法提取***关键用户的推荐方法 |
Non-Patent Citations (1)
Title |
---|
基于基因遗传的定制化产品集成创新机制及资源重用策略研究;李富昌;《中国知网 工程科技Ⅱ辑》;20160215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110162704A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103971161B (zh) | 基于柯西分布量子粒子群的混合推荐方法 | |
CN109461475B (zh) | 一种基于人工神经网络的分子属性预测方法 | |
CN108921604B (zh) | 一种基于代价敏感分类器集成的广告点击率预测方法 | |
CN106251174A (zh) | 信息推荐方法及装置 | |
CN105893609A (zh) | 一种基于加权混合的移动app推荐方法 | |
CN108536784B (zh) | 评论信息情感分析方法、装置、计算机存储介质和服务器 | |
CN104794367B (zh) | 基于隐语义模型的就医资源评分与推荐方法 | |
Li et al. | Nature-inspired multiobjective epistasis elucidation from genome-wide association studies | |
CN107918657A (zh) | 一种数据源的匹配方法和装置 | |
CN106055661A (zh) | 基于多Markov链模型的多兴趣资源推荐方法 | |
CN106127506A (zh) | 一种基于主动学习解决商品冷启动问题的推荐方法 | |
CN109410001A (zh) | 一种商品推荐方法、***、电子设备和存储介质 | |
CN111695024A (zh) | 对象评估值的预测方法及***、推荐方法及*** | |
CN108427756A (zh) | 基于同类用户模型的个性化查询词补全推荐方法和装置 | |
Yu et al. | SANPolyA: a deep learning method for identifying Poly (A) signals | |
CN111461286A (zh) | 基于进化神经网络的Spark参数自动优化***和方法 | |
Bezáková et al. | Graph model selection using maximum likelihood | |
Yuan et al. | DeCban: prediction of circRNA-RBP interaction sites by using double embeddings and cross-branch attention networks | |
CN106971053A (zh) | 一种基于混合协同过滤的推荐方法 | |
CN104679754B (zh) | 用于数据预测的模型选择设备和方法 | |
CN110162704B (zh) | 基于多因子遗传算法的多规模关键用户提取方法 | |
Xie et al. | A combination of boosting and bagging for kdd cup 2009-fast scoring on a large database | |
CN113516019A (zh) | 高光谱图像解混方法、装置及电子设备 | |
CN109639469A (zh) | 一种联合学习稀疏属性网络表征方法及*** | |
CN113159976B (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 |