一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于需求服务概率矩阵的服务选择方法与流程

2021-10-27 14:21:00 来源:中国专利 TAG:服务 选择 矩阵 概率 需求


1.本发明涉及服务选择技术领域,尤其涉及一种基于需求服务概率矩阵的服务选择方法。


背景技术:

2.随着互联网中涌现出各种各样的web服务,可用服务的数量级不断增长,并且服务之间的关系变得越来越复杂,给服务选择带来了极大挑战。由于巨大的搜索空间,现有方法很难在有限的时间内从海量的候选服务中选择最优的服务,为用户构造可行的服务解决方案。


技术实现要素:

3.本发明提供一种基于需求服务概率矩阵的服务选择方法,一方面分析和发现用户需求的分布规律和特性,利用模糊聚类方法将大量需求进行划分,从而形成具有不同特征的服务需求簇;另一方面,从历史服务解决方案挖掘服务(频繁)模式,即有价值的服务解决方案片段,其次,构建需求-服务概率矩阵,该矩阵表示服务需求簇与服务频繁模式之间映射关系的统计概率,最后,将需求-服务与传统服务选择方法结合,提高服务选择效率。
4.本发明通过以下技术方案实现:
5.一种基于需求服务概率矩阵的服务选择方法,所述服务选择方法包括以下步骤:
6.步骤1:使用模糊聚类方法将历史服务记录中的用户需求进行聚类;
7.步骤2:使用fp增长算法对服务系统中存在的解决方案进行挖掘,重点关注历史记录中频繁且同时被调用的web服务;
8.步骤3:通过建立概率矩阵提高传统服务选择问题的效率;
9.步骤4:计算最可能被新需求使用的服务频繁模式,以及将多个服务频繁模式进行组合的可能性。
10.进一步的,所述步骤1中的用户需求进行聚类为,重点关注用户的非功能性需求和对服务质量的约束条件。
11.进一步的,所述步骤1中的模糊聚类方法,对原始算法的相似性度量方法进行改进,使用皮尔逊相关系数和余弦相似度替代欧氏距离,将两个需求间的皮尔逊相关系数和余弦相似度进行线性叠加,而从计算需求间的相似性或需求与簇中心的隶属关系,模糊聚类方法建立规模为m
×
h的隶属度矩阵μ
m
×
h
将h条服务需求聚成m个用户需求簇clu,其隶属度矩阵定义如下:
[0012][0013]
其中,μ
ij
表示第j条服务需求归属于第i个需求簇的隶属度,该隶属度矩阵需要满足如下限制条件:
[0014][0015]
μ
ij
的取值范围满足从0到1,数值越大表示需求j归属于需求簇i的程度越大,对于任意需求j,归属于任意需求簇的隶属度总和为1,为保证聚类结果总数为m个需求簇,因此,每个需求簇内的所有需求隶属度之和需要满足大于0且小于h。
[0016]
进一步的,针对用户需求中的服务质量约束和服务质量偏好,分别采用不同的计算方法,
[0017][0018]
使用皮尔逊相关系数计算服务质量约束的相似性,
[0019][0020]
使用余弦相似度计算服务质量偏好,
[0021][0022]
进一步的,所述步骤1中的聚类具体为,通过迭代最小化目标函数公式,
[0023][0024]
使得样本点与簇中心的相似度逐渐趋近于极大值,在每次迭代过程中,使用如下公式,
[0025][0026][0027]
分别计算本次迭代过程所得到的最优需求簇中心和隶属度矩阵;clu
i
和μ
i
分别表示第i次迭代过程中的所有需求簇中心和本次迭代所得到的最优隶属度矩阵;当两次迭代过程得到的隶属度矩阵的变化程度小于预先设定的阈值时,或迭代次数达到预先设定的最大迭代次数时,算法停止,所得到的需求簇中心和最优隶属度矩阵即表示在该参数设定下的最优聚类划分。
[0028]
进一步的,所述步骤2中的fp增长算法,包括fp树的构建方法和基于fp-growth的挖掘方法;
[0029]
fp树的构建方法:频繁模式树是一种特殊的前缀树,由根节点,频繁项头表和项前
缀子树构成,每个服务前缀子树都是根节点的子节点,服务前缀子树的每个节点由服务名称,支持度计数和节点指针组成,服务名称是频繁模式树中节点的标识;支持度计数用于表示数据集中满足条件事务的数量,如果某事务中出现从根节点到达该节点路径上的所有频繁服务节点,那么即认为该事务满足条件;节点指针指向频繁模式树中具有相同服务名称的下一个节点,如果没有可以指向的节点即标记为空,频繁项头表由服务名称和节点头指针组成,节点头指针指向频繁模式树中第一个具有相同服务名称的节点;
[0030]
基于fp-growth的挖掘方法:对每个出现在频繁项头表中的频繁服务ws
ij
进行遍历,遍历的顺序为支持度升序,即从频繁项头表尾部开始到头部结束,每个频繁服务都被当作初始的后缀模式;算法针对每个频繁服务ws
ij
,试图通过指针头节点找到所有含有ws
ij
的可能存在的频繁模式,因此为每个后缀模式创建条件模式基,条件模式基被定义为包含与该后缀模式共同出现节点的子数据集,由所有到达该后缀模式的所有前缀路径组成;如果后缀模式的条件模式基中存在与后缀模式共同出现次数超过最小支持度阈值的节点,那么算法第14行则使用条件模式基建立该后缀模式的条件频繁模式树;后续的挖掘过程可以在条件频繁模式树上以递归的方式进行,如果条件频繁模式树不为空,那么服务频繁模式即可不断增长。
[0031]
进一步的,所述步骤4服务频繁模式具体为,概率矩阵描述了m个服务需求簇与n个服务频繁模式之间的映射概率,矩阵中的每个元素o
ij
表示第i个服务需求簇内第j个服务频繁模式出现的概率,即服务频繁模式出现的概率,即条件概率p(sp
j
|clu
i
)可以通过服务频繁模式sp
j
在服务需求簇clu
i
所应对的所有服务解决方案中出现的次数除以该服务需求簇内服务解决方案的总数。
[0032]
本发明的有益效果是:
[0033]
本发明以从历史数据中获得的先验知识作为指导,有效的缩减服务选择问题的搜索空间,以达到提高效率的目的,克服上述现有技术没有考虑领域先验知识的缺点,弥补了服务选择领域中利用已有部分服务解决方案片段进行服务选择的空白。
附图说明
[0034]
图1本发明的流程示意图。
[0035]
图2本发明的频繁模式树图。
具体实施方式
[0036]
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]
一种基于需求服务概率矩阵的服务选择方法,所述服务选择方法包括以下步骤:
[0038]
步骤1:使用模糊聚类方法将历史服务记录中的用户需求进行聚类;
[0039]
步骤2:使用fp增长算法对服务系统中存在的解决方案进行挖掘,重点关注历史记录中频繁且同时被调用的web服务;尽管,导致这些服务被绑定在一起使用的原因是多种多
样的,但是由这些频繁服务组成的解决方案片段针对后续的服务解决方案构建具有重要指导意义;
[0040]
步骤3:通过建立概率矩阵提高传统服务选择问题的效率;
[0041]
步骤4:基于贝叶斯理论,计算最可能被新需求使用的服务频繁模式,以及将多个服务频繁模式进行组合的可能性。
[0042]
进一步的,所述步骤1中的用户需求进行聚类为,重点关注用户的非功能性需求和对服务质量的约束条件。识别每个需求簇的代表性特征,从而避免对历史数据中的每条需求进行分析,因此当新需求到达时,可以利用其相似需求簇中的先验知识作为指导快速构建服务解决方案。
[0043]
进一步的,所述步骤1中的模糊聚类方法(fussy c-means algorithm,fcm),对原始算法的相似性度量方法进行改进,使用皮尔逊相关系数(pearson correlation coefficient,pcc)和余弦相似度(cosine similarity,cos)替代欧氏距离(euclidean distance),将两个需求间的皮尔逊相关系数和余弦相似度进行线性叠加,而从计算需求间的相似性或需求与簇中心的隶属关系,模糊聚类方法建立规模为m
×
h的隶属度矩阵μ
m
×
h
将h条服务需求聚成m个用户需求簇clu,其隶属度矩阵定义如下:
[0044][0045]
其中,μ
ij
表示第j条服务需求归属于第i个需求簇的隶属度,该隶属度矩阵需要满足如下限制条件:
[0046][0047]
μ
ij
的取值范围满足从0到1,数值越大表示需求j归属于需求簇i的程度越大,对于任意需求j,归属于任意需求簇的隶属度总和为1,为保证聚类结果总数为m个需求簇,因此,每个需求簇内的所有需求隶属度之和需要满足大于0且小于h。
[0048]
进一步的,针对用户需求中的服务质量约束和服务质量偏好,分别采用不同的计算方法,
[0049][0050]
使用皮尔逊相关系数计算服务质量约束的相似性,
[0051][0052]
使用余弦相似度计算服务质量偏好,
[0053]
[0054]
进一步的,所述步骤1中的聚类具体为,通过迭代最小化目标函数公式(第5-10行),
[0055][0056]
使得样本点与簇中心的相似度逐渐趋近于极大值,在每次迭代过程中,使用如下公式,
[0057][0058][0059]
分别计算本次迭代过程所得到的最优需求簇中心(第7行)和隶属度矩阵(第8行);clu
i
和μ
i
分别表示第i次迭代过程中的所有需求簇中心和本次迭代所得到的最优隶属度矩阵;当两次迭代过程得到的隶属度矩阵的变化程度小于预先设定的阈值时,或迭代次数达到预先设定的最大迭代次数时,算法停止,所得到的需求簇中心和最优隶属度矩阵即表示在该参数设定下的最优聚类划分。
[0060][0061][0062]
进一步的,所述步骤2中的fp增长算法,如何使用fp-growth算法从服务系统的历史记录中识别和发现有价值的服务频繁模式,fp-growth算法将提供频繁项集的数据库压缩到一棵频繁模式树(fp-tree),但仍保留项集关联信息,从而避免频繁模式挖掘过程中所需频繁项候选集的生成和存储。该算法由频繁模式树构建方法和fp-growth挖掘方法组成,下面分别介绍这两种方法;包括fp树的构建方法和基于fp-growth的挖掘方法;
[0063]
fp树的构建方法:本方法使用压缩数据结构,即频繁模式树,来表示具有大量样本的数据集。频繁模式树保留了频繁模式挖掘所需要的重要信息,避免挖掘过程中所需的多次数据集扫描,从而降低不必要的扫描代价提高算法效率;频繁模式树是一种特殊的前缀树,由根节点,频繁项头表和项前缀子树构成(本节针对服务历史记录进行频繁模式挖掘,因此也称之为服务前缀子树),每个服务前缀子树都是根节点的子节点,如图2所示,服务前缀子树的每个节点由服务名称,支持度计数和节点指针组成,服务名称是频繁模式树中节点的标识;支持度计数用于表示数据集中满足条件事务的数量,如果某事务中出现从根节点到达该节点路径上的所有频繁服务节点,那么即认为该事务满足条件;节点指针指向频繁模式树中具有相同服务名称的下一个节点,如果没有可以指向的节点即标记为空(null),频繁项头表由服务名称和节点头指针组成,节点头指针指向频繁模式树中第一个具有相同服务名称的节点;
[0064]
fp-tree构造过程见算法2。首先识别服务数据集中的频繁服务,并将这些服务按照支持度降序排列(第1行),并且建立频繁项头表以便于频繁模式树的遍历(第2行),其中通过频繁项头表指向树中每个服务的出现位置,具有相同服务名称的节点通过节点指针依次链接(方法insert_tree中的第5行)。在遍历所有服务解决方案之后,建立具有节点链接的树,如图2所示。
[0065]
[0066]
下面使用实例1描述频繁模式树的构建过程:
[0067]
实例1:给定服务历史记录log(如表3-12所示)和最小支持度阈值ξ=3,首先,遍历数据集中的所有服务解决方案(表1的前两列),发现数据集中的频繁度大于最小支持度阈值的服务,并且按照支持度降序排列(使用符号<

>表示),即<(ws
73
:4),(ws
15
:4),(ws
32
:3),(ws
48
:3),(ws
22
:3),(ws
91
:3)>,频繁服务(表1的第三列)和频繁项头表都以支持度降序排列,以保证频繁模式树中每条路径所包含的节点都遵循该支持度降序排列。
[0068]
表1.服务解决方案和频繁服务
[0069][0070][0071]
其次,创建频繁模式树的根节点,并标记为空节点,只需要再一次遍历所有服务解决方案集合sol,即可生成频繁模式树。遍历服务解决方案sol1可以得到频繁模式树的第一个分支<(ws
73
:1),(ws
15
:1),(ws
32
:1),(ws
48
:1),(ws
22
:1)>,由于该分支上的每一个节点都是第一次出现,所以将频繁项头表中所对应的节点头指针指向相应节点。需要注意的是出现在频繁模式树中的每个分支都需要满足支持度降序排列。出现在服务解决方案sol2中的频繁服务为<ws
73
,ws
15
,ws
32
,ws
22
>,与已存在分支<(ws
73
:1),(ws
15
:1),(ws
32
:1),(ws
48
:1),(ws
22
:1)>具有相同的前缀<(ws
73
:1),(ws
15
:1),(ws
32
:1)>,那么,则将该前缀上所有节点的支持度加一,创建新节点(ws
22
:1)作为(ws
32
:1)的子节点,并且将具有相同服务名称的节点相关联,即将已存在节点(ws
22
:1)((ws
48
:1)的子节点)的节点指针指向新创建的节点(ws
22
:1)((ws
32
:1)的子节点)。服务解决方案sol3的频繁服务<ws
73
,ws
15
,ws
32
,ws
48
,ws
91
>,与已存在路径共享前缀<(ws
73
:2),(ws
15
:2),(ws
32
:2),(ws
48
:1)>,因此,将该前缀上每个节点支持度加一,创建(ws
48
:2)的子节点(ws
91
:1),并将频繁项头表中ws
91
的节点头指针指向新节点(ws
91
:1)。由于服务解决方案sol4的频繁服务集为<ws
73
,ws
22
,ws
91
>,与现有频繁模式树共享前缀节点ws
73
,那么,将节点ws
73
的支持度加一,创建(ws
73
:4)的子分支<(ws
22
:1),(ws
91
:1)>,并使用频繁项头表找到具有相同服务名称的节点,然后与其相关联。遍历服务解决方案sol5,创建频繁模式树的第二个分支,即<(ws
15
:1),(ws
48
:1),(ws
91
:1)>。
[0072]
基于fp-growth的挖掘方法:对每个出现在频繁项头表中的频繁服务ws
ij
进行遍历(第10-17行),遍历的顺序为支持度升序,即从频繁项头表尾部开始到头部结束,每个频繁服务都被当作初始的后缀模式(suffix pattern);算法针对每个频繁服务ws
ij
,试图通过指针头节点找到所有含有ws
ij
的可能存在的频繁模式,因此为每个后缀模式创建条件模式基(见表2第二列),条件模式基被定义为包含与该后缀模式共同出现节点的子数据集,由所有到达该后缀模式的所有前缀路径组成;如果后缀模式的条件模式基中存在与后缀模式共同出现次数超过最小支持度阈值的节点,那么算法第14行则使用条件模式基建立该后缀模式的条件频繁模式树(用符号{

}表示,见表2第三列);后续的挖掘过程可以在条件频繁模式
树上以递归的方式进行,如果条件频繁模式树不为空,那么服务频繁模式即可不断增长(第16行)。
[0073][0074]
值得注意的是频繁模式树可能存在一种特殊的结构,即单前缀路径(single prefix path)。单前缀路径指的是频繁模式树只有一条单独路径,即树中除叶子节点外的每个节点都有且仅有一个子节点;或从根节点到首个分叉节点之间存在单前缀路径,分叉节点指具有至少两个子节点的节点。假设频繁模式树t具有单前缀路径p,频繁模式树t的频繁模式集合一定包含单前缀路径p的任意子节点之间的全排列组合,支持度由子路径上具有最小支持度的节点决定。按照该方法处理单前缀路径可以有效的提高服务频繁模式的挖掘效率(第2-6行)。
[0075]
进一步的,所述步骤4服务频繁模式具体为,统计概率体现了历史记录中的先验知识,如何使用条件概率建立体现服务需求簇与频繁模式之间的映射概率矩阵。概率矩阵的构建方法如算法4所示;给定某服务需求簇,根据统计结果可以得知哪些服务频繁模式更倾向于被满足该簇内需求的服务解决方案所采用;概率矩阵描述了m个服务需求簇与n个服务频繁模式之间的映射概率,矩阵中的每个元素o
ij
表示第i个服务需求簇内第j个服务频繁模式出现的概率,即频繁模式出现的概率,即条件概率p(sp
j
|clu
i
)可以通过服务频繁模式sp
j
在服务需求簇clu
i
所应对的所有服务解决方案中出现的次数除以该服务需求簇内服务解决方案的总数。
[0076]
实施例2
[0077]
在服务系统中,尽管每个用户提出需求中所包含的服务质量约束和服务质量偏好都是个性化的,但是,当大规模用户需求聚集在一起时,仍然体现出特定的需求分布,可以将这些需求划分成为具有不同特征的用户需求群组。本发明实施例为解决用户需求聚类问题提出模糊聚类方法(fussy c-means algorithm,fcm),对原始算法的相似性度量方法进行改进,使用皮尔逊相关系数(pearson correlation coefficient,pcc)和余弦相似度(cosine similarity,cos)替代欧氏距离(euclidean distance),将两个需求间的皮尔逊相关系数和余弦相似度进行线性叠加,而从计算需求间的相似性或需求与簇中心的隶属关系。
[0078]
实施例3
[0079]
使用压缩数据结构,即频繁模式树,来表示具有大量样本的数据集。频繁模式树保留了频繁模式挖掘所需要的重要信息,避免挖掘过程中所需的多次数据集扫描,从而降低不必要的扫描代价提高算法效率。
[0080]
实施例4
[0081]
频繁模式增长算法对每个出现在频繁项头表中的频繁服务进行遍历,遍历的顺序为支持度升序,即从频繁项头表尾部开始到头部结束,每个频繁服务都被当作初始的后缀模式(suffix pattern)。算法针对每个频繁服务,试图通过指针头节点找到所有含有该服务的潜在频繁模式,因此为每个后缀模式创建条件模式基,条件模式基被定义为包含与该后缀模式共同出现节点的子数据集,由所有到达该后缀模式的前缀路径组成。如果后缀模式的条件模式基中存在与后缀模式共同出现次数超过最小支持度阈值的节点,那么算法使用条件模式基建立该后缀模式的条件频繁模式树。后续的挖掘过程可以在条件频繁模式树上以递归的方式进行,如果条件频繁模式树不为空,那么服务频繁模式即可不断增长。
[0082]
实施例5
[0083]
通过建立概率矩阵描述和表达隐藏在需求和解决方案之间的概率映射关系。统计概率体现了历史记录中的先验知识,使用条件概率建立体现服务需求簇与频繁模式之间的映射概率矩阵。当给定某服务需求簇,根据统计结果可以得知哪些服务频繁模式更倾向于被满足该簇内需求的服务解决方案所采用。
[0084]
实施例6
[0085]
概率矩阵展现了服务历史记录中的先验知识,这些经验可以被提取和整理并用于指导新服务需求所需要的服务解决方案构建。此外,概率矩阵还体现用户需求的分布以及频繁模式的分布。本发明实施例使用服务选择问题作为案例,研究概率矩阵的使用效果。本发明实施例选择基于整数规划的全局规划优化方法(global planing optimazation algorithm,gp)和人工蜂群算法(artifical bee colony algorihtm,abc)作为改进对象。全局规划方法和人工蜂群算法的优势分别在于解质量和算法效率,前者通过遍历所有解空间找到质量最高的可行服务解决方案,后者通过迭代的方式随机搜索解空间,试图快速找到近似最优解,即全局最优解的相似解。
[0086]
本发明上述实施例提供了一种服务选择方法,随着互联网中涌现出各种各样的
web服务,可用服务的数量级不断增长,并且服务之间的关系变得越来越复杂,给服务选择带来了极大挑战。由于巨大的搜索空间,现有方法很难在有限的时间内从海量的候选服务中选择最优的服务,为用户构造可行的服务解决方案。本发明以从历史数据中获得的先验知识作为指导,有效的缩减服务选择问题的搜索空间,以达到提高效率的目的。克服上述现有技术没有考虑领域先验知识的缺点,弥补了服务选择领域中利用已有部分服务解决方案片段进行服务选择的空白。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜