一种基于网络偏置的Web服务质量预测方法

文档序号:31722597发布日期:2022-10-04 23:41阅读:166来源:国知局
一种基于网络偏置的Web服务质量预测方法
一种基于网络偏置的web服务质量预测方法
技术领域
1.本发明涉及服务计算技术领域,尤其是一种基于网络偏置的web服务质量预测方法。


背景技术:

2.面对大量具有相同功能的候选web服务,调查服务的非功能属性成为服务选择的主要关注点。服务质量(qos)代表了web服务的非功能属性,比如:响应时间、吞吐量、可用性和可靠性等。然而,要获得所有候选服务的qos值并不容易。首先,用户观察到的qos值在很大程度上取决于web服务的调用环境,不同的用户观察到的相同web服务的qos值可能非常不同;其次,考虑到高昂的时间成本和巨大的资源开销,用户不可能自己调用所有的web服务来获得个性化的qos值。因此,近年来,web服务的qos预测吸引了许多研究者的注意,并被认为是获得web服务的qos值的有效方法。
3.在最近的文献中,协同过滤(cf)已被广泛用于qos预测。现有的基于cf的预测方法可以分为两大类:基于记忆的协同过滤和基于模型的协同过滤。基于记忆的协同过滤首先通过皮尔逊相关系数(pcc)来寻找相似用户或相似服务,然后使用相似用户或相似服务的qos值对缺失值进行预测。然而,现实中的每个用户可能只调用过很少的服务,这就降低了用pcc计算相似度的准确性。基于模型的协同过滤根据观察到的历史调用数据建立一个全局模型来进行预测,并在处理稀疏的用户服务矩阵时表现良好。
4.作为最流行的基于模型的协同过滤技术之一,矩阵分解(mf)最近被应用于服务质量预测。mf试图捕捉用户和服务之间的交互作用,它将高维度的用户服务调用矩阵分解成两个低维度的特征矩阵,特征矩阵的内积代表了用户调用服务的qos预测值。现有的mf方法侧重于利用用户的邻域信息来改进qos预测,他们认为相似的用户在调用服务时存在相似的交互作用。然而,除了用户与服务之间的交互作用会对qos值产生影响,用户与服务之间的网络环境也会对qos值产生影响。以响应时间为例,用户感知到的服务响应时间必须包括处理时间和传输时间,而传输时间会根据用户与服务之间的网络环境而有很大的差异。
5.考虑到在现实世界中缺乏评分数据而无法做出可靠预测的情况,提供冷启动环境下的个性化qos预测结果是至关重要的。冷启动问题是指由于缺乏评分数据而不可能做出可靠预测的情况,例如,新引入的用户、新引入的服务。尽管现有工作提出使用用户之间的地理距离信息来解决冷启动问题,但是地理位置相近的用户有着相似的qos体验并不是因为他们与服务之间存在相似的交互作用,而是因为地理位置相近的用户与服务之间存相似的网络环境。此前相关工作在处理冷启动问题时完全忽略了这个问题。
6.综上所述,现有的qos预测技术在适应多样化的网络环境方面并不成熟,在处理热启动问题和冷启动问题的过程中均存在局限性。


技术实现要素:

7.本发明的目的是针对现有技术的不足而提供的一种基于网络偏置的web服务质量
预测方法,该方法能够在复杂的网络环境中预测用户调用服务的qos值,以及在冷启动环境下提供个性化的qos预测结果。
8.实现本发明目的的具体技术方案是:一种基于网络偏置的web服务质量预测方法,其特点是采用基于网络偏置的矩阵分解模型来预测用户调用服务的qos未知值,具体包括下述步骤:
9.a:收集用户调用服务的qos历史数据、用户所属网络区域、服务所属网络区域;
10.b:根据用户所属的网络区域和服务所属的网络区域,对qos历史数据进行分组;
11.c:根据qos历史数据的分组,计算每两个网络区域间用户调用服务的qos平均值;
12.d:根据每两个网络区域间的qos平均值,构建基于网络偏置的矩阵因子分解模型;
13.e:根据用户调用服务的qos历史数据,训练基于网络偏置的矩阵因子分解模型;
14.f:使用基于网络偏置的矩阵因子分解模型来预测用户调用服务的qos未知值。
15.所述步骤d根据每两个网络区域间的qos平均值,构建基于网络偏置的矩阵因子分解模型,具体步骤如下:
16.d1:定义网络偏置
17.网络偏置由用户偏置、服务偏置和两个网络区域间的qos平均值组成。其中,用户偏置为用户感知到的qos值普遍高于或低于同网络区域其他用户的偏差值,服务偏置为服务提供的qos值普遍高于或低于同网络区域其他服务的偏差值,两个网络区域间的qos平均值为用户所属网络区域中的所有用户调用服务所属网络区域中所有服务的qos历史数据的平均值。
18.d2:构建网络偏置模型
19.网络偏置模型用来预测用户与服务之间的网络环境对qos值的影响,所述网络偏置模型的目标函数如下述(1)式:
[0020][0021]
其中,表示用户i调用服务j的网络偏置预测值;x为用户i所在网络区域,y为服务j所在网络区域,μ
xy
为网络区域x与网络区域y通信的qos平均值;bi(1≤i≤m)表示用户i所感知到的qos值普遍高于或低于同网络区域其他用户的偏差值;pj(1≤j≤n)表示服务j所提供的qos值普遍高于或低于同网络区域其他服务的偏差值。
[0022]
d3:构建矩阵分解模型
[0023]
矩阵分解模型用来预测用户与服务之间的交互作用对qos值的影响,所述矩阵分解模型的目标函数如下述(2)式:
[0024][0025]
其中,表示用户i调用服务j的矩阵分解预测值;表示用户潜在特征矩阵,表示服务潜在特征矩阵;ui(1≤i≤m)表示用户i的潜在特征向量,wj(1≤j≤n)表示服务j的潜在特征向量;d表示用户潜在特征矩阵和服务潜在特征矩阵的维度,即矩阵分解中潜在特征的数量。
[0026]
d4:构建基于网络偏置的矩阵分解模型
[0027]
基于网络偏置的矩阵分解模型既考虑了网络环境对qos值的影响,又考虑了交互
作用对qos值的影响,所述基于网络偏置的矩阵分解模型的目标函数如下述(3)式:
[0028][0029]
式中,第一项为网络偏置模型,第二项为矩阵分解模型;权重α(0≤α≤1)表示在qos预测模型中使用多少网络偏置信息,α是一个可调整的参数,如果α被设置为0,则表示不考虑用户与服务之间的网络环境对qos值的影响,完全使用矩阵分解来进行预测;如果α被设置为1,则表示不考虑用户与服务之间的交互作用对qos值的影响,完全使用网络偏置来进行预测;表示用户i调用服务j的qos预测值。
[0030]
所述步骤e根据用户调用服务的qos历史数据,训练基于网络偏置的矩阵分解因子模型,具体步骤如下:
[0031]
e1:构建损失函数
[0032]
损失函数用来衡量qos预测模型对样本数据的拟合程度,损失函数的值越小,表示qos预测模型对样本数据的拟合程度越高,所述损失函数由下述(4)式表示:
[0033][0034]
其中,i
ij
是指示函数,如果用户i调用过服务j,则返回1,否则返回0;q
ij
和分别表示用户i调用服务j的qos样本值和预测值,公式(3)给出了的预测函数。
[0035]
e2:正则化损失函数
[0036]
为了减小模型的过拟合倾向,在损失函数中加入四个与u、w和b、p相关的正则项,得到由下述(5)式表示的正则化损失函数:
[0037][0038]
其中,λ(λ》0)控制正则化的程度;表示矩阵的frobenius范数。
[0039]
e3:求解损失函数
[0040]
考虑到损失函数是非凸函数,设计一个算法来找到全局最小是不现实的,本发明采用随机梯度下降寻找最优解,使得损失函数的值达到局部最小,所述随机梯度下降根据单个样本的损失来计算梯度并更新参数,对于每条qos历史数据,由下述(6)~(9)式表示的更新规则:
[0041][0042][0043][0044][0045]
其中,u
′i和ui表示更新后和更新前的用户特征向量;w
′j和wj表示更新后和更新前
的服务特征向量;b
′i和bi表示更新后和更新前的用户偏置标量;p
′j和pj表示更新后和更新前的服务偏置标量;η(η》0)表示求解潜在特征矩阵和偏置向量的更新速率;l为用户i调用服务j的单个样本损失值,ui、wj和bi、pj的一阶求导公式由下述(10)~(13)式表示为:
[0046][0047][0048][0049][0050]
其中,q
ij
和分别表示用户i调用服务j的qos样本值和预测值;λ(λ》0)表示正则项的权重;α(0≤α≤1)表示网络偏置的权重。
[0051]
所述步骤f使用基于网络偏置的矩阵因子分解模型来预测用户调用服务的qos未知值,具体步骤如下:
[0052]
f1:预测用户调用服务的qos未知值
[0053]
使用用户偏置、服务偏置、两个网络区域间的qos平均值来预测网络环境对qos值的影响,使用用户潜在特征向量、服务潜在特征向量来预测交互作用对qos值的影响,所述qos预测函数在上述公式(3)中给出。
[0054]
f2:预测新用户调用服务的qos未知值
[0055]
使用服务偏置、两个网络区域间的qos均值来预测网络环境对qos值的影响,使用新用户所在网络区域的用户潜在特征向量、服务潜在特征向量来预测交互作用对qos值的影响,构建由下述(14)式表示的qos预测函数:
[0056][0057]
其中,x为用户i所在网络区域,y为服务j所在网络区域,μ
xy
为网络区域x与网络区域y通信的qos平均值;nu(x)为网络区域x的用户集合。
[0058]
f3:预测用户调用新服务的qos未知值
[0059]
使用用户偏置、两个网络区域间的qos均值来预测网络环境对qos值的影响,使用用户潜在特征向量、新服务所在网络区域的服务潜在特征向量来预测交互作用对qos值的影响,构建由下述(15)式表示的qos预测函数:
[0060][0061]
其中,x为用户i所在网络区域,y为服务j所在网络区域,μ
xy
为网络区域x与网络区域y通信的qos平均值;nw(y)为网络区域y的服务集合。
[0062]
本发明与现有技术相比具有可解释性好、准确性高和通用性强等优点,既考虑到了用户与服务之间的交互作用对qos值的影响,又考虑到了用户与服务之间的网络环境对
qos值的影响,能够在复杂的网络环境中预测用户调用服务的qos值,以及在冷启动环境下提供个性化的qos预测结果。
附图说明
[0063]
图1为本发明流程图。
具体实施方式
[0064]
下面结合说明书附图和具体实施例对本发明作进一步说明,需要指出的是,以下所述具体实施例旨在便于对本发明的理解,而对其不起任何限定作用。
[0065]
实施例1
[0066]
本实施例将在真实世界的web服务质量数据集wsdream上应用本发明:wsdream数据集包括1974675条qos记录,这些记录是通过分布在30个区域的339台计算机(用户)对分布在73个区域的5825个web服务进行调用得到的;每个用户和每个web服务之间都有一条通过调用产生的qos记录,本实施例重点研究了qos属性中的响应时间(rt);同时,该数据集中还收集了这些用户和服务的ip、自治系统(as)、区域等信息。
[0067]
参阅图1,本实施例的整体流程包括以下部分:
[0068]
a:收集用户调用服务的qos历史数据、用户所属网络区域、服务所属网络区域;
[0069]
b:根据用户所属的网络区域和服务所属的网络区域,对qos历史数据进行分组;
[0070]
c:根据qos历史数据的分组,计算每两个网络区域间用户调用服务的qos平均值;
[0071]
d:根据每两个网络区域间的qos平均值,构建基于网络偏置的矩阵因子分解模型;
[0072]
e:根据用户调用服务的qos历史数据,训练基于网络偏置的矩阵分解因子模型;
[0073]
f:使用基于网络偏置的矩阵因子分解模型来预测用户调用服务的qos未知值。
[0074]
所述步骤a收集用户调用服务的qos历史数据、用户所属网络区域、服务所属网络区域,具体步骤如下:
[0075]
a1:为了模拟不同稀疏程度的矩阵环境,本实施例从数据集中随机删除一定数量的qos值,生成密度为15%、20%、25%和30%的用户服务矩阵。
[0076]
a2:移除的原始qos值用作预期值,以评估本发明所取得的预测精度;例如,矩阵密度为15%意味着随机选择原始用户服务矩阵中15%的qos值来预测其余85%的qos值。
[0077]
a3:同时,本实施例还收集了用户所属的as编号和区域信息、服务所属的as编号和区域信息。
[0078]
所述步骤b根据用户所属的网络区域和服务所属的网络区域,对qos历史数据进行分组,具体步骤如下:
[0079]
b1:根据用户所属的as编号和服务所属的as编号,对qos历史数据进行分组,即用户所属的as编号和服务所属的as编号均相同的qos历史数据分在同一组。
[0080]
b2:根据用户所属区域和服务所属的区域,对qos历史数据进行分组,即用户所属的区域和服务所属的区域均相同的qos历史数据分在同一组。
[0081]
所述步骤c根据qos历史数据的分组,计算每两个网络区域间用户调用服务的qos平均值,具体步骤如下:
[0082]
c1:根据步骤b1得到的qos历史数据的分组,可以计算得出每两个as编号间用户调
用服务的qos平均值。
[0083]
c2:根据步骤b2得到的qos历史数据的分组,可以计算得出每两个区域间用户调用服务的qos平均值。
[0084]
c3:根据已知的qos历史数据,可以计算得出全局的qos平均值。
[0085]
所述步骤d根据每两个网络区域间的qos平均值,构建基于网络偏置的矩阵因子分解模型,具体步骤如下:
[0086]
d1:根据每两个as编号间用户调用服务的qos平均值,由下述(a)式构建基于as偏置的矩阵分解模型:
[0087][0088]
其中,x为用户i所在as编号,y为服务j所在as编号,a
xy
为as编号x与as编号y通信的qos平均值。
[0089]
d2:根据每两个区域间用户调用服务的qos平均值,由下述(b)式构建基于区域偏置的矩阵分解模型:
[0090][0091]
其中,x为用户i所在区域,y为服务j所在区域,r
xy
为区域x与区域y通信的qos平均值。
[0092]
d3:根据全局的qos平均值,由下述(c)式构建基于全局偏置的矩阵因子分解模型:
[0093][0094]
其中,μ为的全局的qos平均值。
[0095]
所述步骤e根据用户调用服务的qos历史数据,训练基于网络偏置的矩阵分解因子模型,具体步骤如下:
[0096]
e1:构建损失函数
[0097]
损失函数用来衡量qos预测模型对样本数据的拟合程度,损失函数的值越小,表示qos预测模型对样本数据的拟合程度越高,所述损失函数由下述(d)式表示:
[0098][0099]
其中,i
ij
是指示函数,如果用户i调用过服务j,则返回1,否则返回0;q
ij
和分别表示用户i调用服务j的qos样本值和预测值。
[0100]
如果为公式(a)中的预测函数,则l为基于as偏置的矩阵分解模型的损失函数;如果为公式(b)中的预测函数,则l为基于区域偏置的矩阵分解模型的损失函数;如果为公式(c)中的预测函数,则l为基于全局偏置的矩阵分解模型的损失函数。
[0101]
e2:正则化损失函数
[0102]
为了减小模型的过拟合倾向,在损失函数中加入四个与u、w和b、p相关的正则项,得到由下述(e)式表示的正则化损失函数:
[0103]
[0104]
其中,λ(λ》0)控制正则化的程度;表示矩阵的frobenius范数。
[0105]
e3:求解损失函数
[0106]
考虑到损失函数是非凸函数,设计一个算法来找到全局最小是不现实的;本发明选择采用随机梯度下降算法来寻找最优的特征矩阵u、w和偏置向量b、p,使得损失函数的值达到局部最小,所述随机梯度下降根据单个样本的损失来计算梯度并更新参数,对于每条qos历史数据,有下述(f)~(i)式表示的更新规则:
[0107][0108][0109][0110][0111]
其中,u
′i和ui表示更新后和更新前的用户特征向量;w
′j和wj表示更新后和更新前的服务特征向量;b
′i和bi表示更新后和更新前的用户偏置标量;p
′j和pj表示更新后和更新前的服务偏置标量;η(η》0)表示求解潜在特征矩阵和偏置向量的更新速率;l为用户i调用服务j的单个样本损失值,ui、wj和bi、pj的一阶求导公式由下述(j)~(m)式表示为:
[0112][0113][0114][0115][0116]
其中,q
ij
和分别表示用户i调用服务j的qos样本值和预测值;λ(λ》0)表示正则项的权重;α(0≤α≤1)表示网络偏置的权重。随机梯度下降的伪代码如下表1所示:
[0117][0118]
其中,r表示算法实现收敛的迭代次数,s表示原始矩阵q中qos历史数据的数量,d表示用户潜在特征矩阵和服务潜在特征矩阵的维度。算法的主要时间成本在于矩阵u、w和向量b、p的更新,在每一轮的迭代中,更新u、w需要的时间成本为o(sd),更新b、p需要的时间成本为o(s);因此随机梯度下降的整体时间复杂度可以用o(rsd)表示。
[0119]
所述步骤f使用基于网络偏置的矩阵因子分解模型来预测用户调用服务的qos未知值,具体步骤如下:
[0120]
f1:若两个as编号间用户调用服务的qos平均值大于0,则使用基于as偏置的矩阵因子分解模型来预测用户调用服务的qos未知值。
[0121]
f2:若两个区域间用户调用服务的qos平均值大于0,则使用基于区域偏置的矩阵因子分解模型来预测用户调用服务的qos未知值。
[0122]
f3:使用基于全局偏置的矩阵因子分解模型来预测用户调用服务的qos未知值。
[0123]
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡在本发明的原则范围内所做的任何修改、补充和等同替换等,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1