软件学报  2018, Vol. 29 Issue (11): 3388-3399   PDF    
基于SOM神经网络的服务质量预测
张以文1,2, 项涛2, 郭星2, 贾兆红1,2, 何强3     
1. 计算智能与信号处理教育部重点实验室(安徽大学), 安徽 合肥 230039;
2. 安徽大学 计算机科学与技术学院, 安徽 合肥 230039;
3. School of Information Technology, Swinburne University of Technology, Melbourne VIC3122, Australia
摘要: 服务质量预测在服务计算领域中是一个热点研究问题.在历史QoS数据稀疏的情况下,设计一个满足用户个性化需求的服务质量预测方法成为一项挑战.为了解决这一挑战问题,提出一种基于SOM神经网络的服务质量预测方法SOMQP.首先,基于历史QoS数据,应用SOM神经网络算法分别对用户和服务进行聚类,得到用户关系矩阵和服务关系矩阵;进而,综合考虑用户信誉和服务关联性,采用一种新的Top-k选择机制获得相似用户和相似服务;最后,采用基于用户和基于项目的混合策略对缺失的QoS值进行预测.在真实的数据集WS-Dream上进行了大量实验,结果表明,与经典的CF算法和K-means算法相比,该方法在较大程度上提高了QoS的预测精度.
关键词: 质量预测     SOM     神经网络     K-means    
Quality Prediction for Services Based on SOM Neural Network
ZHANG Yi-Wen1,2, XIANG Tao2, GUO Xing2, JIA Zhao-Hong1,2, HE Qiang3     
1. Key Laboratory of Intelligent Computing and Signal Processing(Anhui University), Ministry of Education, Hefei 230039, China;
2. School of Computer Science and Technology, Anhui University, Hefei 230039, China;
3. School of Information Technology, Swinburne University of Technology, Melbourne VIC3122, Australia
Foundation item: National Key Technology R & D Program (2015BAK24B01); National Natural Science Foundation of China (71601001, 61872002); Natural Science Foundation of Anhui Province (1808085MF197)
Abstract: Quality prediction for services is a hot research topic for service recommendation and composition. It's a challenge to design an accurate quality prediction approach to meet the user's personalized needs due to the sparsity of QoS historical data. In order to solve the challenging problem, this paper proposes a SOM neural network based service quality prediction approach (SOMQP). First, based on historical QoS data, the new approach clusters on users and services respectively by applying SOM neural network algorithm, and then a new top-k selection mechanism is adopted to obtain similar users and similar services based on the comprehensive consideration of user reputation and service relevance. Finally, a hybrid user-based and item-based strategy is used to predict the missing QoS value. A set of comprehensive experiments are conducted on the real Web service dataset WS-Dream, the results indicate that compared with the classical CF and K-means methods, the presented approach achieves higher QoS prediction accuracy.
Key words: quality prediction     SOM     neural network     K-means    

随着云计算、大数据、面向服务架构(SOA)、物联网技术[1]的发展, 以产品服务系统、云制造等为代表面向服务的智能制造服务生态系统应运而生.如何从大规模的功能属性相同而非功能属性不同的候选服务中, 为用户有效地推荐满足其个性化需求的服务, 已成为一项极具挑战性的研究课题.服务质量(quality-of-service, 简称QoS)通常用于表示服务的非功能属性, 如响应时间、代价和吞吐量等, 已广泛应用于基于业务工作流的服务组合[2, 3]、服务选择[4, 5]和服务推荐系统[6-8]中.工作流作为一种面向过程建模和管理的核心技术, 在实现面向业务流程的应用集成方面表现出强大的应用能力, 利用工作流组织协同相关服务, 实现一定的增值业务功能, 已成为一种高效利用众多服务的可行方式.然而, 随着服务的日益丰富, 每个工作流活动可能存在众多功能属性相同而非功能属性不同的候选服务集, 用户不可能通过调用所有服务来获取每个工作流活动中服务的QoS值, 这就导致用户-服务矩阵非常稀疏.为此, 推荐系统需要在QoS信息缺失的情况下, 为用户推荐满足其个性化需求的服务.假设用户u需要定制化某个产品, 服务平台有4个服务s1, s2, s3s4满足其功能性需求.用户u已经调用过服务s1, s2, s3, 但是没有调用过服务s4, 因此推荐系统无法为用户u推荐QoS最优的服务.为解决这一问题, 就需要预测用户u调用服务s4的QoS值.因此, 服务质量预测在面向服务的个性化推荐系统中扮演着重要的角色.

目前, 服务质量预测方法的研究主要是基于协同过滤技术[9-12], 包括基于记忆和基于模型的协同过滤方法.基于记忆的协同过滤预测的主要过程是:首先, 通过皮尔逊相关系数(PCC)计算相似度来寻找相似用户或相似服务; 然后, 使用相似用户或相似服务的QoS值对缺失值进行预测.基于模型的协同过滤预测方法需要根据训练集数据和机器学习方法得到一个训练模型, 然后通过相似邻居的服务质量值来预测目标服务的缺失值.虽然现在很多工作都在研究基于协同过滤的服务质量预测方法, 但依然存在一些重要的问题.

(1)   数据稀疏性.如今, 服务数爆炸式增长, 而由于一些条件的限制, 用户不可能调用所有服务去获取每个服务的QoS评价值, 这也就导致了用户-信息矩阵中大部分数据的缺失.用户-信息矩阵的数据稀疏, 使得传统的协同过滤算法很难通过计算相似度寻找相似用户或相似服务, 因此, QoS预测精度也会受到限制.

(2)   用户信誉.在对服务评价过程中, 会有一些用户对一些服务进行恶意的评价, 即对不好的服务给出很高的评分或对好的服务给出很低的评分, 这些用户的评价影响预测精度.因此, 在QoS预测过程中减少用户恶意评价的影响已然变得很重要, 应当充分利用信誉良好用户的评价信息来提高预测精度.

(3)   服务关联性.同样地, 在用户对服务的评价过程中, 如果两个服务被多个用户调用后获得相同或相似的服务评价, 那么可以认为这两个服务之间具有较高的关联性.因此, 如果在预测的过程中考虑关联性比较高的服务, 充分利用服务之间的关联信息, 可以进一步提高预测精度.

下面以9个用户调用10个服务的情况为例, 其调用关系如图 1所示.

Fig. 1 An example of users invoking services in service-oriernted environment 图 1 面向服务环境中用户调用服务的示例

由于用户不可能调用所有的服务并给与QoS评价, 因此生成的用户-服务矩阵是一个稀疏矩阵, 如图 2所示.

Fig. 2 A rating matrix of users invoking services 图 2 用户调用服务的评价矩阵

对于图 2中用户-服务矩阵的缺失值, 如果使用传统的基于协同过滤的QoS预测方法, 首先通过PCC来计算相似度, 然后根据相似度去寻找相似用户或相似服务, 最后根据相似用户或相似服务的评价值来预测缺失值.这种方法实现起来简单, 但是当矩阵很稀疏时, 很难通过少量的QoS值来计算相似度, 这会导致预测精度降低.并且这种方法没有充分考虑用户信誉和服务关联性.

为解决这一问题, 可使用聚类算法对用户和服务进行聚类去寻找相似用户和相似服务[13-15].这样, 在服务选择和推荐时, 如果两个用户对相同的服务有相似的服务质量评价, 则认为这两个用户是相似的; 同样地, 如果两个服务被相同的用户调用后有相似的服务质量评价, 则认为这两个服务也是相似的.目前已有研究使用K-means聚类算法来解决这一问题, 但是该算法初始点的选取会严重影响聚类效果[14].

基于以上分析, 本文提出了基于SOM神经网络的服务质量预测方法SOMQP.通过引入具有拓扑结构的领域函数, 将所有的神经元都置于一个根据先验知识而事先确定的拓扑结构, 可以达到较为稳定的聚类结果, 从而保证QoS预测精度的稳定性.实验结果表明, SOMQP方法较大程度上提高了预测精度.本文的主要贡献如下.

(1)   根据历史QoS值分别对用户和服务使用SOM神经网络算法进行聚类, 得到用户关系矩阵和服务关系矩阵, 分别记录不同的用户或服务被聚类到同一个簇中的次数.

(2)   提出一种新的Top-k选择机制, 具体而言, 首先, 基于用户关系矩阵寻找恶意评价用户, 减少恶意评价用户对预测精度的影响; 其次, 基于服务关系矩阵寻找相关性服务, 从而获得相似用户和相似服务, 即对用户关系矩阵和服务关系矩阵的每行元素进行从大到小排序, 前k个即为目标用户或目标服务的相似用户或相似服务.

(3)   在真实数据集WS-Dream上进行了大量的实验, 实验结果表明, 与经典的CF算法、基于改进的PCC预测算法和K-means聚类算法相比, 本文方法的QoS预测精度提高了34.9%, 29.5%和4.3%.

本文第1节介绍服务质量预测的相关工作.第2节详细解释SOMQP算法的实现过程.第3节是实验结果与分析.第4节对全文进行总结.

1 相关工作

在服务选择和服务推荐领域, 服务的QoS预测已经成为一个热点问题, 在所有的预测方法中, 协同过滤的方法已经广泛地应用到商业推荐系统中.协同过滤算法主要分为两类:基于模型的和基于记忆的.Sarwar等人[16]提出了基于服务的历史数据去预测缺失的QoS.Zheng等人[17]结合基于用户和基于服务提出了一种混合的预测方法.这些方法主要通过PCC计算来寻找相似用户或相似服务, 进而预测缺失值, 虽然简单易于实现, 但用户-服务矩阵很大时, 很难扩展.

为进一步提高传统的协同过滤算法的有效性, Zhao等人[18]提出一种基于时间段的QoS预测方法, 对历史数据在时间维度和空间维度上寻找数据特征, 结合基于用户的协同过滤方法和ARMA模型, 对未知的QoS数据进行预测.Chen等人[19]提出一种基于概率模型的QoS预测方法, 该方法分别使用概率密度函数和概率分布函数对连续和离散的QoS值进行建模, 设计在不同时期选择不同服务的预测模型.Lo等人[20]提出使用矩阵分解技术对缺失QoS值预测.这些方法一定程度上提高了预测精度, 但都没有考虑恶意评价用户对预测精度的影响以及服务之间的关联性.

为此, 相关研究提出了聚类方法来解决这个问题.Zhu等人[21]为服务推荐提出一个基于聚类的QoS预测框架, 通过获取真实的QoS数据, 使用聚类技术提高预测精度.但该方法需要获取实时的QoS数据, 不具有通用性. Chen等人[22]提出一种基于用户QoS的聚类方法, 该方法对服务进行聚类, 然后在聚类的基础上计算用户之间的相似度, 进而减少执行时间, 但没有对用户进行聚类考虑用户之间关系.Zhang等人[23]提出一个基于模糊聚类的QoS预测方法, 该方法是在计算用户之间相似度的基础上结合传统模糊聚类, 但聚类时初始点的选取会影响预测精度.为此, 本文提出一种基于SOM神经网络[24, 25]的服务质量预测方法SOMQP, 分别对用户和服务进行聚类, 得到用户关系矩阵和服务关系矩阵, 在用户关系矩阵的基础上寻找恶意评价用户, 减少恶意评价用户对预测精度的影响, 并在服务关系矩阵的基础上考虑服务关联性; 然后, 采用一种新的Top-k选择机制获得相似用户和相似服务, 最后对缺失值进行预测.

2 服务质量预测算法及过程

在服务推荐系统中, 由于用户不可能调用所有服务以获得QoS评价值, 导致历史QoS数据的稀疏性, 因此要设计一个满足用户个性化需求的QoS预测方法成为一个很大的挑战.为解决这一挑战问题, 本文提出一个基于SOM算法的预测框架, 如图 3所示.主要包括以下3个过程: (1) SOM聚类模块中, 根据服务历史QoS值分别对用户和服务进行聚类, 得到用户关系矩阵和服务关系矩阵; (2) Top-k机制模块中, 对用户关系矩阵和服务关系矩阵采用一种Top-k选择机制得到目标用户和目标服务的相似用户集和相似服务集; (3)基于相似用户和相似服务的混合策略对缺失QoS值进行预测.

Fig. 3 Quality prediction framework for services 图 3 服务质量预测框架

2.1 SOM聚类

SOM(self-organizing map)神经网络是Kohonen教授提出的一种无监督学习算法[24], 是人工神经网络的重要分支之一, 它可以通过学习来提取一组数据中的内在规律, 按离散时间方式进行分类.并且可以把任意高维的输入映射到低维空间, 使得输入数据内部的相似性质表现为空间上近邻的特征映射.这样就可以在输出层映射成一维或二维的离散图形, 并保持其拓扑结构不变.如图 4所示, SOM是由输入层和竞争层组成的神经网络, 输入层是一维的n个节点的神经元, 竞争层是由M=m2个节点组成的二维神经元的节点矩阵, 并且输入层的神经元和竞争层的神经元都有权值连接.

Fig. 4 Two-Dimensional model of SOM 图 4 SOM的二维模型

设输入层x=(x1, x2, …, xn)是一个n维向量, 输出层是一个有M个节点的二维网络, wij是第i个输入神经元节点与第j个输出神经元节点之间的权值, 该算法的训练过程.

(1)   将连接权重、学习效率以及邻域初始化, wij选择[0, 1]之间的随机值, 并且所有的值互不相同.

(2)   将样本以及连接向量进行归一化; 归一化之后, 计算输入向量在到输出节点的距离d(x, w):

$d(x, w) = \sqrt {\sum\limits_{i = 1}^n {{{({x_i} - {w_{ij}})}^2}} } $ (1)

(3) 从上面计算得到的距离节点中选择最小的d(x, w)为最佳匹配节点, 即神经元i为获胜神经元.

(4) 调整权值向量的更新公式:

$ {w_{ij}}(t + 1) = {w_{ij}}(t) + \alpha (t)h(t)[x(t) - {w_{ij}}(t)] $ (2)

其中, α(t)是学习效率, 0 < α(t) < 1, 且随着时间t而减少; h(t)是邻域内第i个神经元和获胜神经元j之间的拓扑距离的函数.

(5)   重复上述步骤, 直到对所有样本学习后, 学习效率α(t) < αmin时结束.

根据上述聚类原理, 对于调用同一个服务的不同用户, 如果他们评价服务的QoS值相同或相似, 那么对用户进行聚类时, 它们被聚到同一个簇中的概率就越大.对调用服务s的9个用户的QoS值进行聚类如图 5所示.

Fig. 5 Clustering process of users 图 5 对用户聚类的过程

借鉴文献[14], 聚类之前先对用户关系矩阵Mu初始化, 令所有元素的初始值都为0;针对调用服务s的用户集合Us, 使用SOM算法进行聚类, 初始化神经元权重w1, w2, w3, 先计算第1个数据(第1个用户u1对服务s的评分)与3个神经元之间的欧式距离, 距离最小的神经元1获胜, 然后根据公式(2)改变获胜神经元1的权重w1; 继续计算下一个数据和3个神经元的距离, 依次类推, 每次只有一个神经元获胜并改变对应的权重; 直到学习效率小于阈值后, 神经元的权重w1, w2, w3均趋向于聚类中心, 迭代停止.然后根据SOM聚类的结果对用户关系矩阵中的元素进行更新, 更新规则为:假定用户i和用户j在服务s中被聚类在一个簇中, 那么uij=uij+1, 同时, uji=uji+1;否则不变.

2.2 Top-k选择机制

本文提出一种新的Top-k选择机制.根据聚类策略, 如果两个用户被聚类到同一簇中的次数越多, 说明这两个用户对同一个服务的评价越相同或相似, 他们在调用同一服务时, 彼此之间的服务评价更具有参考性.在聚类时, 用uij记录用户ui和用户uj被聚类到同一个簇中的次数, 得到用户关系矩阵Mu后, 对每一行的元素进行从大到小排序, 选择前k个用户作为目标用户的相似用户, 即用户ui的相似用户集为f(ui)={a|uiauik, uia > 0, aU, uikMu}, 这样可以减少恶意评价用户的评价对预测结果的影响.以图 2中调用过服务s1的用户为例, 用户u1, u2, u5u7调用过服务s1并给与的评分是4.2, 4.5, 4.4和1.1, 从评分可以推断, 用户u7很可能是一个恶意评价的用户.在聚类时, 用户u7不会与用户u1, u2u5聚类到同一个簇中.这样, 在相似用户选择时可以排除恶意评价用户, 降低其对预测精度的影响.

同样地, 对服务进行聚类时, 如果两个服务被聚类到同一个簇中的次数越多, 说明这两个服务之间的关联度越大, 彼此之间的用户评价更具有参考性.因此在聚类结束后, 对矩阵Ms中的每一行元素值进行从大到小排序, 选取前k个服务作为目标服务的相似服务, 即得到服务si的相似服务集为f(si)={b|sibsik, sib > 0, bS, sikMs}.

图 1中的例子, 现在有一个9×10的用户-服务矩阵, 包含9个用户调用10个服务的QoS值, 其中所有的用户并没调用过所有的服务, 根据SOM神经网络算法, 分别对每一个服务的QoS值进行聚类, 用C矩阵记录不同用户被聚类到同一个簇中的次数, 得到更新后的矩阵如下:

$C = \left[ {\begin{array}{*{20}{c}} 0&1&0&1&3&2&0&1&0 \\ 1&0&3&0&1&1&2&0&0 \\ 0&3&0&1&0&2&0&1&0 \\ 1&0&1&0&0&0&3&1&2 \\ 3&1&0&0&0&1&1&3&0 \\ 2&1&2&0&1&0&1&0&1 \\ 0&2&0&3&1&1&0&2&1 \\ 1&0&1&1&3&0&2&0&3 \\ 0&0&0&0&0&1&0&3&0 \end{array}} \right]$ .

对每一行的次数从大到小排序后, 设置Top-k为2, 则得到目标用户的相似用户集, 如u1的相似用户集f(u1)={u5, u6}, u2的相似用户集f(u2)={u3, u7}, u3的相似用户集f(u3)={u2, u6}.

2.3 缺失的QoS值预测

为减少恶意评价用户对预测结果的影响, 本文的服务质量预测方法SOMQP只考虑相似用户集里的用户.基于相似用户去预测矩阵中缺失值Ru, i(u)的公式如下:

${R_{u, i}}(u) = \frac{{\sum\limits_{t = 1}^k {({r_{a(t)}} \times {u_{a(t)}})} }}{{{N_u}}}$ (3)

其中, a(t)是用户u的相似用户集里的用户, ra(t)表示相似用户a(t)的QoS值, ua(t)表示用户u与相似用户a(t)被聚类到同一个簇中的次数, Nu表示用户u与所有相似用户被聚类到同一个簇中的次数总和.

同样地, 基于相似服务的预测缺失值Ru, i(i)的公式如下:

${R_{u, i}}(i) = \frac{{\sum\limits_{t = 1}^k {({r_{b(t)}} \times {u_{b(t)}})} }}{{{N_s}}}$ (4)

其中, b(t)是服务i的相似服务集里的服务, rb(t)表示相似服务b(t)的QoS值, ub(t)表示服务i与相似服务b(t)被聚类到同一个簇中的次数, Ns表示服务i与所有相似服务被聚类到同一个簇中的次数总和.

为了充分考虑相似用户和相似服务的信息, 本文结合公式(3)和公式(4), 提出一种混合的预测方法SOMQP, 如下:

$ {R_{u, i}} = \lambda \times {R_{u, i}}(u) + (1 - \lambda ) \times {R_{u, i}}(i) $ (5)

其中, 参数λ表示预测值依赖相似用户和相似服务的比例.当λ=1时, 仅使用基于用户的方法进行预测; 当λ=0时, 仅使用基于服务的方法进行预测; 如果用户u没有调用过任何服务, 而服务i也没有被任何用户调用过, 则使用所有服务QoS值的平均值进行预测.

3 实验结果与分析

本文在真实的数据集上做了大量实验来比较所提出的方法与目前经典的相关方法的预测精度, 同时研究不同的参数对预测精度的影响.本部分实验环境是IntelliJ IDEA Community Edition 14.1.4, jdk 1.7, scala-sdk 2.10.4, 编程语言scala, 实验机器配置为16G内存, core i7-4970 3.6GHZ处理器, ubuntu 14.04 LTS系统.

3.1 实验数据

在实验中, 为评价本文提出的SOMQP的服务质量预测方法的有效性, 我们使用WS-Dream数据集[26], 这个数据集中两个矩阵分别包含339用户调用5 825个服务产生的1 974 675个Web服务的响应时间(response time, 简称RT)和吞吐量(throughput, 简称TP)的真实记录值, 其中, 83.7%的响应时间值在[0, 1]之间.真实世界中, 大部分用户都只调用过少数的服务, 所以产生的用户-服务矩阵是一个稀疏矩阵, 为此, 我们随机移出一部分数据作为训练集, 剩余的作为测试集.在WS-Dream数据集中, 训练集的比例为0.05, 0.1, 0.15, 0.2, 0.25.

3.2 评价指标

为评价服务质量预测的有效性, 本文在数据集上划分多个训练集进行实验; 同时, 也在不同相似用户数和相似服务数的基础上进行验证.本文选择两个度量预测QoS值质量的指标是绝对平均误差(MAE)和均方根误差(RMSE), 分别定义如下:

$MAE = \frac{{\sum\nolimits_{u, s} {|R(u, s) - P(u, s)|} }}{N}$ (6)
$RMSE = \sqrt {\frac{{\sum\nolimits_{u, s} {{{(R(u, s) - P(u, s))}^2}} }}{N}} $ (7)

其中, R(u, s)表示用户u调用服务s得到的实际QoS值, P(u, s)表示预测的值, N表示预测值的数量.MAE是通过比较用户调用服务的真实QoS值和预测值之间差异值来计算的, 它的值越小, 表示预测精度越高.

3.3 实验结果与分析

1)   为评价所提出的SOMQP方法的预测精度, 选择以下经典方法在MAE和RMSE两个指标上进行对比实验.

2)   UPCC(基于用户的协同过滤方法).该方法基于相似用户的历史QoS值去预测缺失值.

3)   IPCC(基于项目的协同过滤方法).该方法基于相似服务的历史QoS值去预测缺失值.

2)   UIPCC(混合的协同过滤方法).该方法是分别给与UPCC和IPCC一个权重, 用综合的方法去预测缺失的值.

4)   KUPCC.借鉴文献[14], 用K-means方法对用户进行聚类, 得到用户关系矩阵并寻找相似用户, 然后基于相似用户对缺失QoS值进行预测.

5)   KIPCC.用K-means方法对服务进行聚类, 得到服务关系矩阵并寻找相似服务, 然后基于相似服务对缺失QoS值进行预测.

6)   KUIPCC.基于KUPCC和KIPCC混合策略对缺失QoS值进行预测.

7)   TOSEM.该方法基于改进的PCC来计算用户或服务之间的相似度, 进而用综合方法去预测缺失值[26].

8)   SUPCC.用SOM神经网络算法对用户进行聚类寻找相似用户, 基于相似用户对缺失QoS值进行预测.

9)   SIPCC.用SOM神经网络算法对服务进行聚类寻找相似服务, 基于相似服务对缺失QoS值进行预测.

实验中, 在WS-Dream数据集上设置矩阵密度为0.05~0.25, 以0.05的间隔逐渐增加, Top-k相似用户和相似服务中, k=2, 在公式(5)中的λ=0.4, 分别求得这几种方法在响应时间和吞吐量上的MAE和RMSE, 实验结果比较见表 1表 2.

Table 1 Comparison between SOMQP and other methods on RT 表 1 SOMQP与其他方法在RT上的比较

Table 2 Comparison between SOMQP and other methods on TP 表 2 SOMQP与其他方法在TP上的比较

从实验结果可知:在矩阵密度相同的情况下, 本文方法的QoS预测精度最好; 同时, 随着矩阵密度的增大, 本文方法的预测精度一直优于其他方法, 而且稀疏度越大时, 本文方法与其他方法的预测精度的差距越大.表 1中展示的是本文提出的SOMQP和其他经典算法在响应时间上的比较, 从实验结果可以得出, SOMQP方法在MAE上比UIPCC, KUIPCC, TOSEM这3种经典方法分别提高34.9%, 4.3%, 29.5%.同样地, 表 2中是在吞吐量数据集上的比较, 本文的算法比上述3个算法在MAE上平均值分别提高49.5%, 1.8%和42.3%.综上可以看出, 在不同的数据集上, 本文提出的SOMQP算法的预测精度比这几种经典算法都有一定的提高.该实验结果表明, 本文方法可以更好地选取目标用户的相似用户来进行缺失值预测, 同时降低那些恶意评价用户对预测精度的影响.

(1) λ对预测精度的影响

在本文的方法中, 参数λ是决定SOMQP方法依靠相似用户和相似服务的权重, 若λ=1时, 仅使用基于用户的方法进行预测; 若λ=0时, 仅使用基于服务的方法进行预测.为研究λ对预测结果的影响, 本文在WS-Dream数据集上, 设置矩阵密度为0.05, 相似用户数和相似服务数为2的情况下, λ的值从0.1到0.9并以0.1的间隔逐渐增加对MAE和RMSE的影响, 实验结果如图 6所示.

Fig. 6 Impact of λ on prediction accuracy 图 6 对预测精度的影响

其中, 图 6(a)图 6(b)是在响应时间的实验结果, 图 6(c)图 6(d)是在吞吐量上的实验结果.图 6的实验结果表明, 参数λ的值对SOMQP方法的预测精度有很重要的影响.从图 6(a)图 6(c)中看出, 一开始, 随着λ值的增大, 预测精度一直在提高, 当预测精度达到最大值之后, 随着λ值的增大, 预测精度开始降低; 图 6(a)中, 在λ=0.2时, 预测精度达到最优值; 图 6(c)中, 在λ=0.4时, 预测精度达到最优值.这表明, 一个合适的λ值可以达到更好的预测精度.同时, 图 6(a)图 6(c)的结果表明, 在不同的数据集上, 达到最优预测精度时的λ值不一样的.

(2) Top-k对预测的影响

本文方法中参数Top-k决定了选取目标用户的相似用户数或目标服务的相似服务数.为研究Top-k值对预测精度的影响, 实验用WS-Dream数据集分别在响应时间和吞吐量两个属性上, 在矩阵密度为0.05, λ=0.4, 设置Top-k值为从1~6并以1的间隔逐渐增加对MAE和RMSE的影响, 结果如图 7所示.

Fig. 7 Impact of Top-k on prediction accuracy 图 7 Top-k对预测精度的影响

其中, 图 7(a)图 7(b)是在响应时间的实验结果, 图 7(c)图 7(d)是在吞吐量上的实验结果.从图 7(a)图 7(c)可以看出, 随着k值的增加, 预测精度先变大然后变小, 并在k为2时达到最大.这说明相似用户或相似服务数越多, 并不一定有利于提高预测精度.相似用户数和相似服务数过少或过多, 都会降低预测精度:如果相似用户数太少, 不能全面考虑用户之间的关系; 如果相似用户数太多, 则不能排除那些对服务进行恶意评价的用户, 这些恶意评价的用户会对预测精度有很大的影响.同样地, 相似服务数越多, 那些被用户恶意评价的服务信息会大大降低预测精度.

(3) 矩阵密度的影响

矩阵密度表示从用户-服务矩阵中移出作为训练集的数据比例.图 8是在WS-Dream数据集上, 分别对响应时间和吞吐量两个QoS属性研究矩阵密度的影响.设置矩阵密度从0.05到0.25, 以0.05的间隔增加, λ=0.4, 相似用户数和相似服务数为2.

Fig. 8 Impact of matrix density on prediction accuracy 图 8 矩阵密度对预测精度的影响

图 8可以看出, 随着矩阵密度的增加, SOMQP方法的服务质量预测精度也逐步提高.这是因为矩阵密度越大, 说明更多的用户调用过更多的服务, 所产生的数据集中包含更多的用户信息和服务信息, 可以从这些信息中挖掘更多有用信息来提高预测精度.

4 结束语

本文提出一种基于SOM神经网络的服务质量预测方法SOMQP.首先根据历史QoS数据, 用SOM分别对用户和服务进行聚类, 得到用户关系矩阵和服务关系矩阵; 然后, 基于一种新的Top-k选择机制, 获得目标用户和目标服务的相似用户集和相似服务集; 最后, 结合基于相似用户的和基于相似服务的方法, 提出一个混合策略对缺失QoS值进行预测.在真实数据集上的实验结果表明, 与经典的CF算法、基于改进的PCC预测算法和K-means聚类算法相比, 我们方法的质量预测精度分别提高了34.9%、29.5%和4.3%.随着服务规模的增大, 用户-服务信息矩阵也变得越来越大, 在接下来的研究中, 将在Spark平台使用并行聚类技术来验证本文算法的有效性和稳定性.

参考文献
[1]
Yin J, Tang Y, Lo W, Wu Z. From big data to great services. In: Proc. of the 2016 IEEE Int'l Congress on Big Data (BigData Congress). IEEE, 2016. 165-172.http://ieeexplore.ieee.org/document/7584934/
[2]
Yu Y, Chen J, Lin S, Wang Y. A dynamic QoS-aware logistics service composition algorithm based on social network. IEEE Trans. on Emerging Topics in Computing, 2014, 2(4): 399–410. [doi:10.1109/TETC.2014.2316524]
[3]
Chattopadhyay S, Banerjee A. QSCAS: QoS aware Web service composition algorithms with stochastic parameters. In: Proc. of the 2016 IEEE Int'l Conf. on Web Services (ICWS). IEEE, 2016. 388-395.http://ieeexplore.ieee.org/document/7558026/
[4]
He Q, Han J, Chen F, Wang Y, Vasa R, Yang Y, Jin H. QoS-Aware service selection for customisable multi-tenant service-based systems: Maturity and approaches. In: Proc. of the 2015 IEEE 8th Int'l Conf. on Cloud Computing. IEEE, 2015. 237-244.http://ieeexplore.ieee.org/document/7214050/
[5]
Dahan F, El Hindi K, Ghoneim A. Enhanced artificial bee colony algorithm for QoS-aware Web service selection problem. Computing, 2017, 99(5): 507–517. [doi:10.1007/s00607-017-0547-8]
[6]
Liu SD, Meng XB. Approach to network services recommendation based on mobile users' location. Ruan Jian Xue Bao/Journal of Software, 2014, 11(11): 2556–2574(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4561.htm [doi:10.13328/j.cnki.jos.004561]
[7]
Xu Y, Yin J, Deng S, Xiong N, Huang J. Context-Aware QoS prediction for Web service recommendation and selection. Expert Systems with Applications, 2016, 53: 75–86. [doi:10.1016/j.eswa.2016.01.010]
[8]
Su K, Xiao B, Liu B, Zhang H, Zhang Z. TAP:A personalized trust-aware QoS prediction approach for Web service recommendation. Knowledge-Based Systems, 2017, 115: 55–65. [doi:10.1016/j.knosys.2016.09.033]
[9]
Shao LS, Zhou L, Zhao JF, Xie B, Mei H. Web service QoS prediction approach. Ruan Jian Xue Bao/Journal of Software, 2009, 20(8): 2062–2073(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/3375.htm [doi:10.3724/SP.J.1001.2009.03375]
[10]
Wang Y, He Q, Yang Y. Qos-Aware service recommendation for multi-tenant SaaS on the cloud. In: Proc. of the 2015 IEEE Int'l Conf. on Services Computing (SCC). IEEE, 2015. 178-185.http://dl.acm.org/citation.cfm?id=2867180
[11]
Hu Y, Peng Q, Hu X, Yang R. Time aware and data sparsity tolerant Web service recommendation based on improved collaborative filtering. IEEE Trans. on Services Computing, 2015, 8(5): 782–794. [doi:10.1109/TSC.2014.2381611]
[12]
Wang X, Zhu J, Zheng Z, Song W, Shen Y, Lyu MR. A spatial-temporal QoS prediction approach for time-aware Web service recommendation. ACM Trans. on the Web, 2016, 10(1): No.7. http://dl.acm.org/citation.cfm?id=2801164
[13]
Zhang X, Wang Z, Lv X, Qi R. A clustering-based QoS prediction approach for Web service selection. In: Proc. of the 2013 Int'l Conf. on Information Science and Cloud Computing Companion (ISCC-C). IEEE, 2013. 201-206.http://ieeexplore.ieee.org/abstract/document/6973592/
[14]
Wu C, Qiu W, Zheng Z, Wang X, Yang X. QoS prediction of Web services based on two-phase K-means clustering. In: Proc. of the 2015 IEEE Int'l Conf. on Web Services (ICWS). IEEE, 2015. 161-168.http://ieeexplore.ieee.org/document/7195565/
[15]
Yu C, Huang L. CluCF: A clustering CF algorithm to address data sparsity problem. In: Proc. of the Service Oriented Computing and Applications. 2016. 1-13.https://link.springer.com/article/10.1007%2Fs11761-016-0191-8
[16]
Sarwar B, Karypis G, Konstan J, Riedl J. Item-Based collaborative filtering recommendation algorithms. In: Proc. of the 10th Int'l Conf. on World Wide Web. ACM Press, 2001. 285-295.http://dl.acm.org/citation.cfm?id=372071
[17]
Zheng Z, Ma H, Lyu M R, King I. Wsrec: A collaborative filtering based Web service recommender system. In: Proc. of the 2009 IEEE Int'l Conf. on Web Services (ICWS 2009). IEEE, 2009. 437-444.http://dl.acm.org/citation.cfm?id=1587024
[18]
Zhao Y, Pi Q, Luo C, Yan D. CAPred: A prediction model for timely QoS. In: Proc. of the 2015 IEEE Int'l Conf. on Web Services (ICWS). IEEE, 2015. 599-606.http://ieeexplore.ieee.org/document/7195620/
[19]
Chen L, Yang J, Zhang L. Time based QoS modeling and prediction for Web services. In: Proc. of the Int'l Conf. on ServiceOriented Computing. Berlin, Heidelberg: Springer-Verlag, 2011. 532-540.https://link.springer.com/chapter/10.1007/978-3-642-25535-9_38
[20]
Lo W, Yin J, Li Y, Wu Z. Efficient Web service QoS prediction using local neighborhood matrix factorization. Engineering Applications of Artificial Intelligence, 2015, 38: 14–23. [doi:10.1016/j.engappai.2014.10.010]
[21]
Zhu J, Kang Y, Zheng Z, Lyu MR. A clustering-based QoS prediction approach for Web service recommendation. In: Proc. of the 201215th IEEE Int'l Symp. on Object/Component/Service-Oriented Real-Time Distributed Computing Workshops. IEEE, 2012. 93-98.http://dl.acm.org/citation.cfm?id=2224632
[22]
Chen F, Yuan S, Mu B. User-QoS-Based Web service clustering for QoS prediction. In: Proc. of the 2015 IEEE Int'l Conf. on Web Services (ICWS). IEEE, 2015. 583-590.https://www.computer.org/csdl/proceedings/icws/2015/7272/00/7272a583-abs.html
[23]
Zhang M, Liu X, Zhang R, Sun H. A Web service recommendation approach based on QoS prediction using fuzzy clustering. In: Proc. of the 2012 IEEE Ninth Int'l Conf. on Services Computing (SCC). IEEE, 2012. 138-145.http://dl.acm.org/citation.cfm?id=2359848
[24]
Kohonen T. The self-organizing map. Proc. of the IEEE, 1990, 78(9): 1464–1480. [doi:10.1109/5.58325]
[25]
Cottrell M, Olteanu M, Rossi F, Villa-Vialaneix N. Theoretical and applied aspects of the self-organizing maps. In: Proc. of the Advances in Self-Organizing Maps and Learning Vector Quantization. Springer Int'l Publishing, 2016. 3-26.https://link.springer.com/chapter/10.1007%2F978-3-319-28518-4_1
[26]
Zhang Y, Zheng Z, Lyu MR. WSPred: A time-aware personalized QoS prediction framework for Web services. In: Proc. of the 2011 IEEE 22nd Int'l Symp. on Software Reliability Engineering (ISSRE). IEEE, 2011. 210-219.https://www.computer.org/csdl/proceedings/issre/2011/4568/00/4568a210-abs.html
[6]
刘树栋, 孟祥武. 一种基于移动用户位置的网络服务推荐方法. 软件学报, 2014, 11: 2556–2574. http://www.jos.org.cn/1000-9825/4561.htm [doi:10.13328/j.cnki.jos.004561]
[9]
邵凌霜, 周立, 赵俊峰, 谢冰, 梅宏. 一种Web Service的服务质量预测方法. 软件学报, 2009, 20(8): 2062–2073. http://www.jos.org.cn/1000-9825/3375.htm [doi:10.3724/SP.J.1001.2009.03375]