一种基于鲸鱼优化BP神经网络的协同过滤智能推荐方法与流程

文档序号:32117150发布日期:2022-11-09 06:18阅读:183来源:国知局
一种基于鲸鱼优化BP神经网络的协同过滤智能推荐方法与流程
一种基于鲸鱼优化bp神经网络的协同过滤智能推荐方法
技术领域
1.本发明涉及一种基于鲸鱼优化bp神经网络的协同过滤智能推荐方法,属于人工智能推荐技术领域。


背景技术:

2.在互联网经济与人工智能飞速发展的今天,现代供电服务体系面向用户的各项服务也日益趋向智能化,为了给用户提供更加智能便捷的服务,构建以用户为中心的智能推荐服务体系成为了发展改革的关键一环。生活中众多app供提供了大量功能可以供用户选择使用,但每个app的功能种类繁杂,为了使用户的使用更加便利,根据用户的需要去推荐功能就成了增加用户满意度的有效方法,目前市场中存在的推荐算法有基于内容、规则、聚类的推荐算法以及协同过滤算法,其中协同过滤算法又可以分为基于用户、项目以及模型的协同过滤算法。选择有效的推荐算法是实现提升用户满意度和使用感受的关键。


技术实现要素:

3.本发明要解决的技术问题是提供一种基于鲸鱼优化bp神经网络的协同过滤智能推荐算法,用来解决传统智能推荐算法推荐精度低以及推荐质量差的问题。
4.本发明的技术方案是:一种基于鲸鱼优化bp神经网络的协同过滤智能推荐方法,首先对鲸鱼优化算法进行改进,在原始鲸鱼算法的基础上加入tent混沌映射来扩展种群的多样性,增加寻优的可能,此外还加入了levy飞行策略防止陷入局部收敛,提升寻优精度。其次,将改进的鲸鱼算法用来优化bp神经网络的权值和阈值,将训练集用于训练iwoa-bp评分预测模型。然后,依据模型计算出其他用户与随机一个目标用户之间相同特征项的评分误差,根据误差相似度函数选出目标用户的邻居集。最后,采集邻居集中邻居用户的历史评分记录来预测目标用户的评分,以此来实现推荐。
5.具体步骤如下:
6.step1:首先在原始鲸鱼优化算法中加入tent混沌映射,提升原始算法的种群多样性,扩展搜索空间。再在改进的算法中加入levy飞行策略,防止陷入局部最优,加快收敛。通过加入以上策略得到改进的鲸鱼优化算法。(improved whale optimization algorithm,iwoa)。初始化改进算法和bp神经网络参数,设置输入层、隐含层以及输出层对应的神经元个数n,q,m以及每层的激活函数。为接下来改进的鲸鱼算法优化bp神经网络做准备。
7.step2:根据step1中改进后的鲸鱼算法更新出鲸鱼j的位置向量iwoaxj,再通过bp神经网络迭代公式更新得到新的粒子位置向量bpxj。为之后计算适应度值做准备。
8.step3:根据step2中得到的粒子位置向量,计算出iwoaxj与bpxj的适应度值,将适应度值小的位置向量更新为新的位置向量。之后,计算出新的位置向量的全局适应度值f(pg),与所设误差精度做对比,若全局适应度值大于误差精度,则从step2开始继续迭代,直到全局适应度值小于误差精度时得到最优粒子,结束迭代更新,此时bp神经网络的权值和阈值达到最优。
9.step4:从csdn上采集数据集,将数据集划分为训练集与测试集,并按照9:1、7:3或5:5的比例对训练集和测试集进行划分,然后计算其矩阵稀疏度,再选出最小矩阵稀疏度所对应的比例作为最适合的划分比例。将划分好的训练集数据导入iwoa-bp评分预测模型,用测试集测试模型,到此评分模型建立完成。
10.采用训练集中的数据训练iwoa-bp评分预测模型,到此评分模型建立完成。
11.step5:根据step1-step4的模型建立过程,由于不同用户的项目特征不一定相同,因此需要对测试集中的每个用户构建iwoa-bp评分预测模型。
12.step6:将所建立的评分预测模型应用到基于邻居用户的协同过滤推荐算法中,随机选取一个目标用户,采集其真实历史评分记录以及训练集中的其他用户与目标用户相同的项目特征,按照所对应的iwoa-bp评分预测模型进行评分预测,得到预测评分,计算出目标用户与其他用户的评分误差,再根据误差相似度函数计算相似度,将相似度最接近的k个用户选作邻居集,生成邻居集tu。
13.step7:采集邻居集中用户的历史评分记录,根据邻居集用户历史评分的特征项,通过对应的iwoa-bp评分预测模型模型对目标用户进行评分预测,预测评分高则推荐该项目,低则不推荐,最后,通过平均绝对误差来直观地对比算法性能。
14.所述step1具体为:
15.step1.1:向原始鲸鱼算法中加入tent混沌映射,进行种群初始化,来提升种群多样性,扩展搜索空间,具体为:
[0016][0017][0018]
其中,i表示种群数,k表示当前迭代次数,y
ik
是0到1的混沌序列,进一步生成搜索区域内的鲸鱼个体初始位置序列x
ik
,ub和lb分别是序列x
ik
的最大最小值。
[0019]
step1.2:在加入ten混沌映射的基础上,向算法中加入levy飞行策略,通过levy飞行在候选解的生成过程中进行扰动,防止算法陷入局部最优和过早的收敛。原始鲸鱼算法的更新迭代过程表示为:
[0020]
d=|c
·
x
rand-x(t)|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0021]
x(t+1)=x
rand
(t)-a
·dꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0022]
其中,x
rand
(t)表示随机位置向量,c与a是控制鲸鱼行动方式的系数向量,d表示当前解与最优解的位置,x(t+1)表示更新候选解的位置向量。
[0023]
在加入levy飞行策略以后,新的候选解位置更新公式由公式(4)变为公式(5):
[0024][0025]
其中,x
l
(t)表示更新后候选解当前位置,levy(λ)指的是随机探索路径,α表示步长控制因子。
[0026]
step1.3:设置bp神经网络参数时,输入层神经元个数n与数据集中项目特征数一致,例如如在电影数据集中,输入层神经元个数n与电影类型相同,输出层神经元个数m为1,隐含层神经元个数q在不同的数据集中会发生改变,在同一数据集中n和m都是确定值的情况下,设置不同的q进行实验,误差最小的实验中q的数量就是隐含层神经元个数q。
[0027]
此外,在信息传入bp神经网络时,每层都需要激活函数来激活,输入输出层的激活函数设置为恒等函数f(x)=x,隐含层为了处理一些非线性问题往往采用不同的激活函数,本发明采用sigmoid激活函数其隐含层激活函数设置为式(6):
[0028][0029]
该函数的映射范围介于0和1之间。且求导较简单。
[0030]
所述step2具体为:
[0031]
step2.1:改进后的鲸鱼算法按照贪婪策略的标准更新并保留最优位置向量进入下一次迭代,直到更新出最优鲸鱼j的位置向量,其更新迭代表示为:
[0032][0033]
其中,x
l
(t)表示更新后候选解当前位置,x(t)表示原来候选解的位置,计算其适应度值,适应度值小则保留为原来候选解位置继续迭代,直到达到迭代次数,结束整个更新迭代过程,产生最优鲸鱼j的位置向量iwoaxj。
[0034]
step2.2:bp神经网络的更新迭代方式可以表示为:
[0035]wjk
(r+1)=w
jk
(r)+αεkz
jo
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0036]
θk(r+1)=θk(r)+βεkꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0037]vij
(r+1)=v
ij
(r)+αεjx
io
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0038]
θj(r+1)=θj(r)+βεjꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0039]
其中,r表述迭代次数,α表示为梯度下降步长,β为学习因子,两者的取值范围为[0,1],ε表示神经元的输出误差,z
jo
与x
jo
则是由两层激活函数激活后得到的输入,w
jk
(r+1)表示输入层第j个神经元到隐含层第k个神经元更新的权值,θk(r+1)表示隐含层第k个神经元更新的阈值,v
ij
(r+1)表示为隐含层第j个神经元到输出层更新的权值,θi(r+1)表示为隐含层第j个神经元更新的阈值。
[0040]
经过层层对权值阈值的更新迭代,最后得到权值阈值最优的bp神经网络。
[0041]
所述step3中适应度值计算具体为:
[0042][0043]
其中,nj表示训练样本的数量,xi是第i个鲸鱼个体的位置,θ
it
是第i个鲸鱼个体在样本集nj中第t个训练样本的最终输出值,ο
it
表示预期输出结果。
[0044]
计算出的全局适应度值与所设误差精度0.001进行比较,直到全局适应度值小于误差精度时得到最优粒子,结束迭代更新,此时bp神经网络的权值和阈值达到最优。
[0045]
所述step4中,计算矩阵稀疏度具体为:
[0046][0047]
其中,h表示训练集中的历史评分评分记录个数,j表示训练集中用户总数,k表示训练集中特征项总数。
[0048]
按照训练集测试集比例为9:1、7:3或5:5的比例划分求出对应的矩阵稀疏度,由于
矩阵稀疏度越小数据越多,评分精度越高,因此选择矩阵稀疏度最小的比例作为本发明的划分比例,之后将训练集用于训练iwoa-bp评分预测模型。
[0049]
所述step6中邻居集生成方式具体为:
[0050]
step6.1:随机选取的目标用户,采集随机其真实历史评分记录以及训练集中的其他用户与目标用户相同的特征项,用集合表示为λu=(u,p,pointu,p),u为用户编号,p为项目编号,point
u,p
为用户u对项目p的评分。
[0051]
step6.2:按照不同数据集中项目的特征项,例如电影、图书、音乐的种类,编写项目特征向量矩阵,表示为:
[0052][0053]
其中,当m
n,j
等于1时,表示第n个项目有第j个项目特征,若为0则没有该项目特征。
[0054]
step6.3:对其他用户与目标用户相同的特征项用iwoa-bp评分预测模型进行评分预测,计算出目标用户与其他用户的评分误差,误差计算方式表示为:
[0055]ew,u
=p
w,v-λ
u,v
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0056][0057]
其中,λ
u,v
表示目标用户u对项目v的实际评分,p
w,v
表示某一个用户w对项目v的预测评分,e
w,u
则表示p
w,v
与λ
u,v
的误差,|λu|表示用户历史评分中元素的个数,e
w,u
表示全部项目评分误差。
[0058]
step6.4:根据step 6.3中得出全部项目评分误差,计算目标用户和其他用户的相似度值,其误差相似度函数表示为:
[0059][0060]
其中,k是一个正整数的常数,由公式(11)可知,在k值一定时,邻居用户与目标用户历史评分误差越大,目标用户与邻居用户的相似度越小,反之越大,将相似度进行降序排序,取前k个用户生成邻居集tu。
[0061]
所述step7中,通过对应的iwoa-bp评分预测模型模型对目标用户进行评分预测具体为:
[0062]
目标用户u对项目v的预测评分表示为:
[0063][0064]
其中,表示目标用户历史评分的平均数值,λ
u,v
表示邻居用户w对物品v的评分值,代表邻居用户历史评分的平均数值,s
u,w
表示误差相似度值。
[0065]
计算出目标用户对应特征项的预测评分后,以1到5分为标准,超过4分推荐,否则不推荐。基于邻居用户的智能推荐相较与传统的基于用户、基于项目的智能推荐具有更高的推荐精度与稳定性。
[0066]
推荐完成后,只从评分无法直观看出基于iwoa-bp的协同过滤智能推荐方法的优势,与基于bp神经网络的智能推荐算法、基于粒子群优化bp神经网络的智能推荐算法进行对比测试,测试以平均绝对误差(mean absolute error,mae)作为评价指标,通过上述三种算法的对比,直观展示算法的优势,所述平均绝对误差的表示为:
[0067][0068]
其中,p
ui
表示目标用户u对物品i的实际评分,表示目标用户u对物品i的预测评分,|n|表示测试集数量。
[0069]
现有技术中,基于bp神经网络的协同过滤推荐算法以及基于粒子群优化bp神经网络的协同过滤推荐算法所建立的评分预测模型稳定性差、精度低。在根据评分进行推荐时,基于bp神经网络和基于粒子群优化bp神经网络的协同过滤算法采用了基于用户推荐的方法,该方法特征项的缺失会导致数据稀疏,使得预测出现偏差。
[0070]
因此,本发明提出的一种基于鲸鱼优化bp神经网络的协同过滤智能推荐方法将鲸鱼优化算法改进用于优化bp神经网络的权值和阈值,扩展了搜索空间和种群的多样性,使得评分预测模型评分更准确,稳定性更好。在进行推荐时,采用基于邻居集用户推荐的方法,有效解决的特征项缺失所导致的数据稀疏问题。
[0071]
本发明的有益效果是:本发明将元启发式算法与机器学习算法相结合,充分考虑鲸鱼优化算法收敛快、寻优效果好的特性优化bp神经网络的权值和阈值,在基于用户评分的基础上,创新性的加入了邻居集用户评分记录,利用邻居集用户的历史评分对目标用户进行评分预测。该算法极大地提升了推荐精度与推荐质量,增加了用户使用互联网各种功能的满意度。
附图说明
[0072]
图1是本发明的步骤流程图;
[0073]
图2是本发明实施例中pso-bp评分误差变化图;
[0074]
图3是本发明实施例中iwoa-bp评分误差变化图;
[0075]
图4是本发明实施例中bp评分误差变化图;
[0076]
图5是本发明实施例中平均绝对误差对比图;
[0077]
图6是本发明实施例中用户评分表;
[0078]
图7是本发明实施例中功能信息表;
[0079]
图8是本发明实施例中用户信息表。
具体实施方式
[0080]
下面结合附图和具体实施方式,对本发明作进一步说明。
[0081]
实施例1,如图1所示,一种基于鲸鱼优化bp神经网络的协同过滤智能推荐方法,具
体步骤如下:
[0082]
step1:首先在原始鲸鱼优化算法中加入tent混沌映射,提升原始算法的种群多样性,扩展搜索空间。再在改进的算法中加入levy飞行策略,防止陷入局部最优,加快收敛。通过加入以上策略得到改进的鲸鱼优化算法。(improved whale optimization algorithm,iwoa)。初始化改进算法和bp神经网络参数,设置输入层、隐含层以及输出层对应的神经元个数n,q,m以及每层的激活函数。为接下来改进的鲸鱼算法优化bp神经网络做准备。
[0083]
step2:根据step1中改进后的鲸鱼算法更新出鲸鱼j的位置向量iwoaxj,再通过bp神经网络迭代公式更新得到新的粒子位置向量bpxj。为之后计算适应度值做准备。
[0084]
step3:根据step2中得到的粒子位置向量,计算出iwoaxj与bpxj的适应度值,将适应度值小的位置向量更新为新的位置向量。之后,计算出新的位置向量的全局适应度值f(pg),与所设误差精度做对比,若全局适应度值大于误差精度,则从step2开始继续迭代,直到全局适应度值小于误差精度时得到最优粒子,结束迭代更新,此时bp神经网络的权值和阈值达到最优。
[0085]
step4:从csdn上采集数据集,将数据集划分为训练集与测试集,并按照9:1、7:3或5:5的比例对训练集和测试集进行划分,然后计算其矩阵稀疏度,再选出最小矩阵稀疏度所对应的比例作为最适合的划分比例。将划分好的训练集数据导入iwoa-bp评分预测模型,用测试集测试模型,到此评分模型建立完成。
[0086]
采用训练集中的数据训练iwoa-bp评分预测模型,到此评分模型建立完成。
[0087]
step5:根据step1-step4的模型建立过程,由于不同用户的项目特征不一定相同,因此需要对测试集中的每个用户构建iwoa-bp评分预测模型。
[0088]
step6:将所建立的评分预测模型应用到基于邻居用户的协同过滤推荐算法中,随机选取一个目标用户,采集其真实历史评分记录以及训练集中的其他用户与目标用户相同的项目特征,按照所对应的iwoa-bp评分预测模型进行评分预测,得到预测评分,计算出目标用户与其他用户的评分误差,再根据误差相似度函数计算相似度,将相似度最接近的k个用户选作邻居集,生成邻居集tu。
[0089]
step7:采集邻居集中用户的历史评分记录,根据邻居集用户历史评分的特征项,通过对应的iwoa-bp评分预测模型模型对目标用户进行评分预测,预测评分高则推荐该项目,低则不推荐,最后,通过平均绝对误差来直观地对比算法性能。
[0090]
所述step1具体为:
[0091]
step1.1:向原始鲸鱼算法中加入tent混沌映射,进行种群初始化,来提升种群多样性,扩展搜索空间,具体为:
[0092][0093][0094]
其中,i表示种群数,k表示当前迭代次数,y
ik
是0到1的混沌序列,进一步生成搜索区域内的鲸鱼个体初始位置序列x
ik
,ub和lb分别是序列x
ik
的最大最小值。
[0095]
step1.2:在加入ten混沌映射的基础上,向算法中加入levy飞行策略,通过levy飞行在候选解的生成过程中进行扰动,防止算法陷入局部最优和过早的收敛。原始鲸鱼算法
的更新迭代过程表示为:
[0096]
d=|c
·
x
rand-x(t)|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0097]
x(t+1)=x
rand
(t)-a
·dꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0098]
其中,x
rand
(t)表示随机位置向量,c与a是控制鲸鱼行动方式的系数向量,d表示当前解与最优解的位置,x(t+1)表示更新候选解的位置向量。
[0099]
在加入levy飞行策略以后,新的候选解位置更新公式由公式(4)变为公式(5):
[0100][0101]
其中,x
l
(t)表示更新后候选解当前位置,levy(λ)指的是随机探索路径,α表示步长控制因子。
[0102]
step1.3:设置bp神经网络参数时,输入层神经元个数n与数据集中项目特征数一致,例如如在电影数据集中,输入层神经元个数n与电影类型相同,输出层神经元个数m为1,隐含层神经元个数q在不同的数据集中会发生改变,在同一数据集中n和m都是确定值的情况下,设置不同的q进行实验,误差最小的实验中q的数量就是隐含层神经元个数q。
[0103]
此外,在信息传入bp神经网络时,每层都需要激活函数来激活,输入输出层的激活函数设置为恒等函数f(x)=x,隐含层为了处理一些非线性问题往往采用不同的激活函数,本发明采用sigmoid激活函数其隐含层激活函数设置为式(6):
[0104][0105]
该函数的映射范围介于0和1之间。且求导较简单。
[0106]
所述step2具体为:
[0107]
step2.1:改进后的鲸鱼算法按照贪婪策略的标准更新并保留最优位置向量进入下一次迭代,直到更新出最优鲸鱼j的位置向量,其更新迭代表示为:
[0108][0109]
其中,x
l
(t)表示更新后候选解当前位置,x(t)表示原来候选解的位置,计算其适应度值,适应度值小则保留为原来候选解位置继续迭代,直到达到迭代次数,结束整个更新迭代过程,产生最优鲸鱼j的位置向量iwoaxj。
[0110]
step2.2:bp神经网络的更新迭代方式可以表示为:
[0111]wjk
(r+1)=w
jk
(r)+αεkz
jo
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0112]
θk(r+1)=θk(r)+βεkꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0113]vij
(r+1)=v
ij
(r)+αεjx
io
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0114]
θj(r+1)=θj(r)+βεjꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0115]
其中,r表述迭代次数,α表示为梯度下降步长,β为学习因子,两者的取值范围为[0,1],ε表示神经元的输出误差,z
jo
与x
jo
则是由两层激活函数激活后得到的输入,w
jk
(r+1)表示输入层第j个神经元到隐含层第k个神经元更新的权值,θk(r+1)表示隐含层第k个神经元更新的阈值,v
ij
(r+1)表示为隐含层第j个神经元到输出层更新的权值,θi(r+1)表示为隐含层第j个神经元更新的阈值。
[0116]
经过层层对权值阈值的更新迭代,最后得到权值阈值最优的bp神经网络。
[0117]
所述step3中适应度值计算具体为:
[0118][0119]
其中,nj表示训练样本的数量,xi是第i个鲸鱼个体的位置,θ
it
是第i个鲸鱼个体在样本集nj中第t个训练样本的最终输出值,ο
it
表示预期输出结果。
[0120]
计算出的全局适应度值与所设误差精度0.001进行比较,直到全局适应度值小于误差精度时得到最优粒子,结束迭代更新,此时bp神经网络的权值和阈值达到最优。
[0121]
改进后的鲸鱼算法收敛更快精度更高,能够优出bp神经网络更优秀的权值和阈值,也是首次将优化后的bp神经网络用于评分模型。
[0122]
所述step4中,计算矩阵稀疏度具体为:
[0123][0124]
其中,h表示训练集中的历史评分评分记录个数,j表示训练集中用户总数,k表示训练集中特征项总数。
[0125]
按照训练集测试集比例为9:1、7:3或5:5的比例划分求出对应的矩阵稀疏度,由于矩阵稀疏度越小数据越多,评分精度越高,因此选择矩阵稀疏度最小的比例作为本发明的划分比例,之后将训练集用于训练iwoa-bp评分预测模型。
[0126]
所述step6中邻居集生成方式具体为:
[0127]
step6.1:随机选取的目标用户,采集随机其真实历史评分记录以及训练集中的其他用户与目标用户相同的特征项,用集合表示为λu=(u,p,pointu,p),u为用户编号,p为项目编号,point
u,p
为用户u对项目p的评分。
[0128]
step6.2:按照不同数据集中项目的特征项,例如电影、图书、音乐的种类,编写项目特征向量矩阵,表示为:
[0129][0130]
其中,当m
n,j
等于1时,表示第n个项目有第j个项目特征,若为0则没有该项目特征。
[0131]
step6.3:对其他用户与目标用户相同的特征项用iwoa-bp评分预测模型进行评分预测,计算出目标用户与其他用户的评分误差,误差计算方式表示为:
[0132]ew,u
=p
w,v-λ
u,v
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0133][0134]
其中,λ
u,v
表示目标用户u对项目v的实际评分,p
w,v
表示某一个用户w对项目v的预测评分,e
w,u
则表示p
w,v
与λ
u,v
的误差,|λu|表示用户历史评分中元素的个数,e
w,u
表示全部项目评分误差。
[0135]
step6.4:根据step 6.3中得出全部项目评分误差,计算目标用户和其他用户的相似度值,其误差相似度函数表示为:
[0136][0137]
其中,k是一个正整数的常数,由公式(11)可知,在k值一定时,邻居用户与目标用户历史评分误差越大,目标用户与邻居用户的相似度越小,反之越大,将相似度进行降序排序,取前k个用户生成邻居集tu。
[0138]
所述step7中,通过对应的iwoa-bp评分预测模型模型对目标用户进行评分预测具体为:
[0139]
目标用户u对项目v的预测评分表示为:
[0140][0141]
其中,表示目标用户历史评分的平均数值,λ
u,v
表示邻居用户w对物品v的评分值,代表邻居用户历史评分的平均数值,s
u,w
表示误差相似度值。
[0142]
计算出目标用户对应特征项的预测评分后,以1到5分为标准,超过4分推荐,否则不推荐。基于邻居用户的智能推荐相较与传统的基于用户、基于项目的智能推荐具有更高的推荐精度与稳定性。
[0143]
推荐完成后,只从评分无法直观看出基于iwoa-bp的协同过滤智能推荐方法的优势,与基于bp神经网络的智能推荐算法、基于粒子群优化bp神经网络的智能推荐算法进行对比测试,测试以平均绝对误差(mean absolute error,mae)作为评价指标,通过上述三种算法的对比,直观展示算法的优势,所述平均绝对误差的表示为:
[0144][0145]
其中,p
ui
表示目标用户u对物品i的实际评分,表示目标用户u对物品i的预测评分,|n|表示测试集数量。
[0146]
经过对比实验显示,本发明在稳定性更佳的同时,mae相较其他两种算法降低11.6%。
[0147]
如图6-8所示,选取ml-100k数据集进行实验,该数据集包含用户评分表、功能信息表以及用户信息表三张表,数据集中的数据进行处理后划分为训练集集和测试集,其比例为9:1,矩阵稀疏度为0.943。根据功能类型,设置bp神经网络参数,输入层n为19;根据9:1的比例划分,隐含层q设置为6时预测误差最小;由于最终讨论的问题属于回归预测问题,因此输出层m设置为1。本实施例中在matlab的实验平台上,将本发明中利用鲸鱼优化bp神经网络的协同过滤算法(以下简称iwoa-bp算法)与pso-bp算法和pso算法在推荐精度以及平均绝对误差方面进行比较。
[0148]
如图2-4所示,可以看出,在100次迭代中,bp模型的误差变化范围为3.19-6.12,pso-bp模型的误差变化范围为0-6.86,iwoa-bp模型的误差变化范围为0-5.73。由此可以看
出,相较于bp和pso-bp模型,iwoa-bp的误差变化更小。由于每次迭代数据集和测试集划分不同,因此不能作为参考依据,那么但从图2很难看出bp、pso-bo和iwoa-bp模型的稳定性差异,因此本发明利用平均绝对误差范数进行对比,能够更加直观地分辨出算法的优劣。
[0149]
如图5所示,随着跌代次数的增加,bp、iwoa-bp以及pso-bp模型的平均绝对误差范数变化都呈现出下降的趋势,bp和pso-bp模型在第70次迭代时范数才基本趋于平稳,iwoa-bp从第10次迭代就已经趋于稳定。在100次迭代时bp以及pso-bp模型的平均绝对误差范数为32.6,iwoa-bp的平均绝对误差为29.2,变化明显更小,到第100次迭代相较于bp和pso-bp模型,iwoa-bp在平均绝对误差上降低11.6%,实验证明,本发明改进的智能推荐算法稳定性更好且平均误差更小,精度更高。
[0150]
以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1