一种基于用户和服务聚类QoS感知的Web服务推荐方法与流程

文档序号:17131092发布日期:2019-03-16 01:14阅读:232来源:国知局
一种基于用户和服务聚类QoS感知的Web服务推荐方法与流程

本发明涉及数据挖掘中的服务推荐领域,尤其涉及一种基于用户和服务聚类qos感知的web服务推荐方法。



背景技术:

随着当前互联网的迅速发展,其上可用的各种功能的web服务爆炸式增长,用户对选择适当的web服务越来越困难,因此非常需要有相关的方法来自动有效地选择适当的web服务向用户推荐。面对海量的服务种类和服务信息,如何根据用户特异性来高效准确地推荐相关服务给用户日益成为业界的研究难题。web服务推荐为解决这种难题提供了研究方向。

web服务推荐,就是根据用户的基本信息、历史调用记录、用户的偏好属性等,建立推荐模型进行服务推荐。web服务推荐成为了近年来服务计算领域的研究热点,当前学界对web服务推荐的研究日渐成熟,其中大都基于qos实现预测和推荐相关服务和变量,在此基础上考虑其他因素提高推荐精度,比如引入地理因素或者服务功能因素,这些都取得了较好的成果。但在qos矩阵数据较稀疏情况下综合考虑用户邻域和服务功能属性对推荐结果的影响还未有人提及。web服务推荐系统的性能好坏取决于其使用的推荐方法,针对于web服务推荐方法,其成立的基本假设是:1.用户喜欢某个服务,其也喜欢与该服务类似的服务;2.用户喜欢与其有相似背景和偏好的用户使用过得服务;3.用户喜欢具有某个特征的服务,该用户也喜欢其它具有该特征的服务。目前web服务推荐方法主要包括基于if/then规则推荐、基于内容推荐、协同过滤推荐、混合推荐等。其中协同过滤方法推荐(collaborativefilteringrecommendation,cfr)是目前比较成熟和主流的推荐方法。该算法与其他推荐算法相比有以下优势:第一,对推荐对象无特殊要求,对于复杂、抽象的资源也能够实现推荐;第二,只需要显式或隐式的用户历史评价数据,而不需要有关用户本身的属性知识,且不会对用户的推荐体验带来任何负面影响。虽然协同过滤推荐算法已经取得许多重要的研究成果,但是仍然存在诸多关键问题亟待解决,主要包括数据稀疏性问题、冷启动问题、可扩展性问题等。稀疏性问题主要体现在当前数据集中用户对相关web服务的评级较少,影响用户对web服务偏好的潜在因素比较少,但是每个潜在因素对推荐结果影响都很大,这将大大降低web服务推荐的准确性。对于提高web服务推荐算法的准确性和性能,目前国内外许多研究人员做出了很多尝试,取得了丰富的成果。郑成等人主要引入地理领域这一因素,通过矩阵分解的方式来缓解预测矩阵的稀疏性,并采用随机梯度下降算法来快速收敛,给出预测结果,通过这种方案改进的协同过滤算法相较于其他算法有更准确的预测结果。邓爱林等提出基于项目评分预测的协同过滤算法,该算法采用基于项目的协同过滤方法填补用户评分项并集中的评分空值,在填补后的并集上计算用户间的相似性。zhang等指出,基于用户的协同过滤方法搜寻出的最近邻绝大多数对目标项目没有评分,从而严重影响评分预测的准确性,为此他们设定一个迭代次数阈值,循环执行基于用户的协同过滤方法以填补最近邻的未评分项,在得到所有最近邻对目标项目的评分后,采用传统的协同过滤方法生成最终的预测评分;guoshengkang等基于用户对服务潜在性的qos偏好和多样性特征,利用用户对web服务历史调用的兴趣和qos偏好,计算web服务候选者的排名分数,提出了一种创新的多样性感知web服务排名算法,基于web服务之间的功能相似性构建一个web服务图,并根据它们的分数和从web服务图导出的多样性度来评估web服务候选条目;yanhu等提出了一种改进的时间感知协同过滤方法,他们将时间信息集成到相似性测量和qos预测中,用于高性能的web服务推荐。

这些研究在基于qos实现预测和推荐相关服务和变量方面有比较好的性能,但很多都忽略了服务功能和用户相似性对推荐结果精度的重大影响,许多推荐模型深受qos矩阵数据稀疏性较高的影响,这些因素导致推荐结果精确度度不高的问题亟待解决。



技术实现要素:

为解决上述问题,本发明的目的提供一种基于用户和服务聚类qos感知的web服务推荐方法,首先根据web服务的wsdl文档进行上下文特征提取,以获得其功能描述,并进行聚类。然后对用户基于对历史调用服务的qos属性进行相似性聚类,协同服务功能采用改进矩阵分解推荐算法进行qos预测,并产生推荐,以此缓解推荐矩阵数据稀疏性导致的相似度不高的问题。最后采用此算法进行试验,数据集中的80%用于训练此算法得到最佳参数,剩下的数据用于测试。试验结果与其他三种主流web服务推荐算法进行相比,在mae和rmse两种误差评估参数上有更好的结果。

本发明提供一种基于用户和服务聚类qos感知的web服务推荐方法,所述方法包括以下步骤:

步骤1:对数据集中用户对服务调用矩阵进行预处理,采用修正的余弦相似度算法对每个相似的用户进行聚类,得到每个用户最相似的n个用户集合u(i),计算公式(1)为:

其中,iij表示的是用户i,j共同评分过的项目集合,ii表示的是用户i评分的项目集合,ij是用户j评分的项目集合,ri,k是用户i对评分项目k的评分,rj,k是用户j对项目k的评分,分别是用户i和用户j对各自评分项目评分的平均值;

步骤2:对web服务描述文档wsdl文件进行有关功能描述的特征提取,并进行谷歌距离归一化,采用k-means++算法对具有相似功能特征的服务进行聚类,得到相似服务集合s(i),计算公式(2)为:

其中,fvs1,fvs2分别是web服务s1,s2的特征词向量,|fvs1|是向量的基数(模),normalizedgoogledistance,归一化谷歌距离,简称ngd,是利用google搜索引擎得到的数据进行标准化计算得到的两个单词的相关性表示;

步骤3:求得服务调用矩阵r的用户矩阵u和服务矩阵s的特征向量pi,qj;

步骤4:令ri,j为用户i对服务j调用的qos值,为矩阵r的元素,r中缺失的qos值记为

步骤5:为了计算对每个非空ri,j∈r,计算

步骤6:对每个j∈[1,n],k∈u(i),计算

其中e1是pi的更新因子,ii,j表示用户i对服务j的调用情况,有调用就为1,否则为0。α为权重因子,α大表示相邻用户对当前预测的qos影响更大;

步骤7:对每个i∈[1,m],d∈s(j),计算

其中e2为qj的更新因子,β是权重因子,β较大表示服务的功能特征对当前预测的qos影响更大;

步骤8:计算pi=pi-γe1,qj=qj-γe2,其中γ为迭代因子,用于控制迭代的次数和速度;

步骤9:迭代s5至s8,直到所有非空ri,j计算完或满足迭代终止条件;

步骤10:得到缺失的qos值并推荐和相近的服务给相关用户,完成推荐。

进一步改进在于:所述步骤1对相似用户进行聚类,所述聚类方法如下:

步骤1.1:输入ii,ij,iij,ri,k,rj,k;

步骤1.2:计算

步骤1.3:对每个用户i,0<i≤m,每个服务j≠i,0<j≤m-1,计算simu(i,j)存入temp映射表中;

步骤1.4:取temp映射表中前n个所对应的用户,组成用户i的邻居集合u(i)={uk|uk∈top-n(ui),i≠k},完成聚类。

进一步改进在于:所述步骤2对相似服务进行聚类,所述聚类方法如下:

步骤2.1:对wsdl文件进行tf-idf计算,提取服务功能特征描述词集,记为fvsi;

步骤2.2:将特征词集进行谷歌距离归一化处理,计算公式(3)为:

m是利用特征词x,y在google搜索到的总网页数,logf(x),logf(y)是分别利用特征词x,y搜索到的命中数量,f(x,y)是利用x,y同时出现的网页数量;

步骤2.3:基于特征词向量进行k-means++聚类,选取聚类个数k;

步骤2.4:从服务的特征词集向量fvsi中随机选取一个作为初始聚类中心c1;

步骤2.5:计算每个向量与当前最近一个聚类中心的距离d(x),计算每个向量成为下一个聚类中心的概率依据概率轮盘确定下一个中心;

步骤2.6:重复步骤2.5直到选出k个聚类中心;

步骤2.7:对每个服务的fvsi,计算其到k个聚类中心的归一化谷歌距离,将其归类到距离最小的那个中心所属的类;

步骤2.8:对每个类别c(i)中的所有元素,重新计算其中心;

步骤2.9:重复步骤2.7和步骤2.8直到聚类中心不再变化,得到web服务聚类s(i)={s|s∈c(i),i∈[1,k]},完成聚类。

进一步改进在于:所述步骤2.2中ngd的范围为ngd(x,y)∈[0,∞)。

本发明的有益效果:对服务本身的一些重要特征比如功能描述进行特征提取,这些特征对于用户偏好起到至关重要的作用。再基于用户调用服务的qos对用户进行相似性聚类。在服务端和客户端两方面充分考虑影响用户对web服务偏好的因素,缓解了现有技术未充分考虑服务本身对推荐结果而影响推荐精度的问题。针对用户服务调用矩阵的数据较为稀疏,较大地影响了服务推荐结果的准确性的问题,提出一种矩阵分解模型来对缺失的qos值进行预测,对该模型采用梯度下降迭代算法,结合实际数据量控制迭代因子可以较为高效地得到结果。

附图说明

图1是本发明的场景框架图。

图2是本发明的相似用户聚类算法流程图。

图3是本发明的相似服务聚类算法流程图。

图4是本发明的梯度下降算法预测缺失qos值并产生推荐算法的流程图。

图5是本发明与主流web服务推荐算法在相同数据集下在mae上的推荐精度对比图。

图6是本发明与主流web服务推荐算法在相同数据集下在rmse上的推荐精度对比图。

具体实施方式

为了加深对本发明的理解,下面将结合实施例对本发明作进一步详述,该实施例仅用于解释本发明,并不构成对本发明保护范围的限定。实施例的数据是由开源项目wsdream所提供,其中包含339个用户对现实世界中5,825个web服务的调用情况,产生了超过一百五十多万个调用记录。在原始数据的基础上进行了数据清洗和预处理,利用数据集中80%的数据进行模型训练确定最佳参数,剩下20%的数据用来验证算法模型的有效性。

实施例的基于用户和服务聚类的web推荐算法,架构如图1。首先对用户进行相似度计算并进行聚类;然后对数据集中的web服务描述文档wsdl进行功能描述文本特征提取,谷歌距离归一化之后利用k-means++算法聚类;最后将相似用户和服务整合到协同过滤推荐模型进行qos值预测,并对预测值和相关服务的qos进行对比从而产生推荐。

为了描述算法原理,有如下定义:

定义1:用户i和用户j对服务评分体现在服务调用qos值上,在基于用户对服务qos评分的基础上定义用户i和用户j的相似度,如下:

iij表示的是用户i,j共同评分过的项目集合,ii表示的是用户i评分的项目集合,ij是用户j评分的项目集合,ri,k是用户i对评分项目k的评分,rj,k是用户j对项目k的评分,分别是用户i和用户j对各自评分项目评分的平均值。

定义2:对每个web服务的wsdl服务描述文档使用termfrequency-inversedocumentfrequency,简写为tf-idf方法获得一个服务描述文本的特征词向量,记为fvsi,表示服务si的特征词向量。最终要把特征词集转换为数值以方便相似度计算。使用ngd处理。ngd是利用google搜索引擎得到的数据进行标准化计算得到的两个单词的相关性表示,其定义如下:

m是利用特征词x,y在google搜索到的总网页数,logf(x),logf(y)是分别利用特征词x,y搜索到的命中数量,f(x,y)是利用x,y同时出现的网页数量。ngd(x,y)∈[0,∞)。

定义3:两个web服务的相似性定义为:

fvs1,fvs2分别是web服务s1,s2的特征词向量,|fvs1|是向量的基数。定义4:设用户对服务调用的评分矩阵表示为r=uts,相似用户特征矩阵u∈rl×m,相似服务特征矩阵s∈rl×m,定义用户特征矩阵中的特征向量为pi,服务特征向量为qj。则用户i对服务j的评分矩阵中缺失值定义为:

定义5:将相似用户和相似服务整合进矩阵分解模型中,数学表示如下:

u(i)表示与用户i相似的集合,s(j)表示与服务j具有相似功能描述的服务集合。ii,j表示的是用户i对服务j的调用情况,有调用为1,其他情况为0。是f-范数的平方。后两项是用来缓解过度拟合的用户服务矩阵的正则化项,λi,λj是用来控制过拟合约束的参数。simu(i,k)表示用户i与用户k相似度,sims(j,d)表示web服务j与服务d的相似度。α,β是控制用户特征和服务特征的权重系数,α大表示相似用户对当前预测的qos影响更大,β较大表示服务的功能特征对当前预测的qos影响更大。

定义6:为求得通过对式(5)求偏导,目标特征向量u和s的元素pi,qi的更新迭代方式如下:

其中γ为迭代因子,用于控制迭代的次数和速度。

定义7:评估推荐方法推荐结果准确性的评估因子平均绝对误差(简称mae)和均方根误差(简称rmse)定义如下:

ri,j是用户i对web服务j真实调用的qos值,是模型预测的qos值,n是预测值的个数,mae评估的是预测值对真实值的相对误差。rmse强调的是相对最大误差。两者越小代表误差越小,精度越高。实施例对用户进行聚类的流程如图2所示,具体步骤为:

步骤1.1:输入ii,ij,iij,ri,k,rj,k;

步骤1.2:计算

步骤1.3:对每个用户i,0<i≤m,每个服务j≠i,0<j≤m-1,计算simu(i,j)存入temp映射表中;

步骤1.4:取temp映射表中前n个所对应的用户,组成用户i的邻居集合u(i)={uk|uk∈top-n(ui),i≠k};

实施例对web服务进行聚类的流程如图3所示,具体步骤为:

步骤2.1:对wsdl文件进行tf-idf计算,提取服务功能特征描述词集,记为fvsi;

步骤2.2:将特征词集进行谷歌距离归一化处理,计算公式为:

m是利用特征词x,y在google搜索到的总网页数,logf(x),logf(y)是分别利用特征词x,y搜索到的命中数量,f(x,y)是利用x,y同时出现的网页数量。ngd(x,y)∈[0,∞);

步骤2.3:基于特征词向量进行k-means++聚类,选取聚类个数k;

步骤2.4:从服务的特征词集向量fvsi中随机选取一个作为初始聚类中心c1;

步骤2.5:计算每个向量与当前最近一个聚类中心的距离d(x),计算每个向量成为下一个聚类中心的概率依据概率轮盘确定下一个中心;

步骤2.6:重复步骤2.5直到选出k个聚类中心;

步骤2.7:对每个服务的fvsi,计算其到k个聚类中心的归一化谷歌距离,将其归类到距离最小的那个中心所属的类;

步骤2.8:对每个类别c(i)中的所有元素,重新计算其中心;

步骤2.9:重复步骤2.7和步骤2.8直到聚类中心不再变化,得到web服务聚类s(i)={s|s∈c(i),i∈[1,k]};

实施例的基于用户和服务聚类的qos感知web服务推荐方法,流程图如图4所示,具体步骤为:

步骤1:对数据集中用户对服务调用矩阵进行预处理,采用修正的余弦相似度算法对每个相似的用户进行聚类,得到每个用户最相似的n个用户集合u(i),计算公式为:

其中,iij表示的是用户i,j共同评分过的项目集合,ii表示的是用户i评分的项目集合,ij是用户j评分的项目集合,ri,k是用户i对评分项目k的评分,rj,k是用户j对项目k的评分,分别是用户i和用户j对各自评分项目评分的平均值;

步骤2:对web服务描述文档wsdl文件进行有关功能描述的特征提取,并进行谷歌距离归一化,采用k-means++算法对具有相似功能特征的服务进行聚类,得到相似服务集合s(i),计算公式为:

其中,fvs1,fvs2分别是web服务s1,s2的特征词向量,|fvs1|是向量的基数(模)。ngd是利用google搜索引擎得到的数据进行标准化计算得到的两个单词的相关性表示;

步骤3:求得服务调用矩阵r的用户矩阵u和服务矩阵s的特征向量pi,qj;

步骤4:令ri,j为用户i对服务j调用的qos值,为矩阵r的元素。r中缺失的qos值记为

步骤5:为了计算对每个非空ri,j∈r,计算

步骤6:对每个j∈[1,n],k∈u(i),计算

其中e1是pi的更新因子,ii,j表示用户i对服务j的调用情况,有调用就为1,否则为0。α为权重因子,α大表示相邻用户对当前预测的qos影响更大;

步骤7:对每个i∈[1,m],d∈s(j),计算

其中e2为qj的更新因子,β是权重因子,β较大表示服务的功能特征对当前预测的qos影响更大;

步骤8:计算pi=pi-γe1,qj=qj-γe2,其中γ为迭代因子,用于控制迭代的次数和速度;

步骤9:迭代s5至s8,直到所有非空ri,j计算完或满足迭代终止条件。

步骤10:得到缺失的qos值并推荐和相近的服务给相关用户;为了分析实施例基于用户和服务聚类的qos感知web服务推荐算法的推荐精度,进行实验模拟的是来自真实世界采集的数据源,数据集托管在github一个开源项目wsdream上,其中包含来自73个国家339个用户对5825个web服务调用记录。为了验证传统的服务推荐方法与本方法的推荐精度,这里选取了六种主流的推荐方法,分别对同一种数据集进行实验,分别计算mae和rmse并进行推荐精度对比,mae和rmse越小代表误差越小,推荐精度越高。

分别选取ipcc、nimf、lonmf三种主流的web服务推荐方法进行对比实验。每个方法进行10次实验并计算记录mae和rmse的平均值,最后与本发明的结果进行比较。实验环境是linux操作系统,处理器为intel(r)core(tm)i7-8550u,8gb内存,使用python和c++进行结果仿真实验。

对于实施例中的数据实验部分,在大量数据训练和调优中确定了各个关键参数的值,在实施例中,设置α=0.4,β=0.5,γ=0.013,n=10,图5和图6是本发明在mae和rmse上与其他传统的六种算法对比结果图,横坐标是矩阵密度,越高代表可用的数据越多,其中本发明相较于传统的算法在各个矩阵密度下均取得了更高的精度。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1