CN108776919A - 基于聚类及进化算法构建信息核的物品推荐方法 - Google Patents
基于聚类及进化算法构建信息核的物品推荐方法 Download PDFInfo
- Publication number
- CN108776919A CN108776919A CN201810550780.5A CN201810550780A CN108776919A CN 108776919 A CN108776919 A CN 108776919A CN 201810550780 A CN201810550780 A CN 201810550780A CN 108776919 A CN108776919 A CN 108776919A
- Authority
- CN
- China
- Prior art keywords
- user
- matrix
- article
- consumer articles
- information core
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
-
- 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
- G06N3/086—Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Finance (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Accounting & Taxation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Probability & Statistics with Applications (AREA)
- Physiology (AREA)
- Biomedical Technology (AREA)
- Development Economics (AREA)
- Computational Linguistics (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)判断迭代次数是否为100次;(11)完成信息核构建;(12)利用信息核为用户推荐物品。本发明具有构建信息核快,为用户推荐物品更精确的优点。
Description
技术领域
本发明属于计算机技术领域,更进一步涉及物品推荐技术领域中的一种基于聚类及进化算法构建信息核的物品推荐方法。本发明可根据用户对物品的评分信息,通过构建的信息核为用户推荐自己需要的物品。
背景技术
推荐***是一种信息过滤***,通过分析用户的历史行为数据,分析发现用户的兴趣爱好,并为用户推荐其感兴趣的物品或信息。现如今,已存在的推荐方法有很多,协同过滤算法是目前应用最为广泛的推荐算法,但随着数据量增大,算法的运行时间及给用户推荐的时间会变长,这个可扩展性问题大大抑制了协同过滤算法的发展。
Caihong Mu等人在其发表的论文“Information core optimization usingEvolutionary Algorithm with Elite Population in recommender systems”(Congresson Evolutionary Computation(CEC),2017IEEE)中提出了一种基于精英种群的进化算法提取信息核的推荐方法。该推荐方法的步骤是:步骤1,建立用户和物品的稀疏评分矩阵;步骤2,使用进化算法:初始化父代种群,计算种群中每个个体的适应度;步骤3,根据M精英策略,对个体适应度进行从大到小排序,按照个体适应度进行顺序交叉,提取信息核;步骤4,根据信息核,预测目标用户所有未评分的物品的评分,并进行推荐。该推荐方法存在的不足之处是,使用进化算法提取信息核时,每代种群中的信息核个体适应度计算花费的时间太长,导致离线选取信息核过慢。
电子科技大学在其申请的专利文献“一种基于关键用户的个性化推荐方法和***”(申请号:201510157504.9,申请公布号:CN 104778237A)中公开了一种基于关键用户的个性化推荐方法。该方法的实施步骤是:步骤1:从用户对物品的评分数据集中获取用户对物品的评分,并利用用户对不同物品评分信息,计算不同用户之间的相似度;步骤2,确定目标用户长度为N的邻居列表,且邻居列表中邻居的位置是按照与目标用户相似度从高到低排列的;步骤3,设定一个权重规则:用户出现在其他用户邻居列表中的次数越多,排列位置越靠前,权重越大;步骤4,将权重最大的P个用户作为关键用户;步骤5,根据关键用户对物品的评分信息,对目标用户所有未评分的物品进行评分预测,根据评分预测情况向目标用户进行推荐。该方法存在的不足之处是,利用用户之间的相似度,设定信息核的选择标准,这种选择信息核的方式导致所选取出的信息核推荐精度低。
发明内容
本发明的目的在于针对上述现有技术存在的不足,提出一种基于聚类及进化算法构建信息核的物品推荐方法。
实现本发明目的的具体思路是,将用户物品评分矩阵降维,得到低维矩阵,利用聚类算法对低维矩阵中的用户聚类多次,构建虚拟用户物品评分矩阵,利用进化算法从虚拟用户物品评分矩阵中提取出信息核,利用信息核为用户推荐物品。
本发明的具体实现步骤如下:
(1)构建用户物品评分矩阵:
(1a)从用户对物品的评分数据集中提取用户对物品的所有评分信息,创建用户物品评分矩阵,该矩阵的行数与评分数据集中的用户数量相等,该矩阵的列数与评分数据集中的物品数量相等;
(1b)用0表示评分矩阵中用户未评过分的物品的评分值,用实际评分值表示评分矩阵中用户评过分的物品的评分值;
(2)将用户物品评分矩阵降维:
利用T分布随机近邻嵌入算法,对用户物品评分矩阵降维,得到低维矩阵;
(3)利用聚类算法对低维矩阵中的用户聚类多次:
(3a)利用聚类算法,对低维矩阵中的用户进行Ψ个类别的聚类,得到每个用户在Ψ个类别中对应的类别;
(3b)利用每个用户在Ψ个类别中的类别,得到用户物品评分矩阵中对应用户的类别;
(3c)对低维矩阵中的用户聚类5次后,得到用户物品评分矩阵中用户对应的所有用户类别;
(4)构建虚拟用户物品评分矩阵:
(4a)从用户物品评分矩阵中任意选取一个用户类别,将所选用户类别中用户评分的均值,作为所选类别的聚类中心,将所选类别的聚类中心保存为一个向量;
(4b)判断是否选完用户物品评分矩阵中所有的用户类别,若是,则执行步骤(4d),否则,执行步骤(4a);
(4d)将所有用户类别的聚类中心对应的向量,组成虚拟用户物品评分矩阵;
(5)构建优化矩阵:
(5a)利用聚类算法,对低维矩阵中的用户进行K个类别的聚类,得到每个用户在K个类别中对应的类别;
(5b)利用每个用户在K个类别中的类别,得到用户物品评分矩阵中对应用户的类别;
(5c)从用户物品评分矩阵中任意选取一个用户类别,将所选用户类别中用户评分的均值,作为所选类别的聚类中心,将所选类别的聚类中心保存为一个向量;
(5d)判断是否选完用户物品评分矩阵中所有的用户类别,若是,则执行步骤(5e),否则,执行步骤(5c);
(5e)将所有用户类别的聚类中心对应的向量,组成优化矩阵;
(5f)从优化矩阵中任意选取一个用户作为目标用户;
(5g)从优化矩阵中任意选取一个物品作为目标物品;
(5h)按照下式,更新目标用户对目标物品的评分值:
其中,pbj表示目标用户b对目标物品j的评分值,|·|表示取绝对值操作,Gc表示用户物品评分矩阵中属于用户类别c且对目标物品j评过分的用户集合,c表示目标用户b对应的聚类中心所在的用户类别,Tc表示用户物品评分矩阵中属于用户类别c的用户集合;
(5i)判断是否选完优化矩阵中所有用户,若是,则执行步骤(5j),否则,执行步骤(5f);
(5j)判断是否选完优化矩阵中所有物品,若是,则执行步骤(6),否则,执行步骤(5g);
(6)构建用户物品训练矩阵和用户物品优化矩阵:
(6a)构建用户物品训练矩阵,该矩阵的行数与优化矩阵中用户数量相等,该矩阵的列数与优化矩阵中物品数量相等;
(6b)构建用户物品优化矩阵,该矩阵的行数与优化矩阵中用户数量相等,该矩阵的列数与优化矩阵中物品数量相等;
(7)更新用户物品训练矩阵和用户物品优化矩阵:
(7a)从优化矩阵中提取评分数据的80%作为训练数据,剩余的20%评分数据作为优化数据;
(7b)从训练数据中提取评分信息,用0替换用户物品训练矩阵中用户未评过分物品的评分值,用实际评分值替换用户物品训练矩阵中用户评过分物品的评分值;
(7c)从优化数据中提取评分信息,用0替换用户物品优化矩阵中用户未评过分物品的评分值,用实际评分值替换用户物品优化矩阵中用户评过分的物品评分值;
(8)利用进化算法选取信息核:
(8a)从虚拟用户物品评分矩阵中提取用户编号ID,组成用户编号ID集合;
(8b)将用户编号ID集合长度的60%作为信息核长度;
(8c)从用户编号ID集合中,任意选取100个与信息核长度相等的用户编号ID子集,组成父代种群;
(8d)对父代种群中每个信息核个体进行交叉、变异操作后,产生过渡种群;
(8e)利用推荐精确度方法,得到父代种群与过渡种群中每个信息核个体的推荐精度;
(8f)将父代种群与过渡种群中的信息核个体,按照推荐精度从大到小排序,从排序中选取前100个信息核个体,组成子代种群;
(8g)用子代种群中的每一个信息核个体替换父代种群中的每一个信息核个体,生成新的父代种群;
(8h)判断当前迭代次数是否达到最大迭代次数100次,若是,则执行步骤(9),否则,执行步骤(8d);
(9)完成信息核构建:
从父代种群中选取推荐精度最大的信息核个体,作为最佳信息核;
(10)利用信息核为用户推荐物品:
利用找出的最佳信息核,为用户物品评分矩阵中每一个用户推荐其需要的物品。
本发明与现有技术相比有以下优点:
第一,本发明由于通过构建用户物品训练矩阵和用户物品优化矩阵,利用进化算法选取信息核,克服了现有技术,使用进化算法提取信息核时,每代种群中的信息核个体适应度计算花费的时间太长,导致离线选取信息核过慢的缺点,使得本发明能缩短离线选取信息核的时间,缓解利用进化算法选取信息核时离线优化时间较长的问题。
第二,本发明由于利用进化算法从虚拟用户物品评分矩阵中选取信息核,从父代种群中选取推荐精度最大的信息核个体,作为最佳信息核,克服了现有技术利用用户之间的相似度,设定信息核的选择标准,这种选择信息核的方式导致所选取出的信息核推荐精度低的缺点,使得本发明选取出的信息核,具有更高的推荐精度的优点。
附图说明
图1是本发明的流程图;
图2是本发明的仿真图。
具体实施方式:
以下结合附图对本发明做进一步的详细描述。
参照图1,对本发明的具体实现步骤做进一步的描述。
步骤1,构建用户物品评分矩阵。
从用户对物品的评分数据集中提取用户对物品的所有评分信息,创建用户物品评分矩阵,该矩阵的行数与评分数据集中的用户数量相等,该矩阵的列数与评分数据集中的物品数量相等。
本发明的实施例中用户对物品的评分数据集包括MovieLens-100K评分数据集和MovieLens-1M评分数据集。
所述的评分信息包括用户编号ID、项目编号ID以及用户对物品的评分值。
用0表示评分矩阵中用户未评过分的物品的评分值,用实际评分值表示用户评过分的物品的评分值。
步骤2,将用户物品评分矩阵降维。
利用T分布随机近邻嵌入算法,对用户物品评分矩阵降维,得到低维矩阵。
步骤3,利用聚类算法对低维矩阵中的用户聚类多次。
利用聚类算法,对低维矩阵中的用户进行Ψ个类别的聚类,得到每个用户在Ψ个类别中对应的类别,评分数据集MovieLens-100K时Ψ为20,评分数据集MovieLens-1M时Ψ为64。
所述的聚类算法步骤如下:
A.从低维矩阵中随机选择Ψ个用户作为初始的Ψ个聚类中心,一个聚类中心对应一个用户类别。
B.从低维矩阵中任意选取一个用户作为划分用户。
C.根据划分用户与Ψ个聚类中心之间的欧式距离,得到与划分用户欧式距离最小的目标聚类中心,将划分用户标记为目标聚类中心对应的用户类别。
D.判断是否选完低维矩阵中所有用户,若是,则执行步骤E,否则,执行步骤B。
E.从所有用户类别中任意选取一个用户类别作为目标类别。
F.将所选目标用户类别中用户评分的均值,作为所选目标用户类别的聚类中心。
G.判断是否所有用户类别的聚类中心没有变化,若是,则得到低维矩阵中每个用户对应的用户类别,否则,执行步骤B。
利用每个用户在Ψ个类别中的类别,得到用户物品评分矩阵中对应用户的类别。
对低维矩阵中的用户聚类5次后,得到用户物品评分矩阵中用户对应的所有用户类别。
步骤4,构建虚拟用户物品评分矩阵。
第1步,从用户物品评分矩阵中任意选取一个用户类别,将所选用户类别中用户评分的均值,作为所选类别的聚类中心,将所选类别的聚类中心保存为一个向量。
第2步,判断是否选完用户物品评分矩阵中所有的用户类别,若是,则执行本步骤第3步,否则,执行本步骤第1步。
第3步,将所有用户类别的聚类中心对应的向量,组成虚拟用户物品评分矩阵。
步骤5,构建优化矩阵。
第1步,利用聚类算法,对低维矩阵中的用户进行K个类别的聚类,得到每个用户在K个类别中对应的类别,评分数据集MovieLens-100K时K为100,评分数据集MovieLens-1M时K为320。
所述的聚类算法步骤如下:
A.从低维矩阵中随机选择K个用户作为初始的K个聚类中心,一个聚类中心对应一个用户类别。
B.从低维矩阵中任意选取一个用户作为划分用户。
C.根据划分用户与K个聚类中心之间的欧式距离,得到与划分用户欧式距离最小的目标聚类中心,将划分用户标记为目标聚类中心对应的用户类别。
D.判断是否选完低维矩阵中所有用户,若是,则执行步骤E,否则,执行步骤B。
E.从所有用户类别中任意选取一个用户类别作为目标类别。
F.将所选目标用户类别中用户评分的均值,作为所选目标用户类别的聚类中心。
G.判断是否所有用户类别的聚类中心没有变化,若是,则得到低维矩阵中每个用户对应的用户类别,否则,执行步骤B。
第2步,利用每个用户在K个类别中的类别,得到用户物品评分矩阵中对应用户的类别。
第3步,从用户物品评分矩阵中任意选取一个用户类别,将所选用户类别中用户评分的均值,作为所选类别的聚类中心,将所选类别的聚类中心保存为一个向量。
第4步,判断是否选完用户物品评分矩阵中所有的用户类别,若是,则执行本步骤第5步,否则,执行本步骤第3步。
第5步,将所有用户类别的聚类中心对应的向量,组成优化矩阵。
第6步,从优化矩阵中任意选取一个用户作为目标用户。
第7步,从优化矩阵中任意选取一个物品作为目标物品。
第8步,按照下式,更新目标用户对目标物品的评分值。
其中,pbj表示所选取目标用户b对所选取目标物品j的评分值,|●|表示取绝对值操作,Gc表示用户物品评分矩阵中属于用户类别c且对所选取目标物品j评过分的用户集合,c表示所选取目标用户b对应的聚类中心所在的用户类别,Tc表示用户物品评分矩阵中属于用户类别c的用户集合。
第9步,判断是否选完优化矩阵中所有用户,若是,则执行本步骤第10步,否则,执行本步骤第6步。
第10步,判断是否选完优化矩阵中所有物品,若是,则执行步骤6,否则,执行本步骤第7步。
步骤6,构建用户物品训练矩阵和用户物品优化矩阵。
构建用户物品训练矩阵,该矩阵的行数与优化矩阵中用户数量相等,该矩阵的列数与优化矩阵中物品数量相等。
构建用户物品优化矩阵,该矩阵的行数与优化矩阵中用户数量相等,该矩阵的列数与优化矩阵中物品数量相等。
步骤7,更新用户物品训练矩阵和用户物品优化矩阵。
从优化矩阵中提取评分数据的80%作为训练数据,剩余的20%评分数据作为优化数据。
从训练数据中提取评分信息,用0替换用户物品训练矩阵中用户未评过分物品的评分值,用实际评分值替换用户物品训练矩阵中用户评过分物品的评分值。
从优化数据中提取评分信息,用0替换用户物品优化矩阵中用户未评过分物品的评分值,用实际评分值替换用户物品优化矩阵中用户评过分的物品评分值。
步骤8,利用进化算法选取信息核。
第1步,从虚拟用户物品评分矩阵中提取用户编号ID,组成用户编号ID集合。
第2步,将用户编号ID集合长度的60%作为信息核长度。
第3步,从用户编号ID集合中,任意选取100个与信息核长度相等的用户编号ID子集,组成父代种群。
第4步,对父代种群中每个信息核个体进行交叉、变异操作后,产生过渡种群。
第5步,利用推荐精确度方法,得到父代种群与过渡种群中每个信息核个体的推荐精度。
所述的推荐精确度方法步骤如下:
A.按照下式,计算用户物品训练矩阵中每一个用户与信息核个体中每一个用户之间的余弦相似度。
其中,sim(u,v)表示用户物品训练矩阵中第u个用户与信息核个体中第v个用户的余弦相似度,∑表示求和操作,i表示物品集合I(u)与物品集合I(v)交集中的第i个物品,I(u)表示用户物品训练矩阵中的第u个用户评过分的物品集合,I(v)表示信息核个体中第v个用户评过分的物品集合,∈表示属于符号,∩表示求交集操作,rui表示用户物品训练矩阵中第u个用户对第i个物品的评分值,rvi表示信息核个体中第v个用户对第i个物品的评分值,表示开平方操作。
B.从用户物品训练矩阵中任意选取一个用户作为体验用户。
C.从信息核个体中,选取与体验用户余弦相似度最大的前N个用户,组成体验用户的邻居集。
D.从体验用户评分为0物品集合中任意选取一个物品作为体验物品。
E.按照下式,计算体验用户对体验物品的预测评分值。
其中,pad表示所选取体验用户a对所选取体验物品d的预测评分值,s表示用户集合Had中第s个用户,Had表示所选取体验用户a的邻居集中对所选取体验物品d评过分的用户集合,sim(a,s)表示所选取体验用户a与第s个用户的余弦相似度,rsd表示第s个用户对所选取体验物品d的评分值。
F.判断是否选完体验用户评分为0物品集合中所有物品,若是,则执行步骤G,否则,执行步骤D。
G.将用户物品训练矩阵中体验用户评分值为0的物品,按照预测评分值从大到小排序,从排序中选取排序靠前的物品,组成体验用户的推荐列表。
H.按照下式,计算体验用户的推荐精度。
其中,pra表示所选取体验用户a的推荐精度,Q表示所选取体验用户a在用户物品优化矩阵中评过分的且出现在其推荐列表中的物品数量,L表示所选取体验用户a的推荐列表中物品数量。
I.判断是否得到用户物品训练矩阵中所有用户的推荐精度,若是,则执行步骤J,否则,执行步骤B。
J.按照下式,计算信息核个体的推荐精度。
其中,PR表示信息核个体的推荐精度,e表示用户集合U中第e个用户,U表示用户物品训练矩阵中用户集合,pre表示第e个用户的推荐精度。
第6步,将父代种群与过渡种群中的信息核个体,按照推荐精度从大到小排序,从排序中选取前100个信息核个体,组成子代种群。
第7步,用子代种群中的每一个信息核个体替换父代种群中的每一个信息核个体,生成新的父代种群。
第8步,判断当前迭代次数是否达到最大迭代次数100次,若是,则执行步骤9,否则,执行本步骤第4步。
步骤9,完成信息核构建。
从父代种群中选取推荐精度最大的信息核个体,作为最佳信息核。
步骤10,进行协同过滤推荐。
利用找出的最佳信息核,为用户物品评分矩阵中每一个用户推荐其需要的物品。
下面结合仿真实验对本发明的效果做进一步的说明。
1.仿真条件:
本发明仿真实验的运行环境是:Windows7 64位操作***,CPU为Intel(R)Core(TM)i3-CPU [email protected],内存为4GB,编译环境为Matlab2017a。
2.仿真实验数据与评价指标:
本发明的仿真实验中采用推荐***领域常用的数据集MovieLens-100K和MovieLens-1M,为了验证验证本发明在提取信息核上的推荐效果,将两个数据集分别都拆分为训练数据子集Train和测试数据子集Test,两个数据统计信息见如下表1。
表1数据集统计信息表
其中,表1中的英文Dataset(original)表示原始数据集,Dataset(subset)表示原始数据集中的子集,包括训练数据子集Train,测试数据子集Test,#User表示用户数量,U表示用户集合,#Item表示物品数量,I表示物品集合,#Ratings表示评分数量,R表示用户对物品的评分。
本发明采用推荐***领域常用的评价指标为推荐精度precision,按如下步骤,计算信息核在测试数据子集上的推荐精度precision:
第1步,从测试数据子集中任意选取一个用户作为目标用户,按照下式,计算信息核对目标用户的推荐精度。
其中,precisionu表示测试数据子集中信息核对所选取目标用户u的推荐精确度,Q表示信息核对所选取目标用户u的推荐物品中用户u需要的物品数量,L表示信息核对所选取目标用户u的推荐物品数量。
第2步,判断是否得到信息核对测试数据子集中所有用户的推荐精度,若是,则执行第3步,否则,执行第1步。
第3步,按照下式,计算信息核在测试数据子集上的推荐精度。
其中,precision表示信息核在测试数据子集上的推荐精度,u表示用户集合U中第u个用户,U表示测试数据子集中的用户集合,precisionu表示信息核对第u个用户的推荐精度。
3.仿真实验内容与结果分析:
本发明的仿真实验有两个。
本发明的仿真实验1是在两个常用数据集各自拆分后的训练数据子集Train和测试数据子集Test上,以推荐精度precision为评价指标,推荐列表长度为20下进行的。仿真实验1是本发明的基于聚类及进化算法构建信息核的物品推荐方法与4个现有技术(基于排名Rank的信息核构建方法、基于频率Frequency的信息核构建方法、基于普通进化算法EA的信息核构建方法和基于传统协同过滤CF的方法)的推荐精度进行对比,考虑到本发明方法与基于普通进化算法EA的信息核构建方法的随机性,求推荐精度时,重复运行10次求平均值,数据集MovieLens-100K,对比的结果如表2和图2(a)所示,数据集MovieLens-1M,对比的结果如表3和图2(b)所示。
图2(a)、图2(b)中的纵坐标表示推荐精度,横坐标表示邻居数。图2(a)、图2(b)中以正方形标示的曲线表示基于频率Frequency的信息核构建方法获得地推荐精度曲线。图2(a)、图2(b)中以菱形标示的曲线表示基于排名Rank的信息核构建方法获得地推荐精度曲线。图2(a)、图2(b)中以圆形标示的曲线表示基于传统协同过滤CF的方法获得地推荐精度曲线,图2(a)、图2(b)中以星号标示的曲线表示普通进化算法EA的信息核构建方法获得地推荐精度曲线。图2(a)、图2(b)中以右三角形标示的曲线表示本发明的方法获得地推荐精度曲线。
从图2(a)、图2(b)可以看出,本发明的曲线位于基于频率Frequency的信息核构建方法的曲线、基于排名Rank的信息核构建方法的曲线、基于传统协同过滤CF的方法的曲线和基于普通进化算法EA的信息核构建方法的曲线的上方,因此说明本发明的推荐精度是最高的。
表2在MovieLens-100K上推荐列表长度为20时各方法的推荐精度表
表3在MovieLens-1M上推荐列表长度为20时各方法的推荐精度表
其中,表2、表3中邻居数表示用户邻居集中用户个数,表2、表3中频率Frequency表示基于频率Frequency的信息核构建方法的推荐精度,表2、表3中排名Rank表示基于排名Rank的信息核构建方法的推荐精度,表2、表3中协同过滤CF表示基于传统协同过滤CF的方法的推荐精度,表2、表3中进化算法EA表示基于普通进化算法EA的信息核构建方法的推荐精度,表2、表3中本发明表示本发明的方法的推荐精度。
从表2、表3可以看出,本发明在两个常用评分数据集MovieLens-100K和MovieLens-1M上的推荐精度都高于其它现有四种技术的推荐精度。
本发明的仿真实验2是在两个常用数据集各自拆分后的训练数据子集Train和测试数据子集Test上,以离线选取信息核的时间为评价指标,邻居数为10下进行的。仿真实验2是本发明与现有技术(基于普通进化算法EA的信息核构建方法)离线选取信息核的时间进行对比,考虑到本发明方法与基于普通进化算法EA的信息核构造方法的随机性,统计离线选取信息核的时间时,重复运行10次求平均值,对比结果如表4所示。
表4两种选取信息核对比方法离线选取信息核的时间表
由表4可以看出,在两个数据集MovieLens-100K和MovieLens-1M上,基于普通进化算法EA的信息核构建方法离线选取信息核的时间较长,本发明方法离线选取信息核的时间较短,说明了本发明能够更快速地离线选取信息核。
Claims (4)
1.一种基于聚类及进化算法构建信息核的物品推荐方法,其特征在于,利用聚类算法构建虚拟用户物品评分矩阵,通过进化算法从虚拟用户物品评分矩阵中提取出信息核,利用信息核为用户推荐物品;该方法的步骤包括如下:
(1)构建用户物品评分矩阵:
(1a)从用户对物品的评分数据集中提取用户对物品的所有评分信息,创建用户物品评分矩阵,该矩阵的行数与评分数据集中的用户数量相等,该矩阵的列数与评分数据集中的物品数量相等;
(1b)用0表示评分矩阵中用户未评过分的物品的评分值,用实际评分值表示评分矩阵中用户评过分的物品的评分值;
(2)将用户物品评分矩阵降维:
利用T分布随机近邻嵌入算法,对用户物品评分矩阵降维,得到低维矩阵;
(3)利用聚类算法对低维矩阵中的用户聚类多次:
(3a)利用聚类算法,对低维矩阵中的用户进行Ψ个类别的聚类,得到每个用户在Ψ个类别中对应的类别;
(3b)利用每个用户在Ψ个类别中的类别,得到用户物品评分矩阵中对应用户的类别;
(3c)对低维矩阵中的用户聚类5次后,得到用户物品评分矩阵中用户对应的所有用户类别;
(4)构建虚拟用户物品评分矩阵:
(4a)从用户物品评分矩阵中任意选取一个用户类别,将所选用户类别中用户评分的均值,作为所选类别的聚类中心,将所选类别的聚类中心保存为一个向量;
(4b)判断是否选完用户物品评分矩阵中所有的用户类别,若是,则执行步骤(4d),否则,执行步骤(4a);
(4d)将所有用户类别的聚类中心对应的向量,组成虚拟用户物品评分矩阵;
(5)构建优化矩阵:
(5a)利用聚类算法,对低维矩阵中的用户进行K个类别的聚类,得到每个用户在K个类别中对应的类别;
(5b)利用每个用户在K个类别中的类别,得到用户物品评分矩阵中对应用户的类别;
(5c)从用户物品评分矩阵中任意选取一个用户类别,将所选用户类别中用户评分的均值,作为所选类别的聚类中心,将所选类别的聚类中心保存为一个向量;
(5d)判断是否选完用户物品评分矩阵中所有的用户类别,若是,则执行步骤(5e),否则,执行步骤(5c);
(5e)将所有用户类别的聚类中心对应的向量,组成优化矩阵;
(5f)从优化矩阵中任意选取一个用户作为目标用户;
(5g)从优化矩阵中任意选取一个物品作为目标物品;
(5h)按照下式,更新目标用户对目标物品的评分值:
其中,pbj表示目标用户b对目标物品j的评分值,|·|表示取绝对值操作,Gc表示用户物品评分矩阵中属于用户类别c且对目标物品j评过分的用户集合,c表示目标用户b对应的聚类中心所在的用户类别,Tc表示用户物品评分矩阵中属于用户类别c的用户集合;
(5i)判断是否选完优化矩阵中所有用户,若是,则执行步骤(5j),否则,执行步骤(5f);
(5j)判断是否选完优化矩阵中所有物品,若是,则执行步骤(6),否则,执行步骤(5g);
(6)构建用户物品训练矩阵和用户物品优化矩阵:
(6a)构建用户物品训练矩阵,该矩阵的行数与优化矩阵中用户数量相等,该矩阵的列数与优化矩阵中物品数量相等;
(6b)构建用户物品优化矩阵,该矩阵的行数与优化矩阵中用户数量相等,该矩阵的列数与优化矩阵中物品数量相等;
(7)更新用户物品训练矩阵和用户物品优化矩阵:
(7a)从优化矩阵中提取评分数据的80%作为训练数据,剩余的20%评分数据作为优化数据;
(7b)从训练数据中提取评分信息,用0替换用户物品训练矩阵中用户未评过分物品的评分值,用实际评分值替换用户物品训练矩阵中用户评过分物品的评分值;
(7c)从优化数据中提取评分信息,用0替换用户物品优化矩阵中用户未评过分物品的评分值,用实际评分值替换用户物品优化矩阵中用户评过分的物品评分值;
(8)利用进化算法选取信息核:
(8a)从虚拟用户物品评分矩阵中提取用户编号ID,组成用户编号ID集合;
(8b)将用户编号ID集合长度的60%作为信息核长度;
(8c)从用户编号ID集合中,任意选取100个与信息核长度相等的用户编号ID子集,组成父代种群;
(8d)对父代种群中每个信息核个体进行交叉、变异操作后,产生过渡种群;
(8e)利用推荐精确度方法,得到父代种群与过渡种群中每个信息核个体的推荐精度;
(8f)将父代种群与过渡种群中的信息核个体,按照推荐精度从大到小排序,从排序中选取前100个信息核个体,组成子代种群;
(8g)用子代种群中的每一个信息核个体替换父代种群中的每一个信息核个体,生成新的父代种群;
(8h)判断当前迭代次数是否达到最大迭代次数100次,若是,则执行步骤(9),否则,执行步骤(8d);
(9)完成信息核构建:
从父代种群中选取推荐精度最大的信息核个体,作为最佳信息核;
(10)利用信息核为用户推荐物品:
利用找出的最佳信息核,为用户物品评分矩阵中每一个用户推荐其需要的物品。
2.根据权利要求1所述的基于聚类及进化算法构建信息核的物品推荐方法,其特征在于,步骤(1a)、步骤(7b)、步骤(7c)中所述的评分信息包括用户编号ID、项目编号ID、用户对物品的评分值。
3.根据权利要求1所述的基于聚类及进化算法构建信息核的物品推荐方法,其特征在于,步骤(3a)、步骤(5a)中所述的聚类算法具体步骤如下:
第一步,从低维矩阵中随机选择N个用户作为初始的N个聚类中心,一个聚类中心对应一个用户类别;
第二步,从低维矩阵中任意选取一个用户作为划分用户;
第三步,根据划分用户与N个聚类中心之间的欧式距离,得到与划分用户欧式距离最小的目标聚类中心,将划分用户标记为目标聚类中心对应的用户类别;
第四步,判断是否选完低维矩阵中所有用户,若是,则执行第五步,否则,执行第二步;
第五步,从所有用户类别中任意选取一个用户类别作为目标类别;
第六步,将所选目标用户类别中用户评分的均值,作为所选目标用户类别的聚类中心;
第七步,判断是否所有用户类别的聚类中心没有变化,若是,则得到低维矩阵中每个用户对应的用户类别,否则,执行第二步。
4.根据权利要求1所述的基于聚类及进化算法构建信息核的物品推荐方法,其特征在于,步骤(8e)中所述推荐精确度方法具体步骤如下:
第一步,按照下式,计算用户物品训练矩阵中每一个用户与信息核个体中每一个用户之间的余弦相似度;
其中,sim(u,v)表示用户物品训练矩阵中第u个用户与信息核个体中第v个用户的余弦相似度,∑表示求和操作,i表示物品集合I(u)与物品集合I(v)交集中的第i个物品,I(u)表示用户物品训练矩阵中的第u个用户评过分的物品集合,I(v)表示信息核个体中第v个用户评过分的物品集合,∈表示属于符号,∩表示求交集操作,rui表示用户物品训练矩阵中第u个用户对第i个物品的评分值,rvi表示信息核个体中第v个用户对第i个物品的评分值,表示开平方操作;
第二步,从用户物品训练矩阵中任意选取一个用户作为体验用户;
第三步,从信息核个体中,选取与体验用户余弦相似度最大的前N个用户,组成体验用户的邻居集;
第四步,从体验用户评分为0物品集合中任意选取一个物品作为体验物品;
第五步,按照下式,计算体验用户对体验物品的预测评分值:
其中,pad表示所选取体验用户a对所选取体验物品d的预测评分值,s表示用户集合Had中第s个用户,Had表示所选取体验用户a的邻居集中对所选取体验物品d评过分的用户集合,sim(a,s)表示所选取体验用户a与第s个用户的余弦相似度,rsd表示第s个用户对所选取体验物品d的评分值;
第六步,判断是否选完体验用户评分为0物品集合中所有物品,若是,则执行第七步,否则,执行第四步;
第七步,将用户物品训练矩阵中体验用户评分值为0的物品,按照预测评分值从大到小排序,从排序中选取排序靠前的物品,组成体验用户的推荐列表;
第八步,按照下式,计算体验用户的推荐精度:
其中,pra表示所选取体验用户a的推荐精度,Q表示所选取体验用户a在用户物品优化矩阵中评过分的且出现在其推荐列表中的物品数量,L表示所选取体验用户a的推荐列表中物品数量;
第九步,判断是否得到用户物品训练矩阵中所有用户的推荐精度,若是,则执行第十步,否则,执行第二步;
第十步,按照下式,计算信息核个体的推荐精度:
其中,PR表示信息核个体的推荐精度,e表示用户集合U中第e个用户,U表示用户物品训练矩阵中用户集合,pre表示第e个用户的推荐精度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550780.5A CN108776919B (zh) | 2018-05-31 | 2018-05-31 | 基于聚类及进化算法构建信息核的物品推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550780.5A CN108776919B (zh) | 2018-05-31 | 2018-05-31 | 基于聚类及进化算法构建信息核的物品推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108776919A true CN108776919A (zh) | 2018-11-09 |
CN108776919B CN108776919B (zh) | 2021-07-20 |
Family
ID=64028262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810550780.5A Active CN108776919B (zh) | 2018-05-31 | 2018-05-31 | 基于聚类及进化算法构建信息核的物品推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108776919B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109949099A (zh) * | 2019-03-23 | 2019-06-28 | 西安电子科技大学 | 基于聚类及多臂***的信息核构建方法 |
CN111859155A (zh) * | 2020-08-04 | 2020-10-30 | 深圳前海微众银行股份有限公司 | 物品推荐方法、设备及计算机可读存储介质 |
CN112955883A (zh) * | 2018-12-29 | 2021-06-11 | 深圳市欢太科技有限公司 | 应用推荐方法、装置、服务器和计算机可读存储介质 |
WO2023279685A1 (zh) * | 2021-07-05 | 2023-01-12 | 南京信息工程大学 | 一种大规模商品销售中核心用户和核心物品的挖掘方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105139037A (zh) * | 2015-09-06 | 2015-12-09 | 西安电子科技大学 | 基于最小生成树的集成多目标进化自动聚类方法 |
CN105868281A (zh) * | 2016-03-23 | 2016-08-17 | 西安电子科技大学 | 基于非支配排序多目标方法的位置感知推荐*** |
CN105976140A (zh) * | 2016-04-27 | 2016-09-28 | 大连海事大学 | 大规模流式数据环境下的车货实时匹配方法 |
CN106157156A (zh) * | 2016-07-29 | 2016-11-23 | 电子科技大学 | 一种基于用户社区的协作推荐*** |
CN107274255A (zh) * | 2017-05-19 | 2017-10-20 | 西安电子科技大学 | 一种基于分解多目标进化算法的协同滤波推荐方法 |
CN107391713A (zh) * | 2017-07-29 | 2017-11-24 | 内蒙古工业大学 | 一种解决协同过滤推荐技术中冷启动问题的方法及*** |
CN107609033A (zh) * | 2017-08-10 | 2018-01-19 | 西安电子科技大学 | 基于自适应协同进化算法的信息核提取方法 |
-
2018
- 2018-05-31 CN CN201810550780.5A patent/CN108776919B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105139037A (zh) * | 2015-09-06 | 2015-12-09 | 西安电子科技大学 | 基于最小生成树的集成多目标进化自动聚类方法 |
CN105868281A (zh) * | 2016-03-23 | 2016-08-17 | 西安电子科技大学 | 基于非支配排序多目标方法的位置感知推荐*** |
CN105976140A (zh) * | 2016-04-27 | 2016-09-28 | 大连海事大学 | 大规模流式数据环境下的车货实时匹配方法 |
CN106157156A (zh) * | 2016-07-29 | 2016-11-23 | 电子科技大学 | 一种基于用户社区的协作推荐*** |
CN107274255A (zh) * | 2017-05-19 | 2017-10-20 | 西安电子科技大学 | 一种基于分解多目标进化算法的协同滤波推荐方法 |
CN107391713A (zh) * | 2017-07-29 | 2017-11-24 | 内蒙古工业大学 | 一种解决协同过滤推荐技术中冷启动问题的方法及*** |
CN107609033A (zh) * | 2017-08-10 | 2018-01-19 | 西安电子科技大学 | 基于自适应协同进化算法的信息核提取方法 |
Non-Patent Citations (1)
Title |
---|
樊鸿: ""基于进化计算理论的推荐***算法设计"", 《电脑知识与技术》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112955883A (zh) * | 2018-12-29 | 2021-06-11 | 深圳市欢太科技有限公司 | 应用推荐方法、装置、服务器和计算机可读存储介质 |
CN109949099A (zh) * | 2019-03-23 | 2019-06-28 | 西安电子科技大学 | 基于聚类及多臂***的信息核构建方法 |
CN109949099B (zh) * | 2019-03-23 | 2022-04-08 | 西安电子科技大学 | 基于聚类及多臂***的信息核构建方法 |
CN111859155A (zh) * | 2020-08-04 | 2020-10-30 | 深圳前海微众银行股份有限公司 | 物品推荐方法、设备及计算机可读存储介质 |
WO2023279685A1 (zh) * | 2021-07-05 | 2023-01-12 | 南京信息工程大学 | 一种大规模商品销售中核心用户和核心物品的挖掘方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108776919B (zh) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108776919A (zh) | 基于聚类及进化算法构建信息核的物品推荐方法 | |
CN105335491B (zh) | 基于用户点击行为来向用户推荐图书的方法和*** | |
CN105373597B (zh) | 基于k‑medoids项目聚类和局部兴趣融合的用户协同过滤推荐方法 | |
CN103412948B (zh) | 基于聚类的协同过滤的商品推荐方法及*** | |
CN105893609A (zh) | 一种基于加权混合的移动app推荐方法 | |
CN102841946B (zh) | 商品数据检索排序及商品推荐方法和*** | |
CN105868281B (zh) | 基于非支配排序多目标方法的位置感知推荐*** | |
CN108763362A (zh) | 基于随机锚点对选择的局部模型加权融合Top-N电影推荐方法 | |
CN104077357B (zh) | 基于用户的协同过滤组合推荐方法 | |
CN107391713A (zh) | 一种解决协同过滤推荐技术中冷启动问题的方法及*** | |
CN107633444B (zh) | 基于信息熵与模糊c均值聚类的推荐***噪声过滤方法 | |
CN101334786B (zh) | 一种基于规则邻域的数据降维方法 | |
CN106156372B (zh) | 一种互联网网站的分类方法及装置 | |
CN111523055B (zh) | 一种基于农产品特征属性评论倾向的协同推荐方法及*** | |
CN110110225B (zh) | 基于用户行为数据分析的在线教育推荐模型及构建方法 | |
CN104503973A (zh) | 一种基于奇异值分解与分类器融合推荐的方法 | |
CN103559630A (zh) | 一种基于客户属性及行为特征分析的客户细分方法 | |
US9934314B2 (en) | Systems and methods for implementing achievement guided recommendations | |
CN104239496A (zh) | 一种结合模糊权重相似性度量和聚类协同过滤的方法 | |
CN108763496A (zh) | 一种基于网格和密度的动静态数据融合客户分类算法 | |
CN108415913A (zh) | 基于不确定邻居的人群定向方法 | |
CN108647800A (zh) | 一种基于节点嵌入的在线社交网络用户缺失属性预测方法 | |
CN103279552A (zh) | 一种基于用户兴趣分组的协同过滤推荐方法 | |
CN103810162A (zh) | 推荐网络信息的方法和*** | |
CN110334278A (zh) | 一种基于改进深度学习的web服务推荐方法 |
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 |