CN105868422B - 一种基于弹性维特征向量优化抽取的协同过滤推荐方法 - Google Patents
一种基于弹性维特征向量优化抽取的协同过滤推荐方法 Download PDFInfo
- Publication number
- CN105868422B CN105868422B CN201610445356.5A CN201610445356A CN105868422B CN 105868422 B CN105868422 B CN 105868422B CN 201610445356 A CN201610445356 A CN 201610445356A CN 105868422 B CN105868422 B CN 105868422B
- Authority
- CN
- China
- Prior art keywords
- user
- recommended
- vector
- feature vector
- matrix
- 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
- 239000013598 vector Substances 0.000 title claims abstract description 219
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000001914 filtration Methods 0.000 title claims abstract description 25
- 238000000605 extraction Methods 0.000 title claims abstract description 14
- 239000011159 matrix material Substances 0.000 claims abstract description 82
- 238000005457 optimization Methods 0.000 claims abstract description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 230000002068 genetic effect Effects 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 13
- 230000035772 mutation Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 238000011156 evaluation Methods 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 210000000349 chromosome Anatomy 0.000 description 8
- 238000011160 research Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000002790 cross-validation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000009401 outcrossing Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种基于弹性维特征向量优化抽取的协同过滤推荐方法,属于互联网信息推荐技术领域,本发明使用用户特征向量和推荐对象特征向量构建推荐方法,利用用户辅助向量和推荐对象辅助向量分别弹性的获取每个用户特征向量和每个推荐对象特征向量中用户真正感兴趣和推荐对象真正隶属的维度;本发明不需要专业知识和个体信息,安全简单;采用最小均方根误差作为优化约束条件,在实现过程中只需针对评分矩阵中已有的部分进行约束,仍能给出正确的拟合评分,避免了数据稀疏和由于缺乏历史数据的冷启动问题;该方法能获取每个用户特征向量和每个推荐对象特征向量中真正起作用的维度,并自适应地调整搜索方向,使推荐方法避免过拟合,优化推荐结果。
Description
技术领域
本发明属于互联网信息推荐技术领域,具体涉及一种基于弹性维特征向量优化抽取的协同过滤推荐方法。
背景技术
互联网的普及和发展给用户带来了大量的信息,在满足用户在信息时代对信息的需求的同时,也带来了信息超载问题。针对信息超载问题的有效的解决办法之一是个性化推荐***,由推荐***发现用户的兴趣点,从而引导用户发现自己的信息需求。个性化推荐***广泛应用于很多领域,特别是在电子商务领域。在学术界,推荐***也已逐步成为一门独立的学科。推荐方法是推荐***中最核心和关键的部分,很大程度上决定了推荐***的类型和性能的优劣。
目前,主流的推荐方法主要分为:基于内容的推荐、基于协同过滤的推荐、基于关联规则推荐、基于效用推荐、基于知识推荐、组合推荐6种:
(1)基于内容的推荐。
通过对推荐项的内容分析和用户的兴趣分析,发现与用户兴趣相匹配的项。然而,一方面,基于内容的推荐依赖大量的历史数据,只能推荐与用户以前喜好相似的项,因为无法确定的知道当前用户的喜好而无法解决冷启动问题;另一方面,基于内容的推荐除了对内容特征提取困难的数据(如图形、视频等)不能进行很好的推荐外,还存在推荐结果单一化(用户只能被推荐与自己过去评分相似的项目)和无法处理深度推荐(如品质、风格或观点文献);
(2)协同过滤推荐。
协同过滤推荐是推荐策略中最成功的策略。其基本思想是在日常生活中,我们往往会利用好朋友的推荐来进行一些选择。协同过滤把这一思想运用到电子商务推荐***中。这种思想可以进一步地抽象,把用户和推荐对象抽象成特征描述,对目标用户推荐等同于与目标用户偏好相似的用户的选择,即,用户的特征表述可以用于推测该用户的喜好。一方面,现有的协同过滤推荐***中实际上较少使用用户和推荐对象的特征。原因主要是用户兴趣偏好的获取方法和推荐对象特征提取方法不是很适用,需要引入更精确适用的用户和对象特征。另一方面,目前的推荐研究都是基于用户-对象二维空间进行研究的,用户选择某个对象以及对对象的评分在不同的情况下会有所不同,也就是推荐使用的特征维度会有所不同,研究具有不同维度特征的推荐***也是研究方向;
(3)基于关联规则推荐。
基于关联规则的推荐以关联规则为基础,把已购商品作为规则头,规则体为推荐对象,用于发现不同商品在销售过程中的相关性。其直观的意义就是在一个交易数据库中找出用户在购买某些商品的时候有多大倾向去购买另外一些商品。主要缺点是算法关联规则的发现非常耗时,是算法的瓶颈(虽然可以离线进行)。其次,商品名称的同义性问题也是关联规则的一个难点;
(4)基于效用推荐。
基于效用的推荐建立在对用户使用项目的效用情况上计算的,一般考虑非产品的属性,如提供商的可靠性和产品的可得性。其核心问题是怎么样为每一个用户去创建一个效用函数。主要缺点是对问题需要合适的效用函数,这个过程也是很困难的;
(5)基于知识推荐。
基于知识的推荐是基于效用知识构建的推荐***。效用知识是一种关于一个项目如何满足某一特定用户的知识。主要缺点是推荐需要事先知道一定的知识结构,如用户已经规范化的查询,或者是一个更详细的用户需要的表示;
(6)组合推荐。
组合推荐就是希望通过组合避免或弥补各自推荐技术的弱点,此部分研究和应用最多的是内容推荐和协同过滤推荐的组合。最简单的做法就是分别用基于内容的方法和协同过滤推荐方法去产生一个推荐预测结果,然后用某方法组合其结果。主要缺点是尽管从理论上有很多种推荐组合方法,但这种***的可扩展性并不好,对问题的解决没有规范的确切方法;
个性化推荐***作为一种有效的信息过滤手段,是当前解决信息过载问题及实现个性化信息服务的有效方法之一;然而,随着用户数量和服务数量的***增长、服务数据的高动态性以及服务产生数据的不断复杂化,使得面向服务的推荐***不得不面临一些新的挑战,尤其是数据特征的高维问题、数据系数问题和冷启动问题。
发明内容
针对现有技术的不足,本发明提出一种基于弹性维特征向量优化抽取的协同过滤推荐方法,以达到简单、有效、推荐结果直观、容易理解、不需要领域知识、没有稀疏问题和冷启动问题。
一种基于弹性维特征向量优化抽取的协同过滤推荐方法,包括以下步骤:
步骤1、从历史数据库中获取所需用户和所需推荐对象,采用构建原始评分矩阵的方式描述不同用户对不同推荐对象的评分;
步骤2、对获取的每个用户构建一个多维用户特征向量,并对用户特征向量随机赋初始值;
步骤3、对获取的每个推荐对象构建一个多维推荐对象特征向量,并对推荐对象特征向量随机赋初始值,所述的推荐对象特征向量维数与用户特征向量维数相同;
步骤4、根据原始评分矩阵并结合用户辅助向量,对用户特征向量进行优化,具体步骤如下:
步骤4-1、遍历原始评分矩阵获得目标用户给过评分的所有推荐对象,将推荐对象对应的推荐对象特征向量组成矩阵;
步骤4-2、根据步骤4-1中获得的矩阵和原始评分矩阵进行优化求解,获得当前迭代次数中该用户的特征向量;
步骤4-3、采用遗传算法确定该用户的用户辅助向量;
步骤4-4、将当前迭代次数中该用户的特征向量中的元素与该用户的用户辅助向量对应位置元素相乘,抽取出当前迭代次数中该用户特征向量中实际起作用的维度,获得该用户当前迭代次数优化后的用户特征向量;
步骤4-5、重复步骤4-1至步骤4-3,获得下一用户的当前迭代次数中的用户特征向量,直至所有用户特征向量均完成优化;
步骤5、根据原始评分矩阵并结合推荐对象辅助向量,对推荐对象特征向量进行优化,具体步骤如下:
步骤5-1、遍历原始评分矩阵获得评价过目标推荐对象的所有用户,将用户对应的用户特征向量组成矩阵;
步骤5-2、根据步骤5-1中获得的矩阵和原始评分矩阵进行优化求解,获得当前迭代次数中该推荐对象的特征向量;
步骤5-3、采用遗传算法确定该推荐对象的推荐对象辅助向量;
步骤5-4、将当前迭代次数中该推荐对象的特征向量中的元素与该推荐对象的推荐对象辅助向量对应位置元素相乘,抽取出当前迭代次数中推荐对象特征向量中该推荐对象实际隶属的类型维度,获得该推荐对象当前迭代次数优化后的推荐对象特征向量;
步骤5-5、重复步骤5-1至步骤5-3,获得下一推荐对象的当前迭代次数中的推荐对象特征向量,直至所有推荐对象特征向量均完成优化;
步骤6、返回执行步骤4进行下一次迭代,直至到达迭代次数的最大值或者连续三次迭代中的总体误差变化小于给定的误差阈值,则迭代过程终止,获得用户特征向量和推荐对象特征向量的最优值;
步骤7、筛查原始评分矩阵确定目标用户未给出评分的推荐对象,将这些推荐对象作为候选推荐对象,把该用户的用户特征向量依次与候选推荐对象的推荐对象特征向量相乘,获得该用户对这些候选推荐对象的潜在评分,将其中评分最高的一个或多个推荐对象推荐给该目标用户。
步骤1所述的原始评分矩阵,是根据一系列原始三元组评分记录构建而成,每个三元组包括用户ID、推荐对象ID和该用户对该推荐对象已经给出的评分,所述原始评分矩阵是稀疏矩阵。
步骤4-2所述的根据步骤4-1中获得的矩阵和原始评分矩阵进行优化求解,获得当前迭代次数中的用户特征向量,具体公式如下:
其中,表示第i个用户特征向量的第t次迭代值,表示由原始评分矩阵中第i个用户所做的评分组成的行向量,M(ui)表示第i个用户给过评分的所有推荐对象对应的推荐对象特征向量组成的矩阵,M(ui)T为矩阵M(ui)的转置,λ为性能参数,I为单位矩阵。
步骤4-3所述的采用遗传算法确定该用户的用户辅助向量;步骤5-3所述的采用遗传算法确定该推荐对象的推荐对象辅助向量;
其中,所述的用户辅助向量用于确定每个用户真正感兴趣的维度,推荐对象辅助向量用于确定每个推荐对象真正隶属的维度,即获得弹性维特征向量;且所述的用户辅助向量或推荐对象辅助向量由0和1组成;
具体步骤如下:
步骤a、初始化;
随机选定若干个用户辅助向量初始值或推荐对象辅助向量初始值作为遗传算法的初始种群,计算并记录每个个体适应度,代数p=1;
步骤b、选择;
采用最佳保存策略选出适应度最高的个体直接复制到种群的下一代,再采用轮盘赌的方式进行选择操作,构建种群的余下部分;
步骤c、交叉;
采用单点交叉进行交叉操作;
步骤d、变异;
采用基本位变异进行变异操作;
步骤e、生成新一代种群,代数p加1,计算并记录当前种群的个体适应度;
步骤f、判断当前代数是否达到最大值或进化过程是否收敛,若是,结束进化过程,当前种群最优个体即为用户辅助向量或推荐对象辅助向量,否则返回步骤b。
步骤5-2所述的根据步骤5-1中获得的矩阵和原始评分矩阵进行优化求解,获得当前迭代次数中的推荐对象特征向量,具体公式如下:
其中,表示第j个推荐对象特征向量的第t次迭代值,U(mj)表示评价过第j个推荐对象的所有用户对应的用户特征向量组成矩阵,U(mj)T为矩阵U(mj)的转置,表示由原始评分矩阵中对第j个推荐对象所评的分数组成的列向量,λ为性能参数,I为单位矩阵。
本发明优点:
本发明在深入研究各种协同过滤推荐方法的基础上,提出了一种新的基于弹性维特征向量优化抽取的协同过滤推荐方法。它是根据用户的信息需求、兴趣等,将用户感兴趣的信息、产品等推荐给用户的一种个性化信息推荐方法;有益效果在于:
(1)本发明首次使用用户特征向量和推荐对象特征向量构建推荐方法,并利用用户辅助向量和推荐对象辅助向量分别弹性的获取每个用户特征向量和每个推荐对象特征向量中用户真正感兴趣和推荐对象真正隶属的维度。这种推荐方法不需要专业知识和个体信息,具有安全和简单的特点。
(2)本发明采用最小均方根误差作为优化约束条件,在实现过程中只需针对评分矩阵中已有的部分进行约束,它保证了对已有评分的记录我们的推荐***仍能给出正确的拟合评分,避免了数据稀疏和由于缺乏历史数据的冷启动问题。
(3)改进的遗传算法能指导优化的搜索空间,该方法能自动获取每个用户特征向量和每个推荐对象特征向量中真正起作用的维度,并自适应地调整搜索方向,使推荐方法避免过拟合,优化推荐结果。
综上所述,该推荐方法简单、有效、推荐结果直观、容易理解、不需要领域知识、没有稀疏问题、不需要用户的个人信息,解决了新用户的冷启动问题。
附图说明
图1为本发明一种实施例的用户与推荐对象间相互作用的线形图模型示意图;
图2为本发明一种实施例的基于弹性维特征向量优化抽取的协同过滤推荐方法流程图;
图3为本发明一种实施例的根据遗传算法确定用户辅助特征向量的流程图;
图4为本发明一种实施例的遗传算法中模拟概率选择的轮盘赌示意图;
图5为本发明一种实施例的本发明提出的推荐方法与GroupLens研究项目组提供的电影数据集在划分的数据集u1~u5上随着迭代次数的均方根误差RMSE的变化趋势示意图;
图6为本发明一种实施例的本发明提出的推荐方法与RMSENetflix公司的推荐***Cinemath的准确率的对比曲线示意图。
具体实施方式
下面结合附图对本发明一种实施例做进一步说明。
本发明实施例中,基于弹性维特征向量优化抽取的协同过滤推荐方法,在各种协同过滤推荐方法的基础上,提出了一种新的线形图模型,如图1所示,将用户和推荐对象描述为用户特征向量和推荐对象特征向量,不需要专业和隐私信息,具有安全和简单的特点,用户特征向量和推荐对象特征向量之间是表示用户对推荐对象评分的方格,每个方格分别与某用户和某推荐对象相连,表示该用户对该推荐对象的评分,高的评分表示该用户特征向量与该推荐对象特征向量具有某些相同的“感兴趣点”,是应该推荐给用户的推荐对象,用户对推荐对象的评分约束着用户特征向量和推荐对象特征向量,该约束条件是用户特征向量和推荐对象特征向量描述正确性的保证;因此推荐方法问题转化为在满足约束条件的情况下,求解匹配向量的问题,具体步骤如下:
方法流程图如图2所示,包括以下步骤:
步骤1、从历史数据库中获取所需用户和所需推荐对象,采用构建原始评分矩阵的方式描述不同用户对不同推荐对象的评分;
本发明实施例中,推荐对象为电影;原始评分矩阵是由美国明尼苏达大学的GroupLens研究项目组所收集整理的评分记录数据集,该数据集是由943名用户对1682个电影做出的10万个1~5的评分所组成的,本发明实施例中采用交叉验证的方法,具体为采用5折交叉验证(5-fold cross validation),将数据集分成5份,分别包含从u1.base和u1.test到u5.base和u5.test共5组不相交、分离的子数据集,轮流将其中4份做训练,1份做验证,5次的结果的均值作为对算法精度的估计,每个用户至少评分了20个电影,该数据集中还有对所有用户年龄、性别、职业等统计信息;因此,本实施例中用户数量nu为943名、电影数量nm为1682个;
本发明实施例中,所述的原始评分矩阵是根据一系列原始三元组评分记录构建而成,每个三元组包括用户ID、推荐对象ID和该用户对该推荐对象已经给出的评分,所述评分矩阵是稀疏矩阵,本发明实施例中,如表1所示:
表1
步骤2、对获取的每个用户构建一个多维用户特征向量,并对用户特征向量随机赋初始值;
本发明实施例中,对943个用户特征向量进行初始化:每个用户对应一个用户特征向量,每个用户特征向量为k维行向量,k用于刻画用户特征,考虑到其描述性和计算效率等问题,一般取4~9,本实施例中k=5,由于评分最大为5,用户特征向量各维取值的最大值应该控制在2.23之内赋初始值,本实施例使用的是在(0,1.8)范围内随机取值;
步骤3、对获取的每个推荐对象构建一个多维推荐对象特征向量,并对推荐对象特征向量随机赋初始值,所述的推荐对象特征向量维数与用户特征向量维数相同;
本发明实施例中,对1682个电影特征向量进行初始化:每个电影对应一个电影特征向量,每个电影特征向量为l维列向量,l用于刻画电影特征,同样考虑到其描述性和计算效率等问题,一般取4~9,本实施例中l=5,电影特征向量初始值随机赋值,本实施例中同样选择在(0,1.8)范围内随机赋值;
本发明实施例中,将每一个用户和每一部电影都用一个5维特征向量表示,此时认为电影可以被5种类型概括,包括喜剧片、历史片、恐怖片、动作片、科幻片,一个电影特征向量mj=(mj1,mj2,mj3,mj4,mj5)中的一个元素值表示该电影在对应类型上的表现程度,同样一个用户特征向量ui=(ui1,ui2,ui3,ui4,ui5)相同位置上的元素值表示该用户对该类型电影的喜爱程度,本发明实施例中将用户-电影对的评分定义为rij=<ui,mj>,当一个用户特征向量某个位置的元素值与一个电影特征向量对应位置的元素值都大时,用户特征向量与电影特征向量匹配,该用户会给予这部电影一个高的评分;因此,本发明将推荐问题转化为求匹配向量的问题;为了获取最优的匹配向量,本发明分别对用户特征向量初始值和电影特征向量初始值随机赋值,然后利用迭代求解方式优化用户特征向量和电影特征向量;
步骤4、根据原始评分矩阵并结合用户辅助向量,对用户特征向量进行优化,具体步骤如下:
步骤4-1、遍历原始评分矩阵获得ui用户给过评分的所有推荐对象,将推荐对象对应的推荐对象特征向量组成矩阵M(ui);
步骤4-2、根据步骤4-1中获得的矩阵M(ui)和原始评分矩阵进行优化求解,获得第t次迭代中该用户的特征向量,具体公式如下:
其中,表示第i个用户特征向量的第t次迭代值,表示由原始评分矩阵中第i个用户所做的评分组成的行向量,M(ui)表示第i个用户给过评分的所有推荐对象对应的推荐对象特征向量组成的矩阵,M(ui)T为矩阵M(ui)的转置,λ为性能参数,I为单位矩阵;
上述用户特征向量最优解形式是优化目标的等价变化,本发明的优化目标是使预测评分与实际评分之间误差尽可能小。
本发明采用的最小均方根误差et形式如下:
其中,C是由原始评分矩阵中第i个用户所有评分过的电影组成的集合,rij为原始评分矩阵中第i个用户对第j个电影的实际评分,为第i个用户对第j个电影的预测评分;
从优化目标到用户特征向量最优解形式的转化过程可以概括为:
保证最小均方根误差最小的前提下,在一个迭代步骤中更新用户特征向量,如同求解如下问题:
其中,C(ui)为第i个用户已经评分的电影组成的集合,该方程可等价为为了避免过拟合,本发明实施例中需要在方程中增加一个正则化项,方程又变为可以根据需要自行调节,一般λ较小时当误差会更小,λ较大时解更紧凑泛化性更强,本实施例中λ取1,因此获得解形式为:
步骤4-3、采用遗传算法确定该用户的用户辅助向量;
因为用户需求的差异性,若只使用迭代方式优化用户特征向量,用户特征向量就被认为都是固定k维表示,这与现实情况不相符,容易出现过拟合现象,因此本发明中为每个用户增加一个用户辅助向量,用于弹性的抽取用户特征向量中真正感兴趣的维度,所确定维的大小和所在位置都可以不相同,具有弹性调节的特性,用户辅助向量由0和1组成,0表示用户对该维特征不感兴趣,1表示用户对该维特征真正感兴趣。用户辅助向量由遗传算法确定,流程图如图3所示,具体步骤如下:
步骤a、初始化;
随机选定若干个用户辅助向量初始值作为遗传算法的初始种群,本发明实施例中,选定10个用户辅助向量初始值作为遗传算法初始种群中的染色体,计算并记录每个个体适应度,个体适应度是衡量当前个体作为用户辅助向量时,推荐***所产生的误差,适应度函数形式为f(n)=[(1/e(n))×10]2,种群进化出适应度最大的个体作为当前用户辅助向量,其中e(n)为利用个体n求得的均方根误差,具体计算过程为先把该染色体作为用户辅助向量与求得的用户特征向量对应位相乘,作为优化后的用户特征向量,然后计算其最小均方根误差,最小均方根误差形式如步骤4-2所示,适应度函数中取倒数操作使均方根误差越小的个体,适应度越大,系数相乘和平方操作,加大选择压力,扩大了染色体之间适应度的差异性,加快遗传算法的收敛速度,代数p=1。
步骤b、选择;
本发明实施例中,采用轮盘赌选择和最佳保存策略构成的复合策略进行选择操作,首先采用最佳保存策略选出适应度最高的个体直接复制到种群的下一代,然后采用轮盘赌的方式进行选择操作,构建种群的余下部分,轮盘赌选择如图4所示,轮盘赌选择将个体适应度较高的个体以较高的概率性保留下来,这种复合策略在保证优胜劣汰的同时,又能将优秀个体保留下来,不致丢失,具有稳定性;
步骤c、交叉;
本发明实施例中,采用单点交叉进行交叉操作,依次在种群中两两选择出2条染色体,选中的染色体对以交叉概率进行交叉,若发生交叉操作,则随机得到一个交叉点,并将该位点之后的染色体部分互相交换,得到2条新的染色体;
步骤d、变异;
本发明实施例中,采用基本位变异进行变异操作,依次对每条染色体以变异概率进行变异操作,若发生变异,则随机指定某一位做变异操作;
步骤e、生成新一代种群,代数p加1,计算并记录当前种群的个体适应度;
步骤f、判断当前代数是否达到最大值或进化过程是否收敛,当代数p=T时或者种群最优解在连续三代进化中都未发生改变时,遗传进化过程终止,得到当前种群最优个体作为用户辅助向量,用于产生当前用户的优化后的特征向量,T一般取值范围为8~16,本实施例中T取10,否则返回步骤b;
步骤4-4、将第t次迭代中该用户的特征向量中的元素与该用户的用户辅助向量对应位置元素相乘,弹性的抽取出第t次迭代中该用户特征向量中用户实际感兴趣的维度,获得该用户当前迭代次数优化后的用户特征向量;
步骤4-5、重复步骤4-1至步骤4-3,获得下一用户的当前迭代次数中的用户特征向量,直至所有用户特征向量均完成优化;
步骤5、根据原始评分矩阵并结合推荐对象辅助向量,对推荐对象特征向量进行优化,具体步骤如下:
步骤5-1、遍历原始评分矩阵获得评价过mj推荐对象的所有用户,将用户对应的用户特征向量组成矩阵U(mj);
步骤5-2、根据步骤5-1中获得的矩阵和原始评分矩阵进行优化求解,获得当前迭代次数中该推荐对象的特征向量,具体公式如下:
其中,表示第j个推荐对象特征向量的第t次迭代值,U(mj)表示评价过第j个推荐对象的所有用户对应的用户特征向量组成矩阵,U(mj)T为矩阵U(mj)的转置,表示由原始评分矩阵中对第j个推荐对象所评的分数组成的列向量,λ为性能参数,I为单位矩阵;
步骤5-3、采用遗传算法确定该推荐对象的推荐对象辅助向量;
本发明实施例中,采用遗传算法确定该推荐对象的推荐对象辅助向量的具体步骤与步骤4-3思路一致,此处不再复述;
步骤5-4、将第t次迭代中该推荐对象的特征向量中的元素与该推荐对象的推荐对象辅助向量对应位置元素相乘,弹性的抽取出第t次迭代中推荐对象特征向量中该推荐对象实际隶属的类型维度,获得该推荐对象当前迭代次数优化后的推荐对象特征向量;
步骤5-5、重复步骤5-1至步骤5-3,获得下一推荐对象的当前迭代次数中的推荐对象特征向量,直至所有推荐对象特征向量均完成优化;
步骤6、返回执行步骤4进行下一次迭代,直至到达迭代次数的最大值18或者连续三次迭代中的总体误差变化小于给定的误差阈值(本发明实施例中阈值取值为0.001),则迭代过程终止,获得用户特征向量和推荐对象特征向量的最优值;
步骤7、筛查原始评分矩阵确定目标用户未给出评分的推荐对象,将这些推荐对象作为候选推荐对象,把该用户的用户特征向量依次与候选推荐对象的推荐对象特征向量相乘,获得该用户对这些候选推荐对象的潜在评分,将其中评分最高的一个或多个推荐对象推荐给该目标用户。
图5显示了在GroupLens研究项目组提供的电影数据集划分的数据集u1~u5上,本发明实施例提出的推荐算法GA-CF在运行过程中,RMSE得到逐渐优化的情况;从图中可以看出,在算法进行了若干迭代之后,当迭代次数在18次左右时,其RMSE已经逐渐趋于平缓;进一步,本发明分析提出的推荐算法GA-CF对准确性的提高程度;本发明提出的推荐方法CF-GA与RMSENetflix公司的推荐***Cinemath的准确率0.9502相比,平均精度提高了7.25%,如图6所示,并具有稳定性。
Claims (5)
1.一种基于弹性维特征向量优化抽取的协同过滤推荐方法,其特征在于,包括以下步骤:
步骤1、从历史数据库中获取所需用户和所需推荐对象,采用构建原始评分矩阵的方式描述不同用户对不同推荐对象的评分;
步骤2、对获取的每个用户构建一个多维用户特征向量,并对用户特征向量随机赋初始值;
步骤3、对获取的每个推荐对象构建一个多维推荐对象特征向量,并对推荐对象特征向量随机赋初始值,所述的推荐对象特征向量维数与用户特征向量维数相同;
步骤4、根据原始评分矩阵并结合用户辅助向量,对用户特征向量进行优化,具体步骤如下:
步骤4-1、遍历原始评分矩阵获得目标用户给过评分的所有推荐对象,将推荐对象对应的推荐对象特征向量组成矩阵;
步骤4-2、根据步骤4-1中获得的矩阵和原始评分矩阵进行优化求解,获得当前迭代次数中该用户的特征向量;
步骤4-3、采用遗传算法确定该用户的用户辅助向量;所述用户辅助向量由0和1组成,用于确定每个用户真正感兴趣的维度;
步骤4-4、将当前迭代次数中该用户的特征向量中的元素与该用户的用户辅助向量对应位置元素相乘,抽取出当前迭代次数中该用户特征向量中实际起作用的维度,获得该用户当前迭代次数优化后的用户特征向量;
步骤4-5、重复步骤4-1至步骤4-3,获得下一用户的当前迭代次数中的用户特征向量,直至所有用户特征向量均完成优化;
步骤5、根据原始评分矩阵并结合推荐对象辅助向量,对推荐对象特征向量进行优化,具体步骤如下:
步骤5-1、遍历原始评分矩阵获得评价过目标推荐对象的所有用户,将用户对应的用户特征向量组成矩阵;
步骤5-2、根据步骤5-1中获得的矩阵和原始评分矩阵进行优化求解,获得当前迭代次数中该推荐对象的特征向量;
步骤5-3、采用遗传算法确定该推荐对象的推荐对象辅助向量;所述推荐对象辅助向量由0和1组成,用于确定每个推荐对象真正隶属的维度,即获得弹性维特征向量;
步骤5-4、将当前迭代次数中该推荐对象的特征向量中的元素与该推荐对象的推荐对象辅助向量对应位置元素相乘,抽取出当前迭代次数中推荐对象特征向量中该推荐对象实际隶属的类型维度,获得该推荐对象当前迭代次数优化后的推荐对象特征向量;
步骤5-5、重复步骤5-1至步骤5-3,获得下一推荐对象的当前迭代次数中的推荐对象特征向量,直至所有推荐对象特征向量均完成优化;
步骤6、返回执行步骤4进行下一次迭代,直至到达迭代次数的最大值或者连续三次迭代中的总体误差变化小于给定的误差阈值,则迭代过程终止,获得用户特征向量和推荐对象特征向量的最优值;
步骤7、筛查原始评分矩阵确定目标用户未给出评分的推荐对象,将这些推荐对象作为候选推荐对象,把该用户的用户特征向量依次与候选推荐对象的推荐对象特征向量相乘,获得该用户对这些候选推荐对象的潜在评分,将其中评分最高的一个或多个推荐对象推荐给该目标用户。
2.根据权利要求1所述的基于弹性维特征向量优化抽取的协同过滤推荐方法,其特征在于,步骤1所述的原始评分矩阵,是根据一系列原始三元组评分记录构建而成,每个三元组包括用户ID、推荐对象ID和该用户对该推荐对象已经给出的评分,所述原始评分矩阵是稀疏矩阵。
3.根据权利要求1所述的基于弹性维特征向量优化抽取的协同过滤推荐方法,其特征在于,步骤4-2所述的根据步骤4-1中获得的矩阵和原始评分矩阵进行优化求解,获得当前迭代次数中的用户特征向量,具体公式如下:
其中,表示第i个用户特征向量的第t次迭代值,表示由原始评分矩阵中第i个用户所做的评分组成的行向量,M(ui)表示第i个用户给过评分的所有推荐对象对应的推荐对象特征向量组成的矩阵,M(ui)T为矩阵M(ui)的转置,λ为性能参数,I为单位矩阵。
4.根据权利要求1所述的基于弹性维特征向量优化抽取的协同过滤推荐方法,其特征在于,步骤4-3所述的采用遗传算法确定该用户的用户辅助向量;步骤5-3所述的采用遗传算法确定该推荐对象的推荐对象辅助向量;
具体步骤如下:
步骤a、初始化;
随机选定若干个用户辅助向量初始值或推荐对象辅助向量初始值作为遗传算法的初始种群,计算并记录每个个体适应度,代数p=1;
步骤b、选择;
采用最佳保存策略选出适应度最高的个体直接复制到种群的下一代,再采用轮盘赌的方式进行选择操作,构建种群的余下部分;
步骤c、交叉;
采用单点交叉进行交叉操作;
步骤d、变异;
采用基本位变异进行变异操作;
步骤e、生成新一代种群,代数p加1,计算并记录当前种群的个体适应度;
步骤f、判断当前代数是否达到最大值或进化过程是否收敛,若是,结束进化过程,当前种群最优个体即为用户辅助向量或推荐对象辅助向量,否则返回步骤b。
5.根据权利要求1所述的基于弹性维特征向量优化抽取的协同过滤推荐方法,其特征在于,步骤5-2所述的根据步骤5-1中获得的矩阵和原始评分矩阵进行优化求解,获得当前迭代次数中的推荐对象特征向量,具体公式如下:
其中,表示第j个推荐对象特征向量的第t次迭代值,U(mj)表示评价过第j个推荐对象的所有用户对应的用户特征向量组成矩阵,U(mj)T为矩阵U(mj)的转置,表示由原始评分矩阵中对第j个推荐对象所评的分数组成的列向量,λ为性能参数,I为单位矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610445356.5A CN105868422B (zh) | 2016-06-21 | 2016-06-21 | 一种基于弹性维特征向量优化抽取的协同过滤推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610445356.5A CN105868422B (zh) | 2016-06-21 | 2016-06-21 | 一种基于弹性维特征向量优化抽取的协同过滤推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105868422A CN105868422A (zh) | 2016-08-17 |
CN105868422B true CN105868422B (zh) | 2019-07-23 |
Family
ID=56649846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610445356.5A Active CN105868422B (zh) | 2016-06-21 | 2016-06-21 | 一种基于弹性维特征向量优化抽取的协同过滤推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105868422B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874503B (zh) * | 2017-02-24 | 2020-03-20 | 珠海迈科智能科技股份有限公司 | 获取推荐数据的方法和装置 |
CN108153918B (zh) * | 2018-02-05 | 2021-07-30 | 北京工业大学 | 基于自适应正交交叉的多目标优化算法的个性化电影推荐方法 |
CN109710935B (zh) * | 2018-12-26 | 2021-03-26 | 北京航空航天大学 | 一种基于文物知识图谱的博物馆导览与知识推荐方法 |
CN112417216B (zh) * | 2019-08-23 | 2023-09-22 | 腾讯科技(深圳)有限公司 | 一种对象推荐方法、装置、服务器及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246672B (zh) * | 2012-02-09 | 2016-06-08 | 中国科学技术大学 | 对用户进行个性化推荐的方法和装置 |
US20140156231A1 (en) * | 2012-11-30 | 2014-06-05 | Xerox Corporation | Probabilistic relational data analysis |
-
2016
- 2016-06-21 CN CN201610445356.5A patent/CN105868422B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105868422A (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Guan et al. | Matrix factorization with rating completion: An enhanced SVD model for collaborative filtering recommender systems | |
Li et al. | Using multidimensional clustering based collaborative filtering approach improving recommendation diversity | |
CN107220365A (zh) | 基于协同过滤与关联规则并行处理的精准推荐***及方法 | |
CN111932336A (zh) | 一种基于长短期兴趣偏好的商品列表推荐方法 | |
Hsu et al. | Mining skewed and sparse transaction data for personalized shopping recommendation | |
US20080275834A1 (en) | Solution recommendation based on incomplete data sets | |
CN105868422B (zh) | 一种基于弹性维特征向量优化抽取的协同过滤推荐方法 | |
CN112364976A (zh) | 基于会话推荐***的用户偏好预测方法 | |
CN110930219B (zh) | 一种基于多特征融合的个性化电商推荐方法 | |
CN112100512A (zh) | 一种基于用户聚类和项目关联分析的协同过滤推荐方法 | |
CN113239264A (zh) | 基于元路径网络表示学习的个性化推荐方法及*** | |
CN108920647B (zh) | 基于谱聚类的低秩矩阵填充top-n推荐方法 | |
CN112800207A (zh) | 一种商品信息推荐方法、装置及存储介质 | |
CN113342994B (zh) | 一种基于无采样协作知识图网络的推荐*** | |
Chen et al. | DPM-IEDA: dual probabilistic model assisted interactive estimation of distribution algorithm for personalized search | |
Hwang et al. | Using genetic algorithms for personalized recommendation | |
CN108960954B (zh) | 一种基于用户群行为反馈的内容推荐方法及推荐*** | |
CN114997959A (zh) | 一种电子智造产品营销推荐方法 | |
CN114861079A (zh) | 一种融合商品特征的协同过滤推荐方法和*** | |
Chen et al. | Application of a 3NN+ 1 based CBR system to segmentation of the notebook computers market | |
Chai et al. | Loan recommendation in P2P lending investment networks: a hybrid graph convolution approach | |
Kumar et al. | Product Recommendation Using Collaborative Filtering and K-Means Clustering | |
Beukman | Improving collaborative filtering with fuzzy clustering | |
Ajayi et al. | Made-to-Order: Targeted Marketing in Fast-Food Using Collaborative Filtering | |
Jothi et al. | Qualitative Analysis of Models and Issues in Recommender Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |