基于相似性传播策略的Web服务推荐系统及方法与流程

文档序号:22324575发布日期:2020-09-25 17:52阅读:96来源:国知局
基于相似性传播策略的Web服务推荐系统及方法与流程
本发明相似性传播策略
技术领域
,具体涉及一种基于相似性传播策略的web服务推荐系统及方法。技术背景web服务是一种自描述、独立于平台和松耦合的分布式组件,由于其建立在一系列基于可扩展标记语言(xml,extensiblemarkuplanguage)的开放标准和协议基础上,使得web服务可在网络中被发布、发现、绑定和调用。web服务技术作为一种新型的分布式计算模型,近年来被广泛用于面向互联网的分布式应用构建上。随着面向服务计算技术、云计算和大数据等技术的发展,网络中出现大量功能相似的web服务,服务质量(qos,qualityofservice)成为用户区分不同web服务时的主要关注点。qos主要包括响应时间、吞吐量、可靠性和可用性等非功能性属性。在现实环境中,由于服务的qos受网络状况、地理位置等客观因素影响较大,不同用户感受到的qos是不同的。因此如何为用户个性化地预测服务的qos,然后基于预测值推荐最优的服务给用户,成为服务计算和云计算中的关键问题。近年来,由于协同过滤技术在亚马逊、youtube和netfix等商业推荐系统中取得了较大成功,许多学者提出将协同过滤技术应用于web服务推荐。协同过滤技术主要通过挖掘活动用户的相似用户或者目标服务的相似服务的历史qos数据来预测当前活动用户调用目标服务后的qos。然而,由于现实环境中的历史qos数据是非常稀疏的,现有的相似度评估方法不能准确地评估用户间或者服务间的相似度,导致无法为用户提供高质量的web服务推荐。技术实现要素:本发明的目的是针对上述技术问题,提供一种基于相似性传播策略的web服务推荐方法,本发明能有效提升相似度评估的准确度,从而为用户提供高质量的服务推荐。为实现此目的,本发明所设计的一种基于相似性传播策略的web服务推荐系统,其特征在于:它包括远程服务器、输入处理模块、直接相似度计算模块、相似度图构建模块、传播路径发现模块、相似度聚合模块、间接相似度计算模块、相似邻居发现模块、qos值预测及服务推荐模块,其中,需要调用web服务的软件通过网络调用远程服务器上的web服务,并将调用后观察到的web服务的qos数据反馈给输入处理模块;输入处理模块用于去除web服务qos数据中的噪声数据和错误数据得到规范化的web服务qos数据;直接相似度计算模块用于根据规范化的web服务qos数据计算web服务用户之间或web服务之间的直接相似度,并构建web服务用户直接相似度矩阵和web服务直接相似度矩阵;相似度图构建模块用于以web服务用户直接相似度矩阵和web服务直接相似度矩阵为邻接矩阵,构造无向加权web服务用户相似度图和无向加权web服务相似度图;传播路径发现模块用于搜索无向加权web服务用户相似度图和无向加权web服务相似度图上的web服务用户之间或web服务之间的相似性传播路径;相似度聚合模块用于将每条相似性传播路径上的相似性进行聚合,得到每条传播路径上的相似度;间接相似度计算模块用于对所有传播路径上的相似度进行集成,得到web服务用户之间或web服务之间的间接相似度;相似邻居发现模块用于根据web服务用户之间的直接相似度和间接相似度计算web服务用户之间或web服务之间的集成相似度,并根据web服务用户之间或web服务之间的集成相似度发现当前活动用户的一组相似web服务用户,或者目标web服务的一组相似web服务;qos值预测及服务推荐模块用于将当前活动用户的相似web服务用户或目标web服务的相似web服务的qos数据,作为当前活动用户预测目标web服务的qos数据,并将当前活动用户预测目标web服务的qos数据中qos数值最高的一个或多个web服务推荐给活动用户。本发明提出一种相似性传播策略,通过该策略可以评估服务推荐系统中用户之间以及服务之间的间接相似度。首先基于用户-服务qos数据计算用户间和服务间的直接相似度。其次基于直接相似度数据分别构造用户相似度图和服务相似度图。进而采用基于flyod的图算法来搜索用户间及服务间的相似度传播路径。最后将传播路径上的相似性进行聚合,得到用户间及服务间的间接相似度。最后将直接相似度和间接相似度进行集成得到集成相似度,进而为活动用户或者目标服务寻找一组相似邻居用于qos预测。该方法不但利用了用户或服务间的直接关系,还挖掘了用户或服务间的间接关系,因此有利于在现实的稀疏数据环境下更深入地挖掘相似性关系,从而实现准确的qos预测,达到高质量服务推荐的目的。附图说明图1为本发明的结构框图;图2为本发明的中的用户相似度图;图2中u1~u7均表示用户,用户之间连线上的数字表示用户间的相似度,与表1对应。其中,1—远程服务器、2—输入处理模块、3—qos数据库、4—直接相似度计算模块、5—相似度图构建模块、6—传播路径发现模块、7—相似度聚合模块、8—间接相似度计算模块、9—相似邻居发现模块、10—qos值预测及服务推荐模块。具体实施方式以下结合附图和实施例对本发明作进一步的详细说明:假设服务推荐系统中包含m个用户和n个服务,用户对服务的qos历史调用信息可以表示为一个m×n矩阵r,其中任意项rij表示用户ui调用服务sj后观测到的qos值,假如用户ui之前未调用过服务sj,则rij=null。服务推荐系统的目标就是通过矩阵中已有的数据项来预测这些缺失的数据项,然后将qos预测值最优的web服务推荐给活动用户。如图1所示的一种基于相似性传播策略的web服务推荐系统,它包括远程服务器1、输入处理模块2、直接相似度计算模块4、相似度图构建模块5、传播路径发现模块6、相似度聚合模块7、间接相似度计算模块8、相似邻居发现模块9、qos值预测及服务推荐模块10,其中,需要调用web服务的软件通过网络调用远程服务器1上的web服务,并将观察到的web服务的qos数据反馈给输入处理模块2;输入处理模块2用于去除web服务qos数据中的噪声数据和错误数据(违背事实的数据,比如评分要求1~10分,用户提交了11分的数据,响应时间一般几秒到几分钟,用户提交了几小时)得到规范化web服务qos数据;直接相似度计算模块4用于根据规范化的web服务qos数据计算web服务用户之间或web服务之间的直接相似度,并构建web服务用户直接相似度矩阵和web服务直接相似度矩阵;相似度图构建模块5用于以web服务用户直接相似度矩阵和web服务直接相似度矩阵为邻接矩阵,构造无向加权web服务用户相似度图和无向加权web服务相似度图;传播路径发现模块6用于搜索无向加权web服务用户相似度图和无向加权web服务相似度图上的web服务用户之间或web服务之间的相似性传播路径;相似度聚合模块7用于将每条相似性传播路径上的相似性进行聚合,得到每条传播路径上的相似度;间接相似度计算模块8用于对所有传播路径上的相似度进行集成,得到web服务用户之间或web服务之间的间接相似度;相似邻居发现模块9用于根据web服务用户之间的直接相似度和间接相似度计算web服务用户之间或web服务之间的集成相似度,并根据web服务用户之间或web服务之间的集成相似度发现当前活动用户(正在用web服务的用户)的一组相似web服务用户,或者目标web服务的一组相似web服务;qos值预测及服务推荐模块10用于将当前活动用户的相似web服务用户或目标web服务的相似web服务的qos数据,作为当前活动用户预测目标web服务的qos数据,并将当前活动用户预测目标web服务的qos数据中qos数值最高的一个或多个web服务推荐给活动用户。上述技术方案中,它还包括qos数据库3,输入处理模块2还用于将规范化的web服务qos数据存储到qos数据库3中。上述技术方案中,所述直接相似度计算模块4用于根据规范化的web服务qos数据利用改进皮尔森相关系数法(pcc,pearsoncorrelationcoefficient)计算web服务用户之间或web服务之间的直接相似度。该方法采用了sigmoid函数作为衰减系数,避免了由于公共集较小所造成的高估或低估相似度的问题。上述技术方案中,传播路径发现模块6用于采用基于flyod图算法的相似度传播路径搜索无向加权web服务用户相似度图和无向加权web服务相似度图上的不同web服务用户之间或不同web服务之间的相似性传播路径。该方法实现简单,且可以搜索到全局最优路径。上述技术方案中,所述相似度聚合模块7用于采用min-max策略将每条相似性传播路径上的相似性进行聚合,得到每条相似性传播路径上的相似度。上述技术方案中,所述间接相似度计算模块8对所有传播路径上的相似度进行集成,并采用基于最短路径的最小最大化相似性传播策略(spas)和基于所有路径的最小最大化相似性传播策略(spaa),得到web服务用户之间或web服务之间的间接相似度。spas主要考虑用户间或服务间的最短传播路径,因为路径越长,则相似性传播的强度会越弱,最短路径可以得到一个高强度和可信的相似度。spaa考虑了用户间或服务间的所有传播路径,因为最短路径有可能会忽略qos数据中有价值的近邻信息。两个方法都采用了min-max策略来进行间接相似度的集成计算。在min-max策略中,路径中最小的相似度作为该路径的相似度,当节点之间有多条传播路径的时候,选取相似度最大的那条路径的相似度作为节点之间的最终间接相似度。上述技术方案中,采用改进皮尔森相关系数法计算web服务用户之间或web服务之间的直接相似度的方法为:web服务用户之间的直接相似度计算如下:其中simdu(u,v)表示web服务用户u和web服务用户v之间的直接相似度,suv=su∩sv是web服务用户u和web服务用户v都调用过的web服务组成的集合,rui是web服务用户u调用web服务i后观察到的qos值,rvi是web服务用户v调用web服务i后观察到的qos值,和分别表示web服务用户u和web服务用户v观察到的所有web服务的平均qos值,|suv|是web服务用户u和web服务用户v都调用过的web服务组成的集合中的元素数量,e为自然常数;web服务之间的直接相似度计算如下:其中simds(i,j)表示web服务i和web服务j之间的直接相似度,uij=ui∩uj是同时调用过web服务i和web服务j的所有web服务用户构成的集合,和分别表示web服务i和web服务j被所有web服务用户调用的平均qos值,|uij|是同时调用过web服务i和web服务j的所有web服务用户构成的集合中的元素数量,rui是web服务用户u调用web服务i后观察到的qos值,ruj是web服务用户u调用web服务j后观察到的qos值。上述技术方案中,所述得到web服务用户之间或web服务之间的间接相似度的方法为:所述无向加权web服务用户相似度图为gu(u,e,simdu),其中u表示所有web服务用户,e表示无向加权web服务用户相似度图中web服务用户间的共同交互经历(两个用户调用过一些共同的服务,表示他们有共同交互经历,即无向加权web服务相似度图中服务用户间的所有边),simdu表示web服务用户间的直接相似度,在基于所有路径的最小最大化相似性传播策略中,一条自web服务用户u出发到web服务用户v为终点的传播路径相似度计算如下:其中pk(u→v)是源自web服务用户u到web服务用户v的第k条传播路径,str(pk(u→v))是路径pk(u→v)的相似度,e(u→v)是源自web服务用户u到web服务用户v路径上的所有边的集合,其中(a,b)是e(u→v)中的一条边,例如,假如u到v之间的有一条路径:u→a→b→v,则e(u→v)={(u,a),(a,b),(b,v)};web服务用户u和web服务用户v之间的间接相似度通过聚合它们之间所有路径的相似性来得到:其中,simiu(u,v)表示web服务用户u和web服务用户v之间的间接相似度,p表示通过搜索用户相似度图gu找到的web服务用户u和web服务用户v之间所有传播路径构成的集合,spas方法与spaa方法不同的地方在于,只搜索web服务用户u和web服务用户v之间的最短路径,然后将相似性最强的最短路径作为最终的web服务用户之间的间接相似度,这里的最短路径需要至少一个中间传播节点;所述无向加权web服务相似度图为gs(s,e1,simds),其中s表示所有web服务,e1表示无向加权web服务相似度图中web服务间的共同交互经历,即无向加权web服务相似度图中服务间的所有边,simds表示服务间的直接相似度,在spaa中,一条自服务i到服务j为终点的传播路径强度可以计算如下:其中,pk(i→j)是源自web服务i到web服务j的第k条传播路径,str(pk(i→j))是路径pk(i→j)的相似度,e1(i→j)是源自web服务i到web服务j路径上的所有边的集合,其中,(c,d)是e1(i→j)中的一条边;web服务i和web服务j之间的间接相似度可以通过聚合它们之间所有路径的相似性来得到:其中,simis(i,j)表示web服务i和web服务j之间的间接相似度,p表示通过搜索服务相似度图gs找到web服务i和web服务j之间所有传播路径构成的集合。同理,spas方法与spaa方法不同的地方在于,只搜索web服务i和web服务j之间的最短路径,然后将相似性最强的最短路径作为最终的web服务之间的间接相似度。上述技术方案中,web服务用户之间的集成相似度的计算方法为:采用相似度权重α(0≤α≤1)来综合直接相似度和间接相似度,得到web服务用户之间或web服务之间的集成相似度,web服务用户u和v之间的集成相似度定义为:sim'(u,v)=αuvsimdu(u,v)+(1-αuv)simiu(u,v)(7)其中,sim'(u,v)表示web服务用户u和v之间的集成相似度,αuv表示web服务用户u和v之间的相似度权重,simdu(u,v)表示web服务用户u和v之间的直接相似度,simiu(u,v)表示web服务用户u和v之间的间接相似度,web服务用户u和v之间的相似度权重αuv计算如下:其中,|su∩sv|是web服务用户u和v都调用过的服务数量,|su∪sv|是web服务用户u或v调用过的服务数量,式(8)表示当web服务用户u和v调用过的公共服务集|su∩sv|中的元素较少时,相似度权重αuv会降低直接相似度在集成相似度中的贡献程度,同时提升间接相似度在集成相似度中的贡献程度,由于αuv取值范围为[0,1],simdu(u,v)和simiu(u,v)取值范围都为[0,1],因此sim'(u,v)取值范围为[-1,1];同理,web服务i和j之间的集成相似度计算如下:sim'(i,j)=αijsimds(i,j)+(1-αij)simis(i,j)(9)其中,sim'(i,j)表示web服务i和j之间的集成相似度,αij表示web服务i和j之间的相似度权重,simds(i,j)表示web服务i和j之间的直接相似度,simis(i,j)表示web服务i和j之间的间接相似度,web服务i和j之间的相似度权重αij计算如下:其中,|ui∩uj|是调用过web服务i和j的用户数量,|ui∪uj|是调用过web服务i或j的用户数量,sim'(i,j)的取值范围同样为[-1,1];在集成相似度基础上,选取topk个最相似的邻居用户或邻居服务用于预测,在基于相似用户的预测方法里,预测值计算如下:其中,rui表示需要预测的web服务用户u对web服务i的qos值,sim'(u,v)是web服务用户u和v的集成相似度,web服务用户v是web服务用户u的相似邻居,t(u)是用户u的topk个最相似邻居构成的集合,rvi是web服务用户v观察到的web服务i的qos值,表示web服务用户u所调用过的所有web服务的qos数据的平均值,表示web服务用户v所调用过的所有web服务的qos数据的平均值;或采用基于相似服务的预测方法计算如下:其中,rui表示需要预测的web服务用户u对web服务i的qos值,sim'(i,j)是web服务i和j的集成相似度,web服务i是web服务j的相似邻居,t(i)是web服务i的topk个最相似邻居构成的集合,ruj是web服务用户u观察到的服务j的qos值,和分别表示web服务i和web服务j被所有web服务用户调用的平均qos值;当为活动用户预测完所有目标服务的qos以后,将qos值最高的一个或多个web服务推荐给活动用户。一种基于相似性传播策略的web服务推荐方法,它包括如下步骤:步骤1:需要调用web服务的软件通过网络调用远程服务器1上的web服务,并将观察到的web服务的qos数据反馈给输入处理模块2;步骤2:输入处理模块2去除web服务qos数据中的噪声数据和错误数据得到规范化的web服务qos数据;步骤3:直接相似度计算模块4根据规范化的web服务qos数据计算web服务用户之间或web服务之间的直接相似度,并构建web服务用户直接相似度矩阵和web服务直接相似度矩阵;步骤4:相似度图构建模块5以web服务用户直接相似度矩阵和web服务直接相似度矩阵为邻接矩阵,构造无向加权web服务用户相似度图和无向加权web服务相似度图;表1给出一个简单的用户相似度矩阵例子,假设用户相似度矩阵定义为su,则表1中的su12=0.5表示u1和u2之间的直接相似度为0.5,su23=0表示u2和u3没有过直接交互经历(即根据式(1)所示共同调用过的服务数小于2个),以表1为邻接矩阵,可以构建图2所示的无向加权用户相似度图。u1u2u3u4u5u6u7u100.500.100.60.3u20.5000.4000u3000000.20.6u40.10.4000.400u50000.400.20.5u60.600.200.200u70.300.600.500表1用户相似度矩阵图2中用户相似度图中的节点表示用户,边表示两个用户之间的直接交互经历,边上的权值表示该边连接的两个用户之间的直接相似度。对于两个非直接相连的用户,他们之间的间接相似度可以通过其他用户传播得到,比如u1和u5之间的间接相似度可以通过u1→u6→u5、u1→u7→u5、u1→u2→u4→u5、u1→u6→u3→u7→u5等传播路径得到,同理,也可以根据服务相似度矩阵构建无向加权服务相似度图;步骤5:传播路径发现模块6采用基于flyod图算法的相似度传播路径搜索无向加权web服务用户相似度图和无向加权web服务相似度图上的web服务用户之间或web服务之间的相似性传播路径;基于floyd的图算法来实现spas和spaa两种相似性传播策略,表2给出了算法的实现细节:在spaa算法中的第9步,两个节点的距离不超过6是基于社会网络中的“六度分离原则”,避免传播路径过长的问题。在spas中的第1步,间接相似度矩阵simi初始化的时候,赋值为只含一个中间传播节点的间接相似度,是因为最短传播路径需要至少一个中间传播节点。服务之间的间接相似度计算和以上算法相同,只需将输入参数“用户直接相似度矩阵”更改为“服务直接相似度矩阵”即可;步骤6:相似度聚合模块7将每条相似性传播路径上的相似性进行聚合,得到每条传播路径上的相似度;步骤7:间接相似度计算模块8对所有传播路径上的相似度进行集成,得到web服务用户之间或web服务之间的间接相似度;步骤8:相似邻居发现模块9根据web服务用户之间的直接相似度和间接相似度计算web服务用户之间或web服务之间的集成相似度,并根据web服务用户之间或web服务之间的集成相似度发现当前活动用户的一组相似web服务用户,或者目标web服务的一组相似web服务;步骤9:qos值预测及服务推荐模块10将当前活动用户的相似web服务用户或目标web服务的相似web服务的qos数据,作为当前活动用户预测目标web服务的qos数据,并将前活动用户预测目标web服务的qos数据中qos数值最高的一个或多个web服务推荐给活动用户。本发明采用min-max策略来聚合传播路径上的相似度,并设计了基于flyod的图算法实现了该相似性传播策略,算法简单有效,可以准确评估用户间或服务间在稀疏数据条件下的相似度。本说明书未作详细描述的内容属于本领域专业技术人员公知的现有技术。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1