本发明属于数据挖掘技术领域,主要涉及电子商务中个性化推荐,具体是一种基于随机森林修正的大数据下改进协同过滤推荐方法,例如:商品推荐、音乐电影产品推荐等领域,可用于网上商城等电子商务领域。
背景技术
21世纪以来,人类进入“大数据”时代,各种电子商务网站迅速发展,网络购物成为越来越多人购买商品的第一选择。而面对海量的、越来越多种类的商品,推荐系统的研究与发展能够很高效的挖掘用户的喜好,进行潜在购买的推荐,解决信息过载的问题。同时,根据中国物联网信息中心发布的《第41次中国互联网发展状况统计报告》显示,截止2017年12月,我国网民规模达7.72亿,1-11月,电子商务平台收入2188亿元,同比增长高达43.4%。由此可见,电子商务所带来的经济利益将越来越客观。因此,在大数据下的高准确度推荐系统对于电子商务有着巨大的意义。
个性化推荐技术是人们在面对海量数据获取有用信息时一种十分常用且高效的技术,其在电子商务领域中有着非常广泛的应用,基于不同的被推荐的对象,例如对商品推荐、电影推荐,甚至房屋推荐都是以个性化推荐技术为基础的。它可以发现用户的潜在兴趣及爱好,针对性的推荐物品,在学术和商业上都具有十分重要的意义。个性化推荐技术实质上是通过已有的用户行为,挖掘用户兴趣爱好,并将其可能喜欢的物品推荐给用户的一个过程。
协同过滤技术是最古老、研究最多的推荐算法,是一个利用集体智慧的典型算法。基于此,各种各样的协同过滤算法被应用到个性化推荐领域并且也取得了越来越满意的效果。在目前已有的研究中,协同过滤算法主要分为基于用户的协同过滤算法和基于物品的协同过滤算法,这两种算法从不同的角度对待问题,但其原理基本相同。这种方法自动化程度比较高,而且纯粹的协同过滤方法不需要对用户或者物品进行建模,不会利用和要求任何和物品相关的知识,因此这一算法被广泛应用在电影、音乐等不易提取物品特征向量的领域。但同时它也存在很多缺点:如,数据稀疏推荐精确度会受到很大影响,用户活跃度、热门物品对推荐质量存在负面影响,造成精确度不高多样性不强等,特别是在大数据的情况下,数据的稀疏度会极大地放大这些缺陷。
技术实现要素:
本发明的目的在于克服上述缺陷,提出一种准确度更高、多样性更强的基于随机森林修正的大数据下改进协同过滤推荐方法。
本发明是一种基于随机森林修正的大数据下改进协同过滤推荐方法,其特征在于,包括有如下步骤:
步骤1数据录入及参数设定:根据电子商务网站的记录,提取用户对每个物品的评分,设定用户为ua,其中a为当前待推荐用户标记,协同过滤参数近邻数k,k为常数,取值区间为[2,20],提取用户评分信息,评分信息标记为ratings;
步骤2建立当前用户特征向量集合:根据评分信息标记ratings,得到当前用户ua的特征向量集合ti={(xi,yi)},i∈n+,特征向量
步骤3构建随机森林分类模型:利用特征向量集合,为用户ua构造用户喜好随机森林分类模型,得到用户ua喜好随机森林分类模型;
步骤4计算用户间相似度并寻找用户的k个最近邻居:对于用户ua∈u且a≠b,其中u为用户集合,b为非当前待推荐用户的任一用户标签,根据改进后的相似度公式计算用户间相似度sim(a,b),找到与用户ua相似度最高的k个最近邻居;
步骤5计算改进协同过滤算法预测评分:利用用户间相似度及相似度最高的k个最近邻居,根据改进协同过滤预测评分公式计算用户ua对于所有未评分物品p的初步预测评分raq;
步骤6得到初步推荐列表:找到所有预测评分中最高的nitem个项目,nitem为需要推荐商品的个数,通常取常数10,依照评分进行降序排序,构成对用户ua的推荐列表l;
步骤7使用随机森林分类模型对初步推荐列表分类:使用随机森林分类模型对得到的推荐列表l中的物品进行分类;
步骤8结合两种方法进行修正得到最终推荐列表:根据分类结果,结合改进协同过滤推荐得到的用户ua的初步推荐列表l,对评分进行对应的修正调整,对列表l中的物品按评分降序进行重排序,形成最终的推荐列表l′;
步骤9进行最终推荐:取最终推荐列表l′中的前nitem个,对用户ua进行推荐。;
步骤10判断是否结束:检测是否是最后一个用户,即a是否等于m;若不是,返回步骤2,对下一个用户进行推荐;若是,则完成全部用户的推荐,推荐结束。
本发明以在大数据下改善户活跃度和热门物品对推荐质量的不良影响,提升推荐质量及算法的扩展性推荐结果的准确性和多样性。
与现有技术相比,本发明的优点是克服了传统协同过滤推荐算法的限制,实现了:
1)因为本发明采用了改进后的用户相似度计算公式及预测评分公式,因此极大地改善了大数据下用户活跃度和热门物品、用户不同的打分习惯对推荐质量的不良影响等缺点,使得最终的推荐结果的准确度和多样性更高。
2)因为本发明采用了随机森林分类模型对推荐结果进行修正,因此极大地改善了传统协同过滤技术对于稀疏数据、特别是大数据下极稀疏数据的推荐的不准确,使得推荐的质量得到了提高。
本发明打破了常规协同过滤推荐方法的局限性,开创性地将随机森林分类模型技术和协同过滤技术相结合,并对其进行良好改进,提出了一种基于随机森林修正的大数据下改进协同过滤推荐算法,实现了大数据下对推荐结果准确性和多样性的提高。
附图说明
图1本发明方法的实现流程框图;
图2本发明方法(rf-icf)、基于用户的协同过滤推荐算法(user-cf)、基于二部图的推荐算法(nbi)在moivelens数据集上的实验结果对比图。
具体实施方式
下面结合附图对本发明详细说明:
实施例1
传统协同过滤推荐算法自动化程度比较高,不会利用和要求任何和物品相关的知识,因此这一算法被广泛应用在电影、音乐等不易提取物品特征向量的领域。但随着大数据时代的到来,传统协同过滤推荐算法的弊端和缺陷被放大,由于数据稀疏、用户活跃度不同、热门物品以及不同用户的打分习惯对推荐质量存在负面影响,会造成精确度不高多样性不强特别是在大数据的情况下,数据的稀疏度会极大地放大这些缺陷。为了应对大数据飞速发展的需要,改善这一缺陷,本发明提出了一种基于随机森林修正的大数据下改进协同过滤推荐方法,参见图1,包括有如下步骤:
步骤1数据录入及参数设定:根据电子商务网站的记录,提取用户对每个物品的评分,设定用户为ua,其中a为当前待推荐用户标记,协同过滤参数近邻数k,k为常数,若k取值过大或过小均会对最终结果造成不良影响,最佳取值应为k=log2m,本例中k取10,提取用户评分信息,评分信息标记为ratings;近邻数k是一个经验参数,利用与目标用户最相似的k个的喜好来推测目标用户的喜好,其取值与原数据的规模有关,规模越大取值越大,取值过大或过小均容易造成准确度下降的问题。其取值与原数据的规模有关,规模越大取值越大,取值过大或过小均容易造成准确度下降的问题。
步骤2建立当前用户特征向量集合:根据评分信息标记ratings,得到当前用户ua的特征向量集合ti={(xi,yi)},i∈n+,特征向量
步骤3构建随机森林分类模型:利用步骤2中得到的特征向量集合,为用户ua构造用户喜好随机森林分类模型,得到用户ua喜好随机森林分类模型。此处使用现有成熟的随机森林模型,可以快速进行分类工作,特别在大数据下情况下处理分类工作的十分高效,用于本方法中,可以快速实现一种对当前目标用户来说待推荐物品分类的预测。
步骤4计算用户间相似度并寻找用户的k个最近邻居:对于用户ua∈u且a≠b,其中u为用户集合,b为非当前待推荐用户的任一用户标签,b用户为排除a用户后的所有用户的标签,根据改进后的相似度公式计算用户间相似度sim(a,b),找到与用户ua相似度最高的k个最近邻居,传统方法中此处使用的相似度计算方法并未有效对活跃度较高的用户和热门物品进行权重的考量,导致最终的结果会受到影响,使得推荐质量受到影响,本方法通过引入用户评价次数及物品被选中次数以及修正参数f(θ),使用改进后的计算方式,改善了上述不良影响。
步骤5计算改进协同过滤算法预测评分:利用步骤4得到的结果用户间相似度及相似度最高的k个最近邻居,根据改进协同过滤预测评分公式计算用户ua对于所有未评分物品p的初步预测评分roq,传统方法没有有效考虑用户打分习惯,使得不同用户打分习惯对最终的推荐结果有着不良的影响,本发明在此处通过引入各用户的打分平均值,有效考虑了不同用户的打分习惯,使得最终的结果更加准确。
步骤6得到初步推荐列表:找到步骤5得到的所有预测评分中最高的nitem个项目,nitem为需要推荐商品的个数,一般由电子商务网站的需求指定,对算法结果无影响,通常为10,本例中nitem取10,依照评分进行降序排序,构成对用户ua的初步推荐列表l;ua的推荐列表l即改进协同过滤推荐结果。
步骤7使用随机森林分类模型对初步推荐列表分类:使用步骤3得到的随机森林分类模型对步骤6得到的推荐列表l中的物品进行分类。
步骤8结合两种方法进行修正得到最终推荐列表:根据步骤7得到的物品分类结果,结合步骤5得到的改进协同过滤推荐得到的用户ua的初步推荐列表l,对初步预测评分进行对应的修正调整,对列表l中的物品按评分降序进行重排序,形成最终的推荐列表l′。
步骤9进行最终推荐:取最终推荐列表l′中的前nitem个,对用户ua进行推荐。
步骤10判断是否结束:检测是否是最后一个用户,即a是否等于m;若不是,返回步骤2,对下一个用户进行推荐;若是,则完成全部用户的推荐,推荐结束。
因为本发明采用了改进后的用户相似度计算公式及预测评分公式,因此改善了用户活跃度和热门物品、用户不同的打分习惯对推荐质量的不良影响,同时由于引入了随机森林分类模型,对改进后协同过滤推荐进行修正使得最终的推荐结果在大数据稀疏数据下的准确度和多样性更高。
实施例2
基于随机森林修正的大数据下改进协同过滤推荐方法同实施例1,步骤2中所述的建立当前用户特征向量集合,用户ua特征向量集合的提取和构建,是按照如下方式构成:
(2a)对于用户ua的特征向量的构建,即
(2b)对于用户ua类标签的构建,即yi∈{0,1},i∈n+,若用户ua对物品i的评分低于其对所有评分过物品的平均分数
(2c)对于用户ua的特征向量集合,使用一个二维数组v[n+][m+1]进行储存,其维度为n+行m+1列,第i行前m列为存储
本发明创新性地将随机森林分类模型引入推荐方法之中进行修正,在构建训练用户喜好随机森林分类模型过程中的所使用的特征向量提取方式和分类标签计算方式具有创新性。
实施例3
基于随机森林修正的大数据下改进协同过滤推荐方法同实施例1-2,步骤4中的计算用户间相似度并寻找用户的k个最近邻居的过程,根据以下公式进行:
其中raq代表用户a对物品q的评分,rbq代表用户b对物品q的评分,ia是用户a评分过的物品集合,ib是用户b评分过的物品集合,q为用户a,b共同评分过的物品,d(ua)表示用户a评分过的物品数,d(i)表示物品i被评分过的次数,ε是用来调和目标用户活跃度对于结果的影响,是两个用户之间共同评分项目个数与待预测用户评分项目数的比值,即ε:
其中d(i)是物品i被评分过的次数,d(a)是用户a评分过的物品数目,d(b)是用户b评分过的物品数目,与传统方法相比,由于引入的ε体现出了用户a的活跃程度,当a用户越活跃,ε值越小,
f(θ)则是引入动态因数后的表达式,即f(θ)=θ+δ,δ是修正参数,对于不同的数据集,δ取值在(0,0.5)中,该参数需要通过多次实验得出最佳取值,本例中取0.3,θ是用来降低热门商品对推荐准确度的影响的参数,θ:
该式中,当待推荐物品q越热门,即d(q)越大,θ就越小,f(θ)=θ+δ也就越小,最终用户相似度间相似度也就相应越小,与传统方法相比,由于f(θ)=θ+δ的引入,增加了个性化推荐的可能性,改善了热门物品对推荐准确度和多样性的不良影响,提升了推荐的多样性和质量。
实施例4
基于随机森林修正的大数据下改进协同过滤推荐方法同实施例1-3,步骤5中的计算改进协同过滤算法预测评分时,根据如下公式计算:
rap是最终得到的用户a对未评分物品p的预测评分,
实施例5
基于随机森林修正的大数据下改进协同过滤推荐方法同实施例1-4,步骤7中的使用随机森林分类模型对初步推荐列表分类,其过程如下:
对初步推荐列表l里的每一件物品,将除目标用户a以外所有其他用户对它的打分作为输入特征向量
实施例6
基于随机森林修正的大数据下改进协同过滤推荐方法同实施例1-5,步骤8中结合两种方法进行修正得到最终推荐列表,其过程如下:
(8a)对于所有初步推荐列表l里的物品,对比初步预测分数与用户已打分物品的平均得分,低于用户a平均评分
(8b)对比类标签yq和zq,若数值相同,则保持物品p的预测评分,若不一样,则降低该物品的预测评分,降低的分值为所有打分中最高分数与最低分数差值的
(8c)所有初步推荐物品进行修正过后,将所有物品再次按新的预测评分降序排序。
相比于传统方法,本发明通过引入上述结合随机森林分类和改进协同过滤推荐的修正方法,充分发挥了两种方法的优势,改善了用户活跃度、热门物品及不同用户打分习惯对推荐结果的不良影响,在大数据数据稀疏的情况下,提高了推荐的准确度与多样性,提升了推荐质量。
下面给出一个更加完整的例子,对本发明进一步说明:
实施例7
基于随机森林修正的大数据下改进协同过滤推荐方法同实施例1-6,基于随机森林修正的大数据下改进协同过滤推荐方法,其关键步骤是将改进后的协同过滤技术与随机森林技术结合,并用于个性化推荐。
基于随机森林修正的大数据下改进协同过滤推荐方法的特征是:首先从用户评分信息中提取出用户特征向量集合,构造随机森林分类模型,然后使用改进后的协同过滤算法。
参见图1具体实现步骤如下:
步骤1,输入用户对每个物品的评分的数据集,提取用户评分信息信息,评分信息标记为ratings。其中用户评分信息以用户/项目-评分矩阵表示及存储,每一排表示一个用户对所有物品的打分,每一列表示某一物品被所有用户的打分,建立一个二维数组ratings[m][n+],用来表示逻辑上的用户-项目评分矩阵,其中m是用户总数量,n+是物品总数量,如1号用户给2号物品评分为1分,则令ratings[1][2]=1;随后输入近邻数k,在本例中,k=20。
步骤2,根据评分信息ratings,构造每一个用户ua的特征向量集合ti={(xi,yi)},i∈n+。其中
步骤3,利用步骤2中得到的特征向量集合,为用户ua构造随机森林,得到一个分类模型;主要分为以下几个步骤:
(3a)采用bootstrap方法有放回式的随机选择训练的样本集,第n个样本集生成随机向量θn,使用h(x,θn)作为第n颗分类树模型;
(3b)对得到的样本分别建立分类树,使用在属性集合中选择最大信息增益的方式选择分裂属性。
(3c)经过分裂得到多个决策树分类模型{h(x,θn),k=1,2,3...n},参数集{θn}是独立同分布的随机向量,其最终结果为决策树的投票集成:
其中h(x)代表分类组合模型,y是目标变量,i(..)代表指示函数。
步骤4,对于用户ua∈u且a≠b,根据改进后的相似度公式计算sim(a,b),找到与用户ua相似度最高的k个最近邻居。
计算用户a与用户b的用户相似度sim(a,b)时,根据下式产生:
其中rai代表用户a对物品i的评分,rbi代表用户b对物品i的评分,ia是用户a评分过的物品集合,ib是用户b评分过的物品集合,d(ua)表示用户a评分过的物品数,d(i)表示物品i被评分过的次数,ε是用来调和目标用户选择物品数目对于结果的影响,是两个用户之间共同评分项目个数与目标用户评分项目数的比值ε:
θ是用来降低热门商品对推荐准确度的影响的参数θ:
其中d(i)是物品i被评分过的次数,d(a)是用户a评分过的物品数目,d(b)是用户b评分过的物品数目,而f(θ)则是引入动态因数后的表达式,即f(θ)=θ+δ。本例中δ取0.4,通过本发明改进后的相似度计算公式,大大改善因用户活跃度问题和热门物品而带来的不良影响。
步骤5,利用步骤4得到的结果,根据预测评分公式计算用户ua对于所有未评分物品i的初步预测评分rai。
计算用户的未评分项目的预测评分时,根据如下公式计算:
步骤6,使用大顶堆算法,不断调整步骤5得到的所有待推荐物品的预测评分排序,最终形成降序,按照此顺序将所有待推荐物品储存在一个链表中,构成用户ua的推荐列表l。
步骤7,使用步骤3得到的随机森林分类模型对步骤6得到的推荐列表l中的物品进行分类。对初步推荐列表l里的每一件物品,将除目标用户a以外所有其他用户对它的打分作为输入特征向量
步骤8,根据步骤7得到的分类结果,对评分进行对应的调整对列表l中的物品进行重排序,形成新的推荐列表l′。
(8a)对于所有初步推荐列表l里的物品,对比初步预测分数与用户已打分物品的平均得分,低于用户a平均评分
(8b)对比类标签yq和zq,若数值相同,则保持物品p的预测评分,若不一样,则降低该物品的预测评分,降低的分值为所有打分中最高分数与最低分数差值的
(8c)所有初步推荐物品进行修正过后,将所有物品再次按新的预测评分降序排序。
步骤9,取出列表l′中的前nitem个,形成最终的用户ua的推荐列表。
步骤10,对所有用户分别执行步骤2到步骤9,得到所有用户的topn推荐列表。
因为本发明打破了常规协同过滤推荐方法的局限性,将随机森林分类模型技术和协同过滤技术相结合,并对其进行良好改进,实现了对推荐结果准确性和多样性的提高,并增强了推荐算法的扩展性。
下面通过仿真及结果对本发明的技术效果再作说明:
实施例8
基于随机森林修正的大数据下改进协同过滤推荐方法同实施例1-7,通过仿真实验对本发明的实现过程和技术效果进一步说明。
参数设置:
最近邻数目k=50,δ=0.4。
仿真内容:应用本发明推荐方法,对moivelens数据集进行用户个性化推荐,并给出了结果来说明本发明方法应用个性化推荐的性能。
仿真内容,将包含10000054条评分,其中包括71567名用户和10681部电影的数据记录分为80%的训练集和20%的测试集。根据预测值与实际值误差得偏差来表示准确率的高低,误差越小,准确度越高,如:预测用户的评分集合是{p1,p2,p3,...,pn},实际评分集合是{q1,q2,q3,...,qn},则平均绝对误差(mae)和均方根误差(rmse)为:
使用汉明距离(hd)来根据不同用户推荐列表中相同项目的数量来评价预测结果的多样性:
其中:qij代表用户ui和用户uj推荐列表之间公共项目的集合,l代表推荐列表的长度。如果两个列表内容完全一致,qij=0;若没有任何一个相同项目,则qij=1。所有用户的汉明距离平均值则是整个系统的汉明距离。
对于这三个指标来说,mae(即平均绝对误差)和rmse(即均方根误差)越小,则说明系统的推荐预测分数与用户真实打分越接近,推荐预测的准确度越高,汉明距离越大,说明推荐的多样性越强。
由图2中mae(即平均绝对误差)和rmse(即均方根误差)的对比可知,基于用户的协同过滤推荐算法、基于二部图的推荐算法的推荐算法在平均绝对误差和均方根误差中均高于本发明的方法,证明了本方法对于传统方法的推荐准确度的提高;对比图中hd(汉明距离)值可知,基于用户的协同过滤推荐算法、基于二部图的推荐算法在hd值均低于本发明方法,证明了本方法对于推荐的多样性也有提高。
简而言之,基于随机森林修正的大数据下改进协同过滤推荐方法,主要解决现传统推荐方法中在大数据下极容易受到用户活跃度、热门项目、不同的用户打分习惯所带来的推荐质量下降等问题。换句话说,本发明解决了现有方法尚不能有效融入用户活跃度、热门物品、不同用户打分习惯导致的较低的推荐准确性和多样性的技术问题。本发明引入随机森林分类方法,首先将其他用户对于目标用户评分过的物品的打分作为特征向量记录,录入数据及设定参数,再建立当前用户特征向量集合,根据目标用户自身对该物品的喜好程度,构建类标签,随后将这些特征向量集合作为输入引入随机森林,训练获得分类模型,接着使用改进后的协同过滤推荐算法,获得初始预测评分,并将推荐列表的物品用分类模型分类,将获得的类标签与对于平均评分得到的标签比较,进行修正,取最终推荐列表的前nitem个进行推荐。本发明将个性化推荐的处理过程进行改进,并引入了随机森林模型,使得在大数据下改善了用户活跃度、热门项目、不同的用户打分习惯所带来的推荐质量下降等问题,使推荐的准确率和多样性提升,可用于网上商城等电子商务领域。